continuous-improvement 3.12.3 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +45 -1
  3. package/LICENSE +21 -21
  4. package/QUICKSTART.md +1 -1
  5. package/README.md +29 -8
  6. package/bin/analyze.sh +161 -161
  7. package/bin/backfill.mjs +19 -19
  8. package/bin/check-doc-runtime-claims.mjs +0 -0
  9. package/bin/check-docs-substrings.mjs +0 -0
  10. package/bin/check-everything-mirror.mjs +0 -0
  11. package/bin/check-routing-targets.mjs +0 -0
  12. package/bin/check-scripts-citation-drift.mjs +0 -0
  13. package/bin/check-skill-count-prose.mjs +168 -0
  14. package/bin/check-skill-count.mjs +32 -1
  15. package/bin/check-skill-law-tag.mjs +0 -0
  16. package/bin/check-skill-mirror.mjs +0 -0
  17. package/bin/check-skill-tiers.mjs +0 -0
  18. package/bin/check-test-imports-only.mjs +1 -1
  19. package/bin/check-third-party-shape.mjs +0 -0
  20. package/bin/check-tool-count.mjs +0 -0
  21. package/bin/companion-preference-status.mjs +0 -0
  22. package/bin/gateguard-clear.mjs +0 -0
  23. package/bin/generate-plugin-manifests.mjs +2 -1
  24. package/bin/harvest-friction.mjs +0 -0
  25. package/bin/hook-stats.mjs +21 -21
  26. package/bin/install.mjs +120 -2
  27. package/bin/lint-transcript.mjs +15 -3
  28. package/bin/mcp-server.mjs +66 -8
  29. package/bin/observe.mjs +0 -0
  30. package/bin/plan-pack.mjs +77 -0
  31. package/bin/pre-commit-block-strays.sh +0 -0
  32. package/bin/refresh-third-party.mjs +0 -0
  33. package/bin/unified-cli.mjs +55 -410
  34. package/commands/continuous-improvement.md +115 -115
  35. package/commands/dashboard.md +56 -56
  36. package/commands/model-forward.md +13 -0
  37. package/commands/production-readiness-review.md +53 -0
  38. package/commands/roast.md +34 -0
  39. package/commands/seven-laws.md +16 -16
  40. package/commands/ship.md +57 -0
  41. package/commands/workspace-surface-audit.md +77 -77
  42. package/hooks/companion-preference.mjs +31 -19
  43. package/hooks/gateguard.mjs +38 -16
  44. package/hooks/goal-drift-stop.mjs +0 -0
  45. package/hooks/hook-pack.mjs +110 -0
  46. package/hooks/observe.sh +0 -0
  47. package/hooks/recall-briefing.mjs +0 -0
  48. package/hooks/route-prompt.mjs +0 -0
  49. package/hooks/session.sh +106 -106
  50. package/hooks/three-section-close.mjs +0 -0
  51. package/hooks/workflow-distill.mjs +145 -0
  52. package/instinct-packs/go.json +58 -58
  53. package/instinct-packs/meta.json +16 -16
  54. package/instinct-packs/python.json +58 -58
  55. package/instinct-packs/react.json +58 -58
  56. package/lib/cli-anything.mjs +0 -0
  57. package/lib/gateguard-state.mjs +62 -13
  58. package/lib/goal-drift-gate.mjs +0 -0
  59. package/lib/goal-state.mjs +8 -4
  60. package/lib/hook-pack-gate.mjs +65 -0
  61. package/lib/install-targets.mjs +121 -0
  62. package/lib/observe-event.mjs +0 -0
  63. package/lib/plan-review-packet.mjs +96 -0
  64. package/lib/plugin-metadata.mjs +30 -4
  65. package/lib/pm-marketplace.mjs +0 -0
  66. package/lib/recall-briefing.mjs +0 -0
  67. package/lib/recall-index.mjs +0 -0
  68. package/lib/resolve-home-dir.mjs +0 -0
  69. package/lib/skill-distill.mjs +141 -0
  70. package/lib/skill-tiers.mjs +0 -0
  71. package/lib/version-check.mjs +115 -0
  72. package/llms.txt +2 -2
  73. package/package.json +6 -4
  74. package/plugins/beginner.json +2 -2
  75. package/plugins/continuous-improvement/.claude-plugin/marketplace.json +2 -2
  76. package/plugins/continuous-improvement/.claude-plugin/plugin.json +2 -2
  77. package/plugins/continuous-improvement/LICENSE +21 -21
  78. package/plugins/continuous-improvement/README.md +1 -1
  79. package/plugins/continuous-improvement/bin/backfill.mjs +19 -19
  80. package/plugins/continuous-improvement/bin/gateguard-clear.mjs +0 -0
  81. package/plugins/continuous-improvement/bin/mcp-server.mjs +66 -8
  82. package/plugins/continuous-improvement/bin/observe.mjs +0 -0
  83. package/plugins/continuous-improvement/commands/continuous-improvement.md +115 -115
  84. package/plugins/continuous-improvement/commands/dashboard.md +56 -56
  85. package/plugins/continuous-improvement/commands/model-forward.md +13 -0
  86. package/plugins/continuous-improvement/commands/production-readiness-review.md +53 -0
  87. package/plugins/continuous-improvement/commands/roast.md +34 -0
  88. package/plugins/continuous-improvement/commands/seven-laws.md +16 -16
  89. package/plugins/continuous-improvement/commands/ship.md +57 -0
  90. package/plugins/continuous-improvement/commands/workspace-surface-audit.md +77 -77
  91. package/plugins/continuous-improvement/hooks/companion-preference.mjs +31 -19
  92. package/plugins/continuous-improvement/hooks/gateguard.mjs +38 -16
  93. package/plugins/continuous-improvement/hooks/goal-drift-stop.mjs +0 -0
  94. package/plugins/continuous-improvement/hooks/hook-pack.mjs +110 -0
  95. package/plugins/continuous-improvement/hooks/hooks.json +16 -1
  96. package/plugins/continuous-improvement/hooks/observe.sh +0 -0
  97. package/plugins/continuous-improvement/hooks/recall-briefing.mjs +0 -0
  98. package/plugins/continuous-improvement/hooks/route-prompt.mjs +0 -0
  99. package/plugins/continuous-improvement/hooks/session.sh +106 -106
  100. package/plugins/continuous-improvement/hooks/three-section-close.mjs +0 -0
  101. package/plugins/continuous-improvement/hooks/workflow-distill.mjs +145 -0
  102. package/plugins/continuous-improvement/instinct-packs/go.json +58 -58
  103. package/plugins/continuous-improvement/instinct-packs/meta.json +16 -16
  104. package/plugins/continuous-improvement/instinct-packs/python.json +58 -58
  105. package/plugins/continuous-improvement/instinct-packs/react.json +58 -58
  106. package/plugins/continuous-improvement/lib/gateguard-state.mjs +62 -13
  107. package/plugins/continuous-improvement/lib/goal-drift-gate.mjs +0 -0
  108. package/plugins/continuous-improvement/lib/goal-state.mjs +8 -4
  109. package/plugins/continuous-improvement/lib/hook-pack-gate.mjs +65 -0
  110. package/plugins/continuous-improvement/lib/observe-event.mjs +0 -0
  111. package/plugins/continuous-improvement/lib/plugin-metadata.mjs +30 -4
  112. package/plugins/continuous-improvement/lib/recall-briefing.mjs +0 -0
  113. package/plugins/continuous-improvement/lib/recall-index.mjs +0 -0
  114. package/plugins/continuous-improvement/lib/resolve-home-dir.mjs +0 -0
  115. package/plugins/continuous-improvement/lib/skill-distill.mjs +141 -0
  116. package/plugins/continuous-improvement/skills/README.md +2 -1
  117. package/plugins/continuous-improvement/skills/gateguard/SKILL.md +4 -4
  118. package/plugins/continuous-improvement/skills/goal-monitor/SKILL.md +1 -1
  119. package/plugins/continuous-improvement/skills/handoff/SKILL.md +0 -1
  120. package/plugins/continuous-improvement/skills/model-forward/SKILL.md +44 -0
  121. package/plugins/continuous-improvement/skills/roast/SKILL.md +108 -0
  122. package/plugins/continuous-improvement/skills/strategic-compact/SKILL.md +12 -32
  123. package/plugins/continuous-improvement/skills/tdd-workflow/SKILL.md +411 -411
  124. package/plugins/expert.json +5 -1
  125. package/skills/README.md +5 -3
  126. package/skills/gateguard.md +4 -4
  127. package/skills/goal-monitor.md +1 -1
  128. package/skills/handoff.md +0 -1
  129. package/skills/model-forward.md +44 -0
  130. package/skills/roast.md +108 -0
  131. package/skills/strategic-compact.md +12 -32
  132. package/skills/tdd-workflow.md +411 -411
  133. package/lib/compound-engineering.mjs +0 -831
  134. package/lib/pm-skills.mjs +0 -1274
  135. package/lib/unified-plugin.mjs +0 -924
  136. package/plugins/continuous-improvement/skills/para-memory-files/SKILL.md +0 -108
  137. package/skills/para-memory-files.md +0 -108
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "continuous-improvement",
3
- "version": "3.12.3",
3
+ "version": "3.16.0",
4
4
  "mode": "expert",
