create-claude-cabinet 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +196 -0
  3. package/bin/create-claude-cabinet.js +8 -0
  4. package/lib/cli.js +624 -0
  5. package/lib/copy.js +152 -0
  6. package/lib/db-setup.js +51 -0
  7. package/lib/metadata.js +42 -0
  8. package/lib/reset.js +193 -0
  9. package/lib/settings-merge.js +93 -0
  10. package/package.json +29 -0
  11. package/templates/EXTENSIONS.md +311 -0
  12. package/templates/README.md +485 -0
  13. package/templates/briefing/_briefing-api-template.md +21 -0
  14. package/templates/briefing/_briefing-architecture-template.md +16 -0
  15. package/templates/briefing/_briefing-cabinet-template.md +20 -0
  16. package/templates/briefing/_briefing-identity-template.md +18 -0
  17. package/templates/briefing/_briefing-scopes-template.md +39 -0
  18. package/templates/briefing/_briefing-template.md +148 -0
  19. package/templates/briefing/_briefing-work-tracking-template.md +18 -0
  20. package/templates/cabinet/committees-template.yaml +49 -0
  21. package/templates/cabinet/composition-patterns.md +240 -0
  22. package/templates/cabinet/eval-protocol.md +208 -0
  23. package/templates/cabinet/lifecycle.md +93 -0
  24. package/templates/cabinet/output-contract.md +148 -0
  25. package/templates/cabinet/prompt-guide.md +266 -0
  26. package/templates/hooks/cor-upstream-guard.sh +79 -0
  27. package/templates/hooks/git-guardrails.sh +67 -0
  28. package/templates/hooks/skill-telemetry.sh +66 -0
  29. package/templates/hooks/skill-tool-telemetry.sh +54 -0
  30. package/templates/hooks/stop-hook.md +56 -0
  31. package/templates/memory/patterns/_pattern-template.md +119 -0
  32. package/templates/memory/patterns/pattern-intelligence-first.md +41 -0
  33. package/templates/rules/enforcement-pipeline.md +151 -0
  34. package/templates/scripts/cor-drift-check.cjs +84 -0
  35. package/templates/scripts/finding-schema.json +94 -0
  36. package/templates/scripts/load-triage-history.js +151 -0
  37. package/templates/scripts/merge-findings.js +126 -0
  38. package/templates/scripts/pib-db-schema.sql +68 -0
  39. package/templates/scripts/pib-db.js +365 -0
  40. package/templates/scripts/triage-server.mjs +98 -0
  41. package/templates/scripts/triage-ui.html +536 -0
  42. package/templates/skills/audit/SKILL.md +273 -0
  43. package/templates/skills/audit/phases/finding-output.md +56 -0
  44. package/templates/skills/audit/phases/member-execution.md +83 -0
  45. package/templates/skills/audit/phases/member-selection.md +44 -0
  46. package/templates/skills/audit/phases/structural-checks.md +54 -0
  47. package/templates/skills/audit/phases/triage-history.md +45 -0
  48. package/templates/skills/cabinet-accessibility/SKILL.md +180 -0
  49. package/templates/skills/cabinet-anti-confirmation/SKILL.md +172 -0
  50. package/templates/skills/cabinet-architecture/SKILL.md +279 -0
  51. package/templates/skills/cabinet-boundary-man/SKILL.md +265 -0
  52. package/templates/skills/cabinet-cor-health/SKILL.md +342 -0
  53. package/templates/skills/cabinet-data-integrity/SKILL.md +157 -0
  54. package/templates/skills/cabinet-debugger/SKILL.md +221 -0
  55. package/templates/skills/cabinet-historian/SKILL.md +253 -0
  56. package/templates/skills/cabinet-organized-mind/SKILL.md +338 -0
  57. package/templates/skills/cabinet-process-therapist/SKILL.md +261 -0
  58. package/templates/skills/cabinet-qa/SKILL.md +205 -0
  59. package/templates/skills/cabinet-record-keeper/SKILL.md +168 -0
  60. package/templates/skills/cabinet-roster-check/SKILL.md +297 -0
  61. package/templates/skills/cabinet-security/SKILL.md +181 -0
  62. package/templates/skills/cabinet-small-screen/SKILL.md +154 -0
  63. package/templates/skills/cabinet-speed-freak/SKILL.md +169 -0
  64. package/templates/skills/cabinet-system-advocate/SKILL.md +194 -0
  65. package/templates/skills/cabinet-technical-debt/SKILL.md +115 -0
  66. package/templates/skills/cabinet-usability/SKILL.md +189 -0
  67. package/templates/skills/cabinet-workflow-cop/SKILL.md +238 -0
  68. package/templates/skills/cor-upgrade/SKILL.md +302 -0
  69. package/templates/skills/debrief/SKILL.md +409 -0
  70. package/templates/skills/debrief/phases/auto-maintenance.md +48 -0
  71. package/templates/skills/debrief/phases/close-work.md +88 -0
  72. package/templates/skills/debrief/phases/health-checks.md +54 -0
  73. package/templates/skills/debrief/phases/inventory.md +40 -0
  74. package/templates/skills/debrief/phases/loose-ends.md +52 -0
  75. package/templates/skills/debrief/phases/record-lessons.md +67 -0
  76. package/templates/skills/debrief/phases/report.md +59 -0
  77. package/templates/skills/debrief/phases/update-state.md +48 -0
  78. package/templates/skills/debrief/phases/upstream-feedback.md +129 -0
  79. package/templates/skills/debrief-quick/SKILL.md +12 -0
  80. package/templates/skills/execute/SKILL.md +293 -0
  81. package/templates/skills/execute/phases/cabinet.md +49 -0
  82. package/templates/skills/execute/phases/commit-and-deploy.md +66 -0
  83. package/templates/skills/execute/phases/load-plan.md +49 -0
  84. package/templates/skills/execute/phases/validators.md +50 -0
  85. package/templates/skills/execute/phases/verification-tools.md +67 -0
  86. package/templates/skills/extract/SKILL.md +168 -0
  87. package/templates/skills/investigate/SKILL.md +160 -0
  88. package/templates/skills/link/SKILL.md +52 -0
  89. package/templates/skills/menu/SKILL.md +61 -0
  90. package/templates/skills/onboard/SKILL.md +356 -0
  91. package/templates/skills/onboard/phases/detect-state.md +79 -0
  92. package/templates/skills/onboard/phases/generate-briefing.md +127 -0
  93. package/templates/skills/onboard/phases/generate-session-loop.md +87 -0
  94. package/templates/skills/onboard/phases/interview.md +233 -0
  95. package/templates/skills/onboard/phases/modularity-menu.md +162 -0
  96. package/templates/skills/onboard/phases/options.md +98 -0
  97. package/templates/skills/onboard/phases/post-onboard-audit.md +121 -0
  98. package/templates/skills/onboard/phases/summary.md +122 -0
  99. package/templates/skills/onboard/phases/work-tracking.md +231 -0
  100. package/templates/skills/orient/SKILL.md +251 -0
  101. package/templates/skills/orient/phases/auto-maintenance.md +48 -0
  102. package/templates/skills/orient/phases/briefing.md +53 -0
  103. package/templates/skills/orient/phases/cabinet.md +46 -0
  104. package/templates/skills/orient/phases/context.md +63 -0
  105. package/templates/skills/orient/phases/data-sync.md +35 -0
  106. package/templates/skills/orient/phases/health-checks.md +50 -0
  107. package/templates/skills/orient/phases/work-scan.md +69 -0
  108. package/templates/skills/orient-quick/SKILL.md +12 -0
  109. package/templates/skills/plan/SKILL.md +358 -0
  110. package/templates/skills/plan/phases/cabinet-critique.md +47 -0
  111. package/templates/skills/plan/phases/calibration-examples.md +75 -0
  112. package/templates/skills/plan/phases/completeness-check.md +44 -0
  113. package/templates/skills/plan/phases/composition-check.md +36 -0
  114. package/templates/skills/plan/phases/overlap-check.md +62 -0
  115. package/templates/skills/plan/phases/plan-template.md +69 -0
  116. package/templates/skills/plan/phases/present.md +60 -0
  117. package/templates/skills/plan/phases/research.md +43 -0
  118. package/templates/skills/plan/phases/work-tracker.md +95 -0
  119. package/templates/skills/publish/SKILL.md +74 -0
  120. package/templates/skills/pulse/SKILL.md +242 -0
  121. package/templates/skills/pulse/phases/auto-fix-scope.md +40 -0
  122. package/templates/skills/pulse/phases/checks.md +58 -0
  123. package/templates/skills/pulse/phases/output.md +54 -0
  124. package/templates/skills/seed/SKILL.md +257 -0
  125. package/templates/skills/seed/phases/build-member.md +93 -0
  126. package/templates/skills/seed/phases/evaluate-existing.md +61 -0
  127. package/templates/skills/seed/phases/maintain.md +92 -0
  128. package/templates/skills/seed/phases/scan-signals.md +86 -0
  129. package/templates/skills/triage-audit/SKILL.md +251 -0
  130. package/templates/skills/triage-audit/phases/apply-verdicts.md +90 -0
  131. package/templates/skills/triage-audit/phases/load-findings.md +38 -0
  132. package/templates/skills/triage-audit/phases/triage-ui.md +66 -0
  133. package/templates/skills/unlink/SKILL.md +35 -0
  134. package/templates/skills/validate/SKILL.md +116 -0
  135. package/templates/skills/validate/phases/validators.md +53 -0
