continuous-improvement 3.9.2 → 3.12.3
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/.claude-plugin/marketplace.json +3 -3
- package/CHANGELOG.md +95 -0
- package/LICENSE +21 -21
- package/QUICKSTART.md +13 -8
- package/README.md +94 -162
- package/SKILL.md +1 -1
- package/bin/analyze.sh +161 -161
- package/bin/backfill.mjs +19 -19
- package/bin/check-docs-substrings.mjs +73 -0
- package/bin/check-scripts-citation-drift.mjs +210 -0
- package/bin/check-skill-count.mjs +110 -0
- package/bin/check-test-imports-only.mjs +126 -0
- package/bin/check-tool-count.mjs +129 -0
- package/bin/companion-preference-status.mjs +231 -0
- package/bin/gateguard-clear.mjs +53 -0
- package/bin/generate-plugin-manifests.mjs +8 -1
- package/bin/harvest-friction.mjs +1 -1
- package/bin/hook-stats.mjs +21 -21
- package/bin/install.mjs +185 -28
- package/bin/mcp-server.mjs +216 -3
- package/bin/refresh-third-party.mjs +315 -313
- package/commands/audit.md +34 -0
- package/commands/companion-preference.md +58 -0
- package/commands/continuous-improvement.md +115 -115
- package/commands/dashboard.md +56 -56
- package/commands/discipline.md +14 -0
- package/commands/distill.md +39 -0
- package/commands/goal-check.md +53 -0
- package/commands/grill-me.md +40 -0
- package/commands/grill-with-docs.md +38 -0
- package/commands/handoff.md +42 -0
- package/commands/harvest.md +1 -1
- package/commands/proceed-with-the-recommendation.md +20 -0
- package/commands/recall.md +49 -0
- package/commands/reconcile.md +47 -0
- package/commands/seven-laws.md +16 -16
- package/commands/superpowers.md +3 -3
- package/commands/verify-install.md +55 -0
- package/commands/workspace-surface-audit.md +77 -77
- package/hooks/companion-preference.mjs +190 -0
- package/hooks/gateguard.mjs +72 -25
- package/hooks/goal-drift-stop.mjs +183 -0
- package/hooks/observe.sh +15 -1
- package/hooks/recall-briefing.mjs +167 -0
- package/hooks/route-prompt.mjs +180 -0
- package/hooks/route-table.json +35 -0
- package/hooks/session.sh +106 -106
- package/hooks/three-section-close.mjs +134 -132
- package/instinct-packs/go.json +58 -58
- package/instinct-packs/meta.json +16 -16
- package/instinct-packs/python.json +58 -58
- package/instinct-packs/react.json +58 -58
- package/lib/gateguard-state.mjs +54 -2
- package/lib/goal-drift-gate.mjs +50 -0
- package/lib/goal-state.mjs +285 -0
- package/lib/plugin-metadata.mjs +134 -15
- package/lib/recall-briefing.mjs +57 -0
- package/lib/recall-index.mjs +175 -0
- package/lib/skill-distill.mjs +222 -0
- package/llms.txt +2 -2
- package/package.json +12 -7
- package/plugins/beginner.json +9 -4
- package/plugins/continuous-improvement/.claude-plugin/marketplace.json +2 -2
- package/plugins/continuous-improvement/.claude-plugin/plugin.json +2 -2
- package/plugins/continuous-improvement/LICENSE +21 -21
- package/plugins/continuous-improvement/agents/README.md +3 -3
- package/plugins/continuous-improvement/bin/backfill.mjs +19 -19
- package/plugins/continuous-improvement/bin/gateguard-clear.mjs +53 -0
- package/plugins/continuous-improvement/bin/mcp-server.mjs +216 -3
- package/plugins/continuous-improvement/commands/audit.md +34 -0
- package/plugins/continuous-improvement/commands/companion-preference.md +58 -0
- package/plugins/continuous-improvement/commands/continuous-improvement.md +115 -115
- package/plugins/continuous-improvement/commands/dashboard.md +56 -56
- package/plugins/continuous-improvement/commands/discipline.md +14 -0
- package/plugins/continuous-improvement/commands/distill.md +39 -0
- package/plugins/continuous-improvement/commands/goal-check.md +53 -0
- package/plugins/continuous-improvement/commands/grill-me.md +40 -0
- package/plugins/continuous-improvement/commands/grill-with-docs.md +38 -0
- package/plugins/continuous-improvement/commands/handoff.md +42 -0
- package/plugins/continuous-improvement/commands/harvest.md +1 -1
- package/plugins/continuous-improvement/commands/proceed-with-the-recommendation.md +20 -0
- package/plugins/continuous-improvement/commands/recall.md +49 -0
- package/plugins/continuous-improvement/commands/reconcile.md +47 -0
- package/plugins/continuous-improvement/commands/seven-laws.md +16 -16
- package/plugins/continuous-improvement/commands/superpowers.md +3 -3
- package/plugins/continuous-improvement/commands/verify-install.md +55 -0
- package/plugins/continuous-improvement/commands/workspace-surface-audit.md +77 -77
- package/plugins/continuous-improvement/hooks/companion-preference.mjs +190 -0
- package/plugins/continuous-improvement/hooks/gateguard.mjs +72 -25
- package/plugins/continuous-improvement/hooks/goal-drift-stop.mjs +183 -0
- package/plugins/continuous-improvement/hooks/hooks.json +23 -2
- package/plugins/continuous-improvement/hooks/observe.sh +15 -1
- package/plugins/continuous-improvement/hooks/recall-briefing.mjs +167 -0
- package/plugins/continuous-improvement/hooks/route-prompt.mjs +180 -0
- package/plugins/continuous-improvement/hooks/route-table.json +35 -0
- package/plugins/continuous-improvement/hooks/session.sh +106 -106
- package/plugins/continuous-improvement/hooks/three-section-close.mjs +134 -132
- package/plugins/continuous-improvement/instinct-packs/go.json +58 -58
- package/plugins/continuous-improvement/instinct-packs/meta.json +16 -16
- package/plugins/continuous-improvement/instinct-packs/python.json +58 -58
- package/plugins/continuous-improvement/instinct-packs/react.json +58 -58
- package/plugins/continuous-improvement/lib/gateguard-state.mjs +137 -0
- package/plugins/continuous-improvement/lib/goal-drift-gate.mjs +50 -0
- package/plugins/continuous-improvement/lib/goal-state.mjs +285 -0
- package/plugins/continuous-improvement/lib/plugin-metadata.mjs +134 -15
- package/plugins/continuous-improvement/lib/recall-briefing.mjs +57 -0
- package/plugins/continuous-improvement/lib/recall-index.mjs +175 -0
- package/plugins/continuous-improvement/lib/skill-distill.mjs +222 -0
- package/plugins/continuous-improvement/skills/README.md +8 -0
- package/plugins/continuous-improvement/skills/audit/SKILL.md +73 -0
- package/plugins/continuous-improvement/skills/continuous-improvement/SKILL.md +1 -1
- package/plugins/continuous-improvement/skills/deploy-receipt/SKILL.md +13 -17
- package/plugins/continuous-improvement/skills/gateguard/SKILL.md +36 -17
- package/plugins/continuous-improvement/skills/goal-monitor/SKILL.md +81 -0
- package/plugins/continuous-improvement/skills/grill-me/SKILL.md +66 -0
- package/plugins/continuous-improvement/skills/grill-with-docs/SKILL.md +252 -0
- package/plugins/continuous-improvement/skills/handoff/SKILL.md +59 -0
- package/plugins/continuous-improvement/skills/para-memory-files/SKILL.md +1 -1
- package/plugins/continuous-improvement/skills/proceed-with-the-recommendation/SKILL.md +82 -6
- package/plugins/continuous-improvement/skills/ralph/SKILL.md +1 -0
- package/plugins/continuous-improvement/skills/recall/SKILL.md +50 -0
- package/plugins/continuous-improvement/skills/reconcile/SKILL.md +80 -0
- package/plugins/continuous-improvement/skills/recovery-classification/SKILL.md +1 -0
- package/plugins/continuous-improvement/skills/safety-guard/SKILL.md +1 -0
- package/plugins/continuous-improvement/skills/skill-distillation/SKILL.md +57 -0
- package/plugins/continuous-improvement/skills/state-reconciliation/SKILL.md +1 -0
- package/plugins/continuous-improvement/skills/strategic-compact/SKILL.md +1 -0
- package/plugins/continuous-improvement/skills/superpowers/SKILL.md +77 -3
- package/plugins/continuous-improvement/skills/tdd-workflow/SKILL.md +411 -411
- package/plugins/continuous-improvement/skills/token-budget-advisor/SKILL.md +1 -1
- package/plugins/continuous-improvement/skills/verification-loop/SKILL.md +28 -20
- package/plugins/continuous-improvement/skills/wild-risa-balance/SKILL.md +1 -0
- package/plugins/continuous-improvement/skills/workspace-surface-audit/SKILL.md +1 -1
- package/plugins/continuous-improvement/skills/worktree-safety/SKILL.md +3 -2
- package/plugins/expert.json +28 -3
- package/skills/README.md +3 -0
- package/skills/audit.md +73 -0
- package/skills/deploy-receipt.md +13 -17
- package/skills/gateguard.md +36 -17
- package/skills/goal-monitor.md +81 -0
- package/skills/grill-me.md +66 -0
- package/skills/grill-with-docs.md +252 -0
- package/skills/handoff.md +59 -0
- package/skills/para-memory-files.md +1 -1
- package/skills/proceed-with-the-recommendation.md +82 -6
- package/skills/ralph.md +1 -0
- package/skills/recall.md +50 -0
- package/skills/reconcile.md +80 -0
- package/skills/recovery-classification.md +1 -0
- package/skills/safety-guard.md +1 -0
- package/skills/skill-distillation.md +57 -0
- package/skills/state-reconciliation.md +1 -0
- package/skills/strategic-compact.md +1 -0
- package/skills/superpowers.md +77 -3
- package/skills/tdd-workflow.md +411 -411
- package/skills/token-budget-advisor.md +1 -1
- package/skills/verification-loop.md +28 -20
- package/skills/wild-risa-balance.md +1 -0
- package/skills/workspace-surface-audit.md +1 -1
- package/skills/worktree-safety.md +3 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: audit
|
|
3
|
+
description: Audit a window of recent commits for real defects, confirm each finding before fixing, verify every surface a fix touches, then report confirmed/dismissed/no-op with evidence. Enforces Law 4 (Verify Before Reporting).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /audit — Confirm Recent Commits Before You Trust Them
|
|
7
|
+
|
|
8
|
+
Run the audit-driven loop over recent work: a merged commit with green CI is a claim, not a proof.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
Takes a commit window, hunts for real defects one concern at a time, proves each finding against the actual code (false positives die before any edit), fixes on a branch with the smallest diff, verifies every surface the fix touches, and reports honestly. Backed by the `audit` skill.
|
|
13
|
+
|
|
14
|
+
## The loop
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
1. Scope git log to pick the window (e.g. HEAD~10..HEAD, or main since last release)
|
|
18
|
+
2. Find one pass per dimension: value/economy drift, concurrency, surface coverage, type/contract
|
|
19
|
+
3. Confirm read the actual lines; state in one sentence why it is real, or dismiss it
|
|
20
|
+
4. Fix one concern per commit; prefer a failing test first, then green
|
|
21
|
+
5. Verify exercise EVERY surface (backend, frontend, admin, cache, migration), not just the edited one
|
|
22
|
+
6. Report confirmed (with the proof), dismissed (with why), no-op (in scope, nothing to change)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Default skeptical
|
|
26
|
+
|
|
27
|
+
Findings are hypotheses. Default each to a false positive until the code proves the bug — defaulting to "real" is how plausible-but-wrong fixes ship. For a thorough audit, fan the find pass out across dimensions with parallel reviewers, then verify each survivor adversarially.
|
|
28
|
+
|
|
29
|
+
## Pairs with
|
|
30
|
+
|
|
31
|
+
- **`audit`** skill — the discipline this command runs.
|
|
32
|
+
- **`code-review`** / **`security-review`** — the per-dimension passes.
|
|
33
|
+
- **`reconcile`** — the safe branch→PR path once the audit produces a fix.
|
|
34
|
+
- **`recall`** — check whether a finding was already hit and fixed before.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: companion-preference
|
|
3
|
+
description: Inspect companion-preference hook telemetry — counts by CI skill, action breakdown, and companion-installed%.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /companion-preference
|
|
7
|
+
|
|
8
|
+
Read and aggregate the JSONL telemetry written by `hooks/companion-preference.mjs`. Reports per-skill totals, action breakdown (`observation`, `advisory`, `block`, `block-not-installed`), and the share of events where the companion plugin was installed at the time.
|
|
9
|
+
|
|
10
|
+
The dataset is the evidence base for a future `companions-first` default-flip decision — once a 7-day shadow shows the `companions-first` path firing on a meaningful share of routed Skill calls, with companions installed in the majority of them, the flip is grounded.
|
|
11
|
+
|
|
12
|
+
## Trigger phrases
|
|
13
|
+
|
|
14
|
+
- `/companion-preference`
|
|
15
|
+
- `/companion-preference status`
|
|
16
|
+
- "show companion preference stats"
|
|
17
|
+
- "what does the companion-preference hook see"
|
|
18
|
+
|
|
19
|
+
## What happens
|
|
20
|
+
|
|
21
|
+
1. Run `node bin/companion-preference-status.mjs` from the repo root with the operator's chosen window. Default `--days 7`. Pass `--all` for the entire file or `--days N` for a different window.
|
|
22
|
+
2. Render the table the CLI emits to the user verbatim. Do not paraphrase the numbers — the JSONL is authoritative.
|
|
23
|
+
3. If the CLI prints "no telemetry recorded yet," check three things in order: (a) `~/.claude/settings.json` has `continuous_improvement.companion_preference` set (otherwise the hook is a no-op and writes nothing); (b) the user has invoked at least one mapped CI skill (`tdd-workflow`, `verification-loop`, `context-budget`, `ralph`, `learn-eval`) since the hook landed; (c) the hook's PreToolUse registration is intact in `plugins/continuous-improvement/hooks/hooks.json`.
|
|
24
|
+
4. Offer one decision-ready next step based on the totals — e.g., "ratio of `observation` rows with `companion_installed=true` suggests `companions-first` is safe to flip for X but not Y."
|
|
25
|
+
|
|
26
|
+
## Subcommands
|
|
27
|
+
|
|
28
|
+
### `/companion-preference status` (default)
|
|
29
|
+
|
|
30
|
+
Same as `/companion-preference`.
|
|
31
|
+
|
|
32
|
+
### `/companion-preference status --json`
|
|
33
|
+
|
|
34
|
+
Emit the machine-readable JSON report. Useful when you want to pipe the output into another tool or write your own aggregator.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
node bin/companion-preference-status.mjs --json --all
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## CLI flags
|
|
41
|
+
|
|
42
|
+
| Flag | Effect |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `--days N` | Only count events from the last N days (default 7). |
|
|
45
|
+
| `--all` | Ignore the window; count every row in the file. |
|
|
46
|
+
| `--json` | Emit a machine-readable JSON report. |
|
|
47
|
+
| `--path <file>` | Override the default JSONL path. Used by the test suite; rarely needed in practice. |
|
|
48
|
+
| `-h`, `--help` | Print CLI help and exit. |
|
|
49
|
+
|
|
50
|
+
## Path resolution
|
|
51
|
+
|
|
52
|
+
By default the CLI reads `~/.claude/instincts/<project-hash>/companion-preference.jsonl`, where the hash is the same `sha256(projectRoot).slice(0, 12)` that the hook itself uses. The project root resolves via `CLAUDE_PROJECT_DIR` env var if set, else `git rev-parse --show-toplevel`, else the literal `"global"`. Hash and path scheme are reused verbatim from `hooks/companion-preference.mjs` to keep the read side aligned with the write side.
|
|
53
|
+
|
|
54
|
+
## Companion skills
|
|
55
|
+
|
|
56
|
+
- `hooks/companion-preference.mjs` — the writer that produces the JSONL this command reads.
|
|
57
|
+
- `skills/superpowers.md` § "Companion-Preference Override" — the broader contract for the setting this command's dataset measures.
|
|
58
|
+
- `commands/dashboard.md` — the broader continuous-improvement status surface; this command is the dispatcher-bias-specific narrower view.
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: continuous-improvement
|
|
3
|
-
description: "Reflect on the current session, analyze observations for patterns, and show instinct status. Runs on-demand to save tokens."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /continuous-improvement
|
|
7
|
-
|
|
8
|
-
Run this when you want to reflect and learn — not every session. Three steps in order.
|
|
9
|
-
|
|
10
|
-
## Step 1: Reflect
|
|
11
|
-
|
|
12
|
-
Generate a reflection for this session based on what happened:
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
## Reflection — [Date]
|
|
16
|
-
- What worked:
|
|
17
|
-
- What failed:
|
|
18
|
-
- What I'd do differently:
|
|
19
|
-
- Rule to add:
|
|
20
|
-
- Iteration — Next best recommendations (ranked, top 3):
|
|
21
|
-
1. <primary — strongest next move>
|
|
22
|
-
2. <alternative — different angle>
|
|
23
|
-
3. <alternative — smaller/larger scope>
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
If there's a "Rule to add", create an instinct YAML file with 0.6 starting confidence in the project's instinct directory.
|
|
27
|
-
|
|
28
|
-
The "Iteration — Next best recommendations" field is the Law 6 handoff. List the **top 3 ranked** core-development moves — what to build, fix, refactor, or investigate next so the feature/system advances. Item #1 is the strongest; #2 and #3 are alternatives the user can pivot to. NOT git steps (commit, push, PR), NOT verification re-runs, NOT deploy actions — those belong in the end-of-run summary.
|
|
29
|
-
|
|
30
|
-
Format per item: `<verb> <object at path:line> (<why, one clause grounded in current context>)`.
|
|
31
|
-
|
|
32
|
-
Rules: always exactly 3 distinct directions, not padding. If fewer real moves exist, fill remaining slots with `None — goal met from this angle.` If the goal is fully met across all angles, write `1. None — goal met, stop.` and omit #2 and #3.
|
|
33
|
-
|
|
34
|
-
## Step 2: Analyze Observations
|
|
35
|
-
|
|
36
|
-
Check `~/.claude/instincts/` for the current project (detect via git root → SHA-256 first 12 chars).
|
|
37
|
-
|
|
38
|
-
Look at `~/.claude/instincts/<hash>/observations.jsonl`. If 20+ lines exist:
|
|
39
|
-
|
|
40
|
-
1. Read the last 500 lines
|
|
41
|
-
2. Read existing instinct `*.yaml` files (project + global)
|
|
42
|
-
3. Detect patterns:
|
|
43
|
-
- User corrections → "don't do X" instincts
|
|
44
|
-
- Error→fix sequences → "when X fails, try Y"
|
|
45
|
-
- Repeated workflows (3+ times) → "for X, do A→B→C"
|
|
46
|
-
- Tool preferences → "use tool Y for task X"
|
|
47
|
-
4. Create/update instinct YAML files
|
|
48
|
-
5. Be conservative: only create instincts for 3+ observations of the same pattern
|
|
49
|
-
|
|
50
|
-
If fewer than 20 observations, skip analysis and note the count.
|
|
51
|
-
|
|
52
|
-
### Multi-Agent Analysis (500+ observations)
|
|
53
|
-
|
|
54
|
-
When observation backlog is large, parallelize:
|
|
55
|
-
- **Agent 1:** User corrections + error→fix patterns
|
|
56
|
-
- **Agent 2:** Repeated workflows + tool preferences
|
|
57
|
-
- **Agent 3:** Cross-reference existing instincts for updates
|
|
58
|
-
|
|
59
|
-
Merge results and deduplicate before writing YAML files.
|
|
60
|
-
|
|
61
|
-
## Step 3: Show Status
|
|
62
|
-
|
|
63
|
-
Display all instincts for the current project + global:
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
=== continuous-improvement ===
|
|
67
|
-
|
|
68
|
-
## Level: [CAPTURE | ANALYZE | SUGGEST | AUTO-APPLY]
|
|
69
|
-
|
|
70
|
-
## Session Reflection
|
|
71
|
-
- What worked: [from this session]
|
|
72
|
-
- What failed: [from this session]
|
|
73
|
-
- What I'd do differently: [from this session]
|
|
74
|
-
- Rule to add: [captured as instinct]
|
|
75
|
-
- Iteration — Next best recommendations (ranked, top 3):
|
|
76
|
-
1. [primary core-development move]
|
|
77
|
-
2. [alternative angle]
|
|
78
|
-
3. [alternative scope]
|
|
79
|
-
|
|
80
|
-
## Learning
|
|
81
|
-
NEW [instinct-id] [domain] [confidence] (from reflection)
|
|
82
|
-
↑ [instinct-id] [domain] [old]→[new] (+N observations)
|
|
83
|
-
|
|
84
|
-
## Instincts — [project-name] ([hash])
|
|
85
|
-
● [0.85] instinct-id domain auto-apply
|
|
86
|
-
◐ [0.60] instinct-id domain suggest
|
|
87
|
-
○ [0.35] instinct-id domain silent
|
|
88
|
-
|
|
89
|
-
## Instincts — global
|
|
90
|
-
● [0.90] instinct-id domain auto-apply
|
|
91
|
-
|
|
92
|
-
## Next
|
|
93
|
-
- Keep working — hooks capture automatically
|
|
94
|
-
- System auto-levels as instincts gain confidence
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
If no instincts or observations exist yet, explain this is expected — the system is in CAPTURE level and will create instincts after 20+ observations accumulate.
|
|
98
|
-
|
|
99
|
-
## Subcommands
|
|
100
|
-
|
|
101
|
-
### `/continuous-improvement weekly`
|
|
102
|
-
|
|
103
|
-
Set up a weekly analysis schedule:
|
|
104
|
-
1. Create a cron/loop schedule that runs `/continuous-improvement analyze` every 7 days
|
|
105
|
-
2. Confirm the schedule to the user
|
|
106
|
-
3. Show next scheduled run date
|
|
107
|
-
|
|
108
|
-
### `/continuous-improvement always-on`
|
|
109
|
-
|
|
110
|
-
Toggle always-on mode for the current project:
|
|
111
|
-
1. Find project hash
|
|
112
|
-
2. Create/update `~/.claude/instincts/<hash>/config.yaml` with `always_on: true|false`
|
|
113
|
-
3. Confirm the change
|
|
114
|
-
|
|
115
|
-
**Default is off** — observations accumulate silently, analysis only runs when you ask.
|
|
1
|
+
---
|
|
2
|
+
name: continuous-improvement
|
|
3
|
+
description: "Reflect on the current session, analyze observations for patterns, and show instinct status. Runs on-demand to save tokens."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /continuous-improvement
|
|
7
|
+
|
|
8
|
+
Run this when you want to reflect and learn — not every session. Three steps in order.
|
|
9
|
+
|
|
10
|
+
## Step 1: Reflect
|
|
11
|
+
|
|
12
|
+
Generate a reflection for this session based on what happened:
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
## Reflection — [Date]
|
|
16
|
+
- What worked:
|
|
17
|
+
- What failed:
|
|
18
|
+
- What I'd do differently:
|
|
19
|
+
- Rule to add:
|
|
20
|
+
- Iteration — Next best recommendations (ranked, top 3):
|
|
21
|
+
1. <primary — strongest next move>
|
|
22
|
+
2. <alternative — different angle>
|
|
23
|
+
3. <alternative — smaller/larger scope>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
If there's a "Rule to add", create an instinct YAML file with 0.6 starting confidence in the project's instinct directory.
|
|
27
|
+
|
|
28
|
+
The "Iteration — Next best recommendations" field is the Law 6 handoff. List the **top 3 ranked** core-development moves — what to build, fix, refactor, or investigate next so the feature/system advances. Item #1 is the strongest; #2 and #3 are alternatives the user can pivot to. NOT git steps (commit, push, PR), NOT verification re-runs, NOT deploy actions — those belong in the end-of-run summary.
|
|
29
|
+
|
|
30
|
+
Format per item: `<verb> <object at path:line> (<why, one clause grounded in current context>)`.
|
|
31
|
+
|
|
32
|
+
Rules: always exactly 3 distinct directions, not padding. If fewer real moves exist, fill remaining slots with `None — goal met from this angle.` If the goal is fully met across all angles, write `1. None — goal met, stop.` and omit #2 and #3.
|
|
33
|
+
|
|
34
|
+
## Step 2: Analyze Observations
|
|
35
|
+
|
|
36
|
+
Check `~/.claude/instincts/` for the current project (detect via git root → SHA-256 first 12 chars).
|
|
37
|
+
|
|
38
|
+
Look at `~/.claude/instincts/<hash>/observations.jsonl`. If 20+ lines exist:
|
|
39
|
+
|
|
40
|
+
1. Read the last 500 lines
|
|
41
|
+
2. Read existing instinct `*.yaml` files (project + global)
|
|
42
|
+
3. Detect patterns:
|
|
43
|
+
- User corrections → "don't do X" instincts
|
|
44
|
+
- Error→fix sequences → "when X fails, try Y"
|
|
45
|
+
- Repeated workflows (3+ times) → "for X, do A→B→C"
|
|
46
|
+
- Tool preferences → "use tool Y for task X"
|
|
47
|
+
4. Create/update instinct YAML files
|
|
48
|
+
5. Be conservative: only create instincts for 3+ observations of the same pattern
|
|
49
|
+
|
|
50
|
+
If fewer than 20 observations, skip analysis and note the count.
|
|
51
|
+
|
|
52
|
+
### Multi-Agent Analysis (500+ observations)
|
|
53
|
+
|
|
54
|
+
When observation backlog is large, parallelize:
|
|
55
|
+
- **Agent 1:** User corrections + error→fix patterns
|
|
56
|
+
- **Agent 2:** Repeated workflows + tool preferences
|
|
57
|
+
- **Agent 3:** Cross-reference existing instincts for updates
|
|
58
|
+
|
|
59
|
+
Merge results and deduplicate before writing YAML files.
|
|
60
|
+
|
|
61
|
+
## Step 3: Show Status
|
|
62
|
+
|
|
63
|
+
Display all instincts for the current project + global:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
=== continuous-improvement ===
|
|
67
|
+
|
|
68
|
+
## Level: [CAPTURE | ANALYZE | SUGGEST | AUTO-APPLY]
|
|
69
|
+
|
|
70
|
+
## Session Reflection
|
|
71
|
+
- What worked: [from this session]
|
|
72
|
+
- What failed: [from this session]
|
|
73
|
+
- What I'd do differently: [from this session]
|
|
74
|
+
- Rule to add: [captured as instinct]
|
|
75
|
+
- Iteration — Next best recommendations (ranked, top 3):
|
|
76
|
+
1. [primary core-development move]
|
|
77
|
+
2. [alternative angle]
|
|
78
|
+
3. [alternative scope]
|
|
79
|
+
|
|
80
|
+
## Learning
|
|
81
|
+
NEW [instinct-id] [domain] [confidence] (from reflection)
|
|
82
|
+
↑ [instinct-id] [domain] [old]→[new] (+N observations)
|
|
83
|
+
|
|
84
|
+
## Instincts — [project-name] ([hash])
|
|
85
|
+
● [0.85] instinct-id domain auto-apply
|
|
86
|
+
◐ [0.60] instinct-id domain suggest
|
|
87
|
+
○ [0.35] instinct-id domain silent
|
|
88
|
+
|
|
89
|
+
## Instincts — global
|
|
90
|
+
● [0.90] instinct-id domain auto-apply
|
|
91
|
+
|
|
92
|
+
## Next
|
|
93
|
+
- Keep working — hooks capture automatically
|
|
94
|
+
- System auto-levels as instincts gain confidence
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
If no instincts or observations exist yet, explain this is expected — the system is in CAPTURE level and will create instincts after 20+ observations accumulate.
|
|
98
|
+
|
|
99
|
+
## Subcommands
|
|
100
|
+
|
|
101
|
+
### `/continuous-improvement weekly`
|
|
102
|
+
|
|
103
|
+
Set up a weekly analysis schedule:
|
|
104
|
+
1. Create a cron/loop schedule that runs `/continuous-improvement analyze` every 7 days
|
|
105
|
+
2. Confirm the schedule to the user
|
|
106
|
+
3. Show next scheduled run date
|
|
107
|
+
|
|
108
|
+
### `/continuous-improvement always-on`
|
|
109
|
+
|
|
110
|
+
Toggle always-on mode for the current project:
|
|
111
|
+
1. Find project hash
|
|
112
|
+
2. Create/update `~/.claude/instincts/<hash>/config.yaml` with `always_on: true|false`
|
|
113
|
+
3. Confirm the change
|
|
114
|
+
|
|
115
|
+
**Default is off** — observations accumulate silently, analysis only runs when you ask.
|
package/commands/dashboard.md
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dashboard
|
|
3
|
-
description: Visual dashboard showing instinct health, observation stats, and learning progress
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Instinct Dashboard
|
|
7
|
-
|
|
8
|
-
Generate a visual dashboard for this project's continuous-improvement status.
|
|
9
|
-
|
|
10
|
-
## Instructions
|
|
11
|
-
|
|
12
|
-
1. **Find project hash:** Run `git rev-parse --show-toplevel 2>/dev/null`, then SHA-256 first 12 chars
|
|
13
|
-
2. **Read observations:** Count lines in `~/.claude/instincts/<hash>/observations.jsonl`
|
|
14
|
-
3. **Read instincts:** Load all `*.yaml` files from project dir + `global/`
|
|
15
|
-
4. **Read instinct packs:** Check if any packs from `instinct-packs/` have been loaded
|
|
16
|
-
|
|
17
|
-
## Display Format
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
╔══════════════════════════════════════════════════════════════╗
|
|
21
|
-
║ continuous-improvement Dashboard ║
|
|
22
|
-
╠══════════════════════════════════════════════════════════════╣
|
|
23
|
-
║ ║
|
|
24
|
-
║ Project: <name> Level: <CAPTURE|ANALYZE|...> ║
|
|
25
|
-
║ Sessions: ~<obs/10> Mode: <beginner|expert> ║
|
|
26
|
-
║ ║
|
|
27
|
-
║ ┌─ Observations ────────────────────────────────────────┐ ║
|
|
28
|
-
║ │ Total: <n> Unprocessed: <n> Last: <date> │ ║
|
|
29
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
30
|
-
║ ║
|
|
31
|
-
║ ┌─ Instincts ───────────────────────────────────────────┐ ║
|
|
32
|
-
║ │ Total: <n> │ ║
|
|
33
|
-
║ │ ████████░░ Auto-apply (0.7+): <n> │ ║
|
|
34
|
-
║ │ █████░░░░░ Suggest (0.5-0.69): <n> │ ║
|
|
35
|
-
║ │ ██░░░░░░░░ Silent (< 0.5): <n> │ ║
|
|
36
|
-
║ │ Global: <n> Project: <n> │ ║
|
|
37
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
38
|
-
║ ║
|
|
39
|
-
║ ┌─ Top Instincts ───────────────────────────────────────┐ ║
|
|
40
|
-
║ │ <list top 5 instincts by confidence with bars> │ ║
|
|
41
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
42
|
-
║ ║
|
|
43
|
-
║ ┌─ Health ──────────────────────────────────────────────┐ ║
|
|
44
|
-
║ │ Stale (30+ days): <n> Decaying: <n> │ ║
|
|
45
|
-
║ │ Recently reinforced: <n> │ ║
|
|
46
|
-
║ └───────────────────────────────────────────────────────┘ ║
|
|
47
|
-
║ ║
|
|
48
|
-
╚══════════════════════════════════════════════════════════════╝
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## After Display
|
|
52
|
-
|
|
53
|
-
- If stale instincts > 0: suggest reviewing them
|
|
54
|
-
- If unprocessed observations > 20: suggest running analysis
|
|
55
|
-
- If no instincts exist: explain the auto-leveling timeline
|
|
56
|
-
- Show available instinct packs that haven't been loaded yet
|
|
1
|
+
---
|
|
2
|
+
name: dashboard
|
|
3
|
+
description: Visual dashboard showing instinct health, observation stats, and learning progress
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Instinct Dashboard
|
|
7
|
+
|
|
8
|
+
Generate a visual dashboard for this project's continuous-improvement status.
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
1. **Find project hash:** Run `git rev-parse --show-toplevel 2>/dev/null`, then SHA-256 first 12 chars
|
|
13
|
+
2. **Read observations:** Count lines in `~/.claude/instincts/<hash>/observations.jsonl`
|
|
14
|
+
3. **Read instincts:** Load all `*.yaml` files from project dir + `global/`
|
|
15
|
+
4. **Read instinct packs:** Check if any packs from `instinct-packs/` have been loaded
|
|
16
|
+
|
|
17
|
+
## Display Format
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
21
|
+
║ continuous-improvement Dashboard ║
|
|
22
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
23
|
+
║ ║
|
|
24
|
+
║ Project: <name> Level: <CAPTURE|ANALYZE|...> ║
|
|
25
|
+
║ Sessions: ~<obs/10> Mode: <beginner|expert> ║
|
|
26
|
+
║ ║
|
|
27
|
+
║ ┌─ Observations ────────────────────────────────────────┐ ║
|
|
28
|
+
║ │ Total: <n> Unprocessed: <n> Last: <date> │ ║
|
|
29
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
30
|
+
║ ║
|
|
31
|
+
║ ┌─ Instincts ───────────────────────────────────────────┐ ║
|
|
32
|
+
║ │ Total: <n> │ ║
|
|
33
|
+
║ │ ████████░░ Auto-apply (0.7+): <n> │ ║
|
|
34
|
+
║ │ █████░░░░░ Suggest (0.5-0.69): <n> │ ║
|
|
35
|
+
║ │ ██░░░░░░░░ Silent (< 0.5): <n> │ ║
|
|
36
|
+
║ │ Global: <n> Project: <n> │ ║
|
|
37
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
38
|
+
║ ║
|
|
39
|
+
║ ┌─ Top Instincts ───────────────────────────────────────┐ ║
|
|
40
|
+
║ │ <list top 5 instincts by confidence with bars> │ ║
|
|
41
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
42
|
+
║ ║
|
|
43
|
+
║ ┌─ Health ──────────────────────────────────────────────┐ ║
|
|
44
|
+
║ │ Stale (30+ days): <n> Decaying: <n> │ ║
|
|
45
|
+
║ │ Recently reinforced: <n> │ ║
|
|
46
|
+
║ └───────────────────────────────────────────────────────┘ ║
|
|
47
|
+
║ ║
|
|
48
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## After Display
|
|
52
|
+
|
|
53
|
+
- If stale instincts > 0: suggest reviewing them
|
|
54
|
+
- If unprocessed observations > 20: suggest running analysis
|
|
55
|
+
- If no instincts exist: explain the auto-leveling timeline
|
|
56
|
+
- Show available instinct packs that haven't been loaded yet
|
package/commands/discipline.md
CHANGED
|
@@ -33,6 +33,20 @@ The Laws above are the *how*. These five principles are the *why*: code ships fr
|
|
|
33
33
|
|
|
34
34
|
Code is a liability, not an asset. Speed without these five turns into someone else's incident at 3am — except the someone is you.
|
|
35
35
|
|
|
36
|
+
## Goal-Driven Execution maps onto the Laws
|
|
37
|
+
|
|
38
|
+
"Goal-Driven Execution" is the operator's global principle #4 — tie every change to a stated goal, refuse scope creep, stop when the goal is met. It is not a separate Law here; it is the spine of four existing Laws:
|
|
39
|
+
|
|
40
|
+
| Sub-rule of Goal-Driven Execution | Lives in |
|
|
41
|
+
|---|---|
|
|
42
|
+
| Tie work to a stated goal; if none, ask | Law 2 — the `## Goal` in `task_plan.md` is the single source of truth |
|
|
43
|
+
| Catch drift away from that goal mid-session | Law 2 — the `goal-monitor` skill / `/goal-check` scores recent activity against the goal |
|
|
44
|
+
| Finish one thing; refuse "while I'm here" scope creep | Law 3 |
|
|
45
|
+
| Commit messages lead with the outcome, not the mechanism | Law 4 — "done" is an observed outcome |
|
|
46
|
+
| Iterate one change at a time toward the goal | Law 6 |
|
|
47
|
+
|
|
48
|
+
The `goal-monitor` primitive (`/goal-check`, `ci_goal_check`) is the measurable arm of this principle: it reads the `## Goal` section and reports ON GOAL / DRIFT / NO DATA. Run it at phase boundaries to confirm the work and the plan still agree.
|
|
49
|
+
|
|
36
50
|
## The Loop
|
|
37
51
|
|
|
38
52
|
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: distill
|
|
3
|
+
description: Distill repeated successful tool sequences from the observation log into reusable draft instincts, with an explicit propose-edit-promote ladder. Enforces Law 7 (Learn From Every Session).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /distill — Trajectory Distillation
|
|
7
|
+
|
|
8
|
+
Mine this project's observation log for tool sequences that recurred across multiple successful sessions, and turn the good ones into reusable instincts.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
Groups observations into trajectories, keeps the ones that ended in a passing verification, and finds tool-sequence n-grams that recurred across distinct sessions. Backed by the `ci_distill_candidates` / `ci_distill_propose` / `ci_distill_promote` MCP tools (expert mode) and the `skill-distillation` skill.
|
|
13
|
+
|
|
14
|
+
## The ladder
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
ci_distill_candidates # list patterns that qualify (read-only)
|
|
18
|
+
ci_distill_propose id=<id> # write a DRAFT (placeholder body) to drafts/<id>.yaml
|
|
19
|
+
# ... edit the draft body to capture the real recipe ...
|
|
20
|
+
ci_distill_promote id=<id> # promote to a live instinct at 0.5 confidence (SUGGEST)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Drafts never affect behavior until promoted. The draft starts at 0.4 confidence in a `drafts/` subdirectory the instinct loader ignores; promotion writes a live instinct at 0.5 (SUGGEST tier).
|
|
24
|
+
|
|
25
|
+
## Candidate criteria
|
|
26
|
+
|
|
27
|
+
- The trajectory must have ended in success (`verify-exit-0` or `reflection-pass`).
|
|
28
|
+
- The tool sequence must have recurred at least 3 times across at least 2 distinct sessions.
|
|
29
|
+
- A pattern repeated only within one session is rejected — that is repetition, not a reusable skill.
|
|
30
|
+
|
|
31
|
+
## Why the human edit step
|
|
32
|
+
|
|
33
|
+
A tool sequence is evidence, not a recipe. `Read → Edit → Bash → Edit → Bash` is a TDD loop, but the value is in the preconditions and concrete steps. Editing the draft body before promotion is the guard against fabricating confident skills from coincidental call ordering.
|
|
34
|
+
|
|
35
|
+
## Pairs with
|
|
36
|
+
|
|
37
|
+
- **`skill-distillation`** skill — the discipline this command runs.
|
|
38
|
+
- **`continuous-improvement`** (core SKILL.md, Law 7 — Learn From Every Session).
|
|
39
|
+
- **`recall`** — before promoting, check whether an existing instinct already covers the pattern.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: goal-check
|
|
3
|
+
description: Check whether recent tool activity still relates to the stated goal in task_plan.md, reporting a drift score and the top off-goal tool calls. Enforces Law 2 (Plan Is Sacred).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /goal-check — Goal Drift Check
|
|
7
|
+
|
|
8
|
+
Score this session's recent tool activity against the stated goal and report whether the work is still ON GOAL or has DRIFTed.
|
|
9
|
+
|
|
10
|
+
## What it does
|
|
11
|
+
|
|
12
|
+
Reads the `## Goal` section of `task_plan.md` (plus optional `## Goal Keywords` and `## Goal Scope` sections), scores the most recent observations from `~/.claude/instincts/<project-hash>/observations.jsonl`, and reports a drift score with the top off-goal tool calls. Backed by the `ci_goal_check` MCP tool (expert mode) and the `goal-monitor` skill.
|
|
13
|
+
|
|
14
|
+
## How to invoke
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
ci_goal_check # last 30 observations vs task_plan.md
|
|
18
|
+
ci_goal_check limit=50 # widen the observation window
|
|
19
|
+
ci_goal_check goal_file=docs/x.md # score against a specific plan file
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Goal source resolution order: `task_plan.md` in the project root, then `~/.claude/instincts/<project-hash>/goal.md`, then an explicit `goal_file`.
|
|
23
|
+
|
|
24
|
+
## Output shape
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
## Goal Check
|
|
28
|
+
|
|
29
|
+
**Goal source:** /home/me/repo/task_plan.md
|
|
30
|
+
|
|
31
|
+
**Status:** DRIFT
|
|
32
|
+
**Score:** 12% (1/8 matched, threshold 30%)
|
|
33
|
+
**Reason:** Only 1/8 recent observations relate to the goal (threshold 0.3).
|
|
34
|
+
**Goal keywords:** oauth, jwt, login, session
|
|
35
|
+
|
|
36
|
+
**Top off-goal activity (most recent 5):**
|
|
37
|
+
- [2026-05-28T12:01:00Z] Edit — src/marketing/landing.ts
|
|
38
|
+
- ...
|
|
39
|
+
|
|
40
|
+
_Drift detected. Either steer back to the goal, or update the `## Goal` section in your plan if the goal has legitimately changed._
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Acting on the result
|
|
44
|
+
|
|
45
|
+
- **ON GOAL** — the plan and the work agree; proceed.
|
|
46
|
+
- **DRIFT** — steer back to the goal, or update `## Goal` if it has legitimately changed. Keeping the plan and the work in disagreement is the Law 2 violation this command catches.
|
|
47
|
+
- **NO DATA** — the observation window is still filling; keep working.
|
|
48
|
+
|
|
49
|
+
## Pairs with
|
|
50
|
+
|
|
51
|
+
- **`goal-monitor`** skill — the discipline this command runs.
|
|
52
|
+
- **`continuous-improvement`** (core SKILL.md, Law 2 — Plan Is Sacred).
|
|
53
|
+
- **`planning-with-files`** — creates the `task_plan.md` whose `## Goal` section this command reads.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill-me
|
|
3
|
+
description: "Interview the user relentlessly about a plan or design until shared understanding is reached. Ported from mattpocock/skills under MIT."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /grill-me
|
|
7
|
+
|
|
8
|
+
Stress-test the current plan or design by interviewing the user one question at a time, walking every branch of the decision tree, and recommending an answer for each.
|
|
9
|
+
|
|
10
|
+
## Trigger phrases
|
|
11
|
+
|
|
12
|
+
- `/grill-me`
|
|
13
|
+
- "grill me"
|
|
14
|
+
- "stress-test this plan"
|
|
15
|
+
- "interview me about this"
|
|
16
|
+
- "what am I missing?"
|
|
17
|
+
|
|
18
|
+
## What happens
|
|
19
|
+
|
|
20
|
+
1. Identify the current plan or design from the conversation — the high-level goal, the assumptions in play, the decisions already made.
|
|
21
|
+
2. Walk the decision tree top-down. For each unresolved branch, ask exactly **one question** with a **recommended answer**.
|
|
22
|
+
3. Before asking, check whether the codebase already answers the question (`grep`, `ls`, file reads). If it does, use that and skip the question.
|
|
23
|
+
4. Resolve dependencies in order — do not ask about deployment before the data model is pinned.
|
|
24
|
+
5. Stop when the plan is shippable cold to a fresh agent. Do not interview past the point of usefulness.
|
|
25
|
+
|
|
26
|
+
## Five interview rules
|
|
27
|
+
|
|
28
|
+
1. **One question at a time.** Never multi-question; force depth on every branch.
|
|
29
|
+
2. **Always recommend.** Every question carries "my answer would be X because Y".
|
|
30
|
+
3. **Explore before asking.** Code answers beat user-attention answers.
|
|
31
|
+
4. **Walk the tree, do not jump.** Order matters.
|
|
32
|
+
5. **Stop when shippable.** End state is a plan a fresh agent could execute, not an infinite interview.
|
|
33
|
+
|
|
34
|
+
## Skill file
|
|
35
|
+
|
|
36
|
+
Full behavior is defined in [`skills/grill-me.md`](../skills/grill-me.md). The verbatim upstream cold-storage copy lives at [`third-party/mattpocock-skills/skills/productivity/grill-me/SKILL.md`](../third-party/mattpocock-skills/skills/productivity/grill-me/SKILL.md); SHA pin in [`third-party/MANIFEST.md`](../third-party/MANIFEST.md).
|
|
37
|
+
|
|
38
|
+
## Attribution
|
|
39
|
+
|
|
40
|
+
Ported from [mattpocock/skills `productivity/grill-me`](https://github.com/mattpocock/skills/blob/main/skills/productivity/grill-me/SKILL.md) (MIT, © 2026 Matt Pocock).
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grill-with-docs
|
|
3
|
+
description: "Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates CONTEXT.md + ADRs inline as decisions crystallise. Ported from mattpocock/skills under MIT."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /grill-with-docs
|
|
7
|
+
|
|
8
|
+
Stress-test the current plan or design by interviewing the user one question at a time AND updating the project's domain-language doc (`CONTEXT.md`) and architecture decision records (`docs/adr/`) inline as decisions land.
|
|
9
|
+
|
|
10
|
+
## Trigger phrases
|
|
11
|
+
|
|
12
|
+
- `/grill-with-docs`
|
|
13
|
+
- "grill me and update the docs"
|
|
14
|
+
- "stress-test this against our domain model"
|
|
15
|
+
- "let's nail down the language and ADR this"
|
|
16
|
+
|
|
17
|
+
## What happens
|
|
18
|
+
|
|
19
|
+
1. Read `CONTEXT.md` (or `CONTEXT-MAP.md` + per-context `CONTEXT.md`) and `docs/adr/` if they exist. Use them as the source of truth for project language and prior decisions.
|
|
20
|
+
2. Walk the decision tree top-down. One question at a time with a recommended answer.
|
|
21
|
+
3. Challenge fuzzy terms against the glossary. Sharpen vague language. Stress-test relationships with concrete scenarios. Cross-reference user statements against the code.
|
|
22
|
+
4. When a term is resolved, update `CONTEXT.md` immediately (lazy-create if missing). Use the format in the skill's Appendix A.
|
|
23
|
+
5. Offer an ADR only when all three are true: hard to reverse, surprising without context, result of a real trade-off. Use the format in Appendix B.
|
|
24
|
+
|
|
25
|
+
## When to fire this instead of `/grill-me`
|
|
26
|
+
|
|
27
|
+
| Skill | Use when |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `/grill-me` | Conversation-only grilling; no project to update yet, or no docs convention. |
|
|
30
|
+
| `/grill-with-docs` | Project has `CONTEXT.md` or is ready to start one; decisions should persist past the session. |
|
|
31
|
+
|
|
32
|
+
## Skill file
|
|
33
|
+
|
|
34
|
+
Full behavior, format specs, and 7 Laws fit are defined in [`skills/grill-with-docs.md`](../skills/grill-with-docs.md). The verbatim upstream cold-storage copies live at [`third-party/mattpocock-skills/skills/engineering/grill-with-docs/`](../third-party/mattpocock-skills/skills/engineering/grill-with-docs/) (`SKILL.md`, `CONTEXT-FORMAT.md`, `ADR-FORMAT.md`); SHA pin in [`third-party/MANIFEST.md`](../third-party/MANIFEST.md).
|
|
35
|
+
|
|
36
|
+
## Attribution
|
|
37
|
+
|
|
38
|
+
Ported from [mattpocock/skills `engineering/grill-with-docs`](https://github.com/mattpocock/skills/blob/main/skills/engineering/grill-with-docs/SKILL.md) (MIT, © 2026 Matt Pocock). Mattpocock calls this his most powerful skill: "It's hard to explain how powerful this is. It might be the single coolest technique in this repo."
|