@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.
- package/dist/cli.cjs +238 -127
- package/dist/cli.js +240 -129
- 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,276 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
tier: lite
|
|
3
|
-
description: Standard directory structure for sunj-labs repositories.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Project Directory Layout
|
|
7
|
-
|
|
8
|
-
Standard directory structure for sunj-labs repositories. The goal: a new adopter cloning a bassclef-consumer repo can locate any artifact in under 30 seconds without asking.
|
|
9
|
-
|
|
10
|
-
> **Which page do I want?** Two related pages cover "where does X go?":
|
|
11
|
-
>
|
|
12
|
-
> - **This page (Directory Layout)** — the methodology tree. Answers: "I'm writing a canvas / spec / ADR / chronicle — which directory does it live in?" Use when you're producing an SDLC artifact and need to know where to put it.
|
|
13
|
-
> - **[File structure](https://github.com/sunj-labs/bassclef/wiki/File-structure)** — the installation footprint. Answers: "What did `/onboard-repo` actually write into my repo? What's safe to edit vs. bassclef-managed?" Use when you're inspecting what landed after install or deciding what to commit vs. gitignore.
|
|
14
|
-
>
|
|
15
|
-
> If you're asking "where does this artifact go?" you want Directory Layout. If you're asking "what just got installed?" you want File structure.
|
|
16
|
-
|
|
17
|
-
This standard replaces the prior 2026-01 snapshot. See `docs/audits/2026-05-12-directory-skill-overlap-audit.md` for the inventory that motivated this rewrite.
|
|
18
|
-
|
|
19
|
-
## Mental model
|
|
20
|
-
|
|
21
|
-
Every artifact has one home. The SDLC produces artifacts in a predictable flow:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
idea → canvas → spec → design → prototype → build → chronicle
|
|
25
|
-
(strategy/) (specs/) (designs/) (prototypes/) (src/) (chronicle/)
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Two repo shapes — why your app repo and bassclef look almost identical except for `docs/`
|
|
29
|
-
|
|
30
|
-
The two layouts you'll see on this page (App repo and Bassclef) have the same SDLC artifact categories. The only structural difference is where those categories live:
|
|
31
|
-
|
|
32
|
-
- **App repo** (yours): SDLC artifacts nest under `docs/` so they don't compete with `src/` at the top. Your application code is what readers expect to see first when they open the repo.
|
|
33
|
-
- **Bassclef** (the methodology repo): the entire repo IS the methodology. There is no `src/` at the top. SDLC artifact categories hoist to root because that's the load-bearing content.
|
|
34
|
-
|
|
35
|
-
Same artifacts, different nesting. A canvas in your app repo lives at `docs/strategy/canvases/`. A canvas in bassclef lives at `strategy/canvases/`. The path-prefix is the only delta.
|
|
36
|
-
|
|
37
|
-
| Artifact | App repo (your repo) | Bassclef (this repo) |
|
|
38
|
-
|---|---|---|
|
|
39
|
-
| Canvas | `docs/strategy/canvases/` | `strategy/canvases/` |
|
|
40
|
-
| Spec | `docs/specs/` | `docs/specs/` (bassclef happens to use docs/specs too) |
|
|
41
|
-
| ADR | `docs/architecture/decisions/` | `architecture/decisions/` |
|
|
42
|
-
| C4 diagram | `docs/architecture/c4/` | `architecture/c4/` |
|
|
43
|
-
| Design tokens | `docs/designs/` | `design/` |
|
|
44
|
-
| Chronicle | `docs/chronicle/` | `chronicle/` |
|
|
45
|
-
| Decomposition | `docs/decompositions/` | `docs/decompositions/` |
|
|
46
|
-
| Iteration goal | `docs/iteration-bets/` | `docs/iteration-bets/` |
|
|
47
|
-
|
|
48
|
-
The asymmetry is intentional, not legacy. App repos need `src/` at the top; bassclef doesn't have one to compete with. Same conceptual flow (`idea → canvas → spec → ...`), different root-level placement.
|
|
49
|
-
|
|
50
|
-
## App repo layout
|
|
51
|
-
|
|
52
|
-
Legend:
|
|
53
|
-
|
|
54
|
-
- 🔵 **bassclef-managed** — the substrate writes/owns these paths. Skills, rules, hooks, agents, and SDLC artifacts produced by the methodology.
|
|
55
|
-
- ⚪ **your code** — your application. Bassclef doesn't touch `src/`, your migrations, your tests. Names below are illustrative; replace with your stack's conventions.
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
⚪ src/ # your application code
|
|
59
|
-
⚪ your-database-migrations/ # e.g. prisma/, alembic/, knex/ — if applicable
|
|
60
|
-
⚪ public/ # your static assets
|
|
61
|
-
⚪ scripts/ # your build / deploy / utility scripts
|
|
62
|
-
⚪ tests/ # your test suites (unit / integration / e2e)
|
|
63
|
-
⚪ data/ # your data files, snapshots (not docs)
|
|
64
|
-
|
|
65
|
-
🔵 .claude/ # bassclef substrate (skills, rules, hooks, agents)
|
|
66
|
-
|
|
67
|
-
🔵 docs/ # SDLC artifacts produced by the methodology
|
|
68
|
-
🔵 strategy/
|
|
69
|
-
🔵 canvases/ # product canvases (Thesis → Shape → Build)
|
|
70
|
-
🔵 pr-faqs/ # PR/FAQ documents
|
|
71
|
-
🔵 research/ # research notes
|
|
72
|
-
🔵 specs/ # structured specs from canvases
|
|
73
|
-
🔵 decompositions/ # /decompose output (responsibility audit + pattern map)
|
|
74
|
-
🔵 designs/ # design artifacts (tokens, mocks, references)
|
|
75
|
-
🔵 ia-models/ # information architecture models
|
|
76
|
-
🔵 interaction-design/ # interaction design artifacts
|
|
77
|
-
🔵 prototypes/ # visual + technical prototypes (HTML, screenshots, gallery indexes)
|
|
78
|
-
🔵 visual-reviews/ # /visual-review output
|
|
79
|
-
🔵 architecture/
|
|
80
|
-
🔵 decisions/ # ADRs
|
|
81
|
-
🔵 c4/ # C4 diagrams
|
|
82
|
-
🔵 erd/ # entity-relationship diagrams
|
|
83
|
-
🔵 reviews/ # /architect-review output
|
|
84
|
-
|
|
85
|
-
🔵 # iteration + roadmap
|
|
86
|
-
🔵 roadmaps/ # multi-week strategic frames (compose N bets)
|
|
87
|
-
🔵 iteration-bets/ # time budget + scope per iteration
|
|
88
|
-
🔵 branch-stacks/ # stack manifests for multi-branch work
|
|
89
|
-
|
|
90
|
-
🔵 # session lifecycle artifacts
|
|
91
|
-
🔵 chronicle/ # session narratives (dated, append-only)
|
|
92
|
-
🔵 sessions/ # session-board coordinator artifacts (multi-bet longruns)
|
|
93
|
-
🔵 sdlc-traces/ # session hook logs
|
|
94
|
-
🔵 deferred-actions/ # cross-session handoff entries
|
|
95
|
-
🔵 audits/ # audit reports (adopter-readiness, directory drift, etc.)
|
|
96
|
-
🔵 sibling-validations/ # validation reports from sibling-repo runs
|
|
97
|
-
|
|
98
|
-
🔵 # comms + ops
|
|
99
|
-
🔵 journals/ # journal-entry drafts (operator narrative voice; publishable to LinkedIn, Substack, etc.)
|
|
100
|
-
🔵 journal-export/ # journal-entry corpus exports to brand-team Google Doc
|
|
101
|
-
🔵 release-notes/ # per-release notes
|
|
102
|
-
🔵 demos/ # demo runbooks
|
|
103
|
-
🔵 runbooks/ # operational runbooks
|
|
104
|
-
🔵 research/ # operator research notes
|
|
105
|
-
🔵 learnings/ # captured learnings (sister to design/discoveries in bassclef)
|
|
106
|
-
🔵 longrun-plans/ # /longrun pre-flight artifacts
|
|
107
|
-
🔵 metrics/ # operator-facing metrics dashboards
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Stack-specific entries (database migrations, framework public folders, build tool config) live alongside `src/` per your stack's conventions — bassclef doesn't move your code. The 🔵 rows are what the substrate writes; the ⚪ rows are placeholders showing where your code lives relative to the substrate.
|
|
111
|
-
|
|
112
|
-
Optional `docs/strategy/` subdivision matches bassclef's `strategy/` root — same artifact types, different nesting.
|
|
113
|
-
|
|
114
|
-
## Bassclef (methodology repo) layout
|
|
115
|
-
|
|
116
|
-
```
|
|
117
|
-
.claude/ # bassclef's substrate (skills, rules, hooks, agents)
|
|
118
|
-
architecture/ # ADRs + C4 + ERD + reviews (hoisted from docs/architecture/)
|
|
119
|
-
decisions/
|
|
120
|
-
chronicle/ # session narratives (hoisted from docs/chronicle/)
|
|
121
|
-
design/ # design principles, object model, tokens (hoisted from docs/designs/)
|
|
122
|
-
discoveries/ # earned-wisdom principles (bassclef-only)
|
|
123
|
-
lib/ # state-spine accessor library (lib/state.sh)
|
|
124
|
-
patterns/ # pattern catalog (GoF / Fowler / Smarter Patterns / etc)
|
|
125
|
-
sdlc-portable/ # exportable SDLC bundles
|
|
126
|
-
standards/ # engineering standards (this file lives here)
|
|
127
|
-
state-spine/ # state-spine schemas
|
|
128
|
-
state/ # state-spine markers + projections (runtime)
|
|
129
|
-
scripts/ # bassclef-specific utility scripts
|
|
130
|
-
strategy/ # canvases + templates (hoisted from docs/strategy/)
|
|
131
|
-
canvases/
|
|
132
|
-
templates/
|
|
133
|
-
tests/ # bassclef hook tests
|
|
134
|
-
docs/ # everything else from the app-repo layout above
|
|
135
|
-
audits/
|
|
136
|
-
branch-stacks/
|
|
137
|
-
baselayer/ # baselayer-publish strategy + queue (bassclef-specific)
|
|
138
|
-
decompositions/
|
|
139
|
-
deferred-actions/
|
|
140
|
-
demos/
|
|
141
|
-
designs/
|
|
142
|
-
iteration-bets/
|
|
143
|
-
ia-models/
|
|
144
|
-
input-artifacts/ # rendered input artifacts from /interpret-input
|
|
145
|
-
interaction-design/
|
|
146
|
-
interviews/ # interview transcripts feeding canvases
|
|
147
|
-
learnings/
|
|
148
|
-
journals/
|
|
149
|
-
journal-export/
|
|
150
|
-
longrun-plans/
|
|
151
|
-
metrics/
|
|
152
|
-
release-notes/
|
|
153
|
-
research/
|
|
154
|
-
roadmaps/
|
|
155
|
-
runbooks/
|
|
156
|
-
sdlc-traces/
|
|
157
|
-
sessions/
|
|
158
|
-
sibling-validations/
|
|
159
|
-
specs/ # at bassclef root by exception (currently 1 file); migrate to docs/specs/
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
## One artifact, one location — the bassclef map
|
|
163
|
-
|
|
164
|
-
Reference for adopters: "I have artifact X — where does it go?"
|
|
165
|
-
|
|
166
|
-
| Artifact | App repo path | Bassclef path | Produced by |
|
|
167
|
-
|---|---|---|---|
|
|
168
|
-
| Canvas | `docs/strategy/canvases/` | `strategy/canvases/` | `/canvas` |
|
|
169
|
-
| Spec | `docs/specs/` | (use `docs/specs/`; legacy `specs/` slated for removal) | `/spec` |
|
|
170
|
-
| ADR | `docs/architecture/decisions/` | `architecture/decisions/` | `/architect-review`, manual |
|
|
171
|
-
| C4 diagram | `docs/architecture/c4/` | `architecture/c4/` | `/architect-review` |
|
|
172
|
-
| Decomposition | `docs/decompositions/` | `docs/decompositions/` | `/decompose` |
|
|
173
|
-
| Design tokens / mocks | `docs/designs/` | `design/` | `/frontend-design`, manual |
|
|
174
|
-
| IA model | `docs/ia-models/` | `docs/ia-models/` | `/ia-model` |
|
|
175
|
-
| Interaction design | `docs/interaction-design/` | `docs/interaction-design/` | `/interaction-design` |
|
|
176
|
-
| Prototypes | `docs/prototypes/` | `docs/prototypes/` | `/preview`, `/preview-build`, `/tech-prototype` (see "Skill family for prototypes") |
|
|
177
|
-
| Visual review | `docs/visual-reviews/` | `docs/visual-reviews/` | `/visual-review` |
|
|
178
|
-
| Chronicle | `docs/chronicle/` | `chronicle/` | `/chronicle`, `/session-end` |
|
|
179
|
-
| Journal entry | `docs/operator-private/journals/` | `docs/operator-private/journals/` | `/journal` |
|
|
180
|
-
| Release note | `docs/release-notes/` | `docs/release-notes/` | `/release-notes` |
|
|
181
|
-
| Iteration goal | `docs/iteration-bets/` | `docs/iteration-bets/` | manual / `/longrun prep` |
|
|
182
|
-
| Roadmap | `docs/roadmaps/` | `docs/roadmaps/` | manual |
|
|
183
|
-
| Stack manifest | `docs/branch-stacks/` (SENTINEL_bassclef_name) | `docs/branch-stacks/` | `/longrun prep` (see "Stack manifest path migration") |
|
|
184
|
-
| Session board | `docs/sessions/` | `docs/sessions/` | `/longrun prep` (multi-bet only) |
|
|
185
|
-
| SDLC trace | `docs/sdlc-traces/` | `docs/sdlc-traces/` | hooks |
|
|
186
|
-
| Deferred action | `docs/deferred-actions/` | `docs/deferred-actions/` | session-rescue, skills that defer |
|
|
187
|
-
| Audit report | `docs/audits/` | `docs/audits/` | manual / agent audit runs |
|
|
188
|
-
| Sibling validation | `docs/sibling-validations/` | `docs/sibling-validations/` | sibling-validation runs |
|
|
189
|
-
| Demo runbook | `docs/demos/` | `docs/demos/` | manual |
|
|
190
|
-
| Operational runbook | `docs/runbooks/` | `docs/runbooks/` | manual |
|
|
191
|
-
| Research note | `docs/research/` | `docs/research/` | `/agent-research-spawn`, manual |
|
|
192
|
-
| Learning | `docs/learnings/` | `docs/learnings/` | manual (bassclef: design/discoveries/ for earned wisdom) |
|
|
193
|
-
| Metrics dashboard | `docs/metrics/` | `docs/metrics/` | `/metrics` |
|
|
194
|
-
| Longrun plan | `docs/longrun-plans/` | `docs/longrun-plans/` | `/longrun prep` |
|
|
195
|
-
| Input artifact | `docs/input-artifacts/` | `docs/input-artifacts/` | `/interpret-input` |
|
|
196
|
-
| Interview transcript | `docs/interviews/` | `docs/interviews/` | manual / `/interview` (when shipped) |
|
|
197
|
-
| Journal-entry corpus | `docs/journal-corpus/` | `docs/journal-corpus/` | `/journal-export` |
|
|
198
|
-
| PR/FAQ | `docs/strategy/pr-faqs/` | `templates/pr-faq.md` (template only) | `/canvas` |
|
|
199
|
-
|
|
200
|
-
## Skill family for prototypes — three bassclef surfaces (per ADR-020)
|
|
201
|
-
|
|
202
|
-
Three skills, two axes. Adopter decision tree:
|
|
203
|
-
|
|
204
|
-
| If you want | Use | Sizes |
|
|
205
|
-
|---|---|---|
|
|
206
|
-
| Visual mock variants only (clickable, on a subdomain) | `/preview` | quick (~30 min, 2 variants) / light (~2h, 3 variants + Anthropic baseline) |
|
|
207
|
-
| Visual mock variants + buildable plan (spec + decomposition + migration) | `/preview-build` | medium (~1 day) / full (audit-grade) |
|
|
208
|
-
| Pre-build risk gate (accuracy / integration / UX-visual / structural) | `/tech-prototype` | per shape |
|
|
209
|
-
|
|
210
|
-
Two skills are deprecated per ADR-020 (2026-05-12):
|
|
211
|
-
|
|
212
|
-
- `/prototype-variants` → use `/preview light` (light size already includes luminary champion-challenger)
|
|
213
|
-
- `/prototype-gallery` → use `/preview` (any size; `/preview` already produces a shareable gallery URL per ADR-016)
|
|
214
|
-
|
|
215
|
-
The deprecated skills remain invocable for ≥3 months while existing canvases / bets / chronicles that reference them get migrated. Full retirement schedule is in ADR-020 §"Migration plan."
|
|
216
|
-
|
|
217
|
-
## Stack manifest path migration
|
|
218
|
-
|
|
219
|
-
The directory layout standard names `docs/branch-stacks/` as bassclef. Reality has stack manifests split between `docs/branch-stacks/` (13 files) and `docs/stacks/` (36 files). The 36:13 split tilts toward the alias.
|
|
220
|
-
|
|
221
|
-
**Decision (this version):** `docs/branch-stacks/` is the SENTINEL_bassclef_name; `docs/stacks/` is being migrated. New manifests land in `docs/branch-stacks/`. A follow-on migration relocates the 36 files in `docs/stacks/` and updates references.
|
|
222
|
-
|
|
223
|
-
**Migration ticket:** TBD (filed after this standard merges).
|
|
224
|
-
|
|
225
|
-
## Rules
|
|
226
|
-
|
|
227
|
-
### One location per artifact
|
|
228
|
-
|
|
229
|
-
Every artifact type has exactly one directory. No duplicates, no fallback chains. If you're unsure where something goes, check the bassclef map above.
|
|
230
|
-
|
|
231
|
-
### Create on use, not upfront
|
|
232
|
-
|
|
233
|
-
Don't scaffold empty directories. Create a directory when the first file needs it. The standard defines WHERE things go, not that every directory must exist from day one.
|
|
234
|
-
|
|
235
|
-
### Add a new directory? Update this standard
|
|
236
|
-
|
|
237
|
-
When a skill or workflow needs a new top-level directory under `docs/` (or bassclef's root), update the bassclef map in the same PR. Standard-vs-reality drift is the bug class this rewrite addresses; we don't want to grow another generation of it.
|
|
238
|
-
|
|
239
|
-
### Naming conventions
|
|
240
|
-
|
|
241
|
-
- Chronicles: `YYYY-MM-DD-slug.md`
|
|
242
|
-
- Journal entries: `YYYY-MM-DD.md`
|
|
243
|
-
- Iteration goals: `YYYY-MM-DD-slug.md`
|
|
244
|
-
- Roadmaps: `YYYY-MM-DD-slug.md`
|
|
245
|
-
- Canvases: `canvas-{name}.md` or `product-canvas.md`
|
|
246
|
-
- ADRs: `ADR-NNN-short-description.md`
|
|
247
|
-
- Specs: `SPEC-NNN-short-description.md` or `{feature-name}.md`
|
|
248
|
-
- Session boards: `YYYY-MM-DD-slug.md`
|
|
249
|
-
- Stack manifests: `YYYY-MM-DD-slug.md`
|
|
250
|
-
- Audits: `YYYY-MM-DD-slug.md`
|
|
251
|
-
- Sibling validations: `YYYY-MM-DD-slug.md`
|
|
252
|
-
- Decompositions: `slug.md` (no date prefix; one per system/component)
|
|
253
|
-
|
|
254
|
-
### Composition between artifacts
|
|
255
|
-
|
|
256
|
-
Roadmaps, iteration goals, and stack manifests compose into a work-decomposition tree. Cross-references are typed in frontmatter, not implicit-by-prose. See `standards/artifact-composition.md`.
|
|
257
|
-
|
|
258
|
-
### Brownfield retrofit
|
|
259
|
-
|
|
260
|
-
When adopting bassclef in an existing repo:
|
|
261
|
-
|
|
262
|
-
1. **Don't move existing application code.** Bassclef's substrate goes in `.claude/`; your app stays where it is.
|
|
263
|
-
2. **Create `docs/` if it doesn't exist.** Bassclef wants its artifacts there.
|
|
264
|
-
3. **Map existing methodology docs to the bassclef paths.** If you have `notes/` with iteration plans, move them to `docs/iteration-bets/`. If you have `architecture/` at root, move to `docs/architecture/` (app repo) or hoist to root (if bassclef-style methodology repo).
|
|
265
|
-
4. **Add a one-time `docs/legacy/` subdirectory if needed.** Preserves pre-bassclef content with attribution; delete after migration completes.
|
|
266
|
-
5. **Update your README.md** to point at `docs/` for the methodology layer.
|
|
267
|
-
|
|
268
|
-
### What does NOT go in `docs/`
|
|
269
|
-
|
|
270
|
-
- Application code (`src/`)
|
|
271
|
-
- Database snapshots and data files (`data/`)
|
|
272
|
-
- Build artifacts (`.next/`, `dist/`, `build/`)
|
|
273
|
-
- Secrets and credentials (`.env` — never committed)
|
|
274
|
-
- Node modules (`node_modules/`)
|
|
275
|
-
- Playwright MCP artifacts (`.playwright-mcp/`, gitignored)
|
|
276
|
-
- Substrate scripts (`.claude/hooks/`, `.claude/skills/`, etc — that's bassclef)
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
tier: lite
|
|
3
|
-
description: Every release of bassclef carries a semantic version tag.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Release tagging
|
|
7
|
-
|
|
8
|
-
Every release of bassclef carries a semantic version tag. The tag names what adopters can pin, roll back to, and read a changelog against. This standard names when tags cut, how versions bump, and what the release notes carry.
|
|
9
|
-
|
|
10
|
-
Bassclef ships to public bassclef via `/release` PRs (per ADR-029). Before this standard, the substrate carried no version tags — adopters could not name what version they ran. Wave 1 dispatch needs a version anchor for support requests, rollback, and changelog reads.
|
|
11
|
-
|
|
12
|
-
Per bassclef-upstream#614 (WU-1 of bet 2026-07-03b).
|
|
13
|
-
|
|
14
|
-
## Scope
|
|
15
|
-
|
|
16
|
-
Applies to:
|
|
17
|
-
|
|
18
|
-
- `sunj-labs/bassclef-upstream` — the source-of-truth repo. Tags here name the cut point substrate work shipped from.
|
|
19
|
-
- `sunj-labs/bassclef` — the public downstream repo adopters pull from. Tags here name what adopters see.
|
|
20
|
-
|
|
21
|
-
Both repos carry the same tag name for each release. Adopters read the public tag; operators read the upstream tag when tracing "which cut point shipped this rule / hook / skill". Per ADR-039.
|
|
22
|
-
|
|
23
|
-
## When tags cut
|
|
24
|
-
|
|
25
|
-
Tags cut in two moments:
|
|
26
|
-
|
|
27
|
-
1. **Upstream tag** — after the operator merges the `/release` PR on public bassclef. The `scripts/release-to-bassclef.sh` script tags upstream at the source SHA (currently `release-YYYY-MM-DD-<sha>` marker); this standard adds the semver tag on top.
|
|
28
|
-
2. **Public tag** — immediately after the upstream tag lands, on the merged commit of the `/release` PR in public bassclef.
|
|
29
|
-
|
|
30
|
-
Tags never cut mid-work. The `/release` dispatch is the single trigger.
|
|
31
|
-
|
|
32
|
-
## Semver policy
|
|
33
|
-
|
|
34
|
-
Bassclef follows semver (major.minor.patch). Each level names a kind of change adopters see.
|
|
35
|
-
|
|
36
|
-
| Level | When it bumps | Examples |
|
|
37
|
-
|---|---|---|
|
|
38
|
-
| **major** | Adopter-observable breaking change | Repo rename, tier vocabulary change, an ADR-031-level break |
|
|
39
|
-
| **minor** | New substrate surface adopters can call on | New rule, hook, skill, standard, luminary, agent |
|
|
40
|
-
| **patch** | Cure or hardening; no new surface | Bug fix, wordlist amendment, refactor, doc rewrite |
|
|
41
|
-
|
|
42
|
-
When a release carries multiple change classes, the highest applies. Two new rules plus a bug fix cut a minor bump.
|
|
43
|
-
|
|
44
|
-
The first tag is `v0.1.0` — bassclef has shipped for 8 months plus 1500+ commits and holds ADR-035 substrate-as-system, which is stable enough to name.
|
|
45
|
-
|
|
46
|
-
## Release notes
|
|
47
|
-
|
|
48
|
-
Every release page carries release notes grouped by the substrate surfaces the release touched. The `/release` SKILL drafts these from the PRs the release picked up.
|
|
49
|
-
|
|
50
|
-
Group order:
|
|
51
|
-
|
|
52
|
-
1. **Rules** — new or amended
|
|
53
|
-
2. **Hooks** — new or refactored
|
|
54
|
-
3. **Skills** — new, amended, or retired
|
|
55
|
-
4. **Standards** — new or amended
|
|
56
|
-
5. **Luminaries** — new full or stub
|
|
57
|
-
6. **Agents** — new or amended
|
|
58
|
-
7. **ADRs** — new decisions
|
|
59
|
-
8. **Cures** — bug fixes + hardening + wordlist amendments
|
|
60
|
-
9. **Sync + release + install** — infrastructure changes that reach adopters at session-start
|
|
61
|
-
|
|
62
|
-
Each group carries one line per PR. Links to the PR + the source ticket.
|
|
63
|
-
|
|
64
|
-
Release notes render in three places:
|
|
65
|
-
|
|
66
|
-
- **GitHub Release page** — the primary surface adopters see
|
|
67
|
-
- **Public bassclef README banner** — a one-line "Latest: v0.1.0 shipped 2026-07-04" link at the top
|
|
68
|
-
- **Adopter changelog** — `docs/changelog.md` in public bassclef; append-only
|
|
69
|
-
|
|
70
|
-
## Where tags live
|
|
71
|
-
|
|
72
|
-
- Bassclef-upstream: `v0.1.0`, `v0.1.1`, `v0.2.0`, ... cut on `main` at the release commit
|
|
73
|
-
- Public bassclef: same tag names cut on `main` at the merged release commit
|
|
74
|
-
|
|
75
|
-
Tags are signed only when the operator's GPG key is present. Unsigned tags still ship; signing is a follow-on when the release pipeline runs on the operator's own machine.
|
|
76
|
-
|
|
77
|
-
Prior release-marker tags (`release-YYYY-MM-DD-<sha>`) stay in place. They serve a different purpose — naming which SHA a release PR built from. Semver tags name what adopters get. Both patterns co-exist.
|
|
78
|
-
|
|
79
|
-
## Rollback
|
|
80
|
-
|
|
81
|
-
When a release breaks adopters, the operator can:
|
|
82
|
-
|
|
83
|
-
1. Roll adopter setups back — `bassclef-sync` in an adopter checkout can point at the prior tag via `.bassclef-source.json` `git_ref` field
|
|
84
|
-
2. Issue a patch tag with the cure — `v0.1.1` fixes what `v0.1.0` broke
|
|
85
|
-
3. Yank the tag only as a last resort — leaves a hole in the version sequence and confuses adopters running the yanked version
|
|
86
|
-
|
|
87
|
-
Prefer forward-fix (option 2) over rollback (option 1) over yank (option 3).
|
|
88
|
-
|
|
89
|
-
## Anti-patterns
|
|
90
|
-
|
|
91
|
-
These shapes fail this standard.
|
|
92
|
-
|
|
93
|
-
**Cut a tag between releases.** Tags cut only on `/release` dispatch. Every tag names an adopter-observable release moment.
|
|
94
|
-
|
|
95
|
-
INSTEAD: hold cure work in `main` until the next release window. Batch multiple cures into one patch tag.
|
|
96
|
-
|
|
97
|
-
**Bump minor for a cure.** Cures without a new surface stay in patch. Minor bumps signal "new stuff adopters can call on".
|
|
98
|
-
|
|
99
|
-
INSTEAD: hold the standard bar. When in doubt, bump patch; adopters read patch bumps as "safe to pull".
|
|
100
|
-
|
|
101
|
-
**Ship a release with no release notes.** Every tag carries a release page with the group-shape breakdown.
|
|
102
|
-
|
|
103
|
-
INSTEAD: the `/release` SKILL drafts the notes from the PRs the release picked up. If drafting fails, the release blocks until the operator writes the notes by hand.
|
|
104
|
-
|
|
105
|
-
**Different tags on upstream vs public.** The two repos carry the same tag names. Adopters read public; operators trace back through matching upstream tags.
|
|
106
|
-
|
|
107
|
-
INSTEAD: `/release` cuts both tags in the same dispatch, with the same name.
|
|
108
|
-
|
|
109
|
-
## Override
|
|
110
|
-
|
|
111
|
-
`SKIP_RELEASE_TAG=1 <command>` for `/release` dispatches that ship substrate without a version bump (rare — mainly for infrastructure fixes that ship before the next planned release window). Logged via trace-helper.
|
|
112
|
-
|
|
113
|
-
INSTEAD of overriding routine work: hold the change until the release window. The discipline compounds across every adopter version pin.
|
|
114
|
-
|
|
115
|
-
## Composes with
|
|
116
|
-
|
|
117
|
-
- `.claude/skills/release/SKILL.md` — the operator surface that dispatches releases + cuts tags
|
|
118
|
-
- `scripts/release-to-bassclef.sh` — the release pipeline this standard adds tag cutting to
|
|
119
|
-
- ADR-029 — release pipeline (parent threadhitecture)
|
|
120
|
-
- ADR-039 — bassclef-upstream vs public bassclef tagging split (this standard's ADR)
|
|
121
|
-
- ADR-031 — we-don't-break-adopters (major bumps signal what would otherwise break adopters)
|
|
122
|
-
- `.claude/rules/we-dont-break-adopters.md` — sister discipline; ADR-031 methodology layer
|
|
123
|
-
- `@luminary linus-torvalds` — kernel version discipline (stable API contract per tag)
|
|
124
|
-
- `@luminary frederick-brooks` — conceptual integrity across versions
|
|
125
|
-
- `@luminary michael-nygard` — stability patterns (the release page IS the adopter-facing steady state)
|
|
126
|
-
|
|
127
|
-
## Refs
|
|
128
|
-
|
|
129
|
-
- bassclef-upstream#614 — this standard's filing ticket
|
|
130
|
-
- Parent goal: `docs/iteration-bets/2026-07-03b-wave-1-launch-prep.md` WU-1
|
|
131
|
-
- Parent roadmap: `docs/roadmaps/2026-06-28-early-adopter-launch.md` Phase XI Batten Down
|
|
132
|
-
- ADR-029 release pipeline (Sanjay P. + Claude Opus, 2026-06)
|
|
133
|
-
- ADR-039 release tagging split (this bet WU-1)
|
|
134
|
-
|
|
135
|
-
## Retirement condition
|
|
136
|
-
|
|
137
|
-
This standard retires only if bassclef stops shipping to adopters. Semver policy may evolve (e.g., stricter major-bump criteria); the discipline of tagging every release survives.
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
tier: lite
|
|
3
|
-
description: Bassclef MUST NOT create a skill with a name that Claude Code (the harness) already claims.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Reserved Skill Names
|
|
7
|
-
|
|
8
|
-
Bassclef MUST NOT create a skill with a name that Claude Code (the
|
|
9
|
-
harness) already claims. Operator typing `/<name>` resolves to the
|
|
10
|
-
harness built-in, not bassclef's skill — producing silent behavioral
|
|
11
|
-
drift.
|
|
12
|
-
|
|
13
|
-
This file is the **list**. The rule that references it lives at
|
|
14
|
-
`.claude/rules/reserved-skill-names.md`. Separating the two lets the
|
|
15
|
-
list evolve with Claude Code releases without churning the rule.
|
|
16
|
-
|
|
17
|
-
## Reserved names (as of 2026-04-18)
|
|
18
|
-
|
|
19
|
-
Source: Claude Code harness built-in skill registry observed in-session.
|
|
20
|
-
|
|
21
|
-
### Claude Code operational built-ins
|
|
22
|
-
|
|
23
|
-
These are always resolved by the Claude Code harness and will never
|
|
24
|
-
reach bassclef's skill registry:
|
|
25
|
-
|
|
26
|
-
| Name | Purpose (per harness) |
|
|
27
|
-
|------|----------------------|
|
|
28
|
-
| `update-config` | Configure Claude Code harness via settings.json |
|
|
29
|
-
| `keybindings-help` | Keyboard shortcut customization |
|
|
30
|
-
| `simplify` | Review changed code for reuse/quality |
|
|
31
|
-
| `fewer-permission-prompts` | Scan transcripts + prioritize allowlist |
|
|
32
|
-
| `loop` | Recurring prompt / slash-command execution |
|
|
33
|
-
| `schedule` | Scheduled remote agents (triggers) |
|
|
34
|
-
| `claude-api` | Build/debug Claude API / SDK apps |
|
|
35
|
-
|
|
36
|
-
### Claude Code "FEY" remote built-ins
|
|
37
|
-
|
|
38
|
-
Sourced from `FEY` array in Claude Code `cli.js`:
|
|
39
|
-
|
|
40
|
-
| Name | Purpose (per harness) |
|
|
41
|
-
|------|----------------------|
|
|
42
|
-
| `autopilot` | Autopilot mode |
|
|
43
|
-
| `bugfix` | Remote bugfix workflow |
|
|
44
|
-
| `dashboard` | Remote dashboard |
|
|
45
|
-
| `docs` | Docs workflow |
|
|
46
|
-
| `investigate` | Investigation workflow |
|
|
47
|
-
|
|
48
|
-
### Claude Code init/setup
|
|
49
|
-
|
|
50
|
-
| Name | Purpose (per harness) |
|
|
51
|
-
|------|----------------------|
|
|
52
|
-
| `init` | Initialize a new CLAUDE.md file |
|
|
53
|
-
| `review` | Review a pull request |
|
|
54
|
-
| `security-review` | Security review of pending changes |
|
|
55
|
-
|
|
56
|
-
## What the rule enforces
|
|
57
|
-
|
|
58
|
-
Any new `.claude/skills/<name>/SKILL.md` introduced by a PR MUST NOT
|
|
59
|
-
use a name from this list. The pre-commit hook blocks commits that
|
|
60
|
-
add a colliding directory. See `.claude/rules/reserved-skill-names.md`
|
|
61
|
-
for full enforcement semantics.
|
|
62
|
-
|
|
63
|
-
## Updating this list
|
|
64
|
-
|
|
65
|
-
Triggers that justify adding a name:
|
|
66
|
-
|
|
67
|
-
- New Claude Code release adds a slash-command built-in not listed here
|
|
68
|
-
- Observed behavioral drift where a bassclef skill name was silently
|
|
69
|
-
overridden by the harness
|
|
70
|
-
- Upstream Anthropic documentation announces a reserved prefix or name
|
|
71
|
-
|
|
72
|
-
Process:
|
|
73
|
-
|
|
74
|
-
1. Verify the collision exists (type `/<name>` in a clean session,
|
|
75
|
-
observe the harness responds without reaching bassclef)
|
|
76
|
-
2. Add the row to the table above with purpose description
|
|
77
|
-
3. Bump the date in the heading ("as of YYYY-MM-DD")
|
|
78
|
-
4. File a bassclef issue if any existing bassclef skill uses the
|
|
79
|
-
newly-colliding name — that skill MUST be renamed before the rule
|
|
80
|
-
addition merges
|
|
81
|
-
|
|
82
|
-
## Verification
|
|
83
|
-
|
|
84
|
-
Test case for the pre-commit hook lives at
|
|
85
|
-
`.claude/hooks/tests/reserved-names-test.sh`. Run via:
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
bash .claude/hooks/tests/reserved-names-test.sh
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
Tests:
|
|
92
|
-
- Hook blocks commit staging `.claude/skills/docs/SKILL.md` (collision)
|
|
93
|
-
- Hook permits commit staging `.claude/skills/docs-v2/SKILL.md` (no collision)
|
|
94
|
-
- Hook respects `SKIP_RESERVED_NAMES=1` override
|
|
95
|
-
|
|
96
|
-
## Override
|
|
97
|
-
|
|
98
|
-
Rare case: bassclef deliberately wants to shadow a harness built-in
|
|
99
|
-
(e.g., wraps or replaces the built-in). Requires:
|
|
100
|
-
|
|
101
|
-
1. Explicit operator confirmation in PR body
|
|
102
|
-
2. `SKIP_RESERVED_NAMES=1` env var on the commit
|
|
103
|
-
3. Rationale documented in the skill's SKILL.md frontmatter
|
|
104
|
-
|
|
105
|
-
The override exists because rules should not be unjudgeable — but the
|
|
106
|
-
friction is deliberately high.
|
|
107
|
-
|
|
108
|
-
## Relationship to other standards
|
|
109
|
-
|
|
110
|
-
- `standards/substrate-config-schema.md` — external resource reference
|
|
111
|
-
conventions (orthogonal)
|
|
112
|
-
- `.claude/rules/reserved-skill-names.md` — the rule that reads this list
|
|
113
|
-
- `.claude/hooks/pre-commit-gate.sh` — mechanical enforcement
|
|
114
|
-
|
|
115
|
-
## When to retire this list
|
|
116
|
-
|
|
117
|
-
If Claude Code ships a mechanical API to query reserved names at
|
|
118
|
-
runtime (e.g., `claude --list-builtins --json`), this static list can
|
|
119
|
-
be replaced with a dynamic check. Until then, the list is the
|
|
120
|
-
interface.
|