Project Maintainer
Overview
This skill provides a set of commands to automate the process of updating and maintaining the project's documentation files. It ensures that the STATUS.md, HISTORY.md, and PROJECT_TODO.md files are tethered to the actual Git state of the skill submodules.
Commands
/review_project
Reviews all project documentation, updates where necessary, and generates a status report manifest.
Workflow:
- Git Status Guard: For each submodule (
skills/public,skills/internal), check for uncommitted changes usinggit status --porcelain.- If changes are present, stop and ask the user if they wish to commit them before proceeding.
- If they agree, perform
git add .andgit commit -m "<user_provided_message>"within that submodule.
- Identify Submodule States: Once clean, get the current short Git SHA (
git rev-parse --short HEAD) for both submodules. - Find Files: Locate all
STATUS.md,HISTORY.mdfiles within themeta/skills/directory and thePROJECT_TODO.mdin the root. - Update Status Files: For each
STATUS.mdfile, update theLast Updatedate and theLast Verified SHA. - Cheat Sheet Sync (Periodic):
- Once in a while (e.g., if it's the first review of the month, or if the user explicitly asks to "Review the full workflow"), read the
GEMINI_WORKFLOW_CHEATSHEET.mdin the project root. - Verify that the submodule paths, GitHub URLs, and launch commands still match the actual project structure.
- Suggest updates if any discrepancies are found.
- Once in a while (e.g., if it's the first review of the month, or if the user explicitly asks to "Review the full workflow"), read the
- Update
PROJECT_STATUS.md: Create or update aPROJECT_STATUS.mdfile in the project root with a manifest report.
Example Usage:
"Review the project status." or "Perform a full project and workflow review."
/log_change <skill_name> "<message>"
Appends a new entry to the HISTORY.md file, tethered to the current Git SHA.
Workflow:
- Git Status Guard: Identify which submodule the skill belongs to. Check for uncommitted changes (
git status --porcelain).- Stop and ask the user to commit if the submodule is dirty.
- Identify Submodule SHA: Once the submodule is clean, run
git rev-parse --short HEAD.- If skill is
quartz-blog-post, use SHA fromskills/internal. - Otherwise, use SHA from
skills/public.
- If skill is
- Identify Target File: Locate the
HISTORY.mdfile atmeta/skills/<skill_name>/HISTORY.md. - Construct New Entry: Create a formatted entry:
### YYYY-MM-DD [ref: <sha>]. - Append and Write: Prepend the new entry and message to the existing content.
Example Usage:
/log_change obsidian-chat-summary "Refactored output path to /output folder."
/update_status <skill_name> --status "<new_status>"
Updates the Status and Last Verified SHA in a skill's STATUS.md file.
Workflow:
- Git Status Guard: Check the appropriate submodule for uncommitted changes. Ask the user to commit if dirty.
- Identify Submodule SHA: Get the current short SHA from the appropriate submodule.
- Identify Target File: Locate the
STATUS.mdfile atmeta/skills/<skill_name>/STATUS.md. - Update Content: Replace
Status: <old>andLast Verified SHA: <old>with the new values.
Example Usage:
/update_status conversation-flow --status "Active"
/increment_version <skill_name> --type [patch|minor|major]
Increments the skill version in its own SKILL.md frontmatter.
Workflow:
- Locate Skill: Find the
SKILL.mdfor the specified<skill_name>. - Read Frontmatter: Parse the YAML to get the current
version. - Calculate New Version: Increment the version string (e.g.,
v1.0.0->v1.0.1for patch). - Update SKILL.md: Replace the
version:line with the new version. - Log History: Append the version change to the skill's
HISTORY.mdfile in themeta/directory. - Trigger Git Tag: If
git-flow-automatoris active, request it to tag the repository containing the skill with the new version.
Example Usage:
/increment_version git-flow-automator --type patch
/add_todo "<task>"
Adds a new task to the PROJECT_TODO.md file.
Workflow:
- Identify Target File: Locate the
PROJECT_TODO.mdfile in the project root. - Append and Write: Insert the new task
- [ ] <task>under the## 🎯 Open Taskssection.