@@ -0,0 +1,67 @@
1
+ # Record Lessons — Capture What Was Learned
2
+
3
+ Define how to capture lessons from the session so future sessions are
4
+ smarter. This is the second irreducible purpose of debrief — without it,
5
+ the system does work but doesn't learn from it.
6
+
7
+ When this file is absent or empty, the default behavior is: ask whether
8
+ the session revealed anything future sessions need to know. To explicitly
9
+ skip lesson recording, write only `skip: true`.
10
+
11
+ Lessons are perishable. A lesson captured while context is fresh is worth
12
+ ten captured from memory next week. This is why recording happens during
13
+ debrief, not "sometime later."
14
+
15
+ ## What to Include
16
+
17
+ - **What to look for** — types of lessons worth capturing
18
+ - **Where to record them** — memory files, logs, documentation
19
+ - **How to organize** — categories, patterns, cross-references
20
+ - **What NOT to record** — ephemeral details, things derivable from code
21
+
22
+ ## Example Lesson Recording
23
+
24
+ Uncomment and adapt these for your project:
25
+
26
+ <!--
27
+ ### What to Look For
28
+
29
+ Review the session and ask:
30
+ - Did we learn something future sessions need to know?
31
+ - A new pattern established
32
+ - A gotcha discovered
33
+ - A process gap identified
34
+ - A user preference revealed
35
+ - Is this the second or third time something came up? If the same kind
36
+ of problem keeps recurring, the lesson is "create a prevention mechanism"
37
+ not just "remember this."
38
+ - Did the session's work contradict any existing recorded knowledge?
39
+ If so, update or remove the stale record.
40
+
41
+ ### Where to Record
42
+
43
+ **Feedback patterns** (corrections, confirmations):
44
+ Write to memory/patterns/ if it matches an existing pattern; write to
45
+ memory/archive/ as a raw observation if it's new. If 3+ raw observations
46
+ accumulate around a theme, consolidate into a pattern.
47
+
48
+ **Project state** (decisions, milestones, architecture changes):
49
+ Update the relevant project memory file or create one.
50
+
51
+ **User context** (preferences, role changes, domain knowledge):
52
+ Update the user context memory file.
53
+
54
+ **References** (external resources, tool URLs, account details):
55
+ Create or update a reference memory file.
56
+
57
+ ### What NOT to Record
58
+ - Code patterns derivable by reading current files
59
+ - Git history (use git log)
60
+ - Debugging solutions (the fix is in the code)
61
+ - Anything already in CLAUDE.md files
62
+ - Ephemeral task details only relevant to this session
63
+
64
+ ### Report What Was Recorded
65
+ Tell the user what memories were created or updated so they know what
66
+ the system will remember next time.
67
+ -->
@@ -0,0 +1,59 @@
1
+ # Report — How to Present the Debrief Summary
2
+
3
+ Define how to present the debrief results to the user. This is the
4
+ presentation phase — it can be skipped in quick mode without losing
5
+ any operational value (all core phases still run).
6
+
7
+ When this file is absent or empty, the default behavior is: present a
8
+ brief summary of work closed, state updated, and lessons recorded. To
9
+ explicitly skip the report, write only `skip: true`.
10
+
11
+ ## What to Include
12
+
13
+ - **Format** — what sections to include in the report
14
+ - **Tone** — how to communicate results
15
+ - **Modes** — if your project uses different presentation modes (e.g.,
16
+ evening preview, verbose vs. compact)
17
+ - **What NOT to include** — execution guides, instructions for next
18
+ session (the work items ARE the handoff)
19
+
20
+ ## Example Report Formats
21
+
22
+ Uncomment and adapt these for your project:
23
+
24
+ <!--
25
+ ### Standard Report
26
+
27
+ Present in this order:
28
+ 1. **Work closed** — items marked complete (with references)
29
+ 2. **Feedback resolved** — comments or feedback addressed
30
+ 3. **State updated** — files and docs that were updated
31
+ 4. **Lessons recorded** — memories created or updated
32
+ 5. **Loose ends captured** — non-project items routed
33
+ 6. **Anything needing input** — keep this minimal
34
+
35
+ Tone: brief, factual. The user can read the diffs.
36
+
37
+ Do NOT produce "how to start next session" guides. The work items
38
+ have the full specs. If the items' notes are insufficient, update them
39
+ — don't compensate in chat output that vanishes with the session.
40
+
41
+ ### Compact Report (quick mode fallback)
42
+
43
+ Bullet list, one line per category:
44
+ - Actions completed: [list with fids]
45
+ - Feedback resolved: [count]
46
+ - Lessons: [files updated]
47
+
48
+ No narrative, no suggestions.
49
+
50
+ ### Evening Preview
51
+
52
+ If the session ends in the evening and your project tracks calendar
53
+ events or scheduled work, append a brief preview of tomorrow:
54
+ - Tomorrow's events
55
+ - Items due tomorrow
56
+ - Anything needing morning preparation
57
+
58
+ This is enough to mentally close the session.
59
+ -->
@@ -0,0 +1,48 @@
1
+ # Update State — What to Update After the Session
2
+
3
+ Define what state files and documentation to update so the system's
4
+ persistent state reflects what actually happened.
5
+
6
+ When this file is absent or empty, the default behavior is: check
7
+ whether system-status.md needs updating. To explicitly skip state
8
+ updates, write only `skip: true`. Stale state erodes
9
+ trust — an item marked "planned" that's actually built, or a status
10
+ file that says "incomplete" for something that shipped, makes the
11
+ system less reliable for the next orient.
12
+
13
+ ## What to Include
14
+
15
+ For each state artifact, provide:
16
+ - **File** — what to check and potentially update
17
+ - **What changes** — what kind of updates to look for
18
+ - **How to update** — edit the file, run a command, call an API
19
+
20
+ ## Example State Updates
21
+
22
+ Uncomment and adapt these for your project:
23
+
24
+ <!--
25
+ ### System Status File
26
+ ```
27
+ Read and update system-status.md:
28
+ - Move completed items from "Planned" or "In Progress" to "Built"
29
+ - Add new capabilities that didn't exist before
30
+ - Update any counts or metrics
31
+ - Note new known issues discovered during the session
32
+ ```
33
+
34
+ ### Project Documentation
35
+ Check if any of these need updating based on what changed:
36
+ - Root CLAUDE.md — new workflows, entity types, directories?
37
+ - Directory-level CLAUDE.md files — changed conventions?
38
+ - Schema or configuration files — new fields or types?
39
+ - README — new features or changed setup instructions?
40
+
41
+ Only update what actually changed. Don't rewrite docs for no reason.
42
+
43
+ ### Skills and Process Docs
44
+ Review what happened during the session:
45
+ - Did any skill's instructions prove wrong or incomplete? Fix it.
46
+ - Did a workflow gap surface? Update the relevant skill.
47
+ - Did you discover a better approach? Record it where it helps.
48
+ -->
@@ -0,0 +1,129 @@
1
+ # Upstream Feedback — Surface CoR Friction to the Source
2
+
3
+ **Position:** Runs after record-lessons (step 7), before capture loose
4
+ ends (step 8). Lessons are fresh; friction is top of mind.
5
+
6
+ **This is an instruction phase** — it tells Claude what to do, not a
7
+ customization point for the project. It ships with CoR and should not
8
+ be deleted or replaced with `skip: true`.
9
+
10
+ ## What This Phase Does
11
+
12
+ During debrief, Claude already has full session context: what was built,
13
+ what went wrong, what was learned. This phase asks Claude to reflect on
14
+ one narrow question: **was there friction with anything CoR provided?**
15
+
16
+ - A skill whose flow didn't match how the project actually works
17
+ - A phase file whose default behavior was wrong or confusing
18
+ - A convention that fought the project's grain
19
+ - A missing capability that required a workaround
20
+ - An unclear SKILL.md that led to wasted time
21
+
22
+ This is NOT the same as `/extract` (which looks for generalizable
23
+ artifacts to upstream). This is field feedback — "this thing you shipped
24
+ hurt when I used it."
25
+
26
+ ## Workflow
27
+
28
+ ### 1. Claude Reflects (silent)
29
+
30
+ Review the session for CoR-specific friction. Consider:
31
+
32
+ - Did any CoR skill need to be worked around or used in an unintended way?
33
+ - Did a phase file's default behavior cause confusion or extra work?
34
+ - Was a SKILL.md unclear, leading to misinterpretation?
35
+ - Did the skeleton/phase separation feel wrong for something?
36
+ - Was something missing that would have helped?
37
+ - Did orient or debrief surface irrelevant information or miss something important?
38
+
39
+ If nothing comes to mind — **stop here silently**. Most sessions have
40
+ no CoR friction. Do not prompt the user with "any CoR feedback?" every
41
+ time. The phase produces nothing and costs nothing unless there's
42
+ something real.
43
+
44
+ ### 2. Draft Feedback (if friction found)
45
+
46
+ For each friction point, draft a short feedback item:
47
+
48
+ ```
49
+ ## [Short title]
50
+
51
+ **Skill/phase:** [which CoR component]
52
+ **Friction:** [what happened — 2-3 sentences max]
53
+ **Suggestion:** [what might be better — optional, can be "not sure"]
54
+ **Session context:** [one line about what the project was doing when this came up]
55
+ ```
56
+
57
+ Keep it concrete. "The plan skill was confusing" is not useful.
58
+ "The plan skill's critique phase activated 4 cabinet members when only 1
59
+ was relevant, adding 3 minutes of noise to every plan" is useful.
60
+
61
+ ### 3. Surface for Confirmation
62
+
63
+ Include the draft in the debrief report under a distinct heading:
64
+
65
+ > **Upstream feedback for CoR:**
66
+ > I noticed friction with [component]. Here's what I'd send:
67
+ > [draft]
68
+ >
69
+ > Send this upstream? (yes / edit / skip)
70
+
71
+ The user confirms, edits, or dismisses. One quick decision per item.
72
+ Do not ask open-ended questions. Do not batch — if there are multiple
73
+ friction points (rare), present each separately.
74
+
75
+ ### 4. Deliver
76
+
77
+ If the user confirms, deliver the feedback. Detection and delivery
78
+ follow the same pattern as `/extract`:
79
+
80
+ **If linked** (the CoR package resolves to a local directory — check
81
+ if `node -e "console.log(require.resolve('create-claude-cabinet'))"`
82
+ points to a local path rather than a `node_modules` path):
83
+
84
+ - Write the feedback as a markdown file in the CoR repo's `feedback/`
85
+ directory (create it if needed)
86
+ - Filename: `[source-project]-[date]-[short-title].md`
87
+ (e.g., `flow-2026-04-04-plan-critique-noise.md`)
88
+ - Add frontmatter: `type: field-feedback`, `source: [project]`,
89
+ `date: [ISO date]`, `component: [skill/phase name]`
90
+
91
+ **If not linked**, check whether `gh` is available and authenticated
92
+ (`gh auth status` exits 0). Then present the user with their options:
93
+
94
+ - **If `gh` works**, offer two choices:
95
+ > "I can send this as a GitHub issue so the developer sees it
96
+ > directly, or save it locally. Which do you prefer?"
97
+ >
98
+ > 1. Send as GitHub issue
99
+ > 2. Save locally (I'll send it later or pass it along myself)
100
+
101
+ If they choose GitHub:
102
+ - Open a GitHub issue on `orenmagid/claude-cabinet`
103
+ - Title: `Field feedback: [short title]`
104
+ - Label: `field-feedback` (create if needed)
105
+ - Body: the feedback markdown
106
+
107
+ - **If `gh` is not available** (most common for non-developers):
108
+ > "I'll save this feedback locally for now. If you want, you can
109
+ > pass it along to the developer yourself, or set up a free GitHub
110
+ > account so future feedback goes directly to them. Here's a guide
111
+ > if you're interested:
112
+ > https://github.com/orenmagid/claude-cabinet/blob/main/GITHUB-SETUP.md
113
+ > — totally optional. Your feedback is saved either way."
114
+
115
+ **For either local save path:**
116
+
117
+ - Append the feedback to `~/.claude/cor-feedback-outbox.json` as a
118
+ JSON array entry with fields: `source` (project name), `date`,
119
+ `component`, `title`, `body`, `status: "pending"`
120
+ - Create the file if it doesn't exist (initialize with `[]`)
121
+
122
+ **Flushing the outbox:** If a user later sets up `gh` and asks to
123
+ send saved feedback, read the outbox, post each `pending` entry as
124
+ a GitHub issue, and update its status to `"sent"` with the issue URL.
125
+
126
+ ### 5. Done
127
+
128
+ Note in the debrief report what was sent and where. Move on to the
129
+ next phase.
@@ -0,0 +1,12 @@
1
+ ---
2
+ name: debrief-quick
3
+ description: |
4
+ Quick post-session debrief — core phases only, skip presentation.
5
+ Use when: "debrief-quick", "quick debrief", "/debrief-quick".
6
+ ---
7
+
8
+ # /debrief-quick
9
+
10
+ Load the `/debrief` skill and run it in **Quick Mode** — core phases
11
+ only, skip presentation phases. See the debrief SKILL.md's Quick Mode
12
+ section for details.
@@ -0,0 +1,293 @@
1
+ ---
2
+ model: opus
3
+ name: execute
4
+ description: |
5
+ Execute a plan with cabinet member checkpoints. Reads the plan, activates
6
+ relevant cabinet members, then implements step by step with checkpoint
7
+ reviews. This is a skeleton skill using the phases/ directory pattern.
8
+ Use when: "execute this plan", "implement this", "/execute".
9
+ related:
10
+ - type: skill
11
+ name: validate
12
+ - type: file
13
+ path: .claude/skills/execute/phases/load-plan.md
14
+ role: "Project-specific: where plans live and how to read them"
15
+ - type: file
16
+ path: .claude/skills/execute/phases/cabinet.md
17
+ role: "Project-specific: which cabinet members to activate for execution"
18
+ - type: file
19
+ path: .claude/skills/execute/phases/verification-tools.md
20
+ role: "Project-specific: tools for checking acceptance criteria"
21
+ - type: file
22
+ path: .claude/skills/execute/phases/validators.md
23
+ role: "Project-specific: what validation to run"
24
+ - type: file
25
+ path: .claude/skills/execute/phases/commit-and-deploy.md
26
+ role: "Project-specific: how to persist and deploy changes"
27
+ - type: file
28
+ path: cabinet/_briefing.md
29
+ role: "Project identity and configuration"
30
+ ---
31
+
32
+ # /execute — Plan Execution with Cabinet Checkpoints
33
+
34
+ ## Purpose
35
+
36
+ Execute a plan with cabinet members providing checkpoint reviews along
37
+ the way. This is the inner loop: take one plan and implement it with
38
+ guardrails. The cabinet checkpoints catch issues that code review alone
39
+ would miss: security gaps, data
40
+ integrity violations, boundary condition failures.
41
+
42
+ This is a **skeleton skill** using the `phases/` directory pattern. The
43
+ orchestration (checkpoints, escalation, verification protocol) is generic.
44
+ Your project defines the specifics in phase files under `phases/`.
45
+
46
+ ### Phase File Protocol
47
+
48
+ Phase files have three states:
49
+
50
+ | State | Meaning |
51
+ |-------|---------|
52
+ | Absent or empty | Use this skeleton's **default behavior** for the phase |
53
+ | Contains only `skip: true` | **Explicitly opted out** — skip this phase entirely |
54
+ | Contains content | **Custom behavior** — use the file's content instead |
55
+
56
+ The skeleton always does something reasonable when a phase file is absent.
57
+ Phase files customize, not enable. Use `skip: true` when you actively
58
+ don't want a phase to run — not even the default.
59
+
60
+ ## Why This Matters
61
+
62
+ Without structured execution, the common failure mode is: implement,
63
+ compile, commit, mark done. The feature looks complete but acceptance
64
+ criteria were never verified, the pre-commit sweep never happened,
65
+ and the edge case that a boundary-man cabinet member would have
66
+ flagged ships to production.
67
+
68
+ The checkpoint protocol catches issues at three scales:
69
+ 1. **Pre-implementation** — is the plan safe to start?
70
+ 2. **Per-file-group** — do these changes look right in isolation?
71
+ 3. **Pre-commit** — do all changes work together?
72
+
73
+ Each checkpoint is a chance to stop before the cost of fixing goes up.
74
+
75
+ ## Workflow
76
+
77
+ ### 1. Load the Plan
78
+
79
+ Read `phases/load-plan.md` for where your project stores plans and how
80
+ to read them (action notes, markdown files, issue tracker, etc.).
81
+
82
+ **Default (absent/empty):** Expect the plan to be provided in
83
+ conversation or referenced by the user. Ask which plan to execute if
84
+ it's not clear.
85
+
86
+ Identify from the plan:
87
+ - **Implementation steps** — what to do
88
+ - **Surface area** — which files
89
+ - **Acceptance criteria** — how to confirm it works
90
+ - **Plan type** — code plan (has file changes) or walkthrough plan
91
+ (manual setup, configuration, purchase)
92
+
93
+ #### Walkthrough Plans (non-code)
94
+
95
+ If the plan has no code changes, skip the file-group implementation
96
+ loop (Steps 4-5) and instead:
97
+ 1. Present each step conversationally
98
+ 2. Walk the user through each step, confirming completion
99
+ 3. Help troubleshoot if something doesn't work as expected
100
+ 4. Verify acceptance criteria as each step completes
101
+
102
+ ### 2. Activate Cabinet Members
103
+
104
+ Read `phases/cabinet.md` for which cabinet members to activate during
105
+ execution, any always-on cabinet members, and any project-specific rules.
106
+
107
+ **Default (absent/empty):** Read `.claude/skills/cabinet-*/SKILL.md`
108
+ and select cabinet members whose convening criteria match:
109
+ - **standing-mandate: execute** — always included
110
+ - **File patterns** — any file in the plan's surface area matches
111
+ - **Topic keywords** — any keyword in the plan description matches
112
+
113
+ Err toward inclusion. A cabinet member that activates unnecessarily costs
114
+ a few seconds; one that doesn't activate when needed costs rework.
115
+
116
+ Prepare reusable briefing for agent prompts: read `_briefing.md` once and
117
+ keep the essential facts ready to paste into each agent's prompt.
118
+
119
+ If no cabinet members exist in the project, skip all checkpoint steps
120
+ (3, 4b, 5) and execute the plan directly. Checkpoints add depth, not
121
+ structure.
122
+
123
+ ### 3. Checkpoint 1: Pre-Implementation Review (Parallel Agents)
124
+
125
+ Before writing any code, **spawn one Agent per activated cabinet member**
126
+ in a single message. Each receives:
127
+ - The cabinet member's full SKILL.md content
128
+ - Essential project briefing from `_briefing.md`
129
+ - The plan text and list of files that will change
130
+ - Instructions to evaluate whether the plan is safe to start
131
+
132
+ Each agent returns:
133
+ ```json
134
+ {
135
+ "cabinet_member": "name",
136
+ "verdict": "continue" | "pause" | "stop",
137
+ "concerns": [
138
+ { "description": "...", "evidence": "...", "severity": "blocking" | "advisory" }
139
+ ]
140
+ }
141
+ ```
142
+
143
+ **Collect all verdicts.** Apply escalation:
144
+ - Any **stop** → halt, show concern, require explicit override from user
145
+ - Any **pause** → show concern with options: proceed / address / abort
146
+ - 3+ **pause** → escalate to stop-equivalent
147
+ - All **continue** → proceed with brief summary
148
+
149
+ ### 4. Implement (File Group by File Group)
150
+
151
+ Group the plan's implementation steps by logical file groups
152
+ (e.g., "backend API changes", "frontend components", "types and schemas").
153
+
154
+ For each group:
155
+ 1. Make the changes
156
+ 2. **Checkpoint 2: File Group Review** — if cabinet members are active,
157
+ spawn agents for ONLY cabinet members matching the changed files. Each
158
+ receives the git diff for this file group + plan context. Same
159
+ escalation rules as Checkpoint 1.
160
+ 3. If all continue, move to the next group
161
+
162
+ File-group granularity keeps reviews focused. A cabinet member reviewing
163
+ 3 changed files gives better feedback than one reviewing 30.
164
+
165
+ ### 5. Checkpoint 3: Pre-Commit Sweep (Parallel Agents)
166
+
167
+ After all implementation is complete, **spawn one Agent per activated
168
+ cabinet member** in a single message. Each receives the full git diff of
169
+ all changes + plan context.
170
+
171
+ Earlier "continue" concerns are re-checked — a concern that was minor
172
+ in isolation may be significant in the aggregate.
173
+
174
+ ### 6. Validate and Commit
175
+
176
+ After Checkpoint 3 passes:
177
+
178
+ **a. Run validators.** Read `phases/validators.md` for what validation
179
+ to run.
180
+
181
+ **Default (absent/empty):** Run whatever the project's `/validate` skill
182
+ does. If no validate skill exists, at minimum check that the code
183
+ compiles and lints cleanly.
184
+
185
+ If validation fails, fix issues and re-run Checkpoint 3 for the fix.
186
+
187
+ **b. Commit and deploy.** Read `phases/commit-and-deploy.md` for how
188
+ your project persists and deploys changes.
189
+
190
+ **Default (absent/empty):** Commit with a clear message describing the
191
+ implementation. Don't push or deploy unless the phase file says to —
192
+ deployment strategy is project-specific.
193
+
194
+ ### 7. Verify Acceptance Criteria (QA Gate — MANDATORY)
195
+
196
+ Walk through **every** acceptance criterion in the plan, one by one.
197
+
198
+ Read `phases/verification-tools.md` for what tools your project has
199
+ for verifying criteria.
200
+
201
+ **Default (absent/empty):** Use whatever tools are available in the
202
+ environment. For [auto] criteria, run the command. For [manual] criteria,
203
+ attempt verification with available tools before deferring to the user.
204
+
205
+ For each criterion, determine its category and verify accordingly:
206
+
207
+ - **[auto] criteria** — RUN the check. Execute the command, curl the
208
+ endpoint, run the test. Record the actual output.
209
+
210
+ - **[manual] criteria** — Use whatever verification tools are available
211
+ (preview tools, browser automation, test runners). **Use tools before
212
+ deferring to the user.** Only defer when tools genuinely cannot verify
213
+ the criterion.
214
+
215
+ - **[deferred] criteria** — Note them as not yet verifiable. This
216
+ category is for criteria that depend on infrastructure not yet
217
+ available. It is NOT a bucket for checks you could do with tools.
218
+
219
+ **Report format:**
220
+ ```
221
+ ## AC Verification
222
+ Criteria: N total (X auto, Y verified-via-tools, Z needs-user, W deferred)
223
+ - [pass] [criterion] — verified: [actual result]
224
+ - [pass] [criterion] — verified via tools: [evidence]
225
+ - [user] [criterion] — needs-user: [why tools can't verify]
226
+ - [wait] [criterion] — deferred: [why not testable now]
227
+ - [FAIL] [criterion] — expected [X], got [Y]
228
+ ```
229
+
230
+ **If any [auto] criterion fails: STOP.** Fix the issue before proceeding.
231
+ Do not mark the work item complete with failing AC.
232
+
233
+ ### 8. Close the Loop
234
+
235
+ Mark the work item as complete (if your project has a work tracker).
236
+ Run debrief if this was a full session. At minimum, ensure the work
237
+ is committed, validated, and verified before considering it done.
238
+
239
+ ### 9. Discover Custom Phases
240
+
241
+ Check for any additional phase files in `phases/` that the skeleton
242
+ doesn't define. Execute them at their declared position.
243
+
244
+ ## Phase Summary
245
+
246
+ | Phase | Absent = | What it customizes |
247
+ |-------|----------|-------------------|
248
+ | `load-plan.md` | Default: plan from conversation | Where plans live, how to read them |
249
+ | `cabinet.md` | Default: match by convening criteria | Which cabinet members, special rules |
250
+ | `verification-tools.md` | Default: use available env tools | Project-specific verification tools |
251
+ | `validators.md` | Default: run validate skill or linter | What validation to run |
252
+ | `commit-and-deploy.md` | Default: commit, don't push/deploy | How to persist and deploy changes |
253
+
254
+ ## Principles
255
+
256
+ - **Cabinet members are guardrails, not gates.** The user always has the
257
+ final say. Stop verdicts require explicit override, not automatic
258
+ rejection.
259
+ - **Err toward inclusion** when selecting cabinet members. Better to have
260
+ a cabinet member say "looks fine" than to miss a concern.
261
+ - **File-group granularity** keeps checkpoint reviews focused. A
262
+ cabinet member reviewing 3 changed files gives better feedback than one
263
+ reviewing 30.
264
+ - **The pre-commit sweep catches emergent issues.** Individual file
265
+ groups may look fine but create problems in combination (type
266
+ mismatches across boundaries, security gaps from API + frontend
267
+ changes together).
268
+
269
+ ## Calibration
270
+
271
+ **Core failure this targets:** Marking work complete without verifying
272
+ every acceptance criterion. The most dangerous variant isn't skipping
273
+ AC entirely — it's running some, fixing what fails, and not re-verifying
274
+ that the fix didn't break something else.
275
+
276
+ ### Without Skill (Bad)
277
+
278
+ Plan says to add a new API endpoint + UI page. Claude implements the
279
+ endpoint and page, runs the type checker, sees it compiles. Commits.
280
+ Marks the work item complete. The plan had "[auto] POST /api/foo
281
+ returns 201" — never tested. The endpoint has a typo in the route
282
+ handler that returns 404. The "[manual] New page shows data table
283
+ with sorting" criterion was never checked — the page renders but the
284
+ sort handler throws. Two failing criteria, marked complete.
285
+
286
+ ### With Skill (Good)
287
+
288
+ Same plan. Claude implements file-group by file-group with checkpoint
289
+ reviews. After implementation, walks through every AC line by line.
290
+ The auto criterion fails — route typo found and fixed. Re-verifies.
291
+ Manual criteria checked with available tools. Only marks complete
292
+ when all criteria pass. The next session inherits verified work, not
293
+ an assumption.
@@ -0,0 +1,49 @@
1
+ # Cabinet Members — Which to Activate for Execution
2
+
3
+ Define which cabinet members to activate during plan execution, any
4
+ always-on cabinet members, and any project-specific checkpoint rules.
5
+ The /execute skill reads this file when selecting cabinet members for
6
+ the three checkpoint stages.
7
+
8
+ When this file is absent or empty, the default behavior is: scan all
9
+ cabinet members in `.claude/skills/cabinet-*/SKILL.md`, activate those
10
+ whose convening criteria match the plan's surface area or topic keywords.
11
+ To explicitly skip all cabinet member checkpoints (even if cabinet members
12
+ exist), write only `skip: true`.
13
+
14
+ If no cabinet members exist in the project, checkpoints are skipped regardless.
15
+
16
+ ## What to Include
17
+
18
+ - **Always-on cabinet members** — cabinet members that activate for every
19
+ execution regardless of surface area
20
+ - **Checkpoint-specific rules** — which cabinet members at which checkpoints
21
+ (pre-implementation, per-file-group, pre-commit)
22
+ - **Escalation overrides** — stricter or more lenient than default
23
+ - **Performance tuning** — skip per-file-group checkpoints for small plans,
24
+ or reduce to pre-commit only for low-risk changes
25
+
26
+ ## Example Cabinet Member Configurations
27
+
28
+ Uncomment and adapt these for your project:
29
+
30
+ <!--
31
+ ### Always-On for Execution
32
+ These cabinet members activate at every checkpoint:
33
+ - boundary-man — catches edge cases in implementation
34
+ - qa — tracks acceptance criteria throughout
35
+
36
+ ### Checkpoint-Specific Rules
37
+ - Pre-implementation (Checkpoint 1): all activated cabinet members
38
+ - Per-file-group (Checkpoint 2): only cabinet members matching changed files
39
+ - Pre-commit (Checkpoint 3): all activated cabinet members (full sweep)
40
+
41
+ ### Performance Tuning
42
+ For plans with surface area <= 3 files, skip per-file-group checkpoints
43
+ (Checkpoint 2) and go straight to pre-commit sweep. The overhead of
44
+ multiple checkpoints isn't justified for small changes.
45
+
46
+ ### Escalation Overrides
47
+ - Security **stop** → always halt, no bypass without explicit user ack
48
+ - QA **pause** for failing AC → escalate to stop (AC failures are blocking)
49
+ -->