@thebassclef/lite 0.1.2 → 1.0.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 (293) hide show
  1. package/dist/cli.cjs +238 -127
  2. package/dist/cli.js +240 -129
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/lite/.bassclef-source.json +10 -0
  7. package/dist/lite/.claude/settings.json +212 -0
  8. package/dist/lite/CLAUDE.md +41 -0
  9. package/dist/lite/gitignore +58 -0
  10. package/dist/lite/standards/bassclef-wiring-manifest.json +497 -0
  11. package/dist/lite/whereami.md +24 -0
  12. package/package.json +8 -2
  13. package/substrate/.bassclef/lite-manifest.json +0 -2701
  14. package/substrate/.claude/agents/architect.md +0 -70
  15. package/substrate/.claude/agents/builder.md +0 -114
  16. package/substrate/.claude/agents/designer.md +0 -156
  17. package/substrate/.claude/agents/reviewer.md +0 -88
  18. package/substrate/.claude/hooks/artifact-ingestion-gate.sh +0 -357
  19. package/substrate/.claude/hooks/assert-verify-steering.sh +0 -77
  20. package/substrate/.claude/hooks/bassclef-source-config-validate.sh +0 -215
  21. package/substrate/.claude/hooks/bassclef-sync.sh +0 -634
  22. package/substrate/.claude/hooks/compound-noun-scrub.sh +0 -292
  23. package/substrate/.claude/hooks/kiss-expansion-inject.sh +0 -69
  24. package/substrate/.claude/hooks/longrun-prep-compounding-axis-check.sh +0 -492
  25. package/substrate/.claude/hooks/longrun-prep-compounding-sequence-check.sh +0 -492
  26. package/substrate/.claude/hooks/plain-english-steering.sh +0 -156
  27. package/substrate/.claude/hooks/post-skill-friction-check.sh +0 -177
  28. package/substrate/.claude/hooks/post-skill-telemetry.sh +0 -62
  29. package/substrate/.claude/hooks/pre-build-gate.sh +0 -511
  30. package/substrate/.claude/hooks/pre-commit-gate.sh +0 -451
  31. package/substrate/.claude/hooks/session-end.sh +0 -433
  32. package/substrate/.claude/hooks/session-reflection.sh +0 -303
  33. package/substrate/.claude/hooks/skill-body-grade-gate.sh +0 -219
  34. package/substrate/.claude/hooks/skill-body-intent-drift.sh +0 -107
  35. package/substrate/.claude/hooks/skill-step-list-check.sh +0 -171
  36. package/substrate/.claude/hooks/state-validate.sh +0 -271
  37. package/substrate/.claude/hooks/substrate-clarity-gate.sh +0 -1110
  38. package/substrate/.claude/hooks/temperance-gate.sh +0 -147
  39. package/substrate/.claude/hooks/testing-tier-enforce.sh +0 -233
  40. package/substrate/.claude/hooks/turn-prose-grade-measure.sh +0 -219
  41. package/substrate/.claude/hooks/turn-prose-kiss-check.sh +0 -463
  42. package/substrate/.claude/hooks/vocabulary-migration-check.sh +0 -171
  43. package/substrate/.claude/hooks/whereami-utc-gate.sh +0 -142
  44. package/substrate/.claude/luminaries/alan-cooper.md +0 -170
  45. package/substrate/.claude/luminaries/alistair-cockburn.md +0 -140
  46. package/substrate/.claude/luminaries/amazon-pr-faq.md +0 -34
  47. package/substrate/.claude/luminaries/ash-maurya.md +0 -121
  48. package/substrate/.claude/luminaries/bill-buxton.md +0 -210
  49. package/substrate/.claude/luminaries/charles-sanders-peirce.md +0 -150
  50. package/substrate/.claude/luminaries/david-ogilvy.md +0 -192
  51. package/substrate/.claude/luminaries/don-norman.md +0 -173
  52. package/substrate/.claude/luminaries/edward-tufte.md +0 -179
  53. package/substrate/.claude/luminaries/eric-evans.md +0 -160
  54. package/substrate/.claude/luminaries/frederick-brooks.md +0 -50
  55. package/substrate/.claude/luminaries/gang-of-four.md +0 -157
  56. package/substrate/.claude/luminaries/glenford-myers.md +0 -230
  57. package/substrate/.claude/luminaries/hunt-thomas.md +0 -115
  58. package/substrate/.claude/luminaries/hyrum-wright.md +0 -94
  59. package/substrate/.claude/luminaries/jason-fried-dhh.md +0 -46
  60. package/substrate/.claude/luminaries/jesse-james-garrett.md +0 -154
  61. package/substrate/.claude/luminaries/john-ousterhout.md +0 -94
  62. package/substrate/.claude/luminaries/karl-popper.md +0 -132
  63. package/substrate/.claude/luminaries/kent-beck.md +0 -168
  64. package/substrate/.claude/luminaries/linus-torvalds.md +0 -218
  65. package/substrate/.claude/luminaries/martin-fowler.md +0 -164
  66. package/substrate/.claude/luminaries/michael-feathers.md +0 -125
  67. package/substrate/.claude/luminaries/michael-nygard.md +0 -118
  68. package/substrate/.claude/luminaries/robert-c-martin.md +0 -164
  69. package/substrate/.claude/luminaries/saltzer-schroeder.md +0 -194
  70. package/substrate/.claude/luminaries/sophia-prater.md +0 -193
  71. package/substrate/.claude/luminaries/stephen-toulmin.md +0 -131
  72. package/substrate/.claude/luminaries/tony-hoare.md +0 -170
  73. package/substrate/.claude/luminaries/vaughn-vernon.md +0 -50
  74. package/substrate/.claude/luminaries/w-edwards-deming.md +0 -158
  75. package/substrate/.claude/rules/accessor-library-discipline.md +0 -138
  76. package/substrate/.claude/rules/adr-discipline.md +0 -120
  77. package/substrate/.claude/rules/api-conventions.md +0 -125
  78. package/substrate/.claude/rules/artifact-ingestion.md +0 -179
  79. package/substrate/.claude/rules/assert-only-after-verify.md +0 -137
  80. package/substrate/.claude/rules/blocked-items.md +0 -146
  81. package/substrate/.claude/rules/bootstrap-pair-discipline.md +0 -141
  82. package/substrate/.claude/rules/branching.md +0 -28
  83. package/substrate/.claude/rules/cold-adopter-harness-discipline.md +0 -129
  84. package/substrate/.claude/rules/commit-conventions.md +0 -22
  85. package/substrate/.claude/rules/compounding-axis-fresh-analysis.md +0 -188
  86. package/substrate/.claude/rules/compounding-sequence-fresh-analysis.md +0 -188
  87. package/substrate/.claude/rules/context-engineering.md +0 -202
  88. package/substrate/.claude/rules/context-management.md +0 -85
  89. package/substrate/.claude/rules/defensive-bash.md +0 -68
  90. package/substrate/.claude/rules/deferred-actions.md +0 -233
  91. package/substrate/.claude/rules/destructive-operations.md +0 -69
  92. package/substrate/.claude/rules/diagnosis.md +0 -38
  93. package/substrate/.claude/rules/github-issue-flash-tweet.md +0 -156
  94. package/substrate/.claude/rules/guardrails.md +0 -73
  95. package/substrate/.claude/rules/hook-wire-on-author.md +0 -103
  96. package/substrate/.claude/rules/identifier-leak-prevention.md +0 -104
  97. package/substrate/.claude/rules/iteration-bet-brief-completeness.md +0 -54
  98. package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +0 -98
  99. package/substrate/.claude/rules/longrun-prep-plan-doc-compression.md +0 -89
  100. package/substrate/.claude/rules/loop-discipline.md +0 -81
  101. package/substrate/.claude/rules/manual-prod-approval.md +0 -100
  102. package/substrate/.claude/rules/marker-enrichment-discipline.md +0 -99
  103. package/substrate/.claude/rules/mobile-ephemeral-session.md +0 -109
  104. package/substrate/.claude/rules/new-dependency-check.md +0 -51
  105. package/substrate/.claude/rules/oo-ad-entry-point.md +0 -117
  106. package/substrate/.claude/rules/operator-facing-prose.md +0 -196
  107. package/substrate/.claude/rules/option-label-discipline.md +0 -108
  108. package/substrate/.claude/rules/pattern-annotation.md +0 -100
  109. package/substrate/.claude/rules/plain-english-discipline.md +0 -156
  110. package/substrate/.claude/rules/plan-enumeration-needs-value-props.md +0 -211
  111. package/substrate/.claude/rules/pr-body-shape.md +0 -317
  112. package/substrate/.claude/rules/pr-strategy.md +0 -167
  113. package/substrate/.claude/rules/pr-title-shape.md +0 -161
  114. package/substrate/.claude/rules/prototype-workflow.md +0 -65
  115. package/substrate/.claude/rules/reserved-skill-names.md +0 -123
  116. package/substrate/.claude/rules/schema-management.md +0 -49
  117. package/substrate/.claude/rules/sdlc-gates.md +0 -149
  118. package/substrate/.claude/rules/security.md +0 -37
  119. package/substrate/.claude/rules/session-artifacts.md +0 -236
  120. package/substrate/.claude/rules/skill-composition-declarations.md +0 -124
  121. package/substrate/.claude/rules/skill-description-clarity.md +0 -247
  122. package/substrate/.claude/rules/skill-procedure-step-list.md +0 -137
  123. package/substrate/.claude/rules/state-schema-validation.md +0 -162
  124. package/substrate/.claude/rules/stuck-signal-diagnostic.md +0 -140
  125. package/substrate/.claude/rules/substrate-config-schema.md +0 -98
  126. package/substrate/.claude/rules/test-list-discipline.md +0 -175
  127. package/substrate/.claude/rules/test-sufficiency.md +0 -210
  128. package/substrate/.claude/rules/testing-tier-config.md +0 -145
  129. package/substrate/.claude/rules/testing.md +0 -38
  130. package/substrate/.claude/rules/turn-estimate-grounding.md +0 -134
  131. package/substrate/.claude/rules/visual-hierarchy.md +0 -437
  132. package/substrate/.claude/rules/we-dont-break-adopters.md +0 -126
  133. package/substrate/.claude/rules/whereami-load-bearing.md +0 -202
  134. package/substrate/.claude/rules/writing-craft-discipline.md +0 -92
  135. package/substrate/.claude/rules/wu-sequencing-compounds.md +0 -145
  136. package/substrate/.claude/skills/build/SKILL.md +0 -640
  137. package/substrate/.claude/skills/chronicle/SKILL.md +0 -55
  138. package/substrate/.claude/skills/clean-artifacts/SKILL.md +0 -249
  139. package/substrate/.claude/skills/decompose/SKILL.md +0 -280
  140. package/substrate/.claude/skills/diagnose/SKILL.md +0 -297
  141. package/substrate/.claude/skills/feynman/SKILL.md +0 -90
  142. package/substrate/.claude/skills/howdoi/SKILL.md +0 -105
  143. package/substrate/.claude/skills/ia-model/SKILL.md +0 -108
  144. package/substrate/.claude/skills/interaction-design/SKILL.md +0 -112
  145. package/substrate/.claude/skills/interpret-input/SKILL.md +0 -180
  146. package/substrate/.claude/skills/journal/SKILL.md +0 -209
  147. package/substrate/.claude/skills/kiss/SKILL.md +0 -449
  148. package/substrate/.claude/skills/launch/SKILL.md +0 -915
  149. package/substrate/.claude/skills/lean-canvas/SKILL.md +0 -332
  150. package/substrate/.claude/skills/longrun/SKILL.md +0 -463
  151. package/substrate/.claude/skills/luminary/SKILL.md +0 -481
  152. package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +0 -177
  153. package/substrate/.claude/skills/onboard-repo/SKILL.md +0 -1624
  154. package/substrate/.claude/skills/pattern-review/SKILL.md +0 -99
  155. package/substrate/.claude/skills/personas/SKILL.md +0 -207
  156. package/substrate/.claude/skills/promote/SKILL.md +0 -283
  157. package/substrate/.claude/skills/requirement/SKILL.md +0 -98
  158. package/substrate/.claude/skills/retro/SKILL.md +0 -117
  159. package/substrate/.claude/skills/riff/SKILL.md +0 -114
  160. package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +0 -163
  161. package/substrate/.claude/skills/session-end/SKILL.md +0 -309
  162. package/substrate/.claude/skills/session-log/SKILL.md +0 -299
  163. package/substrate/.claude/skills/skills/SKILL.md +0 -228
  164. package/substrate/.claude/skills/spec/SKILL.md +0 -105
  165. package/substrate/.claude/skills/sprint/SKILL.md +0 -392
  166. package/substrate/.claude/skills/stage/SKILL.md +0 -384
  167. package/substrate/.claude/skills/state-a-problem/SKILL.md +0 -185
  168. package/substrate/.claude/skills/temperance/SKILL.md +0 -108
  169. package/substrate/.claude/skills/use-case/SKILL.md +0 -417
  170. package/substrate/.claude/skills/user-stories/SKILL.md +0 -268
  171. package/substrate/.claude/skills/value-prop/SKILL.md +0 -251
  172. package/substrate/.claude/skills/verify/SKILL.md +0 -160
  173. package/substrate/.claude/skills/visual-review/SKILL.md +0 -503
  174. package/substrate/.claude/skills/whats-the-plan/SKILL.md +0 -202
  175. package/substrate/.claude/skills/whereami/SKILL.md +0 -307
  176. package/substrate/AGENTS.md +0 -79
  177. package/substrate/CLAUDE-lite.md +0 -85
  178. package/substrate/CODE_OF_CONDUCT.md +0 -28
  179. package/substrate/CONTRIBUTING.md +0 -177
  180. package/substrate/README.md +0 -173
  181. package/substrate/SECURITY.md +0 -19
  182. package/substrate/architecture/decisions/ADR-029-release-pipeline.md +0 -79
  183. package/substrate/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +0 -139
  184. package/substrate/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +0 -192
  185. package/substrate/architecture/decisions/ADR-039-release-tagging-scheme.md +0 -145
  186. package/substrate/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +0 -155
  187. package/substrate/architecture/decisions/ADR-044-unified-skill-body-template.md +0 -162
  188. package/substrate/lib/clean-artifacts-sweep.sh +0 -112
  189. package/substrate/lib/code-comment-discipline.sh +0 -144
  190. package/substrate/lib/composer-preflight.sh +0 -459
  191. package/substrate/lib/hook-inject.sh +0 -255
  192. package/substrate/lib/luminary-pick.sh +0 -96
  193. package/substrate/lib/output-discipline.sh +0 -143
  194. package/substrate/lib/prose-scan-boundary.sh +0 -171
  195. package/substrate/lib/rewrite-check.sh +0 -214
  196. package/substrate/lib/state.sh +0 -1372
  197. package/substrate/lib/telemetry.sh +0 -205
  198. package/substrate/lib/tier-check.sh +0 -187
  199. package/substrate/lib/tier-dependency-audit.sh +0 -1088
  200. package/substrate/presence/install/bassclef-hook-connect.sh +0 -178
  201. package/substrate/presence/install/bassclef-sync.dispatcher.template.sh +0 -841
  202. package/substrate/presence/install/bassclef-sync.template.sh +0 -2076
  203. package/substrate/presence/install/schedule-auto-save.cron.sh +0 -88
  204. package/substrate/presence/install/schedule-auto-save.taskscheduler.md +0 -122
  205. package/substrate/scripts/aggregate-telemetry.sh +0 -217
  206. package/substrate/scripts/analyze-tier-dependencies.sh +0 -239
  207. package/substrate/scripts/generate-lite-manifest.sh +0 -505
  208. package/substrate/scripts/generate-tier-manifest.sh +0 -28
  209. package/substrate/scripts/intent-drift-check.sh +0 -456
  210. package/substrate/scripts/lite-manifest-drift-check.sh +0 -146
  211. package/substrate/scripts/render-lite-manifest-doc.sh +0 -150
  212. package/substrate/standards/adr-template.md +0 -86
  213. package/substrate/standards/api-conventions/nextjs.md +0 -84
  214. package/substrate/standards/artifact-composition.md +0 -209
  215. package/substrate/standards/bash-hook-safety.md +0 -246
  216. package/substrate/standards/bassclef-configs-schema.md +0 -232
  217. package/substrate/standards/bassclef-evolution.md +0 -143
  218. package/substrate/standards/bassclef-internal-jargon.md +0 -244
  219. package/substrate/standards/bassclef-managed-sentinel.md +0 -96
  220. package/substrate/standards/bassclef-source-config.md +0 -228
  221. package/substrate/standards/branch-stacking.md +0 -408
  222. package/substrate/standards/code-safety-principles.md +0 -176
  223. package/substrate/standards/composer-prerequisites.md +0 -155
  224. package/substrate/standards/deferred-actions-schema.md +0 -204
  225. package/substrate/standards/dependency-discipline/cargo.md +0 -39
  226. package/substrate/standards/dependency-discipline/gem.md +0 -43
  227. package/substrate/standards/dependency-discipline/go-mod.md +0 -41
  228. package/substrate/standards/dependency-discipline/npm.md +0 -42
  229. package/substrate/standards/dependency-discipline/pip.md +0 -42
  230. package/substrate/standards/deployment-topology/ec2-tailscale.md +0 -225
  231. package/substrate/standards/deployment-topology.md +0 -69
  232. package/substrate/standards/docs-sync-allowlist.md +0 -76
  233. package/substrate/standards/domain-and-dns.md +0 -145
  234. package/substrate/standards/frontend-stack.md +0 -67
  235. package/substrate/standards/frontmatter-schema.md +0 -154
  236. package/substrate/standards/graceful-exit.md +0 -227
  237. package/substrate/standards/hook-idempotency.md +0 -102
  238. package/substrate/standards/hook-injection-discipline.md +0 -202
  239. package/substrate/standards/hook-install-class.md +0 -215
  240. package/substrate/standards/input-handler-interface.md +0 -152
  241. package/substrate/standards/lite-manifest-schema-changes.md +0 -135
  242. package/substrate/standards/luminary-matching.md +0 -105
  243. package/substrate/standards/luminary-problem-patterns.md +0 -481
  244. package/substrate/standards/migration-discipline/active-record.md +0 -50
  245. package/substrate/standards/migration-discipline/alembic.md +0 -43
  246. package/substrate/standards/migration-discipline/gorm.md +0 -50
  247. package/substrate/standards/migration-discipline/prisma.md +0 -53
  248. package/substrate/standards/migration-discipline/sqlalchemy.md +0 -51
  249. package/substrate/standards/mobile-ephemeral-session.md +0 -167
  250. package/substrate/standards/model-routing-discipline.md +0 -160
  251. package/substrate/standards/ogilvy-writing-rules.md +0 -225
  252. package/substrate/standards/opener-discipline.md +0 -96
  253. package/substrate/standards/operator-facing-prose-discipline.md +0 -201
  254. package/substrate/standards/persona-schema.md +0 -229
  255. package/substrate/standards/pluggable-luminaries.md +0 -323
  256. package/substrate/standards/pr-body-discipline.md +0 -115
  257. package/substrate/standards/preview-state-schema.md +0 -189
  258. package/substrate/standards/project-directory-layout.md +0 -276
  259. package/substrate/standards/release-tagging.md +0 -137
  260. package/substrate/standards/reserved-skill-names.md +0 -120
  261. package/substrate/standards/scannable-multi-option-output.md +0 -261
  262. package/substrate/standards/sdlc-compliance.md +0 -286
  263. package/substrate/standards/sdlc-gates/typescript.md +0 -57
  264. package/substrate/standards/secrets-lifecycle.md +0 -210
  265. package/substrate/standards/security-scanner-adapter.md +0 -145
  266. package/substrate/standards/session-board.md +0 -256
  267. package/substrate/standards/skill-output-discipline.md +0 -90
  268. package/substrate/standards/state-spine-contract.md +0 -255
  269. package/substrate/standards/state-spine.md +0 -511
  270. package/substrate/standards/steering-hints/kiss-words.md +0 -11
  271. package/substrate/standards/substrate-config-schema.md +0 -267
  272. package/substrate/standards/tech-stack-config.md +0 -109
  273. package/substrate/standards/tier-dependency-analysis.md +0 -167
  274. package/substrate/standards/tier-runtime-deps/lite.md +0 -57
  275. package/substrate/standards/tier-tag-schema.md +0 -155
  276. package/substrate/standards/two-layer-config.md +0 -99
  277. package/substrate/standards/use-case-format.md +0 -292
  278. package/substrate/standards/user-story-invest.md +0 -268
  279. package/substrate/standards/velocity-and-appetite.md +0 -229
  280. package/substrate/standards/voice-input-pattern.md +0 -119
  281. package/substrate/standards/whereami-schema.md +0 -301
  282. package/substrate/standards/worktree-management.md +0 -211
  283. package/substrate/standards/writing-guide.md +0 -213
  284. package/substrate/templates/chronicle-template.md +0 -75
  285. package/substrate/templates/deferred-action-template.md +0 -45
  286. package/substrate/templates/memory-proposal-template.md +0 -77
  287. package/substrate/templates/persona-template.md +0 -200
  288. package/substrate/templates/pr-faq.md +0 -45
  289. package/substrate/templates/secret-rotation-template.md +0 -162
  290. package/substrate/templates/spec-template.md +0 -131
  291. package/substrate/templates/use-case-template.md +0 -194
  292. package/substrate/templates/user-story-template.md +0 -107
  293. package/substrate/templates/whereami-template.md +0 -101