5
5
  "description": "Expert mode: tune confidence, manage instincts, and persist plans on disk. Adds safety, token-budget, and strategic-compact skills plus the /learn-eval command so long sessions stay sharp and learnings survive context resets.",
6
6
  "tools": [
@@ -75,6 +75,10 @@
75
75
  {
76
76
  "name": "ci_distill_promote",
77
77
  "what": "Promote an edited draft into a live instinct"
78
+ },
79
+ {
80
+ "name": "ci_distill_from_workflow",
81
+ "what": "Draft a reusable instinct from a verified Workflow run"
78
82
  }
79
83
  ],
80
84
  "setup": {
package/skills/README.md CHANGED
@@ -18,10 +18,12 @@ These add concrete enforcement to the 7 Laws. Tier-1 skills are the always-on mi
18
18
 
19
19
  | Skill | What it does | Pairs with which Law |
20
20
  |-------|--------------|----------------------|
21
- | `para-memory-files` | File-based persistent memory using PARA (Projects/Areas/Resources/Archives) for cross-session context | Law 5 (Reflect), Law 7 (Learn) |
22
- | `verification-loop` | Six-phase verification (build, types, lint, tests, security, diff) with a structured PASS/FAIL report | Law 4 (Verify Before Reporting) |
21
+ | `deploy-receipt` | Deploy verification receipt — SHA-match + healthcheck proof that what merged is what's live, closing the merged-but-not-deployed gap | Law 4 (Verify Before Reporting) |
23
22
  | `gateguard` | PreToolUse fact-forcing gate that blocks Edit/Write/destructive Bash until concrete investigation is presented | Law 1 (Research) |
23
+ | `model-forward` | Standing stance: go with Claude Code and the model, not against it — skills are scaffolding that merges into the model; the durable core is goal-driven execution + guardrails | All 7 Laws (stance) |
24
+ | `recall` | BM25 search over the observation log so "have I hit this before?" is answerable before re-deriving a fix | Law 1 (Research) |
24
25
  | `tdd-workflow` | RED→GREEN→REFACTOR enforcement, 80%+ coverage gate across unit/integration/E2E | Law 3 (One Thing), Law 4 (Verify) |
26
+ | `verification-loop` | Six-phase verification (build, types, lint, tests, security, diff) with a structured PASS/FAIL report | Law 4 (Verify Before Reporting) |
25
27
 
26
28
  ## Tier 2 — additional skills for **expert** mode
27
29
 
@@ -31,7 +33,7 @@ Tier-2 skills layer on top of tier-1 for users running `npx continuous-improveme
31
33
  |-------|--------------|------------------|
32
34
  | `safety-guard` | Three-mode runtime guard (careful/freeze/guard) that blocks destructive commands and locks edits to a directory | Autonomous loops, prod systems, `--dangerously-skip-permissions` sessions |
33
35
  | `token-budget-advisor` | Heuristic input/output token estimator that offers 25%/50%/75%/100% depth choices before answering | Long sessions where response size matters |
34
- | `strategic-compact` | PreToolUse hook that suggests `/compact` at logical phase boundaries (research→plan, plan→implement, debug→next) instead of arbitrary auto-compaction | Multi-phase tasks that approach context limits |
36
+ | `strategic-compact` | Manual phase-boundary checklist for deciding when to run `/compact` (research→plan, plan→implement, debug→next) instead of relying on arbitrary auto-compaction | Multi-phase tasks that approach context limits |
35
37
  | `wild-risa-balance` | Decision-framing lens that pairs WILD (Wild/Imaginative/Limitless/Disruptive) generation with RISA (Realistic/Important/Specific/Agreeable) execution, used to split recommendation lists into bold pilots above a safe baseline | Multi-item recommendation blocks where bold options keep losing to safe ones in a flat list |
36
38
 
37
39
  The `/learn-eval` slash command also ships as part of the expert install: extract a session pattern, run a checklist quality gate, and decide global-vs-project save location before writing any skill file.
@@ -136,7 +136,7 @@ This gate is what catches the squash-merge / ahead-of-origin trap recorded in th
136
136
 
137
137
  ### Today: runtime hook + skill (zero install beyond the plugin)
138
138
 
139
- `hooks/gateguard.mjs` is bundled with this plugin and wired as the first PreToolUse hook in `plugins/continuous-improvement/hooks/hooks.json`. When you install the plugin, the runtime gate is live — no extra config, no opt-in. The hook reads tool input from stdin, classifies it through a data-driven routing table (Read/Grep/Glob → allow, Write/Edit/MultiEdit → mutating-file gate, Bash → destructive-pattern check), and emits `{decision, reason?}` on stdout. Per-session state lives at `~/.claude/instincts/<project-hash>/gateguard-session.json` (override via `GATEGUARD_SESSION_DIR` for tests) and caps cumulative clearances at `MAX_CLEARED_FILES = 50`.
139
+ `hooks/gateguard.mjs` is bundled with this plugin and wired as the first PreToolUse hook in `plugins/continuous-improvement/hooks/hooks.json`. When you install the plugin, the runtime gate is live — no extra config, no opt-in. The hook reads tool input from stdin, classifies it through a data-driven routing table (Read/Grep/Glob → allow, Write/Edit/MultiEdit → mutating-file gate, Bash → destructive-pattern check), and emits `{decision, reason?}` on stdout. Per-session state lives at `~/.claude/instincts/<project-hash>/sessions/<session-id>/gateguard-session.json` — scoped by the stdin `session_id` so the cap never bleeds across concurrent sessions (it falls back to the unscoped `<project-hash>/` dir when no session id is present, and `GATEGUARD_SESSION_DIR` overrides it for tests). The cap is `MAX_CLEARED_FILES = 50` per session, and the state self-heals after `STATE_TTL_MS` so a stale gate never needs a manual `rm`.
140
140
 
141
141
  Smoke-test the runtime gate after install: ask Claude to write a throwaway file with no research first. The hook should return a `block` decision with a fact-list reason; Claude should pause rather than write.
142
142
 
@@ -150,10 +150,10 @@ The block reason prints the exact `gateguard-session.json` path and the clearanc
150
150
 
151
151
  The inline `_gateguard_facts_presented: true` retry still works on harnesses that forward unknown tool params, but Claude Code's strict tool schema (`additionalProperties: false`) rejects it with `InputValidationError` — use one of the above on Claude Code.
152
152
 
153
- ### V1 honest limitations (not mitigated, documented)
153
+ ### Limitations and guarantees
154
154
 
155
- - **Honor system.** Clearance is recorded by `ci_gateguard_clear`, the `gateguard-clear.mjs` CLI, a manual state-file write, or the inline `_gateguard_facts_presented` flag where the harness allows it (see "Clearing the gate" above). The hook can't verify the investigation actually happened; the 50-file cap bounds damage from stuck loops or rogue agents.
156
- - **State-file deletion.** `rm`-ing the session state resets every gate. Acceptable because the session itself is the trust boundary.
155
+ - **Honor system.** Clearance is recorded by `ci_gateguard_clear`, the `gateguard-clear.mjs` CLI, a manual state-file write, or the inline `_gateguard_facts_presented` flag where the harness allows it (see "Clearing the gate" above). The hook can't verify the investigation actually happened; the 50-file cap — counted per session — bounds damage from stuck loops or rogue agents.
156
+ - **State-file deletion / self-heal.** `rm`-ing the session state resets every gate. Because state is scoped per session (`sessions/<session-id>/`), the session is a real trust boundary, not one shared across concurrent runs. A stale state file also self-heals once its `created_at` ages past `STATE_TTL_MS`, so a manual `rm` is rarely needed.
157
157
  - **Parallel-hook race.** Two simultaneous hook invocations can race the read+write of the state file. Acceptable trade-off vs Windows atomic-rename complexity.
158
158
 
159
159
  **MultiEdit per-file gating.** The hook clears and checks every `edits[]` path individually, so a mixed-clearance batch blocks until *all* edited files are cleared or facts are presented. The block reason now names the whole batch, not just the first uncleared path.
@@ -77,5 +77,5 @@ ci_goal_check goal_file=docs/x.md # score against a specific plan file
77
77
  ## Pairs With
78
78
 
79
79
  - **`proceed-with-the-recommendation`** (orchestrator, Law 2) — run a goal check at phase boundaries to confirm the plan still matches the work.
80
- - **`para-memory-files`** / planning-with-files — the `## Goal` section this skill reads is the same one those workflows write.
80
+ - **planning-with-files** — the `## Goal` section this skill reads is the same one that workflow writes.
81
81
  - **`strategic-compact`** — before compacting a long session, a goal check confirms what the session was actually about.
package/skills/handoff.md CHANGED
@@ -51,7 +51,6 @@ Anything that is already captured elsewhere gets a path or URL pointer, not a du
51
51
  ## Companion / alternative skills
52
52
 
53
53
  - [`strategic-compact`](./strategic-compact.md) — compact the current session at a phase boundary instead of writing a handoff doc. Use when the session continues with the same agent.
54
- - [`para-memory-files`](./para-memory-files.md) — durable cross-session memory under `~/.claude/memory/`. Use for classified facts (user, project, feedback, reference), not per-session handoff briefs.
55
54
  - `superpowers:writing-plans` — produce the plan doc the handoff can reference instead of duplicating.
56
55
 
57
56
  ## Attribution
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: model-forward
3
+ tier: "1"
4
+ description: Enforces all 7 Laws as a standing stance — go with Claude Code and the model, not against it. Skills are scaffolding that merges into the model over time; the durable core is goal-driven execution (the higher the stated goal, the better) plus self-discipline guardrails.
5
+ origin: continuous-improvement
6
+ user-invocable: true
7
+ ---
8
+
9
+ # Model-Forward Skill
10
+
11
+ The standing mental model for every session: **always go with Claude — not against it — until the user says otherwise.**
12
+
13
+ Models improve continuously. Mechanics that skills hand-hold today (planning etiquette, routing, verification reminders) keep merging into the model itself. Betting against that trend produces scaffolding that fights the harness. Betting with it keeps only what stays valuable as models get smarter.
14
+
15
+ ## The Two Invariants
16
+
17
+ Everything in continuous-improvement reduces to two things that survive every model generation:
18
+
19
+ 1. **Goal-driven execution.** Anchor on the highest stated goal — the higher the goal, the better the execution. Tie every change to it, refuse scope creep, stop when it is met. (Laws 2, 3, 4, 6.)
20
+ 2. **Self-discipline / guardrails.** Research before executing, verify before reporting, reflect and learn after. Guardrails are how an agent earns autonomy. (Laws 1, 4, 5, 7.)
21
+
22
+ Skill mechanics are scaffolding around those two. The invariants are the product; the scaffolding is replaceable.
23
+
24
+ ## Decision Rules
25
+
26
+ | Situation | Model-forward call |
27
+ |---|---|
28
+ | A native Claude Code feature now covers what a custom skill or hook does | Prefer the native path; propose retiring the scaffold instead of maintaining a parallel one |
29
+ | A skill's instructions conflict with current Claude Code best practice | Follow Claude Code best practice; flag the skill for update |
30
+ | Tempted to add scaffolding to compensate for a model weakness | First confirm the current model still has that weakness; do not patch yesterday's model |
31
+ | A guardrail keeps firing on behavior the model no longer exhibits | Propose loosening or retiring it — stacking stale guardrails is also drift |
32
+ | The user explicitly says to go against a default | The user wins. "Until said otherwise" is the contract. |
33
+
34
+ Never retire a guardrail unilaterally — retiring scaffolding is a proposal to the operator, not a silent action. The bias points toward the model; the authority stays with the user.
35
+
36
+ ## Harness Portability
37
+
38
+ This stance is harness-agnostic state. Agents beyond Claude Code that import continuous-improvement skills — Hermes- and OpenClaw-class harnesses included — adopt the same mental model: native capability first, two invariants always, scaffolding only where the current model demonstrably needs it.
39
+
40
+ ## What This Skill Is Not
41
+
42
+ - Not a license to skip the Laws — the invariants are the part that never merges away.
43
+ - Not an auto-update mechanism — it changes posture, not files.
44
+ - Not a reason to drop verification: "the model is probably right" is still a "should work" claim until checked (Law 4).
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: roast
3
+ tier: "2"
4
+ description: Enforces Law 1 (Research Before Executing) of the 7 Laws of AI Agent Discipline. Convene a 5-persona adversarial council (Contrarian, Expansionist, Logician, Researcher, Buyer) that attacks an idea from every angle, then a Judge returns one GO / RESHAPE / KILL verdict plus the cheapest 48-hour test to de-risk it — so you pressure-test an idea before sinking time into building the wrong thing.
5
+ origin: continuous-improvement
6
+ user-invocable: true
7
+ argument-hint: "[the idea to roast]"
8
+ ---
9
+
10
+ # /roast — Convene the council before you build
11
+
12
+ Claude's default is to agree with you. `/roast` is the opposite. Law 1 says research before executing — and the cheapest, most-skipped research is an honest adversarial read of the idea *itself* before any plan or code exists. This skill convenes a council of five independent persona agents who tear an idea apart and build it up from every angle, then a Judge synthesizes everything into one decisive verdict.
13
+
14
+ The council is adversarial on purpose. No persona is allowed to hedge or be polite. The point is to surface what you can't see because you're too close to it — and to do it in an hour, not after a month of building.
15
+
16
+ Adapted from the community `/roast` idea-council pattern and reshaped as a continuous-improvement-native Law 1 skill.
17
+
18
+ ## When to activate
19
+
20
+ - Before you sink time or money into building something — a product, a feature, a business, a bet.
21
+ - When you catch yourself (or the agent) agreeing with a plan that has never been attacked.
22
+ - The user types `/roast`, "roast this idea", "convene the council", "pressure-test this", "stress-test this idea", "validate this business idea", or "give me a brutal second opinion".
23
+ - A `/proceed-with-the-recommendation` walk is about to start but the *premise* underneath the recommendation list was never challenged.
24
+
25
+ ## Step 1: Get the brief
26
+
27
+ If `$ARGUMENTS` contains the idea, start there. Then ask a tight set of clarifying questions so the council judges something real. Ask only what hasn't already been provided — 3-4 questions max, in **one batch**:
28
+
29
+ 1. **The idea** in one or two sentences (what it is, what it does).
30
+ 2. **Who it's for** and **how it makes money** (the buyer + the price/model).
31
+ 3. **Your edge** — relevant skills, audience, or assets you already have.
32
+ 4. **Constraints** — budget, timeline, how fast you need the first dollar.
33
+
34
+ If the user says "just run it" or has already given you enough, skip the questions and proceed. Don't over-interrogate — one round, then convene.
35
+
36
+ Write the brief into a single short paragraph you will paste verbatim into every council member's prompt, so all five judge the same thing.
37
+
38
+ ## Step 2: Convene the council (5 agents, in parallel)
39
+
40
+ Spin up **all five agents in parallel in a single message** — one subagent each (`general-purpose`). Paste the same brief into each, then give it its persona mandate below.
41
+
42
+ Each council member must return: a one-line stance, their 3-5 sharpest points, the single most important thing the user must hear, and a 1-10 score on their own dimension (1 = walk away, 10 = no-brainer).
43
+
44
+ **1. The Contrarian (Red Team)**
45
+ > You are the Contrarian on an idea council. Assume this idea fails. Find the fatal flaws, the fastest way it dies, and the load-bearing assumptions that are probably wrong. Be ruthless and specific. No hedging, no "but it could work." Attack the weakest points. THE BRIEF: [brief]
46
+
47
+ **2. The Expansionist (Bull)**
48
+ > You are the Expansionist on an idea council. Make the strongest possible case FOR this idea. Find the biggest upside, the 10x version, the adjacent opportunities and unlock points the founder isn't seeing. Fight for the potential. Be specific about where the real money and leverage could be. THE BRIEF: [brief]
49
+
50
+ **3. The Logician (First principles)**
51
+ > You are the Logician on an idea council. Use NO outside research and NO web. Reason purely from first principles: does the core mechanism make sense, do the incentives line up, is the underlying logic sound, does the math even work in theory? Strip it to fundamentals and tell us if it holds together. THE BRIEF: [brief]
52
+
53
+ **4. The Researcher (Evidence)**
54
+ > You are the Researcher on an idea council. Use web search. Bring real-world evidence: who the existing competitors are, market size or demand signals, what comparable products charge, whether this is validated by what's already out there or contradicted by it. Cite what you find. Is the real world saying yes or no? THE BRIEF: [brief]
55
+
56
+ **5. The Buyer (Voice of customer)**
57
+ > You are the Buyer on an idea council. Role-play the exact target customer described in the brief. React as them, in first person. Would you actually pay for this? What's your real objection? What would make you choose a competitor or just do nothing instead? What price feels right, and what would make you say yes today? Be the honest, slightly skeptical customer, not a cheerleader. THE BRIEF: [brief]
58
+
59
+ ## Step 3: The Judge delivers the verdict
60
+
61
+ Once all five return, YOU act as the Judge. Read every council member's findings, weigh them, and synthesize one decisive verdict. Do not average the scores. Name the real tension between the personas and resolve it.
62
+
63
+ Fold in the **economics lens** yourself: rough pricing, realistic time-to-first-dollar, and whether the user can actually ship this fast given the edge they described.
64
+
65
+ Output the verdict in this exact shape:
66
+
67
+ ```
68
+ ## THE VERDICT: GO / RESHAPE / KILL
69
+ Confidence: [low / medium / high]
70
+
71
+ **The call in one line:** [the decision, plainly]
72
+
73
+ **Why:** [2-3 sentences resolving the council's tension]
74
+
75
+ **Biggest risk:** [the single thing most likely to kill it]
76
+ **Biggest upside:** [the strongest reason to do it]
77
+
78
+ **Money read:** [rough price, time-to-first-dollar, can they ship fast]
79
+
80
+ **The cheapest 48-hour test:** [the smallest, fastest thing they can do
81
+ to validate the riskiest assumption BEFORE building anything]
82
+
83
+ **If RESHAPE:** [the specific pivot that fixes the fatal flaw while keeping the upside]
84
+ ```
85
+
86
+ Then list the five council scores in one line: `Contrarian X/10 · Expansionist X/10 · Logician X/10 · Researcher X/10 · Buyer X/10`.
87
+
88
+ ## Rules
89
+
90
+ - Every persona stays in character. None of them hedges or softens. The value is in the friction.
91
+ - The Judge must make an actual call. "It depends" is not a verdict. Pick GO, RESHAPE, or KILL and own it.
92
+ - The cheapest 48-hour test is the most important output. It's how the user finds out if they're right without building the whole thing.
93
+ - Keep the final verdict skimmable. The council does the depth; the Judge does the decision.
94
+
95
+ ## How it fits the 7 Laws
96
+
97
+ | Law | Role of this skill |
98
+ |---|---|
99
+ | Law 1 (Research Before Executing) | The council **is** the research — five independent investigations of an idea's viability before a single line of code is written. |
100
+ | Law 2 (Plan Is Sacred) | The verdict's RESHAPE pivot and cheapest-test become the plan's first checkpoint instead of an invented default. |
101
+ | Law 4 (Verify Before Reporting) | The Judge must commit to a falsifiable GO / RESHAPE / KILL call — the anti-pattern is the hedge, "it depends." |
102
+
103
+ ## Pairs with
104
+
105
+ - [`grill-me`](./grill-me.md) — once roast says GO or RESHAPE, `grill-me` hardens the **plan**; roast validates the **idea**. Roast first, then grill.
106
+ - [`proceed-with-the-recommendation`](./proceed-with-the-recommendation.md) — walk the verdict's next steps (the cheapest test, the RESHAPE pivot) top-to-bottom under the 7 Laws.
107
+ - [`wild-risa-balance`](./wild-risa-balance.md) — the verdict is a recommendation; run it through the R-I-S-A filter before acting.
108
+ - [`gateguard`](./gateguard.md) — the runtime gate (`hooks/gateguard.mjs`) that fires when the validated idea finally turns into Edit/Write/Bash.
@@ -32,37 +32,17 @@ Strategic compaction at logical boundaries:
32
32
 
33
33
  ## How It Works
34
34
 
35
- The `suggest-compact.js` script runs on PreToolUse (Edit/Write) and:
36
-
37
- 1. **Tracks tool calls** — Counts tool invocations in session
38
- 2. **Threshold detection** — Suggests at configurable threshold (default: 50 calls)
39
- 3. **Periodic reminders** — Reminds every 25 calls after threshold
40
-
41
- ## Hook Setup
42
-
43
- Add to your `~/.claude/settings.json`:
44
-
45
- ```json
46
- {
47
- "hooks": {
48
- "PreToolUse": [
49
- {
50
- "matcher": "Edit",
51
- "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
52
- },
53
- {
54
- "matcher": "Write",
55
- "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
56
- }
57
- ]
58
- }
59
- }
60
- ```
61
-
62
- ## Configuration
63
-
64
- Environment variables:
65
- - `COMPACT_THRESHOLD` — Tool calls before first suggestion (default: 50)
35
+ This skill is a manual phase-boundary checklist, not a bundled runtime hook. Use it when planning or reviewing a long session:
36
+
37
+ 1. **Name the current phase** — research, planning, implementation, testing, debugging, release, or handoff.
38
+ 2. **Check the next transition** — decide whether the next phase needs fresh context or the current context is still load-bearing.
39
+ 3. **Preserve state first** — write the plan, todo list, findings, or handoff note that must survive compaction.
40
+ 4. **Compact only at a boundary** — if compaction helps, run `/compact` with a specific summary for the next phase.
41
+ 5. **Resume from durable artifacts** — after compaction, re-read the plan/files instead of relying on lost conversation context.
42
+
43
+ ## Runtime Boundary
44
+
45
+ The current plugin does not ship `strategic-compact` PreToolUse automation or a threshold script. Treat compaction as an operator/agent decision: this skill gives the decision guide, while Claude Code's native `/compact` command performs the actual compaction.
66
46
 
67
47
  ## Compaction Decision Guide
68
48
 
@@ -94,7 +74,7 @@ Understanding what persists helps you compact with confidence:
94
74
  1. **Compact after planning** — Once plan is finalized in TodoWrite, compact to start fresh
95
75
  2. **Compact after debugging** — Clear error-resolution context before continuing
96
76
  3. **Don't compact mid-implementation** — Preserve context for related changes
97
- 4. **Read the suggestion** — The hook tells you *when*, you decide *if*
77
+ 4. **Use the checklist** — The phase table helps decide *when*; you still decide *if*
98
78
  5. **Write before compacting** — Save important context to files or memory before compacting
99
79
  6. **Use `/compact` with a summary** — Add a custom message: `/compact Focus on implementing auth middleware next`
100
80