Skip to content
Development
Skill

/project-butler

Project memory workflow for init/upgrade, profile-aware setup, end session, normal/full close, file organization, document archiving, language switching, versioned update logs, rule review, status, wiki sync, and context recovery. Use for /project-butler, setup/初始化, foundation

From plugin
project-butler
3741 skill

Claude Code

$ npx -y skills add JamesShi96/project-butler --skill project-butler --agent claude-code

SKILL.md

project-butler.SKILL.md
name: project-butler
description: "Project memory workflow for init/upgrade, profile-aware setup, end session, normal/full close, file organization, document archiving, language switching, versioned update logs, rule review, status, wiki sync, and context recovery. Use for /project-butler, setup/初始化, foundation setup, profile setup, end session/收工, normal close, full close, foundation repair, organize files/整理文件, change language/切换语言, continue/接着上次, continue full context/全面回顾, review claude, sync wiki, status. Maintains project memory files. Runs version freshness check before trigger routing."

Project Butler — Project Memory Stack

Initialize standardized project memory:

上层(稳定原则)
┌─────────────────────────────────────┐
│  CLAUDE.md(项目宪法)← 人工确认     │
│  ↑ candidates(AI 自动收集候选)     │
└─────────────────────────────────────┘
        ↑ 抽象沉淀
中层(当前快照)
┌─────────────────────────────────────┐
│  PROJECT.md(项目 Wiki)← AI 自动同步 │
│  概览 / 结构 / 模块状态 / 文件索引    │
│  STRUCTURE.md(文件管理规则)← AI 自动│
│  目录规则 / 匹配条件 / 整理历史       │
│  UPDATE_LOG.md(里程碑变化)← AI 自动 │
│  DOCS.md(文档索引 + 元数据)← AI 自动 │
│  .claude/project-profile.json(画像配置)│
│  .claude/profile-pending.json(画像待处理)│
└─────────────────────────────────────┘
        ↑ 状态汇总
下层(事实流水)
┌────────────────────┐  ┌────────────────────┐
│  log/(会话日志)   │  │  TODO.md(执行清单)│
│  raw + summaries   │  │  owner/deadline/    │
│  + archive(分级)  │  │  deps               │
└────────────────────┘  └────────────────────┘
        ↓
session-handoff.md(下次接手点)

Core idea: bottom feeds top, top constrains bottom. Logs and TODOs are raw facts. Handoff marks the next resume point. Wiki is the current snapshot. Structure manages file organization. Docs index manages document output. Update Log records versioned milestone changes. Constitution is stable principles.

Supports 3 language modes: English (`en`), Chinese (`zh`), or bilingual. All content adapts to the selected language.

---

Step -1: Version Freshness Check (always run first)

<EXTREMELY_IMPORTANT> Before any other step, read `references/update-check.md` and execute the version freshness check described there.

  • If the check prints nothing → continue to Step 0 silently.
  • If the check prints a `VERSION_NOTICE:` block → do NOT print it

verbatim. Instead present ONE interactive update prompt with AskUserQuestion, worded in the project's CLAUDE.md language:

  • Question: "project-butler is N commits behind upstream. Update now?"

(read N from the `VERSION_NOTICE:` line).

  • Option "Update now" → run

`bash "<SKILL_DIR>/scripts/check-update.sh" --pull "<SKILL_DIR>"` as a single Bash call, then report its `UPDATE_OK` / `UPDATE_FAILED` output to the user.

  • Option "Remind me later" → do nothing; the script throttles the

prompt to at most once per 24h, so it will not ask again today.

  • Option "Stop reminding" → tell the user to set

`PROJECT_BUTLER_NO_UPDATE_CHECK=1` to silence permanently. Present this prompt once, before the triggered work. The script already limits it to once per 24h, so do not add your own suppression.

  • Never run `git pull` on the skill directory yourself EXCEPT as the

"Update now" action the user explicitly selected (which runs the `--pull` subcommand above).

  • If you cannot find the "Base directory for this skill: <path>" line

in the current skill loading prompt, skip the check silently and continue to Step 0. </EXTREMELY_IMPORTANT>

---

Step 0: Trigger Routing

Determine how this skill was triggered:

**A. "整理文件" / "organize files":** 1. Read `references/file-reorganization.md` 2. Execute **Mode A: Four-Phase Organize** (Discover → Ask or Plan → Plan → Execute) 3. Report and stop

**B. "收工" / "end session" / "结束会话" / "we're done" / "wrap up" / "done for today" / "normal close" / "full close":** 1. Execute the **End Session Flow** below (inline) 2. Report and stop

**C. Initialization (/project-butler, 初始化项目, setup project, etc.):** → Continue to **Init Flow** below

**D. "切换语言" / "change language":** 1. Read `references/language-change.md` + `references/language-adaptation.md` 2. Execute the Language Change Protocol 3. Report and stop

**E. "continue" / "接着上次" / "上次做到哪了":** 1. Read `references/continue.md` 2. Execute the Continue process (recover last session context) 3. Report and stop

**F. "continue full context" / "全面回顾" / "项目全景" / "full context":** 1. Read `references/continue-full-context.md` 2. Execute the Continue Full Context process (full project trajectory recovery) 3. Report and stop

**G. "review claude" / "审查规则" / "更新宪法" / "check the rules":** 1. Read `.claude/candidates.md` 2. Present pending candidates one by one for accept / reject / rewrite 3. For accepted or rewritten candidates, append to CLAUDE.md only after explicit user confirmation 4. Move processed candidates to adopted or rejected sections in `.claude/candidates.md` 5. Report and stop

**H. "sync wiki" / "同步项目" / "update overview" / "refresh overview":** 1. Read PROJECT.md, STRUCTURE.md, UPDATE_LOG.md, DOCS.md, TODO.md, and session-handoff.md if present 2. Rescan current project files and update PROJECT.md current snapshot, module map, file structure, key file index, links, and progress sections 3. Preserve user-authored content where possible 4. Report and stop

**I. "status" / "项目现状" / "where are we":** 1. Read PROJECT.md and session-handoff.md 2. Also read TODO.md and latest UPDATE_LOG.md entry if present 3. If `.claude/project-profile.json` or `.claude/profile-pending.json` exists, read `references/project-profile-system.md` and include profile debt / review queue in the dashboard 4. Present a compact project dashboard in the configured language: Project, Active Work, Recent Change, Profile, Next Best Step 5. Report and stop

**J. "foundation setup" / "profile setup" / "foundation repair" / "profile repair" / "profile sync":** 1. Read `references/project-profile-system.md` 2. Execute the matching Profile System flow 3. Report and stop

-

Read more
Stats
376
Stars
12
Forks
Maintained
Maintenance
Shell
Language
MIT
License
Last commit
Created

Repo: JamesShi96/project-butler

@jamesshi96
Ships withproject-butler

Make AI coding agents remember your project between sessions. project-butler helps Claude Code, Cursor, Codex, and similar AI coding assistants behave like long-term project teammates instead of starting from scratch every session.

Stars on GitHub

Momentum

stars in total
374
Star history of JamesShi96/project-butler on GitHub, a chart by star-history.com

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about project-butler.

Which coding agents can use project-butler?
project-butler installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.