@@ -1,463 +0,0 @@
1
- ---
2
- name: longrun
3
- description: "Run a long autonomous session that paces itself. Prepares scope. Checkpoints at phase boundaries. Closes with session log and retrospective. Three modes: prep, checkpoint, closeout."
4
- problem: "Sessions over 50 turns drift. Context compacts and the goal disappears."
5
- value: "A long autonomous session that paces itself. Prep and checkpoint and closeout \u2014 clean state every wake."
6
- inputs: [prep or checkpoint or closeout mode plus scope hints]
7
- outputs: [Goal doc with time budget, Checkpoint status at phase boundaries, Session log at closeout]
8
- tier: lite
9
- modes: [prep, checkpoint, closeout]
10
- composes_with: [value-prop, kiss, temperance, luminary, roadmap-reconcile, retro, promote, session-end, chronicle, pattern-review]
11
- authoring_luminaries:
12
- primary:
13
- - john-ousterhout
14
- - sophia-prater
15
- supporting:
16
- - alistair-cockburn
17
- - don-norman
18
- - edward-tufte
19
- - jason-fried-dhh
20
- - amazon-pr-faq
21
- - kent-beck
22
- - linus-torvalds
23
- ---
24
-
25
- # /longrun
26
-
27
- ## What you get
28
-
29
- A long autonomous session that stays on track. You type `/longrun prep` once at session start. I set up scope, land the goal doc, touch gate markers, and start work. I checkpoint at every phase boundary, after each compaction, and every 25 steps. At close I write the session log, update whereami, run the retrospective, and open the PR. You get one clean landing when I finish — not a session that drifts mid-way.
30
-
31
- ## When to use it
32
-
33
- Use `/longrun` when any of these hold:
34
-
35
- - Two or more goals in flight this session
36
- - Estimated more than 50 steps of work
37
- - The session will cross at least one context compaction
38
- - You state "longrun" explicitly
39
-
40
- <!-- FKGL-EXEMPT: mirrors precedent shape from /shape /spec /build /launch /decompose per bassclef-upstream#1363 — literal header + prose required by scripts/tests/adr-consult-step.test.sh -->
41
- ## ADR-consult — fire before scope confirmation (per bassclef-upstream#424)
42
-
43
- Read every relevant ADR in `architecture/decisions/` before confirming scope. If your scope deviates from any ADR's decision or constraints, surface the deviation as the first agenda item — operator decides amend-ADR vs. revise-scope.
44
-
45
- Per `.claude/rules/adr-discipline.md`. Mechanism: `adr-discipline-check.sh` fires on substantive architectural edits (wired in `.claude/settings.json` since goal 28a Step 1). The Tier 0 test for this step greps for the literal header `## ADR-consult — fire before scope confirmation` in each of `/build /launch /spec /decompose /shape /longrun`.
46
- <!-- /FKGL-EXEMPT -->
47
-
48
- ## Tier gate (bassclef#740 Task 1.4; amended bassclef#1383)
49
-
50
- `/roadmap-reconcile` and `/retro` both flipped to `tier: lite` as deep modules per canvas 2026-07-19-bassclef-lite Q6 Option E. Both run identically at every tier. Prep Step 0.5 and Closeout Step 2 run as documented for every adopter — lite, standard, and ultra.
51
-
52
- The tier-check pattern below stays available for future skills that need per-tier branching:
53
-
54
- ```bash
55
- source lib/tier-check.sh
56
- tier=$(resolve_adopter_tier)
57
- ```
58
-
59
- Per canvas 2026-07-19-bassclef-lite Q6 Option E — one SKILL.md file, same name in both tiers. When a skill's body genuinely diverges per tier, the body carries runtime tier awareness with graceful degrade. Skills that share behavior across tiers stay simple and drop the branch.
60
-
61
- For single-goal sessions under 50 steps with no compaction risk, use `/autonomous start` directly. `/longrun` adds prep and checkpoint discipline whose overhead exceeds value on shorter work.
62
-
63
- ## Composes with — cluster shape
64
-
65
- `/longrun` sits at the center of a larger cluster. Skills around it feed in, close out, or fire mid-session as helpers.
66
-
67
- **Upstream — feed the session:**
68
-
69
- - Discovery layer (Sam bootstrap, Louis kickoff): `/interview-me`, `/extract-intent`, `/interpret-input`, `/empathy-map`, `/jtbd-tasks`, `/lean-canvas`, `/value-prop-canvas`, `/personas`
70
- - Strategy authoring (mid-session per persona): `/state-a-problem`, `/value-prop`, `/requirement`, `/use-case`, `/user-stories`, `/spec`, `/ticket`
71
-
72
- **Downstream — close the session:**
73
-
74
- - `/session-log` — write the session's log entry
75
- - `/session-end` — tiered obligations (must + should + may)
76
-
77
- **Helpers — fire mid-session across every stage:**
78
-
79
- - 5 gates — `/temperance`, `/verify`, `/diagnose`, `/kiss`, `/luminary`
80
-
81
- The verb is porcelain (Git's word for a small user-typed command). All discipline runs by composition inside — you type `/longrun` and the cluster runs itself.
82
-
83
- Strategy skills serve Sam AND Louis directly. Sam types `/state-a-problem` when a ticket needs a problem opener. Louis types `/lean-canvas` when designing a business shape. They stand alone at lite. `/longrun` composes them per stage of a spec-authoring session.
84
-
85
- ## FAQ
86
-
87
- ### What are the three modes?
88
-
89
- - **prep** — you type this once at session start. I set up scope, mount the goal doc, touch markers, and confirm ready state.
90
- - **checkpoint** — I fire this on my own at phase boundaries, after compaction events, every ~25 steps, or when a step exceeds 1.5× its time budget. Updates the session board; audits for `/promote` candidates; reports status.
91
- - **closeout** — I fire this when the Stop hook fires or you invoke `/session-end`. Runs `/retro`, files missed `/promote` items, extracts insights, updates whereami, then runs `/session-end`.
92
-
93
- ### What is the default configuration?
94
-
95
- Orchestrator-gated and sequential. You only step in at real decision points — phase boundaries, PR merges, scope beyond time budget (the steps you'll spend at your current pace before cutting scope), hard ceilings, production deploy approvals. Everything else runs on its own.
96
-
97
- I read `longrun.orchestrator_merge.mode` from `.claude/bassclef-configs.jsonc`:
98
-
99
- - `operator-gated` (default) — every PR pauses for your review.
100
- - `agent-merges-within-scope` — I merge PRs on my own when the change stays inside the goal's scope and does not hit a hard ceiling.
101
-
102
- Hard ceilings are not overridable: `auth`, `schema`, `security`, `prod-deploy`, `blast-radius-floor`.
103
-
104
- ### What are the checkpoint triggers?
105
-
106
- - **Phase boundary** — the last step in a phase lands. I re-fire session `/temperance`. I update the session board.
107
- - **Post-compaction** — a compaction event fires. I re-read the survival kit and re-anchor on the goal.
108
- - **Turn-counter** — every ~25 steps. Verify no scope drift; surface budget status.
109
- - **Context saturation** — I self-check for context pressure (large file reads, broad codebase exploration, test output accumulation). Fires proactively before the system compacts.
110
- - **Scope drift** — a step exceeds its time budget × 1.5. Pause and re-anchor.
111
- - **/promote audit** — I detected a bug in the rules or a pattern to file. Do it now; do not defer to closeout.
112
-
113
- ### How does /longrun compose with other skills?
114
-
115
- | Skill | Where it fires |
116
- |---|---|
117
- | `/temperance` | Prep (scope anchor), checkpoint (re-anchor) |
118
- | `/luminary` | Prep (pick lenses), applied at authoring |
119
- | `/retro` | Closeout (retrospective) |
120
- | `/promote` | Checkpoint (proactive), closeout (audit backstop) |
121
- | `/session-end` | Closeout (extends; does not replace) |
122
- | `/whereami` | Closeout (update at session end) |
123
- | `/sprint` | Post-compaction checkpoint (re-orient) |
124
- | `/session-log` (formerly `/chronicle`) | Closeout (write narrative record) |
125
- | `/autonomous start` | Prep delegates after pre-flight clears |
126
-
127
- ### How is /longrun distinct from /retro, /autonomous start, and /session-end?
128
-
129
- - `/retro` covers a single goal at end only. No `/promote` audit; no insight extraction. `/longrun closeout` builds on `/retro` and adds those two.
130
- - `/autonomous start` boots agents but does not manage the reflection cycle. `/longrun prep` delegates to `/autonomous start` AFTER installing the reflection scaffolding.
131
- - `/session-end` covers tiered obligations (MUST/SHOULD/MAY). `/longrun closeout` runs `/retro`, files `/promote` items, extracts insights, then runs `/session-end`.
132
-
133
- ### How does the operator dispatch each mode?
134
-
135
- You type `/longrun prep` once. Checkpoint and closeout fire on their own. Overrides:
136
-
137
- - `/longrun checkpoint --now` — you noticed a pattern and want to anchor before the next auto-firing.
138
- - `/longrun closeout --now` — you want to end deliberately before Stop fires.
139
-
140
- Unknown args are rejected with a helpful message. `/longrun` does NOT silently proceed with defaults.
141
-
142
- ## Details below the fold
143
-
144
- ### Prep procedure — you type once at session start
145
-
146
- **Step 0** — Open with a `/value-prop tweet` claim and a `/kiss words` grade-10 summary before any tables land. The operator scans on mobile; the tables come after.
147
-
148
- **Step 0.4** — Read `docs/whereami.md` before scope confirmation. Post the line that shows the read landed: `**Whereami read:** docs/whereami.md at <ISO timestamp>`. Whereami is the source of truth for in-flight work.
149
-
150
- **Step 0.5** — Dispatch `/roadmap-reconcile --dry-run`. Silent when no drift. Surface the diff inline when drift is detected; wait for operator acknowledgement, canvas amend, or explicit deferral.
151
-
152
- **Step 0.6** — Read related goals across repos. Read the active goal's `parent_drivers`, `acceptance`, and `out_of_scope`. Read each parent goal up the chain until there is no parent. Read `parent_roadmap` if any goal in the chain has one. Touch `state/markers/orientation-gate/<branch-slug>.marker`.
153
-
154
- **Step 0.65** — Complete lookback. List every open item before you pick scope. `parent_drivers` names what the parent knew. This step names what is open now. Closes bassclef-upstream#776.
155
-
156
- Cover each class:
157
-
158
- - Every ticket named in whereami recap sections. The `operator_recap` and `prior_operator_recap` blocks list them by number.
159
- - Every entry from a grade audit that reads above the ceiling.
160
- - Every deferred, paused, or stuck item from a prior recap.
161
- - Every canvas at `docs/canvases/` and curation doc at `docs/curation/`.
162
- - Every consultation output at `docs/operator-private/consultations/` tied to open threads.
163
- - Chained skills that lite skills dispatch. Read tier tags of skills the active goal calls. Lite work needs to know which chained skills need inlining or tagging.
164
-
165
- Silence on any class is not deferral. Enumerate the items or state which classes are out of scope this session and why.
166
-
167
- **Step 0.66** — Read active canvases. List `docs/canvases/*.md`. For each canvas whose frontmatter carries `verification_status: draft` or `accepted`, Read the full body before proposing options. Cite the canvas file path plus the Q number that informs each option. Whereami recap is a summary. Read the canvas file for the source. Closes bassclef-upstream#813.
168
-
169
- **Step 0.7** — Release pipeline status check (bassclef-upstream only). Surface open release PRs older than 24 hours, CI failures, or commits ahead of public before scope confirmation. Stuck PRs get first priority.
170
-
171
- **Step 0.8** — Run the pre-flight helper for code work. Source the helper. Call it with the /longrun name and turn estimate. Skip when the session plans no code. Fire when the session plans to touch app code, hooks, libs, or scripts. The helper runs Check 7. Check 7 looks for a use case, spec, or decomposition on disk. The floor per code class lives at `.claude/rules/oo-ad-entry-point.md`.
172
-
173
- ```bash
174
- source "${BASSCLEF_DIR:-$REPO_ROOT}/lib/composer-preflight.sh"
175
- composer_preflight_check "longrun" "${ESTIMATED_TURNS:-100}" | composer_preflight_render "longrun"
176
- ```
177
-
178
- The helper stays advisory through 2026-10-31 per ADR-031. Old hooks and libs land without a retrofit brief use case. New hooks and libs merit one per Cockburn tiering.
179
-
180
- **Step 0.85** — Plan-doc detection (per bassclef-upstream#1307 R1). Check for `docs/next-session-plan-*.md` files newer than 48 hours. If a matching plan doc exists AND its body carries a `## Recommended session sequence` (or `## Recommended sequence` OR `## Next-session pickup`) section, enter compressed prep mode. In compressed mode:
181
-
182
- 1. Read the plan doc's Recommended section
183
- 2. Cite the plan doc path inline as source
184
- 3. Present the pre-authored sequence as-is (scan-table + step cards for the recommended item only)
185
- 4. Skip Step 1.4c full ceremony (section-anchor rule still holds; the option-table + 5-axis-per-option blocks compress to one recommended-option card)
186
- 5. Ask operator "proceed with plan doc pick, pick a smaller item, or reshape?"
187
-
188
- If no plan doc matches: run the full Steps 1.4c-1.7b ceremony as documented.
189
-
190
- Detection command:
191
-
192
- ```bash
193
- find docs -maxdepth 1 -name 'next-session-plan-*.md' -mtime -2 -type f 2>/dev/null | head -1
194
- ```
195
-
196
- Rule extension: `.claude/rules/longrun-prep-plan-doc-compression.md`. Anchor luminary: @luminary john-ousterhout (deep module — compression path hides plan-doc detection behind a narrow interface).
197
-
198
- Rationale: operator files a plan doc AFTER a prior session to pre-pick next scope. Re-authoring the full option table at the next prep wastes ~15-25 turns. #1307 filed 2026-08-19 as workflow-overhead R1 with evidence — one session ran ~25-40 turns of ceremony vs ~5 turns needed.
199
-
200
- **Step 0.87 — Amendment A1: OOAD chain read at pre-flight (per #1150 + #1167 + #1414).** When the goal doc references touch adopter app paths (`src/`, `apps/`, `packages/`, `app/`) OR substrate paths (`lib/`, `scripts/`, `.claude/hooks/`, `.claude/skills/`, `.claude/rules/`, `.claude/luminaries/`, `standards/state-spine/schemas/`, `presence/install/`) OR scope prose names UI or code work, read the design chain per `.claude/bassclef-orientation.md` L100-108. Ceremony depth scales per `.claude/rules/oo-ad-entry-point.md` matrix — script bug fix = skip tier; script extension = brief use case; hook + lib = fully-dressed:
201
-
202
- ```
203
- Canvas → Spec → Personas → JTBD → Task-scenarios / Use-case → IA-model → Interaction-design → Decompose
204
- ```
205
-
206
- For each of the 9 chain steps, check whether a matching artifact exists on disk:
207
-
208
- - Canvas — `docs/canvases/*.md`
209
- - Spec — `docs/specs/*.md`
210
- - Personas — `docs/personas/*.md`
211
- - JTBD — `docs/jtbd/*.md`
212
- - Task-scenarios — `docs/task-scenarios/*.md`
213
- - Use-case — `docs/use-cases/*.md`
214
- - IA-model — `docs/ia-models/*.md`
215
- - Interaction-design — `docs/interaction-designs/*.md`
216
- - Decomposition — `docs/decompositions/*.md`
217
-
218
- Emit one-line note per gap. Do not BLOCK. Operator picks fold-or-skip per gap. Skip this step when the scope is prose only. This keeps the adopter contract per ADR-031. Old prose sessions see no new dispatches.
219
-
220
- The step trigger reads two sources. First the goal doc frontmatter `references` array. Second the scope prose from the goal's Problem and Goal sections. Scope signal present means chain read fires. Absent means chain read skips. Vernon anti-corruption layer per pattern annotation. Bug-fix scope does not fire the chain. Prose-only scope does not fire the chain.
221
-
222
- **Step 1** — Pre-flight check:
223
-
224
- - Parent roadmap state read via `state_roadmap_get`
225
- - Recursive parent-goal walk complete
226
- - BLOCKED items resolved or explicit deferral stated
227
- - Stack manifests written upfront (one per goal)
228
- - Session board written if two or more goals or phases are active
229
- - Survival kit declared (paths to re-read after compaction)
230
- - Time budget grounded per `.claude/rules/turn-estimate-grounding.md` — cite past goal actuals, range not point, name the shape driver
231
- - Orchestrator merge mode surfaced
232
-
233
- **Step 1.4b** — Name the option-set shape (per bassclef-upstream#832). Two choices:
234
-
235
- - **MECE** — each option covers a different scope. No overlap.
236
- - **Nested** — option a is smallest. Option b builds on a. Option c builds on b.
237
-
238
- Pick one shape. Do not mix them.
239
-
240
- **Step 1.4c** — Section-anchor rule (per bassclef-upstream#853; Norman + Garrett). Every table in prep output ships under a distinct `###` header. One anchor per concern:
241
-
242
- - `### Options` — the option-set table
243
- - `### Compounding value per option` — the 6-axis block (Step 1.5; new default per bassclef-upstream#1555 PR-2. Legacy 5-axis accepted through 2026-10-31 grace window)
244
- - `### Adopter benefit per option` — the 3-axis block (Step 1.6)
245
- - `### Step sequencing` — the step table (Step 1.7)
246
- - `### Per-step compounding` — the axis-per-step block (Step 1.7a; 6-axis default, 5-axis grace)
247
-
248
- Between top-level `###` anchors, use at least 2 blank lines OR a horizontal rule (`---`). Never stack two tables under one anchor. See the Norman + Garrett debate below. It carries the design principles.
249
-
250
- <!-- FKGL-EXEMPT: worked example — code fence + heading hierarchy per bassclef-upstream#1535 -->
251
- **Worked example — H2 / H3 / H4 hierarchy** (per bassclef-upstream#1535; Norman signifier + Feathers sprout). The `### Compounding value per option` anchor names the section. Individual options nest at H4 (`#### Option a`) beneath it. The hook regex accepts H2 through H6 or bold prefix (`**Option a`) since PR #1534; H4 nested under H3 is the canonical shape adopters most often reach for.
252
-
253
- Copy this shape and the hook clears first-shot:
254
-
255
- ```markdown
256
- ### Compounding value per option
257
-
258
- #### Option a — <label>
259
-
260
- - Where the payoff shows up: <value>
261
- - How often it fires: <value>
262
- - What must be true first: <value>
263
- - Does this teach a shape later work reuses: <value>
264
- - What breaks if we ship this half-done: <value>
265
-
266
- #### Option b — <label>
267
-
268
- - Where the payoff shows up: <value>
269
- - How often it fires: <value>
270
- - What must be true first: <value>
271
- - Does this teach a shape later work reuses: <value>
272
- - What breaks if we ship this half-done: <value>
273
- ```
274
-
275
- Same H3 container + H4 options shape applies to `### Adopter benefit per option` (Step 1.6) and `### Per-step compounding` (Step 1.7a). Do NOT stack two options under one H4 header. Do NOT skip the container anchor. See fixture `.claude/hooks/tests/fixtures/2026-09-08-step-1-4c-worked-example/prep-message.txt` (pinned by Test 28 in `longrun-prep-compounding-sequence-check.test.sh`) for the exact body the hook accepts.
276
- <!-- /FKGL-EXEMPT -->
277
-
278
- **Step 1.4d** — Delta-rendering rule (per bassclef-upstream#853; Norman feedback loop). When the operator asks for a refinement (add column, change filter, reshape one option), render ONLY the delta. Cite the source anchor by name.
279
-
280
- Anti-pattern — silent rebuild:
281
-
282
- > Operator: "add a change-class column"
283
- > Agent re-renders all 4-5 tables verbatim plus one new column
284
-
285
- Correct pattern — named delta:
286
-
287
- > Operator: "add a change-class column"
288
- > Agent: "Adding column to § Options above:"
289
- > [renders only the new column with the option labels]
290
-
291
- Full re-render is only correct when the operator asks for it explicitly ("show me the full picture again") OR the underlying option set changed.
292
-
293
- **Step 1.4e** — Card + scan-table shape (per goal 24e; Tufte + Prater). Multi-option output has three parts. First, a compact scan-table on top. Second, one card per option. Third, step cards for the recommended option only. See `standards/scannable-multi-option-output.md` § Card template + § Glyph legend + § Progressive disclosure.
294
-
295
- **Step 1.5** — Recommendation lands FIRST at the top of Step 1.5 (per bassclef-web#152 R1). One sentence naming the recommended option, its scope, turn range, and risk. Reader sees the pick before scrolling. Format:
296
-
297
- > **Recommend:** Option a (scope X · N-M turns · risk 🟢/🟡/🔴) because Y.
298
-
299
- Then under `### Compare options`, render a compact scan-table. Then under `### Compounding value per option`, render the 5-axis block for the recommended option only. Per bassclef-upstream#1376. Non-recommended options carry axis values as cells in the scan-table row above. One cell per axis per option. Reader lands the recommended card fast. Other options stay auditable from the scan-table row.
300
-
301
- <!-- FKGL-EXEMPT: column enumeration + glyph-legend cross-ref -->
302
- Scan-table columns: `Option`, `Scope`, `Turns`, `Compounds`, `Risk`, `Why not (non-rec.)`. Glyphs encode risk (🟢/🟡/🔴). Words carry compounding rate. The `Why not` column carries one line per non-recommended option — what the operator gives up. The recommended option's cell reads `—` (recommended). Fresh analysis per option; do not copy from other docs.
303
- <!-- /FKGL-EXEMPT -->
304
-
305
- Then the axis block under `### Compounding value per option`. Bullets carry each axis for the recommended option. Per `.claude/rules/compounding-sequence-fresh-analysis.md` postcondition. The section satisfies the rule and the `longrun-prep-compounding-sequence-check.sh` hook. Cells carry each axis for other options. One cell per axis per option.
306
-
307
- <!-- FKGL-EXEMPT: axis enumeration + grace-window note -->
308
- The 6-axis default (new; per bassclef-upstream#1555 PR-2). These read as practical decision fields for Sam and Louis:
309
-
310
- - **Deliverable** — what ships when this option lands (plain sentence)
311
- - **Problem** — user pain the option removes (draft via `/state-a-problem brief`; ≤500 chars)
312
- - **Value prop** — claim + sharpener (draft via `/value-prop tweet`; ≤280 chars)
313
- - **Turns** — grounded range citing past goal actuals per `.claude/rules/turn-estimate-grounding.md`
314
- - **Risk** — 🟢 low / 🟡 medium / 🔴 high
315
- - **Shipping priority** — Q1 / Q2 / Q3 / Q4 or blank (blank prompts `Run /eisenhower to prioritize?`)
316
-
317
- The 5-axis legacy shape (grace window through 2026-10-31 per ADR-031; hook accepts both):
318
-
319
- - **Where the payoff shows up** (was: Compounding surface) — per-PR / per-release / per-session / per-adopter / per-quarter
320
- - **How often it fires** (was: Compounding rate) — continuous / frequent / per-session / per-adopter / per-quarter
321
- - **What must be true first** (was: Foundation prereq) — none, or specific ticket / config flag / prior goal
322
- - **Does this teach a shape later work reuses** (was: Inverse-dependency) — yes (name the later work) / no
323
- - **What breaks if we ship this half-done** (was: Risk class) — low / medium / high
324
-
325
- Hook accepts either shape through the grace window per PR #1591. R8 catch preserved via `/state-a-problem` + `/value-prop` skill dispatches — those tools resist copy-paste and force fresh per-option analysis.
326
- <!-- /FKGL-EXEMPT -->
327
-
328
- **Step 1.6** — Under `### <label> · <scope> · <turns> · <risk>`, render a full card for recommended-only. Non-recommended options do NOT get a card by default (per #959 + bassclef-web#152 R2; Prater + Tufte + Cooper). They ship their rationale in the Step 1.5 `Why not` column plus the § Compounding value per option block above. Default prep volume drops by roughly half. Operators pick from the scan table. They read the card only for the option they lean toward. Progressive disclosure per Prater. Operator asks "show cards for B and C too" to expand.
329
-
330
- <!-- FKGL-EXEMPT: card field enumeration + progressive disclosure rule -->
331
- The recommended card carries `**Problem**`, `**Value**`, `**Compounds**` (one-line summary — 5 axes live in the § Compounding value per option section per Step 1.5), `**Adopter**` (mechanism + visibility + action). Full field spec at `standards/scannable-multi-option-output.md` § Card template.
332
-
333
- On operator ask ("show cards for B and C too") — render full cards for every option using the same template. Progressive disclosure per Prater.
334
- <!-- /FKGL-EXEMPT -->
335
-
336
- **Step 1.7** — Under `### Steps for <recommended option>`, render step cards only for the option this run recommends.
337
-
338
- <!-- FKGL-EXEMPT: step-card field enumeration + progressive disclosure rule -->
339
- Each step card carries `**Problem**`, `**Produces**`, `**Consumes**`, `**Teaches**`, risk glyph. Not for all options. Progressive disclosure per Prater. On operator ask ("show steps for B and C too"), expand for all.
340
- <!-- /FKGL-EXEMPT -->
341
-
342
- **Step 1.7b** — Recommendation at end. One sentence citing compounding + risk. Reader scans anchors first. Recommendation lands after.
343
-
344
- **Step 2** — Session `/temperance` fires with the stated scope question: "Am I about to ship X (inside the time budget) — or am I drifting into adjacent scope Y or Z?" Right thing, right way, scope drift trigger declared.
345
-
346
- **Step 2a — /pre-mortem light BEFORE any code work (per `.claude/rules/loop-discipline.md` Step 0.5).** When the session will ship code or substrate, dispatch `/pre-mortem light` — 3 luminary lenses × 5-8 risks per lens, 30 min per Klein workshop shape. Write the risk ledger to `docs/risk-ledgers/<date>-<slug>.md`. Touch the marker at `state/markers/pre-mortem/<branch-slug>.marker` citing the ledger path. Strongest concerns fold into the plan before edits begin. Skip Step 2a when scope is prose-only or research-only. The pre-commit-gate hook enforces the marker at first Edit on substrate paths per goal 24a / #836.
347
-
348
- **Step 2b — Amendment A2: /luminary consult on design decision (per #1150 + #1167).** When scope signals a design decision, dispatch /luminary consult. Design decision means new SKILL, new rule, new hook, new lib, structural refactor, or UX surface change. Read the goal doc `authoring_luminaries.primary` frontmatter field. Pass the primary lens to /luminary. Skip Step 2b when scope is a bug-fix or a one-line change per `.claude/rules/oo-ad-entry-point.md` matrix skip tier.
349
-
350
- **Step 3** — Register checkpoint triggers (phase boundary, compaction detection, turn counter, saturation milestone, scope drift, `/promote` audit).
351
-
352
- **Step 4** — Register closeout trigger. The Stop hook composes `/longrun closeout` before existing `/session-end` runs.
353
-
354
- ### Checkpoint procedure — I fire on my own
355
-
356
- 1. State the trigger.
357
- 2. Lead with a `/value-prop tweet` claim and a `/kiss words` grade-10 opener.
358
- 3. Re-read the parent roadmap state via accessor. Detect if another worker released a step.
359
- 4. Re-anchor `/temperance` with the current scope question.
360
- 5. Update the session board.
361
- 6. Audit for `/promote` candidates. File proactively rather than deferring.
362
- 6.5. **Amendment A3: /pattern-review per step (per #1150 + #1167).** When the current step's goal references a decomposition doc AND that doc names `@pattern` references, dispatch `/pattern-review` with the decomposition path. Skip when the decomposition names no `@pattern`. Contract per `.claude/rules/pattern-annotation.md` L57-62.
363
- 7. Report status: steps used, time budget remaining, goals in flight, next step, any pivots since last checkpoint.
364
- 8. Continue vs pause: continue on budget; pause if a step exceeds 1.5× time budget; pause if a hard ceiling is hit.
365
-
366
- ### Closeout procedure — I fire on my own
367
-
368
- 1. Lead with a `/value-prop tweet` claim and a `/kiss words` grade-10 opener.
369
- 2. Run `/retro`.
370
- 3. Audit for `/promote` candidates. Backstop for anything missed at checkpoints.
371
- 4. Extract discoveries from the session log. Propose `design/discoveries/` files.
372
- 4.5. **Amendment A4: OOAD chain-dispatch counter (per #1150 + #1167).** Read the session-wide count of chain-dispatch events fired during this session (A1 chain reads + A2 luminary consults + A3 /pattern-review dispatches). Surface at closeout as: "OOAD chain fired N times across M steps." Audit trail for operator confirming the chain honored the promise.
373
- 5. Release pipeline status check (bassclef-upstream only). Flag stuck PRs or commits ahead.
374
- 5.5. Clean up turn-prose-surface markers. Remove any prep + checkpoint markers left in `state/markers/turn-prose-surface/` — `longrun_prep_proposal.marker`, `longrun_checkpoint.marker`, `longrun_closeout.marker`, `status_update.marker`. Per `.claude/rules/compounding-sequence-fresh-analysis.md` § "Remove the surface marker AFTER scope confirmation". The marker's purpose is satisfied once the surface it gates has landed. Leaving it present makes every post-prep Stop event block under V2 strict default. Bootstrap-pair discipline per `.claude/rules/bootstrap-pair-discipline.md` — every touch owes a paired remove.
375
-
376
- ```bash
377
- rm -f state/markers/turn-prose-surface/longrun_prep_proposal.marker \
378
- state/markers/turn-prose-surface/longrun_checkpoint.marker \
379
- state/markers/turn-prose-surface/longrun_closeout.marker \
380
- state/markers/turn-prose-surface/status_update.marker
381
- ```
382
-
383
- Idempotent — the `-f` flag makes missing markers a no-op. Closes sunj-labs/bassclef-upstream#866.
384
- 6. Update the session board frontmatter (`session_ended`, `session_outcome`).
385
- 7. Update `docs/whereami.md` via `state_whereami_set` accessor, or fallback to direct edit.
386
-
387
- <!-- FKGL-EXEMPT: Step 7.5 references paths + skip criteria per architect-review SKILL; technical dispatch step resists further simplification without losing precision -->
388
- 7.5. **/architect-review auto-dispatch (per #1437 Step 2 wiring).** Check skip criteria per `.claude/skills/architect-review/SKILL.md` § Skip criteria. If any skip criterion holds (docs-only session, single-file quick-fix, under 10 commits since last review, operator explicit-defer), log a one-line skip note in the session log Step 8 and continue. Otherwise dispatch `/architect-review`. The review writes its own report at `docs/architecture/reviews/YYYY-MM-DD.md` + creates finding tickets. Return summary line into the session log's Work Done section. See `.claude/skills/architect-review/SKILL.md` § Distinct from Reviewer agent for boundary vs the per-PR CodeReviewer agent.
389
- <!-- /FKGL-EXEMPT -->
390
-
391
- 8. Run `/session-end` for tiered obligations (session log, journal, etc.).
392
- 9. Wiki refresh check: did this run produce material surface changes that need a wiki refresh? Discriminator list per `.claude/rules/session-artifacts.md`.
393
- 10. Retroactive sweep against the newest discipline shipped this run.
394
-
395
- ### Self-check step — before posting any operator facing prose
396
-
397
- Before I post any prep, checkpoint, closeout, or status response, I:
398
-
399
- 1. Touch the surface marker at `state/markers/turn-prose-surface/<surface>.marker`.
400
- <!-- FKGL-EXEMPT: technical enumeration — prose part list + 6-check list are reference content -->
401
- 2. Dispatch `/kiss words --rewrite` on the full rendered draft — opener + tables + cards + step details + recommendation + closing prose. Not just the opener. Not an inline BLOCK-term scan. Actual skill dispatch. The two-flag form runs vocabulary substitution AND six heuristic checks (passive voice, hyphen words, long sentences, non-SVO openers, noun stacks, adverb density). The skill reads `standards/bassclef-internal-jargon.md` as single source of truth per bassclef#907.
402
- <!-- /FKGL-EXEMPT -->
403
- 3. Apply the rewrite. When /kiss returns no changes, accept the pass.
404
- 4. Cite the dispatched skill inline per `.claude/rules/operator-facing-prose.md` Rule 3.
405
- 5. Post the response.
406
-
407
- The Stop hook `.claude/hooks/turn-prose-kiss-check.sh` is the post-write safety net. This self-check catches misses before you read. The full-draft dispatch closes bassclef-upstream#858 — the opener carried /kiss but tables + cards + steps + recommendations did not.
408
-
409
- ### Design principles for Steps 1.4c + 1.4d
410
-
411
- Steps 1.4c and 1.4d encode 6 principles. Norman + Garrett drove them. Sam + Louis are the readers.
412
-
413
- See `standards/scannable-multi-option-output.md` for the full debate + principle set. Closes bassclef-upstream#853.
414
-
415
- ### Args reference
416
-
417
- | Position | Accepted |
418
- |---|---|
419
- | mode | `prep`, `checkpoint`, `closeout` |
420
- | `--now` | modifier on checkpoint or closeout; rejected on prep |
421
- | `--operator-gated` | modifier on prep; rejected on checkpoint or closeout |
422
- | `--parallel` | reserved; not implemented today |
423
-
424
- ### Rules
425
-
426
- - Never start `/longrun prep` without operator confirmation.
427
- - Pre-flight items must be resolved or explicitly deferred. Silence is not deferral.
428
- - Hard ceilings are operator-gated regardless of `/longrun` config.
429
- - Every checkpoint must update the session board (no silent skips).
430
- - Closeout must run `/retro` and `/promote` audit and insight extraction. The three are not optional.
431
- - `/longrun` is not a substitute for `/autonomous`; it composes it.
432
- - Scope choices presented to the operator carry a value-prop per option per `.claude/rules/plan-enumeration-needs-value-props.md`. Bare names are not options.
433
-
434
- ### Grace window on old vocabulary
435
-
436
- Old vocabulary (bet → goal, appetite → time budget, WU → step, parent bet → parent goal, arc → thread, chronicle → session log) still works through 2026-10-31 per ADR-031 and `.claude/rules/we-dont-break-adopters.md`. The old `/chronicle` skill name still resolves alongside the new `/session-log` name during the same window.
437
-
438
- ### Refs
439
-
440
- - ADR-040 planning skill vocabulary and lite profile — vocabulary rename table + template shape
441
- - `.claude/rules/plain-english-discipline.md` — master rule
442
- - `.claude/rules/we-dont-break-adopters.md` — grace window discipline
443
- - `.claude/rules/turn-estimate-grounding.md` — time budget grounding
444
- - `.claude/rules/plan-enumeration-needs-value-props.md` — scope choice discipline
445
- - `.claude/rules/longrun-prep-plan-doc-compression.md` — Step 0.85 compressed prep discipline (bassclef-upstream#1307 R1)
446
- - `standards/bassclef-internal-jargon.md` — self-check wordlist
447
- - `.claude/luminaries/don-norman.md` — signifiers + mapping + feedback lens for Steps 1.4c + 1.4d
448
- - `.claude/luminaries/jesse-james-garrett.md` — five planes lens for section-anchor discipline
449
- - `.claude/luminaries/sophia-prater.md` — OOUX + progressive disclosure lens for Steps 1.5-1.7 card format
450
- - `.claude/luminaries/edward-tufte.md` — data-ink + glyph-encodes-data lens for scan-table + glyph legend
451
- - `docs/personas/sam.md` — primary reader (15-30 min budget; bounces on friction)
452
- - `docs/personas/2026-07-12-bet11c-louis.md` — secondary reader (skims group headings first)
453
- - `standards/scannable-multi-option-output.md` — full 12 principles + card template + glyph legend
454
- - bassclef-upstream#853 — parent ticket (Steps 1.4c + 1.4d + Norman + Garrett debate)
455
- - bassclef-upstream#830 — Shape to Option rename (already applied in this file)
456
- - bassclef-upstream#1150 — auto-inject /decompose + /pattern-review + /architect-review (A1 + A3 chain wiring)
457
- - bassclef-upstream#1167 — per-step OOAD dispatch chain (A2 + A4 luminary consult + counter)
458
- - bassclef-web#152 — iterate /longrun prep output shape (R1 + R2 + R3 reshape)
459
- - `.claude/rules/pattern-annotation.md` L57-62 — @pattern annotation contract (A3 trigger)
460
- - `.claude/rules/oo-ad-entry-point.md` — ceremony matrix (A2 skip tier)
461
- - `.claude/bassclef-orientation.md` L100-108 — OOAD chain sequence (A1 canonical list)
462
- - `.claude/luminaries/john-ousterhout.md` — co-lead (deep modules + narrow interface)
463
- - `.claude/luminaries/amazon-pr-faq.md` — supporting (decision at top; PR/FAQ working-backwards)