# Project Maintainer

> 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.

- Skill: `xiaozhen-y/project-maintainer` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add xiaozhen-y/project-maintainer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xiaozhen-y/project-maintainer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: XiaoZhen-Y (https://skillmd.com/u/xiaozhen-y)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/xiaozhen-y/project-maintainer

---


# 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

1. If project files are accessible, locate the project root and check for `.project_maintainer/`.
2. If `.project_maintainer/` is missing, create it or clearly suggest creating it, then initialize the five files from the templates in `references/`.
3. Before normal work, read only:
   - `.project_maintainer/PROJECT_STATE.md`
   - `.project_maintainer/CONSTRAINTS.md`
   - `.project_maintainer/CURRENT_TASK.md`
4. Read `.project_maintainer/DECISION_LOG.md` only when the task involves architecture, product direction, technical route, important tradeoffs, or changing established decisions.
5. Do not read `.project_maintainer/HISTORY_LOG.md` unless the user explicitly asks for historical audit, context recovery, or root-cause tracing.
6. 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:

1. Update `.project_maintainer/PROJECT_STATE.md` so it remains the concise current truth source.
2. Update `.project_maintainer/CURRENT_TASK.md` with status, result, blockers, and next handoff.
3. Update `.project_maintainer/CONSTRAINTS.md` only when active constraints changed or new constraints were discovered.
4. Update `.project_maintainer/DECISION_LOG.md` only when an architecture, product, technical-route, or important tradeoff decision was made or changed.
5. 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`

