Project Maintainer
Use this skill as a strict project-maintenance protocol, not as a generic prompt. Keep the skill lightweight: store project-specific facts only in the target project's .project_maintainer/ directory, never in this SKILL.md.
Memory Files
The target project uses .project_maintainer/ with exactly these long-term files:
PROJECT_STATE.md: Current source of truth. Keep concise; only record information that still matters.
CONSTRAINTS.md: Active user, product, technical, process, and safety constraints.
CURRENT_TASK.md: Current task understanding, status, blockers, and handoff notes.
DECISION_LOG.md: Architecture, product, technical-route, and important tradeoff decisions.
HISTORY_LOG.md: Append-only dated task history. Do not read during normal work.
Do not create SUCCESS_CRITERIA.md.
Template files live in references/. Use them only when initializing a missing .project_maintainer/ directory.
Start Protocol
- If project files are accessible, locate the project root and check for
.project_maintainer/.
- If
.project_maintainer/ is missing, create it or clearly suggest creating it, then initialize the five files from the templates in references/.
- Before normal work, read only:
.project_maintainer/PROJECT_STATE.md
.project_maintainer/CONSTRAINTS.md
.project_maintainer/CURRENT_TASK.md
- Read
.project_maintainer/DECISION_LOG.md only when the task involves architecture, product direction, technical route, important tradeoffs, or changing established decisions.
- Do not read
.project_maintainer/HISTORY_LOG.md unless the user explicitly asks for historical audit, context recovery, or root-cause tracing.
- Briefly output:
If files are not accessible, ask the user to upload or paste the relevant .project_maintainer/ files. At the end, provide copyable replacement blocks for files that should be rewritten and append blocks for HISTORY_LOG.md.
Work Protocol
- Follow the user's current request and the active project constraints.
- Do not invent project facts. If a fact is unavailable, inspect files or mark it unknown.
- Keep changes within the requested boundary. Avoid opportunistic refactors.
- Prefer simple, direct maintenance notes over elaborate documentation.
- Write all long-term maintenance records in Chinese.
- Keep code identifiers, file paths, function names, class names, API names, and error messages in their original form.
- Use English only when the user explicitly requests English.
End Protocol
At the end of every task, update durable memory:
- Update
.project_maintainer/PROJECT_STATE.md so it remains the concise current truth source.
- Update
.project_maintainer/CURRENT_TASK.md with status, result, blockers, and next handoff.
- Update
.project_maintainer/CONSTRAINTS.md only when active constraints changed or new constraints were discovered.
- Update
.project_maintainer/DECISION_LOG.md only when an architecture, product, technical-route, or important tradeoff decision was made or changed.
- Append one dated record to
.project_maintainer/HISTORY_LOG.md. Every record must include a date. Do not rewrite old history unless the user explicitly asks.
Then briefly output:
- 完成内容
- 验证情况
- 更新了哪些维护文件
- 下一步建议
Reference Templates
Use these files only for initialization:
references/PROJECT_STATE.template.md
references/CONSTRAINTS.template.md
references/CURRENT_TASK.template.md
references/DECISION_LOG.template.md
references/HISTORY_LOG.template.md
1---2name: project-maintainer3description: Maintain long-term project memory for any repository or project through a .project_maintainer directory. Use when Codex or ChatGPT must resume project context across conversations, inspect current project state and constraints, identify the current task, execute bounded maintenance work, and update durable project memory at the end without relying on chat history.4---56# Project Maintainer78Use this skill as a strict project-maintenance protocol, not as a generic prompt. Keep the skill lightweight: store project-specific facts only in the target project's `.project_maintainer/` directory, never in this `SKILL.md`.910## Memory Files1112The target project uses `.project_maintainer/` with exactly these long-term files:1314- `PROJECT_STATE.md`: Current source of truth. Keep concise; only record information that still matters.15- `CONSTRAINTS.md`: Active user, product, technical, process, and safety constraints.16- `CURRENT_TASK.md`: Current task understanding, status, blockers, and handoff notes.17- `DECISION_LOG.md`: Architecture, product, technical-route, and important tradeoff decisions.18- `HISTORY_LOG.md`: Append-only dated task history. Do not read during normal work.1920Do not create `SUCCESS_CRITERIA.md`.2122Template files live in `references/`. Use them only when initializing a missing `.project_maintainer/` directory.2324## Start Protocol25261. If project files are accessible, locate the project root and check for `.project_maintainer/`.272. If `.project_maintainer/` is missing, create it or clearly suggest creating it, then initialize the five files from the templates in `references/`.283. Before normal work, read only:29 - `.project_maintainer/PROJECT_STATE.md`30 - `.project_maintainer/CONSTRAINTS.md`31 - `.project_maintainer/CURRENT_TASK.md`324. Read `.project_maintainer/DECISION_LOG.md` only when the task involves architecture, product direction, technical route, important tradeoffs, or changing established decisions.335. Do not read `.project_maintainer/HISTORY_LOG.md` unless the user explicitly asks for historical audit, context recovery, or root-cause tracing.346. Briefly output:35 - 当前任务理解36 - 相关约束37 - 计划步骤3839If files are not accessible, ask the user to upload or paste the relevant `.project_maintainer/` files. At the end, provide copyable replacement blocks for files that should be rewritten and append blocks for `HISTORY_LOG.md`.4041## Work Protocol4243- Follow the user's current request and the active project constraints.44- Do not invent project facts. If a fact is unavailable, inspect files or mark it unknown.45- Keep changes within the requested boundary. Avoid opportunistic refactors.46- Prefer simple, direct maintenance notes over elaborate documentation.47- Write all long-term maintenance records in Chinese.48- Keep code identifiers, file paths, function names, class names, API names, and error messages in their original form.49- Use English only when the user explicitly requests English.5051## End Protocol5253At the end of every task, update durable memory:54551. Update `.project_maintainer/PROJECT_STATE.md` so it remains the concise current truth source.562. Update `.project_maintainer/CURRENT_TASK.md` with status, result, blockers, and next handoff.573. Update `.project_maintainer/CONSTRAINTS.md` only when active constraints changed or new constraints were discovered.584. Update `.project_maintainer/DECISION_LOG.md` only when an architecture, product, technical-route, or important tradeoff decision was made or changed.595. Append one dated record to `.project_maintainer/HISTORY_LOG.md`. Every record must include a date. Do not rewrite old history unless the user explicitly asks.6061Then briefly output:6263- 完成内容64- 验证情况65- 更新了哪些维护文件66- 下一步建议6768## Reference Templates6970Use these files only for initialization:7172- `references/PROJECT_STATE.template.md`73- `references/CONSTRAINTS.template.md`74- `references/CURRENT_TASK.template.md`75- `references/DECISION_LOG.template.md`76- `references/HISTORY_LOG.template.md`