@thebassclef/lite 0.1.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/dist/cli.cjs +238 -127
  2. package/dist/cli.js +240 -129
  3. package/dist/index.cjs +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/lite/.bassclef-source.json +10 -0
  7. package/dist/lite/.claude/settings.json +212 -0
  8. package/dist/lite/CLAUDE.md +41 -0
  9. package/dist/lite/gitignore +58 -0
  10. package/dist/lite/standards/bassclef-wiring-manifest.json +497 -0
  11. package/dist/lite/whereami.md +24 -0
  12. package/package.json +8 -2
  13. package/substrate/.bassclef/lite-manifest.json +0 -2701
  14. package/substrate/.claude/agents/architect.md +0 -70
  15. package/substrate/.claude/agents/builder.md +0 -114
  16. package/substrate/.claude/agents/designer.md +0 -156
  17. package/substrate/.claude/agents/reviewer.md +0 -88
  18. package/substrate/.claude/hooks/artifact-ingestion-gate.sh +0 -357
  19. package/substrate/.claude/hooks/assert-verify-steering.sh +0 -77
  20. package/substrate/.claude/hooks/bassclef-source-config-validate.sh +0 -215
  21. package/substrate/.claude/hooks/bassclef-sync.sh +0 -634
  22. package/substrate/.claude/hooks/compound-noun-scrub.sh +0 -292
  23. package/substrate/.claude/hooks/kiss-expansion-inject.sh +0 -69
  24. package/substrate/.claude/hooks/longrun-prep-compounding-axis-check.sh +0 -492
  25. package/substrate/.claude/hooks/longrun-prep-compounding-sequence-check.sh +0 -492
  26. package/substrate/.claude/hooks/plain-english-steering.sh +0 -156
  27. package/substrate/.claude/hooks/post-skill-friction-check.sh +0 -177
  28. package/substrate/.claude/hooks/post-skill-telemetry.sh +0 -62
  29. package/substrate/.claude/hooks/pre-build-gate.sh +0 -511
  30. package/substrate/.claude/hooks/pre-commit-gate.sh +0 -451
  31. package/substrate/.claude/hooks/session-end.sh +0 -433
  32. package/substrate/.claude/hooks/session-reflection.sh +0 -303
  33. package/substrate/.claude/hooks/skill-body-grade-gate.sh +0 -219
  34. package/substrate/.claude/hooks/skill-body-intent-drift.sh +0 -107
  35. package/substrate/.claude/hooks/skill-step-list-check.sh +0 -171
  36. package/substrate/.claude/hooks/state-validate.sh +0 -271
  37. package/substrate/.claude/hooks/substrate-clarity-gate.sh +0 -1110
  38. package/substrate/.claude/hooks/temperance-gate.sh +0 -147
  39. package/substrate/.claude/hooks/testing-tier-enforce.sh +0 -233
  40. package/substrate/.claude/hooks/turn-prose-grade-measure.sh +0 -219
  41. package/substrate/.claude/hooks/turn-prose-kiss-check.sh +0 -463
  42. package/substrate/.claude/hooks/vocabulary-migration-check.sh +0 -171
  43. package/substrate/.claude/hooks/whereami-utc-gate.sh +0 -142
  44. package/substrate/.claude/luminaries/alan-cooper.md +0 -170
  45. package/substrate/.claude/luminaries/alistair-cockburn.md +0 -140
  46. package/substrate/.claude/luminaries/amazon-pr-faq.md +0 -34
  47. package/substrate/.claude/luminaries/ash-maurya.md +0 -121
  48. package/substrate/.claude/luminaries/bill-buxton.md +0 -210
  49. package/substrate/.claude/luminaries/charles-sanders-peirce.md +0 -150
  50. package/substrate/.claude/luminaries/david-ogilvy.md +0 -192
  51. package/substrate/.claude/luminaries/don-norman.md +0 -173
  52. package/substrate/.claude/luminaries/edward-tufte.md +0 -179
  53. package/substrate/.claude/luminaries/eric-evans.md +0 -160
  54. package/substrate/.claude/luminaries/frederick-brooks.md +0 -50
  55. package/substrate/.claude/luminaries/gang-of-four.md +0 -157
  56. package/substrate/.claude/luminaries/glenford-myers.md +0 -230
  57. package/substrate/.claude/luminaries/hunt-thomas.md +0 -115
  58. package/substrate/.claude/luminaries/hyrum-wright.md +0 -94
  59. package/substrate/.claude/luminaries/jason-fried-dhh.md +0 -46
  60. package/substrate/.claude/luminaries/jesse-james-garrett.md +0 -154
  61. package/substrate/.claude/luminaries/john-ousterhout.md +0 -94
  62. package/substrate/.claude/luminaries/karl-popper.md +0 -132
  63. package/substrate/.claude/luminaries/kent-beck.md +0 -168
  64. package/substrate/.claude/luminaries/linus-torvalds.md +0 -218
  65. package/substrate/.claude/luminaries/martin-fowler.md +0 -164
  66. package/substrate/.claude/luminaries/michael-feathers.md +0 -125
  67. package/substrate/.claude/luminaries/michael-nygard.md +0 -118
  68. package/substrate/.claude/luminaries/robert-c-martin.md +0 -164
  69. package/substrate/.claude/luminaries/saltzer-schroeder.md +0 -194
  70. package/substrate/.claude/luminaries/sophia-prater.md +0 -193
  71. package/substrate/.claude/luminaries/stephen-toulmin.md +0 -131
  72. package/substrate/.claude/luminaries/tony-hoare.md +0 -170
  73. package/substrate/.claude/luminaries/vaughn-vernon.md +0 -50
  74. package/substrate/.claude/luminaries/w-edwards-deming.md +0 -158
  75. package/substrate/.claude/rules/accessor-library-discipline.md +0 -138
  76. package/substrate/.claude/rules/adr-discipline.md +0 -120
  77. package/substrate/.claude/rules/api-conventions.md +0 -125
  78. package/substrate/.claude/rules/artifact-ingestion.md +0 -179
  79. package/substrate/.claude/rules/assert-only-after-verify.md +0 -137
  80. package/substrate/.claude/rules/blocked-items.md +0 -146
  81. package/substrate/.claude/rules/bootstrap-pair-discipline.md +0 -141
  82. package/substrate/.claude/rules/branching.md +0 -28
  83. package/substrate/.claude/rules/cold-adopter-harness-discipline.md +0 -129
  84. package/substrate/.claude/rules/commit-conventions.md +0 -22
  85. package/substrate/.claude/rules/compounding-axis-fresh-analysis.md +0 -188
  86. package/substrate/.claude/rules/compounding-sequence-fresh-analysis.md +0 -188
  87. package/substrate/.claude/rules/context-engineering.md +0 -202
  88. package/substrate/.claude/rules/context-management.md +0 -85
  89. package/substrate/.claude/rules/defensive-bash.md +0 -68
  90. package/substrate/.claude/rules/deferred-actions.md +0 -233
  91. package/substrate/.claude/rules/destructive-operations.md +0 -69
  92. package/substrate/.claude/rules/diagnosis.md +0 -38
  93. package/substrate/.claude/rules/github-issue-flash-tweet.md +0 -156
  94. package/substrate/.claude/rules/guardrails.md +0 -73
  95. package/substrate/.claude/rules/hook-wire-on-author.md +0 -103
  96. package/substrate/.claude/rules/identifier-leak-prevention.md +0 -104
  97. package/substrate/.claude/rules/iteration-bet-brief-completeness.md +0 -54
  98. package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +0 -98
  99. package/substrate/.claude/rules/longrun-prep-plan-doc-compression.md +0 -89
  100. package/substrate/.claude/rules/loop-discipline.md +0 -81
  101. package/substrate/.claude/rules/manual-prod-approval.md +0 -100
  102. package/substrate/.claude/rules/marker-enrichment-discipline.md +0 -99
  103. package/substrate/.claude/rules/mobile-ephemeral-session.md +0 -109
  104. package/substrate/.claude/rules/new-dependency-check.md +0 -51
  105. package/substrate/.claude/rules/oo-ad-entry-point.md +0 -117
  106. package/substrate/.claude/rules/operator-facing-prose.md +0 -196
  107. package/substrate/.claude/rules/option-label-discipline.md +0 -108
  108. package/substrate/.claude/rules/pattern-annotation.md +0 -100
  109. package/substrate/.claude/rules/plain-english-discipline.md +0 -156
  110. package/substrate/.claude/rules/plan-enumeration-needs-value-props.md +0 -211
  111. package/substrate/.claude/rules/pr-body-shape.md +0 -317
  112. package/substrate/.claude/rules/pr-strategy.md +0 -167
  113. package/substrate/.claude/rules/pr-title-shape.md +0 -161
  114. package/substrate/.claude/rules/prototype-workflow.md +0 -65
  115. package/substrate/.claude/rules/reserved-skill-names.md +0 -123
  116. package/substrate/.claude/rules/schema-management.md +0 -49
  117. package/substrate/.claude/rules/sdlc-gates.md +0 -149
  118. package/substrate/.claude/rules/security.md +0 -37
  119. package/substrate/.claude/rules/session-artifacts.md +0 -236
  120. package/substrate/.claude/rules/skill-composition-declarations.md +0 -124
  121. package/substrate/.claude/rules/skill-description-clarity.md +0 -247
  122. package/substrate/.claude/rules/skill-procedure-step-list.md +0 -137
  123. package/substrate/.claude/rules/state-schema-validation.md +0 -162
  124. package/substrate/.claude/rules/stuck-signal-diagnostic.md +0 -140
  125. package/substrate/.claude/rules/substrate-config-schema.md +0 -98
  126. package/substrate/.claude/rules/test-list-discipline.md +0 -175
  127. package/substrate/.claude/rules/test-sufficiency.md +0 -210
  128. package/substrate/.claude/rules/testing-tier-config.md +0 -145
  129. package/substrate/.claude/rules/testing.md +0 -38
  130. package/substrate/.claude/rules/turn-estimate-grounding.md +0 -134
  131. package/substrate/.claude/rules/visual-hierarchy.md +0 -437
  132. package/substrate/.claude/rules/we-dont-break-adopters.md +0 -126
  133. package/substrate/.claude/rules/whereami-load-bearing.md +0 -202
  134. package/substrate/.claude/rules/writing-craft-discipline.md +0 -92
  135. package/substrate/.claude/rules/wu-sequencing-compounds.md +0 -145
  136. package/substrate/.claude/skills/build/SKILL.md +0 -640
  137. package/substrate/.claude/skills/chronicle/SKILL.md +0 -55
  138. package/substrate/.claude/skills/clean-artifacts/SKILL.md +0 -249
  139. package/substrate/.claude/skills/decompose/SKILL.md +0 -280
  140. package/substrate/.claude/skills/diagnose/SKILL.md +0 -297
  141. package/substrate/.claude/skills/feynman/SKILL.md +0 -90
  142. package/substrate/.claude/skills/howdoi/SKILL.md +0 -105
  143. package/substrate/.claude/skills/ia-model/SKILL.md +0 -108
  144. package/substrate/.claude/skills/interaction-design/SKILL.md +0 -112
  145. package/substrate/.claude/skills/interpret-input/SKILL.md +0 -180
  146. package/substrate/.claude/skills/journal/SKILL.md +0 -209
  147. package/substrate/.claude/skills/kiss/SKILL.md +0 -449
  148. package/substrate/.claude/skills/launch/SKILL.md +0 -915
  149. package/substrate/.claude/skills/lean-canvas/SKILL.md +0 -332
  150. package/substrate/.claude/skills/longrun/SKILL.md +0 -463
  151. package/substrate/.claude/skills/luminary/SKILL.md +0 -481
  152. package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +0 -177
  153. package/substrate/.claude/skills/onboard-repo/SKILL.md +0 -1624
  154. package/substrate/.claude/skills/pattern-review/SKILL.md +0 -99
  155. package/substrate/.claude/skills/personas/SKILL.md +0 -207
  156. package/substrate/.claude/skills/promote/SKILL.md +0 -283
  157. package/substrate/.claude/skills/requirement/SKILL.md +0 -98
  158. package/substrate/.claude/skills/retro/SKILL.md +0 -117
  159. package/substrate/.claude/skills/riff/SKILL.md +0 -114
  160. package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +0 -163
  161. package/substrate/.claude/skills/session-end/SKILL.md +0 -309
  162. package/substrate/.claude/skills/session-log/SKILL.md +0 -299
  163. package/substrate/.claude/skills/skills/SKILL.md +0 -228
  164. package/substrate/.claude/skills/spec/SKILL.md +0 -105
  165. package/substrate/.claude/skills/sprint/SKILL.md +0 -392
  166. package/substrate/.claude/skills/stage/SKILL.md +0 -384
  167. package/substrate/.claude/skills/state-a-problem/SKILL.md +0 -185
  168. package/substrate/.claude/skills/temperance/SKILL.md +0 -108
  169. package/substrate/.claude/skills/use-case/SKILL.md +0 -417
  170. package/substrate/.claude/skills/user-stories/SKILL.md +0 -268
  171. package/substrate/.claude/skills/value-prop/SKILL.md +0 -251
  172. package/substrate/.claude/skills/verify/SKILL.md +0 -160
  173. package/substrate/.claude/skills/visual-review/SKILL.md +0 -503
  174. package/substrate/.claude/skills/whats-the-plan/SKILL.md +0 -202
  175. package/substrate/.claude/skills/whereami/SKILL.md +0 -307
  176. package/substrate/AGENTS.md +0 -79
  177. package/substrate/CLAUDE-lite.md +0 -85
  178. package/substrate/CODE_OF_CONDUCT.md +0 -28
  179. package/substrate/CONTRIBUTING.md +0 -177
  180. package/substrate/README.md +0 -173
  181. package/substrate/SECURITY.md +0 -19
  182. package/substrate/architecture/decisions/ADR-029-release-pipeline.md +0 -79
  183. package/substrate/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +0 -139
  184. package/substrate/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +0 -192
  185. package/substrate/architecture/decisions/ADR-039-release-tagging-scheme.md +0 -145
  186. package/substrate/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +0 -155
  187. package/substrate/architecture/decisions/ADR-044-unified-skill-body-template.md +0 -162
  188. package/substrate/lib/clean-artifacts-sweep.sh +0 -112
  189. package/substrate/lib/code-comment-discipline.sh +0 -144
  190. package/substrate/lib/composer-preflight.sh +0 -459
  191. package/substrate/lib/hook-inject.sh +0 -255
  192. package/substrate/lib/luminary-pick.sh +0 -96
  193. package/substrate/lib/output-discipline.sh +0 -143
  194. package/substrate/lib/prose-scan-boundary.sh +0 -171
  195. package/substrate/lib/rewrite-check.sh +0 -214
  196. package/substrate/lib/state.sh +0 -1372
  197. package/substrate/lib/telemetry.sh +0 -205
  198. package/substrate/lib/tier-check.sh +0 -187
  199. package/substrate/lib/tier-dependency-audit.sh +0 -1088
  200. package/substrate/presence/install/bassclef-hook-connect.sh +0 -178
  201. package/substrate/presence/install/bassclef-sync.dispatcher.template.sh +0 -841
  202. package/substrate/presence/install/bassclef-sync.template.sh +0 -2076
  203. package/substrate/presence/install/schedule-auto-save.cron.sh +0 -88
  204. package/substrate/presence/install/schedule-auto-save.taskscheduler.md +0 -122
  205. package/substrate/scripts/aggregate-telemetry.sh +0 -217
  206. package/substrate/scripts/analyze-tier-dependencies.sh +0 -239
  207. package/substrate/scripts/generate-lite-manifest.sh +0 -505
  208. package/substrate/scripts/generate-tier-manifest.sh +0 -28
  209. package/substrate/scripts/intent-drift-check.sh +0 -456
  210. package/substrate/scripts/lite-manifest-drift-check.sh +0 -146
  211. package/substrate/scripts/render-lite-manifest-doc.sh +0 -150
  212. package/substrate/standards/adr-template.md +0 -86
  213. package/substrate/standards/api-conventions/nextjs.md +0 -84
  214. package/substrate/standards/artifact-composition.md +0 -209
  215. package/substrate/standards/bash-hook-safety.md +0 -246
  216. package/substrate/standards/bassclef-configs-schema.md +0 -232
  217. package/substrate/standards/bassclef-evolution.md +0 -143
  218. package/substrate/standards/bassclef-internal-jargon.md +0 -244
  219. package/substrate/standards/bassclef-managed-sentinel.md +0 -96
  220. package/substrate/standards/bassclef-source-config.md +0 -228
  221. package/substrate/standards/branch-stacking.md +0 -408
  222. package/substrate/standards/code-safety-principles.md +0 -176
  223. package/substrate/standards/composer-prerequisites.md +0 -155
  224. package/substrate/standards/deferred-actions-schema.md +0 -204
  225. package/substrate/standards/dependency-discipline/cargo.md +0 -39
  226. package/substrate/standards/dependency-discipline/gem.md +0 -43
  227. package/substrate/standards/dependency-discipline/go-mod.md +0 -41
  228. package/substrate/standards/dependency-discipline/npm.md +0 -42
  229. package/substrate/standards/dependency-discipline/pip.md +0 -42
  230. package/substrate/standards/deployment-topology/ec2-tailscale.md +0 -225
  231. package/substrate/standards/deployment-topology.md +0 -69
  232. package/substrate/standards/docs-sync-allowlist.md +0 -76
  233. package/substrate/standards/domain-and-dns.md +0 -145
  234. package/substrate/standards/frontend-stack.md +0 -67
  235. package/substrate/standards/frontmatter-schema.md +0 -154
  236. package/substrate/standards/graceful-exit.md +0 -227
  237. package/substrate/standards/hook-idempotency.md +0 -102
  238. package/substrate/standards/hook-injection-discipline.md +0 -202
  239. package/substrate/standards/hook-install-class.md +0 -215
  240. package/substrate/standards/input-handler-interface.md +0 -152
  241. package/substrate/standards/lite-manifest-schema-changes.md +0 -135
  242. package/substrate/standards/luminary-matching.md +0 -105
  243. package/substrate/standards/luminary-problem-patterns.md +0 -481
  244. package/substrate/standards/migration-discipline/active-record.md +0 -50
  245. package/substrate/standards/migration-discipline/alembic.md +0 -43
  246. package/substrate/standards/migration-discipline/gorm.md +0 -50
  247. package/substrate/standards/migration-discipline/prisma.md +0 -53
  248. package/substrate/standards/migration-discipline/sqlalchemy.md +0 -51
  249. package/substrate/standards/mobile-ephemeral-session.md +0 -167
  250. package/substrate/standards/model-routing-discipline.md +0 -160
  251. package/substrate/standards/ogilvy-writing-rules.md +0 -225
  252. package/substrate/standards/opener-discipline.md +0 -96
  253. package/substrate/standards/operator-facing-prose-discipline.md +0 -201
  254. package/substrate/standards/persona-schema.md +0 -229
  255. package/substrate/standards/pluggable-luminaries.md +0 -323
  256. package/substrate/standards/pr-body-discipline.md +0 -115
  257. package/substrate/standards/preview-state-schema.md +0 -189
  258. package/substrate/standards/project-directory-layout.md +0 -276
  259. package/substrate/standards/release-tagging.md +0 -137
  260. package/substrate/standards/reserved-skill-names.md +0 -120
  261. package/substrate/standards/scannable-multi-option-output.md +0 -261
  262. package/substrate/standards/sdlc-compliance.md +0 -286
  263. package/substrate/standards/sdlc-gates/typescript.md +0 -57
  264. package/substrate/standards/secrets-lifecycle.md +0 -210
  265. package/substrate/standards/security-scanner-adapter.md +0 -145
  266. package/substrate/standards/session-board.md +0 -256
  267. package/substrate/standards/skill-output-discipline.md +0 -90
  268. package/substrate/standards/state-spine-contract.md +0 -255
  269. package/substrate/standards/state-spine.md +0 -511
  270. package/substrate/standards/steering-hints/kiss-words.md +0 -11
  271. package/substrate/standards/substrate-config-schema.md +0 -267
  272. package/substrate/standards/tech-stack-config.md +0 -109
  273. package/substrate/standards/tier-dependency-analysis.md +0 -167
  274. package/substrate/standards/tier-runtime-deps/lite.md +0 -57
  275. package/substrate/standards/tier-tag-schema.md +0 -155
  276. package/substrate/standards/two-layer-config.md +0 -99
  277. package/substrate/standards/use-case-format.md +0 -292
  278. package/substrate/standards/user-story-invest.md +0 -268
  279. package/substrate/standards/velocity-and-appetite.md +0 -229
  280. package/substrate/standards/voice-input-pattern.md +0 -119
  281. package/substrate/standards/whereami-schema.md +0 -301
  282. package/substrate/standards/worktree-management.md +0 -211
  283. package/substrate/standards/writing-guide.md +0 -213
  284. package/substrate/templates/chronicle-template.md +0 -75
  285. package/substrate/templates/deferred-action-template.md +0 -45
  286. package/substrate/templates/memory-proposal-template.md +0 -77
  287. package/substrate/templates/persona-template.md +0 -200
  288. package/substrate/templates/pr-faq.md +0 -45
  289. package/substrate/templates/secret-rotation-template.md +0 -162
  290. package/substrate/templates/spec-template.md +0 -131
  291. package/substrate/templates/use-case-template.md +0 -194
  292. package/substrate/templates/user-story-template.md +0 -107
  293. package/substrate/templates/whereami-template.md +0 -101
@@ -1,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.