create-claude-cabinet 0.11.1 → 0.11.2
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.
- package/README.md +5 -3
- package/lib/cli.js +79 -0
- package/package.json +1 -1
- package/templates/EXTENSIONS.md +2 -2
- package/templates/README.md +191 -450
- package/templates/briefing/_briefing-template.md +14 -7
- package/templates/cabinet/directives-project.yaml +32 -0
- package/templates/cabinet/prompt-guide.md +14 -3
- package/templates/skills/cabinet-record-keeper/SKILL.md +46 -13
- package/templates/skills/debrief/SKILL.md +57 -40
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Claude Cabinet
|
|
2
2
|
|
|
3
3
|
A cabinet of expert advisors for your Claude Code project. One command
|
|
4
|
-
gives Claude a memory,
|
|
4
|
+
gives Claude a memory, 27 domain experts, a planning process, and the
|
|
5
5
|
habit of starting sessions informed and ending them properly.
|
|
6
6
|
|
|
7
7
|
Built by a guy who'd rather talk to Claude than write code. Most of it
|
|
@@ -12,7 +12,7 @@ was built by Claude. I just complained until it worked.
|
|
|
12
12
|
Your project gets a cabinet — specialist advisors who each own a domain
|
|
13
13
|
and weigh in when their expertise matters:
|
|
14
14
|
|
|
15
|
-
- **Cabinet members** —
|
|
15
|
+
- **Cabinet members** — 27 domain experts (security, accessibility,
|
|
16
16
|
architecture, QA, etc.) who review your project and surface what
|
|
17
17
|
you'd miss alone
|
|
18
18
|
- **Briefings** — project context members read before weighing in
|
|
@@ -37,7 +37,9 @@ say `/onboard`. It'll interview you about your project and set everything
|
|
|
37
37
|
up based on your answers.
|
|
38
38
|
|
|
39
39
|
**New to this?** See [GETTING-STARTED.md](GETTING-STARTED.md) for a
|
|
40
|
-
step-by-step walkthrough.
|
|
40
|
+
step-by-step walkthrough. Then [WORKFLOW-GUIDE.md](WORKFLOW-GUIDE.md)
|
|
41
|
+
for how to use everything — when to plan, when to audit, what the
|
|
42
|
+
cabinet does for you, and how the system grows with your project.
|
|
41
43
|
|
|
42
44
|
### For developers
|
|
43
45
|
|
package/lib/cli.js
CHANGED
|
@@ -163,6 +163,70 @@ function generateSkillIndex(projectDir) {
|
|
|
163
163
|
const skillsDir = path.join(projectDir, '.claude', 'skills');
|
|
164
164
|
if (!fs.existsSync(skillsDir)) return 0;
|
|
165
165
|
|
|
166
|
+
// Read project directive overlay if it exists
|
|
167
|
+
const projectDirectives = {};
|
|
168
|
+
const directivesFile = path.join(projectDir, '.claude', 'cabinet', 'directives-project.yaml');
|
|
169
|
+
if (fs.existsSync(directivesFile)) {
|
|
170
|
+
const dContent = fs.readFileSync(directivesFile, 'utf8');
|
|
171
|
+
// Parse simple YAML: top-level keys are member names, nested keys are
|
|
172
|
+
// standing-mandate (list) and directives (map)
|
|
173
|
+
let currentMember = null;
|
|
174
|
+
let inDirectives = false;
|
|
175
|
+
let currentDirectiveKey = null;
|
|
176
|
+
let currentDirectiveValue = '';
|
|
177
|
+
for (const line of dContent.split('\n')) {
|
|
178
|
+
if (/^\s*#/.test(line) || line.trim() === '') continue;
|
|
179
|
+
const indent = line.length - line.trimStart().length;
|
|
180
|
+
const content = line.trim();
|
|
181
|
+
|
|
182
|
+
// Flush previous directive value
|
|
183
|
+
if (currentDirectiveKey && indent <= 4 && !/^\s/.test(line.charAt(0)) || (indent <= 4 && currentDirectiveKey)) {
|
|
184
|
+
if (currentMember && currentDirectiveKey) {
|
|
185
|
+
if (!projectDirectives[currentMember]) projectDirectives[currentMember] = {};
|
|
186
|
+
if (!projectDirectives[currentMember].directives) projectDirectives[currentMember].directives = {};
|
|
187
|
+
projectDirectives[currentMember].directives[currentDirectiveKey] = currentDirectiveValue.trim();
|
|
188
|
+
}
|
|
189
|
+
currentDirectiveKey = null;
|
|
190
|
+
currentDirectiveValue = '';
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (indent === 0) {
|
|
194
|
+
// Top-level: member name
|
|
195
|
+
const m = content.match(/^(cabinet-[\w-]+):\s*$/);
|
|
196
|
+
if (m) {
|
|
197
|
+
currentMember = m[1];
|
|
198
|
+
projectDirectives[currentMember] = projectDirectives[currentMember] || {};
|
|
199
|
+
inDirectives = false;
|
|
200
|
+
}
|
|
201
|
+
} else if (indent === 2 && currentMember) {
|
|
202
|
+
const kv = content.match(/^([\w-]+):\s*(.*)$/);
|
|
203
|
+
if (kv) {
|
|
204
|
+
if (kv[1] === 'standing-mandate') {
|
|
205
|
+
// Parse [item1, item2] or item1, item2
|
|
206
|
+
const val = kv[2].replace(/^\[|\]$/g, '');
|
|
207
|
+
projectDirectives[currentMember].standingMandate = val.split(/,\s*/).map(s => s.trim()).filter(Boolean);
|
|
208
|
+
inDirectives = false;
|
|
209
|
+
} else if (kv[1] === 'directives') {
|
|
210
|
+
inDirectives = true;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
} else if (indent === 4 && inDirectives && currentMember) {
|
|
214
|
+
const kv = content.match(/^([\w-]+):\s*(.*)$/);
|
|
215
|
+
if (kv) {
|
|
216
|
+
currentDirectiveKey = kv[1];
|
|
217
|
+
currentDirectiveValue = kv[2].replace(/^[>|]\s*$/, '');
|
|
218
|
+
}
|
|
219
|
+
} else if (indent >= 6 && currentDirectiveKey) {
|
|
220
|
+
currentDirectiveValue += ' ' + content;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// Flush last directive
|
|
224
|
+
if (currentMember && currentDirectiveKey) {
|
|
225
|
+
if (!projectDirectives[currentMember].directives) projectDirectives[currentMember].directives = {};
|
|
226
|
+
projectDirectives[currentMember].directives[currentDirectiveKey] = currentDirectiveValue.trim();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
166
230
|
const entries = [];
|
|
167
231
|
const dirs = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
168
232
|
for (const dir of dirs) {
|
|
@@ -202,6 +266,21 @@ function generateSkillIndex(projectDir) {
|
|
|
202
266
|
entry.directives = fm.directives;
|
|
203
267
|
}
|
|
204
268
|
|
|
269
|
+
// Merge project directive overlay (if any)
|
|
270
|
+
const overlay = projectDirectives[dir.name];
|
|
271
|
+
if (overlay) {
|
|
272
|
+
// Append project standing mandates (union, no duplicates)
|
|
273
|
+
if (overlay.standingMandate) {
|
|
274
|
+
const existing = entry.standingMandate || [];
|
|
275
|
+
const merged = [...new Set([...existing, ...overlay.standingMandate])];
|
|
276
|
+
entry.standingMandate = merged;
|
|
277
|
+
}
|
|
278
|
+
// Merge project directives (project wins on conflict)
|
|
279
|
+
if (overlay.directives) {
|
|
280
|
+
entry.directives = { ...(entry.directives || {}), ...overlay.directives };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
205
284
|
entries.push(entry);
|
|
206
285
|
}
|
|
207
286
|
|
package/package.json
CHANGED
package/templates/EXTENSIONS.md
CHANGED
|
@@ -226,8 +226,8 @@ command queue processing (needed by any project with an async work queue).
|
|
|
226
226
|
|
|
227
227
|
## Writing Domain-Specific Cabinet Members
|
|
228
228
|
|
|
229
|
-
CC ships
|
|
230
|
-
cabinet members. Here are three examples showing how to write your own.
|
|
229
|
+
CC ships 27 generic cabinet members. Your project can add domain-specific
|
|
230
|
+
cabinet members on top of these. Here are three examples showing how to write your own.
|
|
231
231
|
|
|
232
232
|
### Example 1: GTD (encoding domain expertise)
|
|
233
233
|
|
package/templates/README.md
CHANGED
|
@@ -1,486 +1,227 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Claude Cabinet — Template Reference
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
These are the upstream templates that the `create-claude-cabinet` installer
|
|
4
|
+
copies into your project. Everything here mirrors the `.claude/` directory
|
|
5
|
+
structure. The installer handles copying, hook merging, and index generation
|
|
6
|
+
— you don't need to copy files manually unless you want to.
|
|
7
7
|
|
|
8
|
-
For the
|
|
9
|
-
|
|
8
|
+
For the adoption story and user-facing docs, see the root
|
|
9
|
+
[README.md](../README.md). For how Flow and other projects extend these
|
|
10
|
+
templates, see [EXTENSIONS.md](EXTENSIONS.md).
|
|
10
11
|
|
|
11
12
|
## What's Here
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
| `
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
|
49
|
-
|
|
50
|
-
| `skills/
|
|
51
|
-
| `skills/
|
|
52
|
-
| `skills/
|
|
53
|
-
| `skills/
|
|
54
|
-
| `skills/
|
|
55
|
-
| `skills/
|
|
56
|
-
| `skills/
|
|
57
|
-
| `skills/
|
|
58
|
-
| `skills/
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
|
67
|
-
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
73
|
-
| `
|
|
74
|
-
| `
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
|
84
|
-
|
|
85
|
-
| `
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
89
|
-
| `
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
|
99
|
-
|
|
100
|
-
| `
|
|
101
|
-
| `
|
|
102
|
-
| `
|
|
103
|
-
| `
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
|
114
|
-
|
|
115
|
-
| `
|
|
116
|
-
| `
|
|
117
|
-
| `
|
|
118
|
-
| `
|
|
119
|
-
| `
|
|
120
|
-
| `
|
|
121
|
-
| `
|
|
14
|
+
### Hooks (5)
|
|
15
|
+
|
|
16
|
+
| Artifact | What It Does |
|
|
17
|
+
|----------|-------------|
|
|
18
|
+
| `hooks/git-guardrails.sh` | PreToolUse hook that blocks destructive git operations (force push to main, hard reset, git clean). Zero configuration. |
|
|
19
|
+
| `hooks/stop-hook.md` | Stop event hook that checks whether the session-closing skill ran. Prompt-type (advisory, not blocking). |
|
|
20
|
+
| `hooks/skill-telemetry.sh` | UserPromptSubmit hook that detects /skill-name invocations and logs to JSONL. Configurable via env vars. |
|
|
21
|
+
| `hooks/skill-tool-telemetry.sh` | PostToolUse hook that captures programmatic Skill tool invocations. Configurable via env vars. |
|
|
22
|
+
| `hooks/cc-upstream-guard.sh` | PreToolUse hook that blocks edits to manifest-tracked upstream files. Prevents downstream drift. |
|
|
23
|
+
|
|
24
|
+
### Rules (2)
|
|
25
|
+
|
|
26
|
+
| Artifact | What It Does |
|
|
27
|
+
|----------|-------------|
|
|
28
|
+
| `rules/enforcement-pipeline.md` | Generic enforcement pipeline: capture, classify, promote, encode, monitor. Describes the compliance stack and promotion criteria. |
|
|
29
|
+
| `rules/memory-capture.md` | When and how to capture memories to omega. What to capture, what not to, cadence guidance. |
|
|
30
|
+
|
|
31
|
+
### Skills (22 workflow + 27 cabinet members)
|
|
32
|
+
|
|
33
|
+
**Workflow Skills:**
|
|
34
|
+
|
|
35
|
+
| Skill | What It Does |
|
|
36
|
+
|-------|-------------|
|
|
37
|
+
| `skills/audit/` | Convene the full cabinet for a quality review. Select members, run structural checks, spawn parallel agents, merge and persist findings. 5 phase files. |
|
|
38
|
+
| `skills/cabinet/` | Front door to browse and consult expert cabinet members. Reads from `_index.json`. |
|
|
39
|
+
| `skills/cc-upgrade/` | Conversational upgrade when new Claude Cabinet versions arrive. Intelligence is the merge strategy. |
|
|
40
|
+
| `skills/debrief/` | Session close. Inventory work, close items, run cabinet consultations, update state, persist, record lessons. 9 phase files. |
|
|
41
|
+
| `skills/debrief-quick/` | Quick debrief variant — core phases only, skip presentation. |
|
|
42
|
+
| `skills/execute/` | Execute a plan with cabinet member checkpoints. 3-checkpoint protocol (pre-implementation, per-file-group, pre-commit). 5 phase files. |
|
|
43
|
+
| `skills/execute-plans/` | Batch execution of multiple plans with conflict detection. |
|
|
44
|
+
| `skills/extract/` | Analyze project artifacts and propose upstream extraction candidates for Claude Cabinet. |
|
|
45
|
+
| `skills/investigate/` | Structured codebase exploration: frame, observe, hypothesize, test, conclude. |
|
|
46
|
+
| `skills/link/` | Set up local development linking for Claude Cabinet source repo work. |
|
|
47
|
+
| `skills/memory/` | Browse, search, and manage semantic memory via omega. |
|
|
48
|
+
| `skills/menu/` | Dynamically discover and display all available skills. Reads from `_index.json`. |
|
|
49
|
+
| `skills/onboard/` | Conversational onboarding. Interviews you, generates briefings, wires the session loop. Re-runnable. 8 phase files. |
|
|
50
|
+
| `skills/orient/` | Session start. Load context, sync data, scan work, run health checks, spawn cabinet consultations, show skills menu. 7 phase files. |
|
|
51
|
+
| `skills/orient-quick/` | Quick orient variant — core phases only, skip presentation. |
|
|
52
|
+
| `skills/plan/` | Structured planning with cabinet critique. Research, overlap check, draft, critique, completeness, present, file. 9 phase files. |
|
|
53
|
+
| `skills/publish/` | Publish workflow (CC source repo only, not shipped to consumers). |
|
|
54
|
+
| `skills/pulse/` | Self-description accuracy check. Count freshness, dead references, staleness. 3 phase files. |
|
|
55
|
+
| `skills/seed/` | Recruit new cabinet members. Detect technology signals, propose expertise, build collaboratively. 4 phase files. |
|
|
56
|
+
| `skills/triage-audit/` | Audit finding triage via local web UI or CLI. Load, present, apply verdicts. 3 phase files. |
|
|
57
|
+
| `skills/unlink/` | Remove local development linking. Returns to published npm package. |
|
|
58
|
+
| `skills/validate/` | Run structural validation checks. Validators defined in phase files. |
|
|
59
|
+
| `skills/work-tracker/` | Open the work tracking UI interactively. Starts local server. |
|
|
60
|
+
|
|
61
|
+
**Cabinet Members (27):**
|
|
62
|
+
|
|
63
|
+
Generic expert lenses that activate at structured checkpoints. Each is a
|
|
64
|
+
domain expert encoded in markdown with frontmatter declaring standing
|
|
65
|
+
mandates and scoped directives.
|
|
66
|
+
|
|
67
|
+
| Cabinet Member | Domain |
|
|
68
|
+
|----------------|--------|
|
|
69
|
+
| `cabinet-accessibility` | WCAG compliance, keyboard nav, screen reader, focus management |
|
|
70
|
+
| `cabinet-anti-confirmation` | Reasoning quality, cognitive bias detection |
|
|
71
|
+
| `cabinet-architecture` | System fit, infrastructure leverage, CTO-level evaluation |
|
|
72
|
+
| `cabinet-boundary-man` | Implicit guards, silent exclusions, ZOMBIES analysis |
|
|
73
|
+
| `cabinet-cc-health` | Claude Cabinet adoption health, configuration drift, anti-bloat |
|
|
74
|
+
| `cabinet-data-integrity` | Cross-store consistency, referential integrity, API contracts |
|
|
75
|
+
| `cabinet-debugger` | Dependency chains, error modes, environment prerequisites |
|
|
76
|
+
| `cabinet-framework-quality` | UI framework utilization, API coverage, anti-patterns |
|
|
77
|
+
| `cabinet-goal-alignment` | Strategic purpose alignment, feature-mission fit |
|
|
78
|
+
| `cabinet-historian` | Institutional memory, decision archaeology, context preservation |
|
|
79
|
+
| `cabinet-information-design` | Spatial composition, visual hierarchy, layout decisions |
|
|
80
|
+
| `cabinet-mantine-quality` | Mantine v8 specialist (opt-in pre-built variant) |
|
|
81
|
+
| `cabinet-organized-mind` | Levitin's cognitive neuroscience applied to system design |
|
|
82
|
+
| `cabinet-process-therapist` | Skill/process effectiveness, overlap/gap analysis |
|
|
83
|
+
| `cabinet-qa` | Active testing, acceptance criteria, regression verification |
|
|
84
|
+
| `cabinet-record-keeper` | Documentation accuracy, docs-code drift, convention compliance |
|
|
85
|
+
| `cabinet-roster-check` | Skill ecosystem strategy, coverage gaps, redundancy |
|
|
86
|
+
| `cabinet-security` | Threat model, secrets management, API protection |
|
|
87
|
+
| `cabinet-small-screen` | Viewport adaptability, touch targets, responsive layout |
|
|
88
|
+
| `cabinet-speed-freak` | Database queries, render efficiency, perceived speed |
|
|
89
|
+
| `cabinet-system-advocate` | Feature adoption tracking, capability discoverability |
|
|
90
|
+
| `cabinet-technical-debt` | Fowler's debt quadrant, structural sustainability |
|
|
91
|
+
| `cabinet-ui-experimentalist` | Bleeding-edge UI patterns, experimental techniques |
|
|
92
|
+
| `cabinet-usability` | Interaction model coherence, UX design |
|
|
93
|
+
| `cabinet-user-advocate` | End-user perspective, system education |
|
|
94
|
+
| `cabinet-vision` | Strategic direction, what the project should become |
|
|
95
|
+
| `cabinet-workflow-cop` | Development lifecycle, human burden, guardrail effectiveness |
|
|
96
|
+
|
|
97
|
+
**Cabinet Infrastructure (8):**
|
|
98
|
+
|
|
99
|
+
| File | Purpose |
|
|
100
|
+
|------|---------|
|
|
101
|
+
| `cabinet/committees.yaml` | Upstream committee definitions (ux, code, health, process, strategic). Project customizations go in `committees-project.yaml`. |
|
|
102
|
+
| `cabinet/directives-project.yaml` | Template for project-level directive overlay. Extends upstream members with project-specific mandates and directives. |
|
|
103
|
+
| `cabinet/composition-patterns.md` | Five patterns for combining cabinet members: parallel, sequential, adversarial, nested, temporal. |
|
|
104
|
+
| `cabinet/eval-protocol.md` | Structured assessment framework for evaluating skill/cabinet member effectiveness. |
|
|
105
|
+
| `cabinet/lifecycle.md` | When to adopt, retire, and assess cabinet members. |
|
|
106
|
+
| `cabinet/output-contract.md` | How cabinet members produce structured findings for the audit system. |
|
|
107
|
+
| `cabinet/prompt-guide.md` | Craft knowledge for writing cabinet member prompts. 17 principles. |
|
|
108
|
+
|
|
109
|
+
### Scripts (12)
|
|
110
|
+
|
|
111
|
+
| Script | What It Does |
|
|
112
|
+
|--------|-------------|
|
|
113
|
+
| `scripts/cabinet-memory-adapter.py` | Python adapter for omega memory. Project-scoped tiered retrieval. |
|
|
114
|
+
| `scripts/cc-drift-check.cjs` | Compare installed file hashes against manifest. Detect upstream drift. |
|
|
115
|
+
| `scripts/finding-schema.json` | JSON Schema for audit finding validation. |
|
|
116
|
+
| `scripts/load-triage-history.js` | Build suppression lists from triage history. Tries pib-db first, falls back to filesystem. |
|
|
117
|
+
| `scripts/merge-findings.js` | Merge per-cabinet-member JSON outputs into unified run-summary. Optional `--db` flag for pib-db ingestion. |
|
|
118
|
+
| `scripts/pib-db.js` | Reference data layer CLI. SQLite for work tracking (actions, projects) and audit findings. |
|
|
119
|
+
| `scripts/pib-db-schema.sql` | Database schema: projects, actions, audit_runs, audit_findings. |
|
|
120
|
+
| `scripts/resolve-committees.cjs` | Merge upstream `committees.yaml` with project `committees-project.yaml`. Deterministic output. |
|
|
121
|
+
| `scripts/triage-server.mjs` | Self-contained Node.js HTTP server for triage UI. Zero external dependencies. |
|
|
122
|
+
| `scripts/triage-ui.html` | Browser-based triage interface. Dark-themed, severity badges, bulk actions. |
|
|
123
|
+
| `scripts/work-tracker-server.mjs` | Self-contained Node.js HTTP server for work tracking UI. |
|
|
124
|
+
| `scripts/work-tracker-ui.html` | Browser-based work tracking interface. Projects, actions, filtering. |
|
|
125
|
+
|
|
126
|
+
### Briefing Templates (6)
|
|
127
|
+
|
|
128
|
+
| Template | What It Generates |
|
|
129
|
+
|----------|-------------------|
|
|
130
|
+
| `briefing/_briefing-template.md` | Hub template. Describes all briefing files and the member-to-briefing mapping. |
|
|
131
|
+
| `briefing/_briefing-identity-template.md` | Project identity: what it is, core principles, user context. |
|
|
132
|
+
| `briefing/_briefing-architecture-template.md` | Tech stack, data stores, deployment. |
|
|
133
|
+
| `briefing/_briefing-jurisdictions-template.md` | Directory layout, file ownership, conventions. |
|
|
134
|
+
| `briefing/_briefing-cabinet-template.md` | Active members, portfolio rules, invocation patterns. |
|
|
135
|
+
| `briefing/_briefing-work-tracking-template.md` | Work tracking setup, query patterns. |
|
|
136
|
+
| `briefing/_briefing-api-template.md` | API endpoints, auth, entity types (only if project has an API). |
|
|
122
137
|
|
|
123
138
|
### Memory (1 pattern + 1 template)
|
|
124
139
|
|
|
125
140
|
| Artifact | What It Does |
|
|
126
141
|
|----------|-------------|
|
|
127
|
-
| `patterns/pattern-intelligence-first.md` | Universal principle: use LLM for semantic work, JSON for pipelines, research before coding |
|
|
128
|
-
| `patterns/_pattern-template.md` |
|
|
142
|
+
| `memory/patterns/pattern-intelligence-first.md` | Universal principle: use LLM for semantic work, JSON for pipelines, research before coding. |
|
|
143
|
+
| `memory/patterns/_pattern-template.md` | Pattern file format for the feedback-to-enforcement pipeline. |
|
|
129
144
|
|
|
130
145
|
## How to Adopt
|
|
131
146
|
|
|
132
|
-
###
|
|
147
|
+
### Recommended: use the installer
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npx create-claude-cabinet
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
The CLI walks you through module selection, copies templates, sets up
|
|
154
|
+
hooks, generates the skill index, and optionally installs a SQLite work
|
|
155
|
+
tracker. Then run `/onboard` in Claude Code for conversational setup.
|
|
156
|
+
|
|
157
|
+
For non-developers or fresh machines:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
curl -fsSL https://raw.githubusercontent.com/orenmagid/claude-cabinet/main/install.sh | bash
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Manual adoption (copy what you need)
|
|
164
|
+
|
|
165
|
+
If you prefer manual control, copy files from this `templates/` directory
|
|
166
|
+
into your project's `.claude/` directory. The minimum viable adoption:
|
|
133
167
|
|
|
134
168
|
1. Copy `hooks/git-guardrails.sh` to `.claude/hooks/`
|
|
135
|
-
2. Add the hook to
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}]
|
|
145
|
-
}]
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
3. Copy `skills/menu/SKILL.md` to `.claude/skills/menu/`
|
|
150
|
-
|
|
151
|
-
You now have git safety and skill discovery.
|
|
152
|
-
|
|
153
|
-
### Adding telemetry
|
|
154
|
-
|
|
155
|
-
1. Copy `hooks/skill-telemetry.sh` and `hooks/skill-tool-telemetry.sh`
|
|
156
|
-
to `.claude/hooks/`
|
|
157
|
-
2. Add to your `.claude/settings.json`:
|
|
158
|
-
```json
|
|
159
|
-
{
|
|
160
|
-
"hooks": {
|
|
161
|
-
"UserPromptSubmit": [{
|
|
162
|
-
"matcher": "",
|
|
163
|
-
"hooks": [{ "type": "command", "command": ".claude/hooks/skill-telemetry.sh" }]
|
|
164
|
-
}],
|
|
165
|
-
"PostToolUse": [{
|
|
166
|
-
"matcher": "Skill",
|
|
167
|
-
"hooks": [{ "type": "command", "command": ".claude/hooks/skill-tool-telemetry.sh" }]
|
|
168
|
-
}]
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
3. Optionally set `TELEMETRY_DIR` to control where JSONL records are written
|
|
173
|
-
(defaults to `~/.claude/telemetry/`)
|
|
174
|
-
|
|
175
|
-
### Adding cabinet members
|
|
176
|
-
|
|
177
|
-
1. Copy `skills/cabinet/` to `.claude/skills/cabinet/`
|
|
178
|
-
2. Create your own `_briefing.md` from `_briefing-template.md` — fill in
|
|
179
|
-
your project's specifics (scan scopes, data store, entity types, etc.)
|
|
180
|
-
3. Wave 2 cabinet members reference `_briefing.md` sections by name — fill in
|
|
181
|
-
the sections relevant to the cabinet members you adopt
|
|
182
|
-
4. Cabinet members are now available for your planning, execution, and audit
|
|
183
|
-
skills to invoke
|
|
184
|
-
|
|
185
|
-
### Adding the validate skeleton
|
|
186
|
-
|
|
187
|
-
1. Copy `skills/validate/` (including `phases/`) to `.claude/skills/validate/`
|
|
188
|
-
2. Edit `phases/validators.md` — uncomment and adapt the example validators
|
|
189
|
-
for your project's type checker, linter, build step, etc.
|
|
190
|
-
3. Run `/validate` to confirm your validators work
|
|
191
|
-
|
|
192
|
-
This is the first skill using the `phases/` pattern. The skeleton defines
|
|
193
|
-
the orchestration; you write your validators in the phase file.
|
|
194
|
-
|
|
195
|
-
### Guided onboarding (recommended)
|
|
196
|
-
|
|
197
|
-
Instead of manually copying files, run `/onboard` after copying the
|
|
198
|
-
onboard skill. It interviews you about your project, generates the
|
|
199
|
-
context layer, wires the session loop, and presents opt-in modules.
|
|
200
|
-
Re-run it as your project matures to refine what was generated.
|
|
201
|
-
|
|
202
|
-
### Adding the session loop (orient + debrief) — manual
|
|
203
|
-
|
|
204
|
-
1. Copy `skills/orient/` and `skills/debrief/` (including `phases/`)
|
|
205
|
-
to `.claude/skills/orient/` and `.claude/skills/debrief/`
|
|
206
|
-
2. Edit the orient phase files:
|
|
207
|
-
- `phases/context.md` — what files and state to read at session start
|
|
208
|
-
- `phases/data-sync.md` — how to sync fresh data (skip if purely local)
|
|
209
|
-
- `phases/work-scan.md` — what work items to check
|
|
210
|
-
- Leave other phase files empty until you need them
|
|
211
|
-
3. Edit the debrief phase files:
|
|
212
|
-
- `phases/close-work.md` — how to match and close work items
|
|
213
|
-
- `phases/update-state.md` — what state files to update
|
|
214
|
-
- `phases/record-lessons.md` — how to capture lessons
|
|
215
|
-
- Leave other phase files empty until you need them
|
|
216
|
-
4. Add the stop hook (`hooks/stop-hook.md`) to verify debrief ran
|
|
217
|
-
|
|
218
|
-
Start with context + work-scan + close-work + record-lessons. Add more
|
|
219
|
-
phases as your project matures and you discover what decays without them.
|
|
220
|
-
|
|
221
|
-
To add project-specific phases the skeleton doesn't define, create new
|
|
222
|
-
files in `phases/` — each declares when it runs relative to the core
|
|
223
|
-
phases. Claude discovers them at runtime.
|
|
224
|
-
|
|
225
|
-
### Adding the planning/execution workflow
|
|
226
|
-
|
|
227
|
-
1. Copy `skills/plan/` and `skills/execute/` (including `phases/`)
|
|
228
|
-
to `.claude/skills/plan/` and `.claude/skills/execute/`
|
|
229
|
-
2. Edit the plan phase files:
|
|
230
|
-
- `phases/overlap-check.md` — how to search for existing work (skip if
|
|
231
|
-
no work tracker yet)
|
|
232
|
-
- `phases/plan-template.md` — customize your plan sections (or leave
|
|
233
|
-
empty for the default template)
|
|
234
|
-
- `phases/work-tracker.md` — how to file work items
|
|
235
|
-
3. Edit the execute phase files:
|
|
236
|
-
- `phases/load-plan.md` — where your plans live (or leave empty if
|
|
237
|
-
plans are always in conversation)
|
|
238
|
-
- `phases/commit-and-deploy.md` — your commit and deploy workflow
|
|
239
|
-
- `phases/validators.md` — what validation to run
|
|
240
|
-
- `phases/verification-tools.md` — tools for checking manual AC
|
|
241
|
-
4. Fill in the **Work Tracking** section of your `_briefing.md`
|
|
242
|
-
|
|
243
|
-
Start with plan-template + work-tracker + commit-and-deploy. Other phase
|
|
244
|
-
files have sensible defaults. To actively suppress a default phase, write
|
|
245
|
-
`skip: true` in the file instead of leaving it empty.
|
|
246
|
-
|
|
247
|
-
### Adding the enforcement pipeline
|
|
248
|
-
|
|
249
|
-
1. Copy `rules/enforcement-pipeline.md` to `.claude/rules/`
|
|
250
|
-
2. Copy `memory/patterns/` to your memory directory
|
|
251
|
-
|
|
252
|
-
1. Copy `memory/patterns/` to your memory directory
|
|
253
|
-
2. Use `_pattern-template.md` as the format for capturing your own
|
|
254
|
-
project's friction patterns
|
|
255
|
-
3. Over time, patterns accumulate and some get promoted to rules or hooks
|
|
256
|
-
|
|
257
|
-
### Adding the audit loop
|
|
258
|
-
|
|
259
|
-
The audit loop has three skills (audit, pulse, triage-audit), a reference
|
|
260
|
-
data layer, and supporting scripts. The design philosophy is "Claude
|
|
261
|
-
Cabinet" — sensible defaults that work out of the box, easy to override
|
|
262
|
-
when you outgrow them.
|
|
263
|
-
|
|
264
|
-
1. **Initialize the reference data layer:**
|
|
265
|
-
```bash
|
|
266
|
-
cp process-in-a-box/scripts/pib-db*.* your-project/scripts/
|
|
267
|
-
cd your-project && node scripts/pib-db.js init
|
|
268
|
-
```
|
|
269
|
-
This creates a local SQLite database for work tracking and audit
|
|
270
|
-
findings. The session loop skills (orient work-scan, debrief close-work,
|
|
271
|
-
plan overlap-check and work-tracker) will use it automatically via
|
|
272
|
-
their default behaviors.
|
|
273
|
-
|
|
274
|
-
2. **Copy audit skills:**
|
|
275
|
-
```bash
|
|
276
|
-
cp -r process-in-a-box/skills/audit/ .claude/skills/audit/
|
|
277
|
-
cp -r process-in-a-box/skills/pulse/ .claude/skills/pulse/
|
|
278
|
-
cp -r process-in-a-box/skills/triage-audit/ .claude/skills/triage-audit/
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
3. **Copy cabinet member infrastructure:**
|
|
282
|
-
```bash
|
|
283
|
-
cp process-in-a-box/skills/cabinet/output-contract.md .claude/skills/cabinet/
|
|
284
|
-
cp process-in-a-box/skills/cabinet/committees.yaml .claude/skills/cabinet/
|
|
285
|
-
cp process-in-a-box/skills/cabinet/_lifecycle.md .claude/skills/cabinet/
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
4. **Copy audit scripts:**
|
|
289
|
-
```bash
|
|
290
|
-
cp process-in-a-box/scripts/merge-findings.js your-project/scripts/
|
|
291
|
-
cp process-in-a-box/scripts/load-triage-history.js your-project/scripts/
|
|
292
|
-
cp process-in-a-box/scripts/triage-server.mjs your-project/scripts/
|
|
293
|
-
cp process-in-a-box/scripts/triage-ui.html your-project/scripts/
|
|
294
|
-
cp process-in-a-box/scripts/finding-schema.json your-project/scripts/
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
5. **Customize committees** (optional):
|
|
298
|
-
Create a `committees-project.yaml` in `.claude/cabinet/` to add custom
|
|
299
|
-
members or committees. The upstream `committees.yaml` is installed
|
|
300
|
-
automatically. Run `node scripts/resolve-committees.cjs` to see the
|
|
301
|
-
merged result.
|
|
302
|
-
|
|
303
|
-
6. **Run your first audit:** `/audit` — it discovers cabinet members, runs
|
|
304
|
-
them, and persists findings. Then `/triage-audit` to review results.
|
|
305
|
-
|
|
306
|
-
The reference data layer is designed to be replaced. When your project
|
|
307
|
-
outgrows local SQLite (needs a team dashboard, external API, deployed
|
|
308
|
-
database), override the relevant phase files in each skill. The phase
|
|
309
|
-
file protocol means you replace one piece at a time without touching
|
|
310
|
-
the skill orchestration.
|
|
311
|
-
|
|
312
|
-
## What You and Claude Build Together
|
|
313
|
-
|
|
314
|
-
The package provides skeletons and infrastructure. You and Claude fill
|
|
315
|
-
in the project-specific parts together — Claude helps you write the
|
|
316
|
-
phase files, configure cabinet members, and set up validators. This is
|
|
317
|
-
the working relationship the methodology is built around: the human
|
|
318
|
-
provides judgment and domain knowledge, Claude implements, evaluates,
|
|
319
|
-
and proposes.
|
|
320
|
-
|
|
321
|
-
These are the project-specific pieces to build as you adopt:
|
|
322
|
-
|
|
323
|
-
- **`_briefing.md`** — Project-specific briefing that all cabinet members read.
|
|
324
|
-
Start from `_briefing-template.md`. Claude helps you fill in the sections
|
|
325
|
-
relevant to the cabinet members you adopt.
|
|
326
|
-
- **Orient phase files** — Session startup specifics (what to read, what
|
|
327
|
-
to sync, what work to scan). The skeletons have commented-out examples;
|
|
328
|
-
Claude helps you adapt them for your project.
|
|
329
|
-
- **Debrief phase files** — Session close specifics (how to close work,
|
|
330
|
-
what state to update, how to capture lessons). Same pattern — skeletons
|
|
331
|
-
guide, Claude helps implement.
|
|
332
|
-
- **Validators** — Edit `skills/validate/phases/validators.md` with your
|
|
333
|
-
project's specific checks. Claude can help identify what to validate.
|
|
334
|
-
- **Plan phase files** — Planning specifics (how to check for existing work,
|
|
335
|
-
your plan template, how to file work items). Skeletons have defaults for
|
|
336
|
-
each phase; customize when your project needs something different.
|
|
337
|
-
- **Execute phase files** — Execution specifics (where plans live, what
|
|
338
|
-
verification tools to use, how to commit and deploy). Same pattern.
|
|
339
|
-
|
|
340
|
-
- **Audit phase files** — Audit specifics (which cabinet members to run,
|
|
341
|
-
fast structural checks, how to persist findings). Defaults use pib-db
|
|
342
|
-
and the included scripts; customize when your project needs external
|
|
343
|
-
storage or different workflows.
|
|
344
|
-
- **Pulse checks** — What self-description accuracy to verify (counts,
|
|
345
|
-
references, staleness). Start empty for defaults; add project-specific
|
|
346
|
-
checks as you discover what drifts.
|
|
347
|
-
- **Triage phase files** — Where findings come from, how to present them,
|
|
348
|
-
how to apply verdicts. Defaults use the local triage UI and pib-db.
|
|
349
|
-
- **Committees** — The upstream `committees.yaml` is installed automatically.
|
|
350
|
-
Create `committees-project.yaml` to add custom members to upstream
|
|
351
|
-
committees or define new project-specific committees.
|
|
352
|
-
|
|
353
|
-
None of this requires working alone. Claude is the constant companion
|
|
354
|
-
throughout — the package provides the structure, and you build the
|
|
355
|
-
specifics together through use.
|
|
169
|
+
2. Add the hook to `.claude/settings.json`
|
|
170
|
+
3. Copy `skills/menu/` to `.claude/skills/menu/`
|
|
171
|
+
|
|
172
|
+
You now have git safety and skill discovery. Add more modules as needed:
|
|
173
|
+
|
|
174
|
+
- **Session loop:** `skills/orient/`, `skills/debrief/`, `hooks/stop-hook.md`
|
|
175
|
+
- **Planning:** `skills/plan/`, `skills/execute/`
|
|
176
|
+
- **Audit:** `skills/audit/`, `skills/pulse/`, `skills/triage-audit/`, plus `cabinet/` infrastructure and `scripts/`
|
|
177
|
+
- **Cabinet members:** Copy individual `skills/cabinet-*/` directories for the experts you want
|
|
356
178
|
|
|
357
179
|
## Configuration
|
|
358
180
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
1. **`_briefing.md`** — For cabinet members. Fill in the sections relevant to
|
|
362
|
-
the cabinet members you adopt. Cabinet members reference sections by name
|
|
363
|
-
(e.g., `_briefing.md § Data Store`).
|
|
364
|
-
|
|
365
|
-
2. **`phases/` directories** — For skills. Skeleton SKILL.md defines the
|
|
366
|
-
generic workflow. You write your implementations in phase files. Claude
|
|
367
|
-
reads whatever phase files exist at runtime. All skeleton skills use
|
|
368
|
-
this pattern: validate, orient, debrief, plan, and execute.
|
|
369
|
-
|
|
370
|
-
Phase files have **three states**:
|
|
371
|
-
- **Absent or empty** → use the skeleton's default behavior
|
|
372
|
-
- **Contains `skip: true`** → explicitly opt out, skip entirely
|
|
373
|
-
- **Contains content** → custom behavior replaces the default
|
|
374
|
-
|
|
375
|
-
This three-state protocol means a new project gets useful behavior
|
|
376
|
-
out of the box, while mature projects can customize or suppress any
|
|
377
|
-
phase. All skeleton skills use this pattern: validate, orient,
|
|
378
|
-
debrief, plan, execute, audit, pulse, triage-audit, onboard, seed,
|
|
379
|
-
and upgrade.
|
|
380
|
-
|
|
381
|
-
3. **Environment variables** — For hooks and scripts. Telemetry hooks read
|
|
382
|
-
`TELEMETRY_DIR`, `TELEMETRY_FILE`, `DEBUG_LOG`, `SKILL_DIR`. Database
|
|
383
|
-
scripts read `PIB_DB_PATH` (default: `./pib.db`), `REVIEWS_DIR`
|
|
384
|
-
(default: `./reviews`). All have sensible defaults.
|
|
385
|
-
|
|
386
|
-
## What This Package Does NOT Include
|
|
387
|
-
|
|
388
|
-
- **Flow-specific skills** — 15 skills deeply specific to Flow's
|
|
389
|
-
architecture (inbox processing, voice capture, deploy verification,
|
|
390
|
-
etc.). The generic patterns (orient, debrief, plan, execute, audit,
|
|
391
|
-
pulse, triage-audit) are included as skeletons. See
|
|
392
|
-
[EXTENSIONS.md](EXTENSIONS.md) for annotated descriptions of these
|
|
393
|
-
skills and the reusable patterns they embody.
|
|
394
|
-
- **Flow-specific cabinet members** — system-advocate, life-tracker,
|
|
395
|
-
life-optimization, and 19 other cabinet members tied to Flow's domain
|
|
396
|
-
(GTD expertise, Mantine quality, sync health, etc.). EXTENSIONS.md
|
|
397
|
-
includes examples showing how to write your own domain cabinet members.
|
|
398
|
-
- **Distribution mechanism** — No npm package, no installer. Copy files.
|
|
399
|
-
The `/onboard` skill guides adoption. The `/cc-upgrade` skill handles updates.
|
|
400
|
-
|
|
401
|
-
## Relationship to Flow
|
|
402
|
-
|
|
403
|
-
Flow is the reference implementation — the project these artifacts were
|
|
404
|
-
extracted from. Flow continues using its own copies in `.claude/`. The
|
|
405
|
-
package is a standalone extraction that proves these artifacts are
|
|
406
|
-
cleanly separable. Flow's specific implementations serve as extension
|
|
407
|
-
examples showing what a mature deployment looks like. See
|
|
408
|
-
[EXTENSIONS.md](EXTENSIONS.md) for annotated examples of how Flow
|
|
409
|
-
extends, overrides, and will adopt the package's skeletons.
|
|
410
|
-
|
|
411
|
-
## Waves
|
|
412
|
-
|
|
413
|
-
This package includes all 7 waves of the extraction:
|
|
414
|
-
|
|
415
|
-
1. **Package generic artifacts** — done (17 artifacts)
|
|
416
|
-
2. **Parameterize paths** — done (14 artifacts: telemetry hooks, validate
|
|
417
|
-
skeleton, investigate, prompt guide, 6 parameterized cabinet members,
|
|
418
|
-
`_briefing.md` contract)
|
|
419
|
-
3. **Skeleton the session loop** — done (orient + debrief skeletons with
|
|
420
|
-
7 + 8 phase files, custom phase injection for project extensions)
|
|
421
|
-
4. **Skeleton the compliance stack** — done (enforcement pipeline rules,
|
|
422
|
-
plan skeleton with 7 phases, execute skeleton with 5 phases, three-state
|
|
423
|
-
phase protocol, `_briefing.md` Work Tracking section)
|
|
424
|
-
5. **Skeleton the audit loop** — done (audit + pulse + triage-audit
|
|
425
|
-
skeletons with 5 + 3 + 3 phase files, reference data layer with SQLite
|
|
426
|
-
for work tracking and audit findings, cabinet member infrastructure with
|
|
427
|
-
output contract + committees + lifecycle, 7 scripts including triage UI,
|
|
428
|
-
interaction boundary documentation, default phase content using pib-db)
|
|
429
|
-
6. **Document extension examples** — done (EXTENSIONS.md with annotated
|
|
430
|
-
Flow phase file overrides, accidentally-generic scan documenting 8
|
|
431
|
-
reusable patterns, cabinet member writing guide with 3 examples)
|
|
432
|
-
7. **Lifecycle layer** — done (onboard skeleton for project adoption with
|
|
433
|
-
3-mode re-runnability, seed skeleton for capability seeding from tech
|
|
434
|
-
signals, upgrade skeleton for conversational box updates, cc-health
|
|
435
|
-
cabinet member for adoption monitoring, pib-db enhancements: status
|
|
436
|
-
tracking, tags, update-action command, migration logic)
|
|
181
|
+
No config files, no YAML DSL, no template engine. Configuration uses:
|
|
437
182
|
|
|
438
|
-
|
|
183
|
+
1. **Briefing files** — Project context that cabinet members read. Fill in
|
|
184
|
+
from the templates. Members reference sections by name.
|
|
185
|
+
|
|
186
|
+
2. **Phase files** — Project-specific behavior for skeleton skills. Three
|
|
187
|
+
states: absent (use default), `skip: true` (disable), or content
|
|
188
|
+
(override).
|
|
189
|
+
|
|
190
|
+
3. **Committee overlays** — `committees-project.yaml` extends upstream
|
|
191
|
+
committee definitions. `directives-project.yaml` extends upstream
|
|
192
|
+
member mandates and directives.
|
|
193
|
+
|
|
194
|
+
4. **Environment variables** — For hooks and scripts. Telemetry hooks read
|
|
195
|
+
`TELEMETRY_DIR`, `TELEMETRY_FILE`. Database scripts read `PIB_DB_PATH`
|
|
196
|
+
(default: `./pib.db`). All have sensible defaults.
|
|
197
|
+
|
|
198
|
+
## Skill Index
|
|
439
199
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
200
|
+
The installer generates `.claude/skills/_index.json` at install time,
|
|
201
|
+
caching metadata for all skills: name, description, type (workflow vs
|
|
202
|
+
cabinet), standing mandates, scoped directives, and invocability flags.
|
|
203
|
+
Consumers (`/menu`, `/cabinet`, orient, debrief, plan, execute,
|
|
204
|
+
investigate, seed) read the index instead of scanning individual files.
|
|
205
|
+
|
|
206
|
+
## Adopting Skeletons: Where Content Goes
|
|
443
207
|
|
|
444
208
|
### Skeleton SKILL.md (generic, lives in this package)
|
|
445
209
|
|
|
446
210
|
- Orchestration (the sequence of phases and how they connect)
|
|
447
211
|
- Phase protocol (the three-state table)
|
|
448
212
|
- Identity (what the skill *is*)
|
|
449
|
-
- Generic motivation (why this kind of skill exists
|
|
450
|
-
recognizes the problem)
|
|
451
|
-
- Boundary tables (generic: how this skill relates to other skeleton skills)
|
|
452
|
-
- Assessment Log section (empty placeholder for runtime accumulation)
|
|
213
|
+
- Generic motivation (why this kind of skill exists)
|
|
453
214
|
- Calibration (without/with examples using generic scenarios)
|
|
454
|
-
- Extending instructions (how to add phases, validators, checks)
|
|
455
215
|
|
|
456
216
|
### Phase files (project-specific)
|
|
457
217
|
|
|
458
218
|
- Operational instructions (what to check, fix, report)
|
|
459
219
|
- Specific commands (bash, file paths, API calls)
|
|
460
|
-
- Specific file references (which files to count, verify, scan)
|
|
461
220
|
- Domain logic (rotation tracking, drift detection, etc.)
|
|
462
|
-
- Cadence and timing (when checks run relative to other steps)
|
|
463
|
-
|
|
464
|
-
### Your project's SKILL.md (starts as skeleton copy, then extends)
|
|
465
|
-
|
|
466
|
-
- Project frontmatter (`standing-mandate`, project-specific `related`
|
|
467
|
-
entries, `last-verified`)
|
|
468
|
-
- Extended boundary tables: skeleton's generic rows PLUS rows for your
|
|
469
|
-
project-specific skills
|
|
470
|
-
- Project-specific context that helps Claude understand *your*
|
|
471
|
-
deployment (but NOT operational instructions — those go in phases)
|
|
472
|
-
|
|
473
|
-
### What stays outside phase files
|
|
474
|
-
|
|
475
|
-
- **Runtime state** (e.g., `pulse-state.json`) stays alongside the
|
|
476
|
-
skill, not in `phases/`
|
|
477
|
-
- **Contextual guidance** (boundary tables, identity) stays in SKILL.md
|
|
478
|
-
- **Accumulation sections** (assessment logs) stay in SKILL.md
|
|
479
221
|
|
|
480
222
|
### The placement test
|
|
481
223
|
|
|
482
|
-
1. Would a different project need this?
|
|
483
|
-
2. Does it reference specific files, commands, or APIs?
|
|
484
|
-
3. Does it help Claude understand the skill but isn't executable?
|
|
485
|
-
|
|
486
|
-
4. Does it accumulate over time? → SKILL.md section, not a phase
|
|
224
|
+
1. Would a different project need this? -> Skeleton SKILL.md
|
|
225
|
+
2. Does it reference specific files, commands, or APIs? -> Phase file
|
|
226
|
+
3. Does it help Claude understand the skill but isn't executable? -> Your SKILL.md
|
|
227
|
+
4. Does it accumulate over time? -> SKILL.md section, not a phase
|
|
@@ -74,19 +74,26 @@ Which cabinet members need which briefing files (identity is always loaded):
|
|
|
74
74
|
| cc-health | | x | x | | |
|
|
75
75
|
| data-integrity | x | x | | | x |
|
|
76
76
|
| debugger | x | | | | |
|
|
77
|
-
|
|
|
77
|
+
| framework-quality | | x | | | |
|
|
78
|
+
| goal-alignment | | | | | |
|
|
78
79
|
| historian | x | | | | |
|
|
79
|
-
|
|
|
80
|
-
|
|
|
80
|
+
| information-design | | x | | | |
|
|
81
|
+
| mantine-quality | | x | | | |
|
|
81
82
|
| organized-mind | x | | | | |
|
|
82
|
-
|
|
|
83
|
-
| workflow-cop | | x | | | |
|
|
83
|
+
| process-therapist | | x | x | | |
|
|
84
84
|
| qa | x | x | | | |
|
|
85
|
-
|
|
|
85
|
+
| record-keeper | | x | | | |
|
|
86
86
|
| roster-check | | | x | | |
|
|
87
|
-
|
|
|
87
|
+
| security | x | x | | | x |
|
|
88
|
+
| small-screen | | x | | | |
|
|
89
|
+
| speed-freak | x | x | | | |
|
|
90
|
+
| system-advocate | | | x | | |
|
|
88
91
|
| technical-debt | x | | | | |
|
|
92
|
+
| ui-experimentalist | | x | | | |
|
|
89
93
|
| usability | | x | | | |
|
|
94
|
+
| user-advocate | | x | | | |
|
|
95
|
+
| vision | | | | | |
|
|
96
|
+
| workflow-cop | | x | | | |
|
|
90
97
|
|
|
91
98
|
## Domain Extension Files
|
|
92
99
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Project-specific directive overlay for cabinet members.
|
|
2
|
+
#
|
|
3
|
+
# This file is project-owned — it is NOT overwritten by the installer.
|
|
4
|
+
# Use it to extend upstream members with project-specific mandates and
|
|
5
|
+
# directives for project-specific skills (e.g., /publish, /deploy).
|
|
6
|
+
#
|
|
7
|
+
# Consumed by: generateSkillIndex() in lib/cli.js (merged at install time
|
|
8
|
+
# into _index.json alongside upstream frontmatter).
|
|
9
|
+
#
|
|
10
|
+
# Merge rules:
|
|
11
|
+
# - standing-mandate: APPENDED to upstream (union, no duplicates)
|
|
12
|
+
# - directives: MERGED with upstream (project wins on key conflict)
|
|
13
|
+
# - You cannot remove upstream mandates or directives from here
|
|
14
|
+
#
|
|
15
|
+
# Format:
|
|
16
|
+
#
|
|
17
|
+
# cabinet-record-keeper:
|
|
18
|
+
# standing-mandate: [publish]
|
|
19
|
+
# directives:
|
|
20
|
+
# publish: >
|
|
21
|
+
# Check all docs for staleness and missing additions
|
|
22
|
+
# before the version is published.
|
|
23
|
+
#
|
|
24
|
+
# cabinet-security:
|
|
25
|
+
# standing-mandate: [deploy]
|
|
26
|
+
# directives:
|
|
27
|
+
# deploy: >
|
|
28
|
+
# Review deployment config for exposed secrets and
|
|
29
|
+
# overly permissive access.
|
|
30
|
+
#
|
|
31
|
+
# The member name must match the directory name (e.g., cabinet-record-keeper).
|
|
32
|
+
# Only cabinet-* members can be extended — workflow skills use phase files.
|
|
@@ -220,6 +220,17 @@ Every cabinet member skill should have these sections:
|
|
|
220
220
|
name: cabinet-{name}
|
|
221
221
|
description: Rich 2-3 sentence description for ambient discovery
|
|
222
222
|
user-invocable: false
|
|
223
|
+
standing-mandate: audit, plan
|
|
224
|
+
directives:
|
|
225
|
+
plan: >
|
|
226
|
+
One-sentence scoped task for this member during planning.
|
|
227
|
+
debrief: >
|
|
228
|
+
One-sentence scoped task for this member during debrief.
|
|
229
|
+
files:
|
|
230
|
+
- "glob/pattern/*.ext"
|
|
231
|
+
topics:
|
|
232
|
+
- keyword1
|
|
233
|
+
- keyword2
|
|
223
234
|
---
|
|
224
235
|
|
|
225
236
|
# {Name}
|
|
@@ -229,9 +240,9 @@ What this expert thinks about. The analytical framework.
|
|
|
229
240
|
What makes this cabinet member unique.
|
|
230
241
|
|
|
231
242
|
## Convening Criteria
|
|
232
|
-
Files: glob patterns that trigger this cabinet member
|
|
233
|
-
Topics: keywords that trigger this cabinet member
|
|
234
|
-
Standing-mandate: which
|
|
243
|
+
Files: glob patterns that trigger this cabinet member (also in frontmatter `files`)
|
|
244
|
+
Topics: keywords that trigger this cabinet member (also in frontmatter `topics`)
|
|
245
|
+
Standing-mandate: which contexts always activate this cabinet member (frontmatter `standing-mandate`)
|
|
235
246
|
|
|
236
247
|
## Research Method
|
|
237
248
|
Where to get information, how to investigate, what to examine.
|
|
@@ -13,8 +13,12 @@ briefing:
|
|
|
13
13
|
standing-mandate: audit, debrief
|
|
14
14
|
directives:
|
|
15
15
|
debrief: >
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
Own all documentation state updates for this session. Two jobs:
|
|
17
|
+
(1) Staleness — check if any CLAUDE.md, README, system-status,
|
|
18
|
+
briefing, or memory files now contain claims that became wrong.
|
|
19
|
+
(2) Additions — check if this session built, changed, or published
|
|
20
|
+
anything that should be recorded in those files but isn't yet
|
|
21
|
+
(new capabilities, version bumps, count changes, new conventions).
|
|
18
22
|
Fix what you find — don't create findings.
|
|
19
23
|
files:
|
|
20
24
|
- CLAUDE.md
|
|
@@ -37,17 +41,22 @@ See `_briefing.md` for shared cabinet member context.
|
|
|
37
41
|
## Identity
|
|
38
42
|
|
|
39
43
|
You verify that **every piece of documentation in this system accurately
|
|
40
|
-
describes the current reality
|
|
41
|
-
|
|
42
|
-
memory. If those are wrong, the
|
|
43
|
-
wrong assumptions, and compounds
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
describes the current reality AND effectively guides people to use it.**
|
|
45
|
+
Stale docs are a force multiplier for confusion -- every Claude session
|
|
46
|
+
starts by reading CLAUDE.md files and memory. If those are wrong, the
|
|
47
|
+
session starts with wrong context, makes wrong assumptions, and compounds
|
|
48
|
+
the drift.
|
|
49
|
+
|
|
50
|
+
Documentation in this system serves two audiences:
|
|
51
|
+
- **Claude** -- CLAUDE.md files, memory, status docs, skill SKILL.md
|
|
52
|
+
files. These bootstrap AI understanding. When they're wrong, the
|
|
53
|
+
system's self-awareness degrades.
|
|
54
|
+
- **Users** -- README, GETTING-STARTED, guides, inline help. These
|
|
55
|
+
teach people how to use the system. When they're unclear, incomplete,
|
|
56
|
+
or assume too much knowledge, people don't adopt features that exist
|
|
57
|
+
or use them wrong.
|
|
58
|
+
|
|
59
|
+
There are three kinds of documentation problems:
|
|
51
60
|
1. **The docs are wrong** -- the code has changed but the docs haven't
|
|
52
61
|
been updated. Fix: update the docs.
|
|
53
62
|
2. **The code has drifted from documented conventions** -- the docs
|
|
@@ -55,6 +64,10 @@ There are two kinds of documentation problems:
|
|
|
55
64
|
Fix: either update the code to match, or update the convention to match
|
|
56
65
|
reality. **You don't decide which -- you flag the divergence and let
|
|
57
66
|
the human decide the direction.**
|
|
67
|
+
3. **The docs are accurate but insufficient** -- everything they say is
|
|
68
|
+
true, but they don't say enough. A new user can't figure out what to
|
|
69
|
+
do next. A capability exists but nothing explains when or why to use
|
|
70
|
+
it. The user journey has gaps. Fix: write what's missing.
|
|
58
71
|
|
|
59
72
|
## Convening Criteria
|
|
60
73
|
|
|
@@ -113,6 +126,25 @@ Read all files in the project's memory directory:
|
|
|
113
126
|
- Type definitions (see `_briefing.md` § App Source) that don't match actual
|
|
114
127
|
API contracts
|
|
115
128
|
|
|
129
|
+
### User-Facing Documentation
|
|
130
|
+
|
|
131
|
+
User guides (README, GETTING-STARTED, workflow guides) serve a different
|
|
132
|
+
audience than CLAUDE.md files. Check for:
|
|
133
|
+
|
|
134
|
+
- **Journey completeness** -- can a new user go from install to
|
|
135
|
+
productive use without getting stuck? Is every phase of the user
|
|
136
|
+
journey documented: first install, first session, ongoing sessions,
|
|
137
|
+
when to use which skill, what the cabinet does for them?
|
|
138
|
+
- **Assumed knowledge** -- do the docs assume familiarity with concepts
|
|
139
|
+
they haven't explained? "Standing mandates," "phase files," "skeleton
|
|
140
|
+
skills" mean nothing to someone who just installed.
|
|
141
|
+
- **Feature discoverability** -- does every user-facing capability have
|
|
142
|
+
a path to being discovered? If a skill exists but no guide or menu
|
|
143
|
+
mentions it, it's invisible.
|
|
144
|
+
- **Confidence gaps** -- after reading the docs, does the user know
|
|
145
|
+
what to do next? Uncertainty about "am I doing this right?" is a doc
|
|
146
|
+
failure, not a user failure.
|
|
147
|
+
|
|
116
148
|
### Convention Compliance
|
|
117
149
|
|
|
118
150
|
CLAUDE.md files describe conventions. Check whether the codebase follows them.
|
|
@@ -136,6 +168,7 @@ grep -oP '`[^`]+\.(sh|js|ts|tsx|md|yaml|json)`' CLAUDE.md | \
|
|
|
136
168
|
- `CLAUDE.md` -- Root system guide (highest priority)
|
|
137
169
|
- `**/CLAUDE.md` -- All nested CLAUDE.md files
|
|
138
170
|
- `system-status.md` -- Build status claims (if present)
|
|
171
|
+
- `README.md`, `GETTING-STARTED.md`, workflow guides -- User-facing docs
|
|
139
172
|
- The project's memory directory -- All memory files
|
|
140
173
|
- Configuration files -- Entity type definitions, metadata files
|
|
141
174
|
- See `_briefing.md § API / Server` -- Code comments, inline docs
|
|
@@ -166,7 +166,36 @@ When closing an item that has documented follow-on work (sub-phases,
|
|
|
166
166
|
next steps, future enhancements), create new items for each NOW. Known
|
|
167
167
|
work that lives only in completed items' notes will be forgotten.
|
|
168
168
|
|
|
169
|
-
### 3.
|
|
169
|
+
### 3. Cabinet Consultations (core)
|
|
170
|
+
|
|
171
|
+
Spawn cabinet members whose `standing-mandate` includes `debrief`.
|
|
172
|
+
This runs early — right after inventory and work-item closing — so
|
|
173
|
+
members can do their work (update docs, check state, verify lessons)
|
|
174
|
+
before subsequent phases duplicate that effort.
|
|
175
|
+
|
|
176
|
+
**Discovery:** Read `.claude/skills/_index.json` and filter to entries
|
|
177
|
+
where `standingMandate` includes `"debrief"`. Each matching entry has
|
|
178
|
+
a `directives.debrief` field — this is the scoped task for that member.
|
|
179
|
+
If the index is missing, fall back to reading `cabinet-*/SKILL.md`
|
|
180
|
+
frontmatter for `standing-mandate` and `directives`.
|
|
181
|
+
|
|
182
|
+
**For each matching member**, spawn an agent with:
|
|
183
|
+
- The member's full SKILL.md (read from the `path` in the index)
|
|
184
|
+
- The session inventory from step 1 (what changed)
|
|
185
|
+
- The member's `directives.debrief` as the task
|
|
186
|
+
|
|
187
|
+
Spawn in parallel where possible. If a member has no directive for
|
|
188
|
+
`debrief`, skip it — a standing mandate without a directive is a data
|
|
189
|
+
error, not a reason to give the member an open-ended task.
|
|
190
|
+
|
|
191
|
+
**Cost control:** These are lightweight passes, not full audits. Each
|
|
192
|
+
agent should complete in under 2 minutes. If a member's directive
|
|
193
|
+
produces no findings or changes, it returns silently. Include their
|
|
194
|
+
results in the report only when they surfaced or changed something.
|
|
195
|
+
|
|
196
|
+
If no cabinet members match, skip silently and proceed.
|
|
197
|
+
|
|
198
|
+
### 4. Auto-Maintenance (core)
|
|
170
199
|
|
|
171
200
|
Read `phases/auto-maintenance.md` for recurring automated tasks that
|
|
172
201
|
should run at session end. Same principle as orient's auto-maintenance:
|
|
@@ -174,15 +203,27 @@ operations that decay if left to human memory.
|
|
|
174
203
|
|
|
175
204
|
**Skip (absent/empty).**
|
|
176
205
|
|
|
177
|
-
###
|
|
206
|
+
### 5. Update State (core)
|
|
178
207
|
|
|
179
208
|
Read `phases/update-state.md` for what state files and documentation
|
|
180
209
|
to update. This keeps the system's persistent state aligned with
|
|
181
210
|
reality so the next orient reads accurate information.
|
|
182
211
|
|
|
183
|
-
**
|
|
184
|
-
|
|
185
|
-
|
|
212
|
+
**Division of labor with cabinet consultations (step 3):** If a
|
|
213
|
+
record-keeper or similar doc-checking member ran in step 3, it owns
|
|
214
|
+
all documentation updates — both staleness (wrong claims) and additions
|
|
215
|
+
(missing claims). This step handles only what isn't doc work:
|
|
216
|
+
- **User-level state** — preferences, registry entries (see below)
|
|
217
|
+
- **Project-specific non-doc state** — whatever `phases/update-state.md`
|
|
218
|
+
defines beyond documentation
|
|
219
|
+
|
|
220
|
+
If a record-keeper ran, don't duplicate its work on docs. If no
|
|
221
|
+
record-keeper ran (no cabinet members, or none with a debrief mandate),
|
|
222
|
+
fall back to the default below.
|
|
223
|
+
|
|
224
|
+
**Default (absent/empty, no record-keeper):** Check whether
|
|
225
|
+
`system-status.md` (or equivalent) needs updating to reflect what was
|
|
226
|
+
built, fixed, or changed. Also check the user-level state below.
|
|
186
227
|
|
|
187
228
|
#### User-Level State
|
|
188
229
|
|
|
@@ -197,7 +238,7 @@ needs updating:
|
|
|
197
238
|
description still match reality? If the project has evolved
|
|
198
239
|
significantly, propose updating the registry entry.
|
|
199
240
|
|
|
200
|
-
###
|
|
241
|
+
### 6. Health Checks (core)
|
|
201
242
|
|
|
202
243
|
Read `phases/health-checks.md` for end-of-session health checks. These
|
|
203
244
|
verify that the session's work didn't break anything and that the system
|
|
@@ -205,7 +246,7 @@ is in a good state for next time.
|
|
|
205
246
|
|
|
206
247
|
**Skip (absent/empty).**
|
|
207
248
|
|
|
208
|
-
###
|
|
249
|
+
### 7. Persist Work
|
|
209
250
|
|
|
210
251
|
Commit and push the session's changes. Work that's done but not
|
|
211
252
|
committed is half-closed — it lives locally but isn't durable. Persist
|
|
@@ -215,7 +256,7 @@ while lessons go to memory (which may live outside the repo).
|
|
|
215
256
|
Separate this session's changes from any pre-existing uncommitted work.
|
|
216
257
|
Don't silently bundle unrelated changes.
|
|
217
258
|
|
|
218
|
-
###
|
|
259
|
+
### 8. Record Lessons (core)
|
|
219
260
|
|
|
220
261
|
Read `phases/record-lessons.md` for how to capture what was learned.
|
|
221
262
|
This is the second irreducible purpose of debrief — the first is
|
|
@@ -255,7 +296,7 @@ in the debrief report:
|
|
|
255
296
|
> different destinations (memory/feedback vs finding database). Both
|
|
256
297
|
> feed the enforcement pipeline, but through different channels.
|
|
257
298
|
|
|
258
|
-
###
|
|
299
|
+
### 9. Upstream Feedback (core)
|
|
259
300
|
|
|
260
301
|
Read `phases/upstream-feedback.md`. This is an **instruction phase**
|
|
261
302
|
shipped with CC — it tells Claude to reflect on whether the session
|
|
@@ -272,7 +313,7 @@ what was confusing, what needed a workaround.
|
|
|
272
313
|
|
|
273
314
|
**This phase should not be skipped.** It's how CC learns from use.
|
|
274
315
|
|
|
275
|
-
###
|
|
316
|
+
### 10. Skill Discovery (core)
|
|
276
317
|
|
|
277
318
|
Silently reflect: did this session involve a workflow the user is
|
|
278
319
|
likely to repeat? Not every session produces one — most don't. But
|
|
@@ -303,7 +344,7 @@ generalizable pattern, cabinet member, or convention? If so, mention
|
|
|
303
344
|
`/extract` as an option for proposing it upstream to CC. This is
|
|
304
345
|
rarer than project-specific skills.
|
|
305
346
|
|
|
306
|
-
###
|
|
347
|
+
### 11. Cabinet Check (core)
|
|
307
348
|
|
|
308
349
|
Silently reflect: is this project's expertise coverage still right
|
|
309
350
|
for what it's actually doing?
|
|
@@ -368,7 +409,7 @@ If the user says no, move on. Don't re-suggest the same gap next
|
|
|
368
409
|
session. Track declined suggestions in system-status.md or equivalent
|
|
369
410
|
so you don't nag.
|
|
370
411
|
|
|
371
|
-
###
|
|
412
|
+
### 12. Capture Loose Ends (core)
|
|
372
413
|
|
|
373
414
|
Read `phases/loose-ends.md` for non-project items and environmental
|
|
374
415
|
concerns to capture before closing. Sessions generate non-project
|
|
@@ -377,30 +418,6 @@ these aren't captured somewhere, they rely on human memory.
|
|
|
377
418
|
|
|
378
419
|
**Skip (absent/empty).**
|
|
379
420
|
|
|
380
|
-
### 12. Cabinet Consultations (core)
|
|
381
|
-
|
|
382
|
-
Spawn cabinet members whose `standing-mandate` includes `debrief`.
|
|
383
|
-
|
|
384
|
-
**Discovery:** Read `.claude/skills/_index.json` and filter to entries
|
|
385
|
-
where `standingMandate` includes `"debrief"`. Each matching entry has
|
|
386
|
-
a `directives.debrief` field — this is the scoped task for that member.
|
|
387
|
-
If the index is missing, fall back to reading `cabinet-*/SKILL.md`
|
|
388
|
-
frontmatter for `standing-mandate` and `directives`.
|
|
389
|
-
|
|
390
|
-
**For each matching member**, spawn an agent with:
|
|
391
|
-
- The member's full SKILL.md (read from the `path` in the index)
|
|
392
|
-
- The session inventory from step 1 (what changed)
|
|
393
|
-
- The member's `directives.debrief` as the task
|
|
394
|
-
|
|
395
|
-
Spawn in parallel where possible. If a member has no directive for
|
|
396
|
-
`debrief`, skip it — a standing mandate without a directive is a data
|
|
397
|
-
error, not a reason to give the member an open-ended task.
|
|
398
|
-
|
|
399
|
-
**Cost control:** These are lightweight passes, not full audits. Each
|
|
400
|
-
agent should complete in under 2 minutes. If a member's directive
|
|
401
|
-
produces no findings or changes, it returns silently. Include their
|
|
402
|
-
results in the report only when they surfaced or changed something.
|
|
403
|
-
|
|
404
421
|
### 13. Discover Custom Phases
|
|
405
422
|
|
|
406
423
|
After running the core phases above, check for any additional phase
|
|
@@ -438,10 +455,10 @@ Phases are either **core** (maintain system state) or **presentation**
|
|
|
438
455
|
(surface information for the user). For lightweight session closes,
|
|
439
456
|
skip presentation phases. Core phases always run.
|
|
440
457
|
|
|
441
|
-
- **Core phases** (always run): inventory, close-work,
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
458
|
+
- **Core phases** (always run): inventory, close-work,
|
|
459
|
+
cabinet-consultations, auto-maintenance, update-state, health-checks,
|
|
460
|
+
persist-work, record-lessons, upstream-feedback, skill-discovery,
|
|
461
|
+
cabinet-check, loose-ends
|
|
445
462
|
- **Presentation phases** (skippable): report
|
|
446
463
|
|
|
447
464
|
A project that wants a quick debrief variant skips the report and
|