@thebassclef/lite 0.1.3 → 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.
- package/dist/cli.cjs +216 -137
- package/dist/cli.js +218 -139
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lite/.bassclef-source.json +10 -0
- package/dist/lite/.claude/settings.json +212 -0
- package/dist/lite/CLAUDE.md +41 -0
- package/dist/lite/gitignore +58 -0
- package/dist/lite/standards/bassclef-wiring-manifest.json +497 -0
- package/dist/lite/whereami.md +24 -0
- package/package.json +8 -2
- package/substrate/.bassclef/lite-manifest.json +0 -2701
- package/substrate/.claude/agents/architect.md +0 -70
- package/substrate/.claude/agents/builder.md +0 -114
- package/substrate/.claude/agents/designer.md +0 -156
- package/substrate/.claude/agents/reviewer.md +0 -88
- package/substrate/.claude/hooks/artifact-ingestion-gate.sh +0 -357
- package/substrate/.claude/hooks/assert-verify-steering.sh +0 -77
- package/substrate/.claude/hooks/bassclef-source-config-validate.sh +0 -215
- package/substrate/.claude/hooks/bassclef-sync.sh +0 -634
- package/substrate/.claude/hooks/compound-noun-scrub.sh +0 -292
- package/substrate/.claude/hooks/kiss-expansion-inject.sh +0 -69
- package/substrate/.claude/hooks/longrun-prep-compounding-axis-check.sh +0 -492
- package/substrate/.claude/hooks/longrun-prep-compounding-sequence-check.sh +0 -492
- package/substrate/.claude/hooks/plain-english-steering.sh +0 -156
- package/substrate/.claude/hooks/post-skill-friction-check.sh +0 -177
- package/substrate/.claude/hooks/post-skill-telemetry.sh +0 -62
- package/substrate/.claude/hooks/pre-build-gate.sh +0 -511
- package/substrate/.claude/hooks/pre-commit-gate.sh +0 -451
- package/substrate/.claude/hooks/session-end.sh +0 -433
- package/substrate/.claude/hooks/session-reflection.sh +0 -303
- package/substrate/.claude/hooks/skill-body-grade-gate.sh +0 -219
- package/substrate/.claude/hooks/skill-body-intent-drift.sh +0 -107
- package/substrate/.claude/hooks/skill-step-list-check.sh +0 -171
- package/substrate/.claude/hooks/state-validate.sh +0 -271
- package/substrate/.claude/hooks/substrate-clarity-gate.sh +0 -1110
- package/substrate/.claude/hooks/temperance-gate.sh +0 -147
- package/substrate/.claude/hooks/testing-tier-enforce.sh +0 -233
- package/substrate/.claude/hooks/turn-prose-grade-measure.sh +0 -219
- package/substrate/.claude/hooks/turn-prose-kiss-check.sh +0 -463
- package/substrate/.claude/hooks/vocabulary-migration-check.sh +0 -171
- package/substrate/.claude/hooks/whereami-utc-gate.sh +0 -142
- package/substrate/.claude/luminaries/alan-cooper.md +0 -170
- package/substrate/.claude/luminaries/alistair-cockburn.md +0 -140
- package/substrate/.claude/luminaries/amazon-pr-faq.md +0 -34
- package/substrate/.claude/luminaries/ash-maurya.md +0 -121
- package/substrate/.claude/luminaries/bill-buxton.md +0 -210
- package/substrate/.claude/luminaries/charles-sanders-peirce.md +0 -150
- package/substrate/.claude/luminaries/david-ogilvy.md +0 -192
- package/substrate/.claude/luminaries/don-norman.md +0 -173
- package/substrate/.claude/luminaries/edward-tufte.md +0 -179
- package/substrate/.claude/luminaries/eric-evans.md +0 -160
- package/substrate/.claude/luminaries/frederick-brooks.md +0 -50
- package/substrate/.claude/luminaries/gang-of-four.md +0 -157
- package/substrate/.claude/luminaries/glenford-myers.md +0 -230
- package/substrate/.claude/luminaries/hunt-thomas.md +0 -115
- package/substrate/.claude/luminaries/hyrum-wright.md +0 -94
- package/substrate/.claude/luminaries/jason-fried-dhh.md +0 -46
- package/substrate/.claude/luminaries/jesse-james-garrett.md +0 -154
- package/substrate/.claude/luminaries/john-ousterhout.md +0 -94
- package/substrate/.claude/luminaries/karl-popper.md +0 -132
- package/substrate/.claude/luminaries/kent-beck.md +0 -168
- package/substrate/.claude/luminaries/linus-torvalds.md +0 -218
- package/substrate/.claude/luminaries/martin-fowler.md +0 -164
- package/substrate/.claude/luminaries/michael-feathers.md +0 -125
- package/substrate/.claude/luminaries/michael-nygard.md +0 -118
- package/substrate/.claude/luminaries/robert-c-martin.md +0 -164
- package/substrate/.claude/luminaries/saltzer-schroeder.md +0 -194
- package/substrate/.claude/luminaries/sophia-prater.md +0 -193
- package/substrate/.claude/luminaries/stephen-toulmin.md +0 -131
- package/substrate/.claude/luminaries/tony-hoare.md +0 -170
- package/substrate/.claude/luminaries/vaughn-vernon.md +0 -50
- package/substrate/.claude/luminaries/w-edwards-deming.md +0 -158
- package/substrate/.claude/rules/accessor-library-discipline.md +0 -138
- package/substrate/.claude/rules/adr-discipline.md +0 -120
- package/substrate/.claude/rules/api-conventions.md +0 -125
- package/substrate/.claude/rules/artifact-ingestion.md +0 -179
- package/substrate/.claude/rules/assert-only-after-verify.md +0 -137
- package/substrate/.claude/rules/blocked-items.md +0 -146
- package/substrate/.claude/rules/bootstrap-pair-discipline.md +0 -141
- package/substrate/.claude/rules/branching.md +0 -28
- package/substrate/.claude/rules/cold-adopter-harness-discipline.md +0 -129
- package/substrate/.claude/rules/commit-conventions.md +0 -22
- package/substrate/.claude/rules/compounding-axis-fresh-analysis.md +0 -188
- package/substrate/.claude/rules/compounding-sequence-fresh-analysis.md +0 -188
- package/substrate/.claude/rules/context-engineering.md +0 -202
- package/substrate/.claude/rules/context-management.md +0 -85
- package/substrate/.claude/rules/defensive-bash.md +0 -68
- package/substrate/.claude/rules/deferred-actions.md +0 -233
- package/substrate/.claude/rules/destructive-operations.md +0 -69
- package/substrate/.claude/rules/diagnosis.md +0 -38
- package/substrate/.claude/rules/github-issue-flash-tweet.md +0 -156
- package/substrate/.claude/rules/guardrails.md +0 -73
- package/substrate/.claude/rules/hook-wire-on-author.md +0 -103
- package/substrate/.claude/rules/identifier-leak-prevention.md +0 -104
- package/substrate/.claude/rules/iteration-bet-brief-completeness.md +0 -54
- package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +0 -98
- package/substrate/.claude/rules/longrun-prep-plan-doc-compression.md +0 -89
- package/substrate/.claude/rules/loop-discipline.md +0 -81
- package/substrate/.claude/rules/manual-prod-approval.md +0 -100
- package/substrate/.claude/rules/marker-enrichment-discipline.md +0 -99
- package/substrate/.claude/rules/mobile-ephemeral-session.md +0 -109
- package/substrate/.claude/rules/new-dependency-check.md +0 -51
- package/substrate/.claude/rules/oo-ad-entry-point.md +0 -117
- package/substrate/.claude/rules/operator-facing-prose.md +0 -196
- package/substrate/.claude/rules/option-label-discipline.md +0 -108
- package/substrate/.claude/rules/pattern-annotation.md +0 -100
- package/substrate/.claude/rules/plain-english-discipline.md +0 -156
- package/substrate/.claude/rules/plan-enumeration-needs-value-props.md +0 -211
- package/substrate/.claude/rules/pr-body-shape.md +0 -317
- package/substrate/.claude/rules/pr-strategy.md +0 -167
- package/substrate/.claude/rules/pr-title-shape.md +0 -161
- package/substrate/.claude/rules/prototype-workflow.md +0 -65
- package/substrate/.claude/rules/reserved-skill-names.md +0 -123
- package/substrate/.claude/rules/schema-management.md +0 -49
- package/substrate/.claude/rules/sdlc-gates.md +0 -149
- package/substrate/.claude/rules/security.md +0 -37
- package/substrate/.claude/rules/session-artifacts.md +0 -236
- package/substrate/.claude/rules/skill-composition-declarations.md +0 -124
- package/substrate/.claude/rules/skill-description-clarity.md +0 -247
- package/substrate/.claude/rules/skill-procedure-step-list.md +0 -137
- package/substrate/.claude/rules/state-schema-validation.md +0 -162
- package/substrate/.claude/rules/stuck-signal-diagnostic.md +0 -140
- package/substrate/.claude/rules/substrate-config-schema.md +0 -98
- package/substrate/.claude/rules/test-list-discipline.md +0 -175
- package/substrate/.claude/rules/test-sufficiency.md +0 -210
- package/substrate/.claude/rules/testing-tier-config.md +0 -145
- package/substrate/.claude/rules/testing.md +0 -38
- package/substrate/.claude/rules/turn-estimate-grounding.md +0 -134
- package/substrate/.claude/rules/visual-hierarchy.md +0 -437
- package/substrate/.claude/rules/we-dont-break-adopters.md +0 -126
- package/substrate/.claude/rules/whereami-load-bearing.md +0 -202
- package/substrate/.claude/rules/writing-craft-discipline.md +0 -92
- package/substrate/.claude/rules/wu-sequencing-compounds.md +0 -145
- package/substrate/.claude/skills/build/SKILL.md +0 -640
- package/substrate/.claude/skills/chronicle/SKILL.md +0 -55
- package/substrate/.claude/skills/clean-artifacts/SKILL.md +0 -249
- package/substrate/.claude/skills/decompose/SKILL.md +0 -280
- package/substrate/.claude/skills/diagnose/SKILL.md +0 -297
- package/substrate/.claude/skills/feynman/SKILL.md +0 -90
- package/substrate/.claude/skills/howdoi/SKILL.md +0 -105
- package/substrate/.claude/skills/ia-model/SKILL.md +0 -108
- package/substrate/.claude/skills/interaction-design/SKILL.md +0 -112
- package/substrate/.claude/skills/interpret-input/SKILL.md +0 -180
- package/substrate/.claude/skills/journal/SKILL.md +0 -209
- package/substrate/.claude/skills/kiss/SKILL.md +0 -449
- package/substrate/.claude/skills/launch/SKILL.md +0 -915
- package/substrate/.claude/skills/lean-canvas/SKILL.md +0 -332
- package/substrate/.claude/skills/longrun/SKILL.md +0 -463
- package/substrate/.claude/skills/luminary/SKILL.md +0 -481
- package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +0 -177
- package/substrate/.claude/skills/onboard-repo/SKILL.md +0 -1624
- package/substrate/.claude/skills/pattern-review/SKILL.md +0 -99
- package/substrate/.claude/skills/personas/SKILL.md +0 -207
- package/substrate/.claude/skills/promote/SKILL.md +0 -283
- package/substrate/.claude/skills/requirement/SKILL.md +0 -98
- package/substrate/.claude/skills/retro/SKILL.md +0 -117
- package/substrate/.claude/skills/riff/SKILL.md +0 -114
- package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +0 -163
- package/substrate/.claude/skills/session-end/SKILL.md +0 -309
- package/substrate/.claude/skills/session-log/SKILL.md +0 -299
- package/substrate/.claude/skills/skills/SKILL.md +0 -228
- package/substrate/.claude/skills/spec/SKILL.md +0 -105
- package/substrate/.claude/skills/sprint/SKILL.md +0 -392
- package/substrate/.claude/skills/stage/SKILL.md +0 -384
- package/substrate/.claude/skills/state-a-problem/SKILL.md +0 -185
- package/substrate/.claude/skills/temperance/SKILL.md +0 -108
- package/substrate/.claude/skills/use-case/SKILL.md +0 -417
- package/substrate/.claude/skills/user-stories/SKILL.md +0 -268
- package/substrate/.claude/skills/value-prop/SKILL.md +0 -251
- package/substrate/.claude/skills/verify/SKILL.md +0 -160
- package/substrate/.claude/skills/visual-review/SKILL.md +0 -503
- package/substrate/.claude/skills/whats-the-plan/SKILL.md +0 -202
- package/substrate/.claude/skills/whereami/SKILL.md +0 -307
- package/substrate/AGENTS.md +0 -79
- package/substrate/CLAUDE-lite.md +0 -85
- package/substrate/CODE_OF_CONDUCT.md +0 -28
- package/substrate/CONTRIBUTING.md +0 -177
- package/substrate/README.md +0 -173
- package/substrate/SECURITY.md +0 -19
- package/substrate/architecture/decisions/ADR-029-release-pipeline.md +0 -79
- package/substrate/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +0 -139
- package/substrate/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +0 -192
- package/substrate/architecture/decisions/ADR-039-release-tagging-scheme.md +0 -145
- package/substrate/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +0 -155
- package/substrate/architecture/decisions/ADR-044-unified-skill-body-template.md +0 -162
- package/substrate/lib/clean-artifacts-sweep.sh +0 -112
- package/substrate/lib/code-comment-discipline.sh +0 -144
- package/substrate/lib/composer-preflight.sh +0 -459
- package/substrate/lib/hook-inject.sh +0 -255
- package/substrate/lib/luminary-pick.sh +0 -96
- package/substrate/lib/output-discipline.sh +0 -143
- package/substrate/lib/prose-scan-boundary.sh +0 -171
- package/substrate/lib/rewrite-check.sh +0 -214
- package/substrate/lib/state.sh +0 -1372
- package/substrate/lib/telemetry.sh +0 -205
- package/substrate/lib/tier-check.sh +0 -187
- package/substrate/lib/tier-dependency-audit.sh +0 -1088
- package/substrate/presence/install/bassclef-hook-connect.sh +0 -178
- package/substrate/presence/install/bassclef-sync.dispatcher.template.sh +0 -841
- package/substrate/presence/install/bassclef-sync.template.sh +0 -2076
- package/substrate/presence/install/schedule-auto-save.cron.sh +0 -88
- package/substrate/presence/install/schedule-auto-save.taskscheduler.md +0 -122
- package/substrate/scripts/aggregate-telemetry.sh +0 -217
- package/substrate/scripts/analyze-tier-dependencies.sh +0 -239
- package/substrate/scripts/generate-lite-manifest.sh +0 -505
- package/substrate/scripts/generate-tier-manifest.sh +0 -28
- package/substrate/scripts/intent-drift-check.sh +0 -456
- package/substrate/scripts/lite-manifest-drift-check.sh +0 -146
- package/substrate/scripts/render-lite-manifest-doc.sh +0 -150
- package/substrate/standards/adr-template.md +0 -86
- package/substrate/standards/api-conventions/nextjs.md +0 -84
- package/substrate/standards/artifact-composition.md +0 -209
- package/substrate/standards/bash-hook-safety.md +0 -246
- package/substrate/standards/bassclef-configs-schema.md +0 -232
- package/substrate/standards/bassclef-evolution.md +0 -143
- package/substrate/standards/bassclef-internal-jargon.md +0 -244
- package/substrate/standards/bassclef-managed-sentinel.md +0 -96
- package/substrate/standards/bassclef-source-config.md +0 -228
- package/substrate/standards/branch-stacking.md +0 -408
- package/substrate/standards/code-safety-principles.md +0 -176
- package/substrate/standards/composer-prerequisites.md +0 -155
- package/substrate/standards/deferred-actions-schema.md +0 -204
- package/substrate/standards/dependency-discipline/cargo.md +0 -39
- package/substrate/standards/dependency-discipline/gem.md +0 -43
- package/substrate/standards/dependency-discipline/go-mod.md +0 -41
- package/substrate/standards/dependency-discipline/npm.md +0 -42
- package/substrate/standards/dependency-discipline/pip.md +0 -42
- package/substrate/standards/deployment-topology/ec2-tailscale.md +0 -225
- package/substrate/standards/deployment-topology.md +0 -69
- package/substrate/standards/docs-sync-allowlist.md +0 -76
- package/substrate/standards/domain-and-dns.md +0 -145
- package/substrate/standards/frontend-stack.md +0 -67
- package/substrate/standards/frontmatter-schema.md +0 -154
- package/substrate/standards/graceful-exit.md +0 -227
- package/substrate/standards/hook-idempotency.md +0 -102
- package/substrate/standards/hook-injection-discipline.md +0 -202
- package/substrate/standards/hook-install-class.md +0 -215
- package/substrate/standards/input-handler-interface.md +0 -152
- package/substrate/standards/lite-manifest-schema-changes.md +0 -135
- package/substrate/standards/luminary-matching.md +0 -105
- package/substrate/standards/luminary-problem-patterns.md +0 -481
- package/substrate/standards/migration-discipline/active-record.md +0 -50
- package/substrate/standards/migration-discipline/alembic.md +0 -43
- package/substrate/standards/migration-discipline/gorm.md +0 -50
- package/substrate/standards/migration-discipline/prisma.md +0 -53
- package/substrate/standards/migration-discipline/sqlalchemy.md +0 -51
- package/substrate/standards/mobile-ephemeral-session.md +0 -167
- package/substrate/standards/model-routing-discipline.md +0 -160
- package/substrate/standards/ogilvy-writing-rules.md +0 -225
- package/substrate/standards/opener-discipline.md +0 -96
- package/substrate/standards/operator-facing-prose-discipline.md +0 -201
- package/substrate/standards/persona-schema.md +0 -229
- package/substrate/standards/pluggable-luminaries.md +0 -323
- package/substrate/standards/pr-body-discipline.md +0 -115
- package/substrate/standards/preview-state-schema.md +0 -189
- package/substrate/standards/project-directory-layout.md +0 -276
- package/substrate/standards/release-tagging.md +0 -137
- package/substrate/standards/reserved-skill-names.md +0 -120
- package/substrate/standards/scannable-multi-option-output.md +0 -261
- package/substrate/standards/sdlc-compliance.md +0 -286
- package/substrate/standards/sdlc-gates/typescript.md +0 -57
- package/substrate/standards/secrets-lifecycle.md +0 -210
- package/substrate/standards/security-scanner-adapter.md +0 -145
- package/substrate/standards/session-board.md +0 -256
- package/substrate/standards/skill-output-discipline.md +0 -90
- package/substrate/standards/state-spine-contract.md +0 -255
- package/substrate/standards/state-spine.md +0 -511
- package/substrate/standards/steering-hints/kiss-words.md +0 -11
- package/substrate/standards/substrate-config-schema.md +0 -267
- package/substrate/standards/tech-stack-config.md +0 -109
- package/substrate/standards/tier-dependency-analysis.md +0 -167
- package/substrate/standards/tier-runtime-deps/lite.md +0 -57
- package/substrate/standards/tier-tag-schema.md +0 -155
- package/substrate/standards/two-layer-config.md +0 -99
- package/substrate/standards/use-case-format.md +0 -292
- package/substrate/standards/user-story-invest.md +0 -268
- package/substrate/standards/velocity-and-appetite.md +0 -229
- package/substrate/standards/voice-input-pattern.md +0 -119
- package/substrate/standards/whereami-schema.md +0 -301
- package/substrate/standards/worktree-management.md +0 -211
- package/substrate/standards/writing-guide.md +0 -213
- package/substrate/templates/chronicle-template.md +0 -75
- package/substrate/templates/deferred-action-template.md +0 -45
- package/substrate/templates/memory-proposal-template.md +0 -77
- package/substrate/templates/persona-template.md +0 -200
- package/substrate/templates/pr-faq.md +0 -45
- package/substrate/templates/secret-rotation-template.md +0 -162
- package/substrate/templates/spec-template.md +0 -131
- package/substrate/templates/use-case-template.md +0 -194
- package/substrate/templates/user-story-template.md +0 -107
- 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)
|