jamesshi96/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 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.
npx skills add https://github.com/JamesShi96/project-butler --skill project-butler
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.
<EXTREMELY_IMPORTANT>
Before any other step, read references/update-check.md and execute
the version freshness check described there.
VERSION_NOTICE: block → do NOT print itverbatim. Instead present ONE interactive update prompt with
AskUserQuestion, worded in the project's CLAUDE.md language:
(read N from the VERSION_NOTICE: line).
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.
prompt to at most once per 24h, so it will not ask again today.
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.
git pull on the skill directory yourself EXCEPT as the"Update now" action the user explicitly selected (which runs the
--pull subcommand above).
in the current skill loading prompt, skip the check silently and
continue to Step 0.
</EXTREMELY_IMPORTANT>
Determine how this skill was triggered:
A. "整理文件" / "organize files":
references/file-reorganization.mdB. "收工" / "end session" / "结束会话" / "we're done" / "wrap up" / "done for today" / "normal close" / "full close":
C. Initialization (/project-butler, 初始化项目, setup project, etc.):
→ Continue to Init Flow below
D. "切换语言" / "change language":
references/language-change.md + references/language-adaptation.mdE. "continue" / "接着上次" / "上次做到哪了":
references/continue.mdF. "continue full context" / "全面回顾" / "项目全景" / "full context":
references/continue-full-context.mdG. "review claude" / "审查规则" / "更新宪法" / "check the rules":
.claude/candidates.md.claude/candidates.mdH. "sync wiki" / "同步项目" / "update overview" / "refresh overview":
I. "status" / "项目现状" / "where are we":
.claude/project-profile.json or .claude/profile-pending.json exists, read references/project-profile-system.md and include profile debt / review queue in the dashboardJ. "foundation setup" / "profile setup" / "foundation repair" / "profile repair" / "profile sync":
references/project-profile-system.mdWhen triggered by "end session" / "结束会话" / "收工" / "we're done" / "wrap up" / "done for today" / "normal close" / "full close", execute in order:
log/session-YYYY-MM-DD-{slug}.mdsession-2026-04-21-prd-draft.md)read references/log-compaction.md and execute
.claude/candidates.md (see rules below).claude/project-profile.json exists, .claude/profile-pending.json exists, or the user explicitly requested Normal Close / Full Close / profile sync:references/project-profile-system.md.claude/profile-pending.jsonreferences/file-reorganization.md, execute Mode B.claude/.file-snapshot.jsonreferences/document-archiving.md, scan and archive document outputdocs/ subdirectoriesDOCS.md index and metadata10. Evaluate & write update log → read references/update-log.md
11. Output summary → result-focused summary in the configured language (check CLAUDE.md Language setting)
After end session, summarize outcomes instead of listing internal protocol steps:
Session saved.
Updated:
- Handoff refreshed
- TODO updated: {done count} done, {active count} active
- Project wiki synced
- Profile: {normal close / full close / no profile impact / profile pending count}
- Documents archived: {count}
- Update log: {version added or skipped}
Next:
- {next action}
- {next action}
Omit lines that do not apply. For status, answer as a compact dashboard:
Current Status
Project:
- Stage: {stage}
- Focus: {current focus}
Active Work:
- {active item}
Recent Change:
- {latest update log entry or "No milestone update yet"}
Profile:
- {profile shape / pending debt / review needed, only when profile files exist}
Next Best Step:
- {single recommended next step}
Session log headers adapt to the configured language (read references/language-adaptation.md for glossary).
# Session YYYY-MM-DD — {topic}
## Session Goal
## Key Actions (Chronological)
## Decisions & Rationale
## Output Files
## Unfinished Items / Next Session Pickup
## CLAUDE.md Candidates (if any)
AI automatically appends to .claude/candidates.md when:
Never promote candidates into CLAUDE.md automatically. All candidates require explicit user review via "review claude" before CLAUDE.md is changed.
Each task in TODO.md must include:
- [ ] {task description}
Owner: {name} | Deadline: {date} | Dependencies: {prerequisite}
If user provides a task missing required fields, ask them to fill in. Completed tasks are checked and kept (not deleted).
Scan project root for: CLAUDE.md, PROJECT.md, session-handoff.md, TODO.md, log/, STRUCTURE.md, UPDATE_LOG.md, DOCS.md, docs/, .claude/.file-snapshot.json, .claude/candidates.md, .claude/project-profile.json, .claude/profile-pending.json
references/project-profile-system.md and run Foundation Setup as the default setup path. Create the base 7-component memory stack, .claude/project-profile.json, .claude/profile-pending.json, and only the user-confirmed baseline docs. For lightweight projects, use maintenance.preference = "lightweight" and keep Required docs minimal instead of skipping profile state.references/upgrade-mode.md; if profile files are missing, also read references/project-profile-system.md and offer profile-aware upgrade using the latest Foundation Setup modelFor Fresh initialization, follow Foundation Setup in references/project-profile-system.md: ask for the required setup basics, ask for a natural project description, infer the project shape, generate project-specific foundation areas, ask only targeted follow-up questions, and propose Required / Recommended / Optional documents before file creation.
AskUserQuestion should still keep setup lightweight. Make clear that the user can press Enter for recommended defaults.
Required:
Recommended defaults:
en / zh / bilingual (default bilingual)预设选项:Semantic (v0.1.0) / Codename ({project name} 0.1) / Patch (Patch 1) / Date (2026.06.1)
AI 根据项目类型推荐:产品/品牌类→Codename / 游戏/内容类→Patch / 日志/研究类→Date / 默认→Semantic
Read references/file-templates.md + references/language-adaptation.md + references/document-archiving.md + references/project-profile-system.md.
Create each file using templates, replacing {{VARIABLES}} with user answers. For UPDATE_LOG.md, calculate the initial version based on the version style selection and current date (e.g., semantic → v0.1.0, date → 2026.06.1). Apply language adaptation rules and glossary from the reference.
Create log/.gitkeep (empty file) alongside log/ directory so git tracks it when empty.
Create .claude/.file-snapshot.json with empty content: {"lastScan":"","files":{}}.
Create .claude/project-profile.json, .claude/profile-pending.json, and confirmed Required profile baseline docs from the approved Foundation Setup proposal.
If the user enabled Cursor support, create .cursor/rules/project-system.mdc from Template 6.
If the user enabled Codex support, create AGENTS.md from Template 6b. If AGENTS.md already exists, do not overwrite it; offer to append the project-butler section after confirmation.
Adapt this report to the configured language:
Project memory is ready.
Daily commands:
- end session — save progress and next steps
- continue — resume next time
- status — check current state
Advanced:
- review claude — approve long-term rules when needed
Created:
- Project memory and handoff notes
- TODO tracking
- Document index
- Update log
- Profile config and pending queue: created
- File organization rules
- Cursor rules: created / skipped
- Codex AGENTS.md: created / skipped
Settings:
- Language: {{LANGUAGE}}
- Version style: {{VERSION_STYLE}} (starting: {{VERSION_INITIAL}})
| Trigger | Read these files |
|---------|-----------------|
| Init (fresh) | references/file-templates.md + references/language-adaptation.md + references/document-archiving.md + references/project-profile-system.md |
| Init (upgrade) | above + references/upgrade-mode.md; include references/project-profile-system.md when creating, repairing, or preserving profile files |
| End session | references/file-reorganization.md + references/document-archiving.md + references/update-log.md + references/log-compaction.md (if logs ≥ threshold); include references/project-profile-system.md when profile files exist or Normal/Full Close is requested |
| 整理文件 / organize files | references/file-reorganization.md |
| 切换语言 / change language | references/language-change.md + references/language-adaptation.md |
| continue / 接着上次 | references/continue.md |
| continue full context / 全面回顾 | references/continue-full-context.md |
| review claude / 审查规则 | Inline workflow in Step 0 |
| sync wiki / 同步项目 | Inline workflow in Step 0 |
| status / 项目现状 | Inline workflow in Step 0; include references/project-profile-system.md when profile files exist |
| profile setup / full close / foundation repair | references/project-profile-system.md |
Create time-boxed technical spike documents for researching and resolving critical development decisions before implementation.
Automatically convert Confluence specification documents into structured Jira backlogs with Epics and implementation tickets. When an agent needs to: (1) Create Jira tickets from a Confluence page, (2) Generate a backlog from a specification, (3) Break down a spec into implementation tasks, or (4) Convert requirements into Jira issues. Handles reading Confluence pages, analyzing specifications, creating Epics with proper structure, and generating detailed implementation tickets linked to the Epic.
Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when user wants to stress-test a plan against their project's language and documented decisions.
Guidelines for clinical decision support (CDS) documents: biomarker-stratified cohort analyses and GRADE-graded treatment reports. Covers structure, executive summaries, evidence grading (1A–2C), stats (HR, CI, survival), and biomarker integration. Use for pharma research docs, clinical guidelines, regulatory submissions.
Generate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
Guides through Trail of Bits' 5-step secure development workflow. Runs Slither scans, checks special features (upgradeability/ERC conformance/token integration), generates visual security diagrams, helps document security properties for fuzzing/verification, and reviews manual security areas.
Document architecture decisions with ADR (Architecture Decision Records). Use when making significant technical decisions, choosing between alternatives, or when onboarding needs context on past decisions.
Plan-approval workflow patterns for user control over AI actions in Claude Code Waypoint Plugin. Use when planning complex changes, need user approval before execution, want to prevent mistakes, or need to document proposed changes. Covers plan creation, approval checkpoints, plan deviation tracking, revision management, and learning from approved/rejected plans.
Take jamesshi96/project-butler from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.