@thebassclef/lite 0.1.3 → 1.0.1

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 +431 -135
  2. package/dist/cli.js +433 -137
  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/{substrate → dist/lite}/.claude/hooks/artifact-ingestion-gate.sh +0 -0
  8. package/{substrate → dist/lite}/.claude/hooks/assert-verify-steering.sh +0 -0
  9. package/{substrate → dist/lite}/.claude/hooks/bassclef-source-config-validate.sh +0 -0
  10. package/{substrate → dist/lite}/.claude/hooks/bassclef-sync.sh +0 -0
  11. package/{substrate → dist/lite}/.claude/hooks/compound-noun-scrub.sh +0 -0
  12. package/{substrate → dist/lite}/.claude/hooks/kiss-expansion-inject.sh +0 -0
  13. package/{substrate → dist/lite}/.claude/hooks/longrun-prep-compounding-sequence-check.sh +0 -0
  14. package/{substrate → dist/lite}/.claude/hooks/plain-english-steering.sh +0 -0
  15. package/{substrate → dist/lite}/.claude/hooks/post-skill-friction-check.sh +0 -0
  16. package/{substrate → dist/lite}/.claude/hooks/post-skill-telemetry.sh +0 -0
  17. package/{substrate → dist/lite}/.claude/hooks/pre-build-gate.sh +0 -0
  18. package/{substrate → dist/lite}/.claude/hooks/pre-commit-gate.sh +0 -0
  19. package/{substrate → dist/lite}/.claude/hooks/session-end.sh +0 -0
  20. package/{substrate → dist/lite}/.claude/hooks/session-reflection.sh +0 -0
  21. package/{substrate → dist/lite}/.claude/hooks/skill-body-grade-gate.sh +0 -0
  22. package/{substrate → dist/lite}/.claude/hooks/skill-body-intent-drift.sh +0 -0
  23. package/{substrate → dist/lite}/.claude/hooks/state-validate.sh +0 -0
  24. package/{substrate → dist/lite}/.claude/hooks/substrate-clarity-gate.sh +0 -0
  25. package/{substrate → dist/lite}/.claude/hooks/temperance-gate.sh +0 -0
  26. package/{substrate → dist/lite}/.claude/hooks/testing-tier-enforce.sh +0 -0
  27. package/{substrate → dist/lite}/.claude/hooks/turn-prose-grade-measure.sh +0 -0
  28. package/{substrate → dist/lite}/.claude/hooks/turn-prose-kiss-check.sh +0 -0
  29. package/{substrate → dist/lite}/.claude/hooks/vocabulary-migration-check.sh +0 -0
  30. package/{substrate → dist/lite}/.claude/hooks/whereami-utc-gate.sh +0 -0
  31. package/dist/lite/.claude/settings.json +212 -0
  32. package/dist/lite/CLAUDE.md +41 -0
  33. package/dist/lite/gitignore +58 -0
  34. package/dist/lite/standards/bassclef-wiring-manifest.json +497 -0
  35. package/dist/lite/whereami.md +24 -0
  36. package/package.json +8 -2
  37. package/substrate/.bassclef/lite-manifest.json +0 -2701
  38. package/substrate/.claude/agents/architect.md +0 -70
  39. package/substrate/.claude/agents/builder.md +0 -114
  40. package/substrate/.claude/agents/designer.md +0 -156
  41. package/substrate/.claude/agents/reviewer.md +0 -88
  42. package/substrate/.claude/hooks/longrun-prep-compounding-axis-check.sh +0 -492
  43. package/substrate/.claude/hooks/skill-step-list-check.sh +0 -171
  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,131 +0,0 @@
1
- ---
2
- tier: lite
3
- name: Stephen Toulmin
4
- slug: stephen-toulmin
5
- claimed_by: [architect, reviewer, closer]
6
- referenced_by_skills: [state-a-problem, diagnose, architect-review, promote]
7
- primary_domain: philosophy
8
- depth: full
9
- sources:
10
- - type: book
11
- title: "The Uses of Argument"
12
- authors: ["Stephen E. Toulmin"]
13
- year: 1958
14
- url: "https://www.cambridge.org/core/books/uses-of-argument/26CF801BC12004587B66778297D5567C"
15
- isbn: "9780521534833"
16
- methodology_covered:
17
- - "Six-part argument model — claim, data, warrant, backing, qualifier, rebuttal"
18
- - "Field-invariant logical shape distinct from field-dependent standards"
19
- - "Practical reasoning over formal deduction as the actual shape of argument"
20
- - type: book
21
- title: "An Introduction to Reasoning"
22
- authors: ["Stephen Toulmin", "Richard Rieke", "Allan Janik"]
23
- year: 1984
24
- url: "https://www.routledge.com/An-Introduction-to-Reasoning/Toulmin-Rieke-Janik/p/book/9780024211606"
25
- isbn: "9780024211606"
26
- methodology_covered:
27
- - "Applied Toulmin model across disciplines (law, science, ethics, management)"
28
- - "Argument analysis as diagnostic tool for weak reasoning"
29
- - "Field-invariant discipline extended with field-dependent examples"
30
- - type: book
31
- title: "Human Understanding: The Collective Use and Evolution of Concepts"
32
- authors: ["Stephen Toulmin"]
33
- year: 1972
34
- url: "https://press.princeton.edu/books/paperback/9780691019963/human-understanding"
35
- isbn: "9780691019963"
36
- methodology_covered:
37
- - "Rationality as historical practice, not fixed standard"
38
- - "Concepts evolve inside disciplines that judge their fitness"
39
- - "Substrate discipline as living evolving practice"
40
- verification_status: verified
41
- description: "\"An argument is a whole organism. Take out one part and the rest collapses.\""
42
- ---
43
-
44
- # Stephen Toulmin
45
-
46
- ## Signature
47
-
48
- *"An argument is a whole organism. Take out one part and the rest collapses."*
49
-
50
- British philosopher (1922-2009). Author of *The Uses of Argument* (Cambridge, 1958) — the book that gave rhetoric, law, science, and now agent substrate a shared vocabulary for what an argument actually IS. The bassclef voice on assertion discipline, claim shape, and argument structure at the reasoning boundary.
51
-
52
- ## Core methods
53
-
54
- - **The six-part argument** — every real argument has: **claim** (what you assert), **data** (the source that grounds it), **warrant** (the bridge from data to claim), **backing** (why the warrant holds in this field), **qualifier** (how strong the claim is — "usually," "in most cases," "with 95% confidence"), and **rebuttal** (the conditions under which the claim would fail).
55
- - **Field-invariant vs field-dependent** — the shape (claim/data/warrant) holds across every field. The evidence standards inside each cell vary by field. Physics accepts different data than law; the shape is the same.
56
- - **Practical reasoning over formal deduction** — real reasoning is about warrant-quality, not syllogism-completeness. A proof from clean premises rarely captures the actual work of a claim.
57
- - **Argument as diagnostic** — when a claim feels wrong, decompose it into the six parts. The weak part surfaces immediately. Usually it is the warrant.
58
-
59
- ## When to channel this luminary
60
-
61
- When the primary risk is unverified assertions shipping to operator or adopters. Toulmin dominates for audit authoring, cure recommendations, root-cause diagnoses, ADR bodies, and any operator-facing prose where the agent makes a claim. Pair with Popper (falsifiability sharpens the rebuttal cell) and Peirce (abductive reasoning fills the alternative-consideration gap Toulmin leaves implicit).
62
-
63
- Pass-through cases (Toulmin adds no value):
64
-
65
- - Single-sentence status updates. INSTEAD of applying the six-part shape: preserve the update; it carries no claim to decompose.
66
- - Tool-output relay (test output, git output). INSTEAD of applying the six-part shape: preserve the raw output; the tool IS the source.
67
- - Operator-quoted text preserved verbatim. INSTEAD of applying the six-part shape: preserve the quote; attribution IS the citation.
68
-
69
- ## Stack translation
70
-
71
- In bassclef substrate work:
72
-
73
- - **Audit finding** → claim (the finding) + data (source path with line reference) + warrant (why the source proves the finding) + qualifier (severity + observation count) + rebuttal (what would falsify).
74
- - **Cure recommendation** → claim (the cure) + data (source chronicle + line) + warrant (why the source shows the class needs this cure) + rebuttal (alternative cures that fit the same data).
75
- - **Root-cause diagnosis** → claim (the cause) + data (repro + logs) + warrant (why the repro proves causation, not correlation) + qualifier (confidence + N repros).
76
- - **Turn estimate** → claim (N turns) + data (prior WU turn counts) + warrant (why those WUs match this scope) + qualifier (range not point).
77
- - **Severity rank** → claim (HIGH/MEDIUM/LOW) + data (audit criteria the rank comes from) + warrant (why this instance meets those criteria).
78
-
79
- ## Anti-patterns it prevents
80
-
81
- - **Assertion without cited source** — "The hook is broken." No data cell. Falls apart on inspection.
82
-
83
- INSTEAD: state the hook's file path + the observation that shows it breaks + why the observation supports the claim.
84
-
85
- - **Assertion pointing at a source but no warrant** — "Per chronicle 2026-06-30." What in the chronicle? Which line? Which claim does it support?
86
-
87
- INSTEAD: quote the chronicle line + state why the line supports the claim.
88
-
89
- - **Severity without observation criteria** — "This is HIGH-severity" with no data cell naming the threshold and no warrant naming the measurement.
90
-
91
- INSTEAD: state the threshold (from an audit doc or standard) + the measurement (from the repro) + why the measurement exceeds the threshold.
92
-
93
- - **Root cause attribution without qualifier** — "The cause is X" as absolute, when the actual claim is "X fits the data best but two alternatives remain unfalsified."
94
-
95
- INSTEAD: state the qualifier (confidence + N observations) + name the remaining alternatives.
96
-
97
- - **Turn estimate without data cell** — a bare number, no prior evidence, no warrant. This is the R8 pattern named at bassclef#559.
98
-
99
- INSTEAD: state the prior WU turn counts the estimate anchors on + why those WUs match this scope's shape.
100
-
101
- ## Worked example
102
-
103
- For an audit finding about a hook that appears broken:
104
-
105
- Toulmin's shape:
106
-
107
- - **Claim**: The hook `turn-prose-kiss-check.sh` silent-fails under operator install.
108
- - **Data**: Chronicle `2026-06-27-operator-install-kiss-defect.md` L23; reproduced with `HOME_OVERRIDE=/nowhere echo '{}' | bash .claude/hooks/turn-prose-kiss-check.sh` → exits 0 with no stderr.
109
- - **Warrant**: The hook sources `standards/bassclef-internal-jargon.md` via SCRIPT_DIR/../../ path. Under operator install, that path does not exist. The hook's `if` check for path existence exits silent.
110
- - **Qualifier**: HIGH severity. Reproduced across 3 sessions.
111
- - **Rebuttal**: Falsified if the hook is expected to silent-fail under operator install by design. Checked ADR-035 — install-class: dual commits to firing under both layouts. Falsification test fails; claim holds.
112
-
113
- Without Toulmin: "The kiss hook is broken." Six words, no evidence, easy to dismiss or accept without inspection. INSTEAD: state the six cells; each cell earns its place.
114
-
115
- ## Sources
116
-
117
- - *The Uses of Argument* — Toulmin, Cambridge University Press (1958; 2nd ed 2003)
118
- - *An Introduction to Reasoning* — Toulmin, Rieke, Janik, Macmillan (1979; 2nd ed 1984)
119
- - *Human Understanding: The Collective Use and Evolution of Concepts* — Toulmin, Princeton University Press (1972)
120
- - *Return to Reason* — Toulmin, Harvard University Press (2001)
121
- - Stanford Encyclopedia of Philosophy: entry on Toulmin — plato.stanford.edu/entries/toulmin/
122
-
123
- ## Related luminaries
124
-
125
- - **Karl Popper** — Popper's falsifiability sharpens the rebuttal cell of Toulmin's model. Toulmin gives the shape; Popper names what would break the claim. Both ship in bet 2026-07-01b WU-2.
126
- - **Charles Sanders Peirce** — Peirce's abductive reasoning fills the alternative-consideration gap Toulmin leaves implicit. A well-shaped Toulmin argument names ONE claim; Peirce insists on naming multiple candidates before committing. Both ship in bet 2026-07-01b WU-2.
127
- - **Andrej Karpathy** — Karpathy's context engineering treats the model's context window as finite RAM. Toulmin's argument model is what fills that RAM with claim shape when the operator asks the agent to reason. Together they close the reasoning-boundary discipline surface.
128
- - **Michael Feathers** — Feathers' characterization tests are the data cell for the substrate-as-system tenet. Toulmin's warrant becomes "the characterization test proves the mechanism ships the claim."
129
- - **Kent Beck** — Beck's red-green-refactor cycle IS a Toulmin argument at the code layer. Red is the falsifiable claim; green is the passing data; refactor sharpens the warrant.
130
-
131
- Anchors `.claude/rules/assert-only-after-verify.md` alongside Popper + Peirce. Primary luminary for `/state-a-problem` skill in Problem-section drafting.
@@ -1,170 +0,0 @@
1
- ---
2
- tier: lite
3
- name: Tony Hoare
4
- slug: tony-hoare
5
- claimed_by: [builder, reviewer, architect]
6
- referenced_by_skills: [verify, pattern-review, decompose]
7
- primary_domain: engineering
8
- depth: full
9
- sources:
10
- - type: paper
11
- title: "An Axiomatic Basis for Computer Programming"
12
- authors: ["C. A. R. Hoare"]
13
- year: 1969
14
- venue: "Communications of the ACM, 12(10), 576-580"
15
- url: "https://dl.acm.org/doi/10.1145/363235.363259"
16
- methodology_covered:
17
- - "Hoare logic — the triple {P} S {Q} relating precondition P, statement S, postcondition Q"
18
- - "Formal reasoning about program correctness through assertion calculus"
19
- - "Axiomatic semantics — meaning of a program is what can be proved about it"
20
- - type: paper
21
- title: "Hints on Programming Language Design"
22
- authors: ["C. A. R. Hoare"]
23
- year: 1973
24
- venue: "Stanford Computer Science Department, STAN-CS-73-403"
25
- url: "https://www.cs.tufts.edu/~nr/cs257/archive/tony-hoare/hints-pl-design.pdf"
26
- methodology_covered:
27
- - "Simplicity is the unique selling proposition of a programming language"
28
- - "Security via construction — design out classes of error rather than detect them"
29
- - "Readability primacy — a program is read more often than it is written"
30
- - type: paper
31
- title: "Communicating Sequential Processes"
32
- authors: ["C. A. R. Hoare"]
33
- year: 1978
34
- venue: "Communications of the ACM, 21(8), 666-677"
35
- url: "https://dl.acm.org/doi/10.1145/359576.359585"
36
- methodology_covered:
37
- - "CSP — concurrency as composition of independent processes communicating via synchronous channels"
38
- - "Influenced Go's goroutines + channels, Erlang's actor model, occam"
39
- - type: talk
40
- title: "Null References: The Billion Dollar Mistake"
41
- authors: ["C. A. R. Hoare"]
42
- year: 2009
43
- venue: "QCon London"
44
- url: "https://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare/"
45
- methodology_covered:
46
- - "Reflection on ALGOL W (1965) decision to allow null references — admits as billion-dollar mistake"
47
- - "Design errors out of existence via type system — modern relevance to Option / Result / NonNullable types"
48
- verification_status: verified
49
- description: "\"There are two ways of constructing a software design: one is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are…"
50
- ---
51
-
52
- # Tony Hoare
53
-
54
- ## Signature
55
-
56
- *"There are two ways of constructing a software design: one is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult."*
57
-
58
- Sir Charles Antony Richard Hoare. Turing Award winner (1980) for "fundamental contributions to the definition and design of programming languages." Author of **Quicksort** (1959), **Hoare logic** (1969), and **Communicating Sequential Processes** (1978). Oxford professor emeritus and Microsoft Research senior researcher. The bassclef voice on contract-driven reasoning, simplicity-as-discipline, and designing errors out of existence.
59
-
60
- ## Core methods
61
-
62
- - **Hoare logic — the `{P} S {Q}` triple** — A program statement `S` is correct with respect to precondition `P` and postcondition `Q` if: when `P` holds before `S` executes, then `Q` holds after `S` terminates. The triple is the formal contract between caller and callee. Test sufficiency for a function is: cover every meaningful `(P, Q)` pair the function commits to.
63
- - **Precondition discipline** — A function's precondition is what the caller must guarantee. Violations are programmer errors, not runtime errors. Pre-validate at the boundary; trust internally.
64
- - **Postcondition discipline** — A function's postcondition is what it guarantees on return. The test asserts the postcondition; the implementation establishes it.
65
- - **Loop invariant** — A condition true before the loop, after every iteration, and on exit. The invariant IS the proof that the loop establishes its postcondition.
66
- - **Class invariant** (operationalized by Bertrand Meyer in Eiffel's Design by Contract, 1986) — A condition that holds at every observable state of an instance. Constructors must establish it; methods must preserve it.
67
- - **Communicating Sequential Processes (CSP)** — Concurrency as composition of independent processes that synchronize only through explicit channels. Shared mutable state replaced by message-passing. Direct ancestor of Go's goroutines + channels, Erlang's actor model.
68
- - **Simplicity as design discipline** — Hoare's most-cited prescription: choose the design where deficiencies are obvious, not the design where there are no obvious deficiencies. The two are not equivalent; the second hides bugs the first surfaces.
69
- - **Design errors out of existence** — Null references were a 1965 design choice Hoare publicly regrets. The lens: if a class of error CAN be made impossible by construction (type system, API shape, invariant enforcement), make it so. Detection is strictly weaker than prevention.
70
-
71
- ## When to channel this luminary
72
-
73
- When the primary risk is correctness under interaction — multiple callers, multiple states, contracts implicit but unenforced. Hoare dominates for state-spine accessors, hook input/output contracts, concurrent code (locks, queues, event ordering), and API boundaries where the contract has to survive every caller.
74
-
75
- Pair with Beck (TDD rhythm), Myers (coverage taxonomy of what to assert), Ousterhout (design judgment for where to draw the boundary). Beck owns the cycle; Myers owns the categories; Ousterhout owns the shape; Hoare owns the contract itself.
76
-
77
- Skip Hoare when: the work is exploratory spike code with no caller, the interface is genuinely throwaway, or the relevant risk is design-quality rather than contract-correctness (route to Ousterhout). Hoare's discipline carries overhead; apply where the overhead earns its keep.
78
-
79
- INSTEAD of citing Hoare for refactoring tactics, design-pattern selection, or test rhythm: route to Fowler, GoF, and Beck respectively.
80
-
81
- ## Stack translation
82
-
83
- In bassclef's bash hook + state-spine substrate:
84
-
85
- - **Hook tests as contract assertions** — Every hook test case is a Hoare triple in disguise. Test name = `(P, Q)` pair; arrange-act-assert is `establish P → run S → check Q`. Example: for `auto-save-idle.sh`, `test('SESSION_LOCK present suppresses auto-save', ...)` is `{LOCK file exists} run hook {no commit happens}`. The test sufficiency rubric's "stdin contract" criterion IS Hoare's precondition discipline.
86
- - **State-spine accessors as contracts** — `state_whereami_set "key" "value"` has precondition (`key` is a valid Whereami field path; `value` is JSON-serializable + schema-conformant) and postcondition (state stored + queryable via `state_whereami_get "key"`). The `state-validate.sh` PreToolUse hook IS the mechanical enforcement of the precondition; the schema IS the contract.
87
- - **Pre-build-gate hook as precondition enforcement** — Every gate the hook fires (temperance marker present? diagnose evidence on fix/ branches? state markers in place?) is a precondition the substrate refuses to relax. The hook BLOCKs to prevent the agent from violating a contract that downstream consumers depend on.
88
- - **Bash strict mode as invariant** — `set -euo pipefail` establishes an invariant: any unhandled error terminates the script. The invariant must hold across every function; `trap EXIT` cleanup respects the invariant by running regardless of exit path.
89
- - **CSP-style channels in bassclef** — Inter-session coordination via roadmap event_history (bassclef#337) follows CSP shape: each session is a process; the roadmap is the synchronization channel; atomic claim/release primitives are the synchronous message-pass. Direct application of Hoare's 1978 paper to multi-agent SDLC.
90
-
91
- In Next.js + TypeScript adopter stacks:
92
-
93
- - **Type system as precondition encoder** — `Option<T>` / `Result<T, E>` / branded types make Hoare's "design errors out of existence" mechanical. `NonNullable<T>` is null-as-billion-dollar-mistake corrected at compile time.
94
- - **Zod schemas as boundary contracts** — Validate at the system boundary (API route handler, message consumer); trust internally. Zod parse failure IS the precondition violation Hoare's framing makes explicit.
95
- - **Class invariants in domain models** — A `Deal` instance with `status: 'closed' && closingPrice: undefined` violates an invariant. Constructors + factories enforce it; methods preserve it.
96
-
97
- ## Anti-patterns it prevents
98
-
99
- - **Implicit contracts that drift** — A function with no documented precondition has every caller guessing. When one caller's assumption diverges from another's, bugs appear at the seam. Hoare's discipline forces the contract to be explicit (test, type, assertion, or comment).
100
- - **Defensive coding scattered across callers** — Every caller checking the same precondition is a contract that should have been centralized at the callee's boundary. Pre-validate once at the entry; trust thereafter.
101
- - **Postcondition-by-vibe** — "It seems to work" is not a contract. Hoare's framing requires the postcondition be statable and testable. If it is not statable, the function's purpose is unclear.
102
- - **Loop-by-mutation-tracking** — A loop where correctness depends on tracking which variables mutated in which order is harder to reason about than a loop with an explicit invariant. Hoare's invariant discipline asks: what is true at the top of every iteration?
103
- - **Null-as-default** — Returning `null` (or `undefined`) for "not found" forces every caller to handle the missing case. Returning `Option<T>` (or `NotFound<T>`) encodes the precondition into the type system. Hoare's billion-dollar-mistake talk is the bassclef case against null-as-default.
104
- - **Shared mutable state for coordination** — Two processes synchronizing through a shared variable hold an implicit lock the language has no visibility into. CSP-style channels make the synchronization explicit; the channel IS the synchronization.
105
-
106
- ## Worked example
107
-
108
- Tightening bassclef's `auto-save-idle.sh` hook under Hoare's discipline:
109
-
110
- **Before — implicit contract:**
111
-
112
- ```bash
113
- # Pseudocode of pre-#1085 state
114
- if [ -z "$(git status --porcelain)" ]; then exit 0; fi
115
- git add -A
116
- git commit -m "auto-save: $(date -u)"
117
- ```
118
-
119
- What is the precondition? Caller assumes: working tree dirty, no SESSION_LOCK, no commit-sequence in flight. None of these are stated. Three different sessions can produce three different definitions of "should this commit?"
120
-
121
- **After — Hoare-explicit contract:**
122
-
123
- ```bash
124
- # {P}: working tree dirty AND no SESSION_LOCK AND no defer marker for commit-sequence
125
- [ -n "$(git status --porcelain)" ] || { exit 0; } # P-1: dirty
126
- [ ! -f .claude/SESSION_LOCK ] || { exit 0; } # P-2: no lock
127
- [ ! -f state/markers/auto-save-defer/commit-sequence.marker ] || { exit 0; } # P-3: no defer
128
-
129
- # S: stage + commit
130
- git add -A
131
- git commit -m "auto-save: $(date -u)"
132
-
133
- # {Q}: HEAD advanced by exactly one commit AND working tree clean
134
- [ "$(git status --porcelain)" = "" ] # Q-1: clean
135
- ```
136
-
137
- What the test owes (Hoare-derived test list):
138
-
139
- ```bash
140
- # test-list:
141
- # [x] {dirty AND no LOCK AND no defer} → commit happens AND tree clean (P all true, Q holds)
142
- # [x] {LOCK present} → no commit (P-2 false; hook returns early before S)
143
- # [x] {defer marker present} → no commit (P-3 false; hook returns early before S)
144
- # [x] {clean tree} → no commit (P-1 false; nothing to commit)
145
- # [x] {LOCK AND defer present} → no commit, LOCK takes precedence in early-exit order
146
- ```
147
-
148
- The test list IS the Hoare triple decomposed. Each line names one `(P, Q)` pair. The hook is the implementation that establishes Q when P holds.
149
-
150
- What this discipline catches: PR #1058 (the auto-save-scope-hole that bassclef#1059 closed) shipped without P-2 enforced. A Hoare-explicit contract from day one would have surfaced the missing precondition at write time, not after the failure ran in production substrate.
151
-
152
- ## Sources
153
-
154
- - "An Axiomatic Basis for Computer Programming" — Hoare, *Communications of the ACM* 12(10), 1969
155
- - "Hints on Programming Language Design" — Hoare, Stanford CS, 1973
156
- - "Communicating Sequential Processes" — Hoare, *Communications of the ACM* 21(8), 1978; book Prentice Hall, 1985
157
- - "Null References: The Billion Dollar Mistake" — Hoare, QCon London 2009
158
- - "Quicksort" — Hoare, *Computer Journal* 5(1), 1962
159
- - ACM Turing Award citation (1980)
160
- - Oxford Department of Computer Science emeritus page
161
- - Microsoft Research Cambridge senior researcher page
162
-
163
- ## Related luminaries
164
-
165
- - **Bertrand Meyer** — Design by Contract operationalized Hoare's logic for Eiffel (1986); same lens with practitioner-grade tooling. Modern type systems (TypeScript, Rust, Scala) carry DBC patterns Meyer named.
166
- - **Edsger Dijkstra** — Structured programming + weakest-precondition calculus extended Hoare's axiomatic basis. Famously argued "testing shows the presence, not the absence, of bugs" — the counterweight that says even Hoare-explicit contracts do not prove correctness in the formal sense.
167
- - **Glenford Myers** — Coverage taxonomy supplies the WHICH categories of input exercise a contract; Hoare supplies WHAT the contract is. Both are required for a complete test suite.
168
- - **Kent Beck** — TDD rhythm produces tests; Hoare contracts decide what those tests must assert. Beck's "make it work" needs Hoare's "what does it commit to" to be testable.
169
- - **John Ousterhout** — Deep modules with small interfaces are easier to contract-test (small surface area for `(P, Q)` pairs). Ousterhout's design quality lens implicitly rewards Hoare-explicit interfaces.
170
- - **Tony Hoare's own work on CSP** — direct ancestor of Go (channels + goroutines), Erlang (actor model), occam. Bassclef's event_history + atomic claim/release pattern (bassclef#337) is CSP applied to multi-session SDLC.
@@ -1,50 +0,0 @@
1
- ---
2
- tier: lite
3
- name: Vaughn Vernon
4
- slug: vaughn-vernon
5
- claimed_by: [architect]
6
- referenced_by_skills: [decompose, architect-review]
7
- primary_domain: architecture
8
- depth: stub
9
- description: "\"DDD is implementable. Here's how.\""
10
- ---
11
-
12
- # Vaughn Vernon
13
-
14
- ## Signature
15
-
16
- *"DDD is implementable. Here's how."*
17
-
18
- Author of **Implementing Domain-Driven Design** (the "red book") and
19
- **Domain-Driven Design Distilled**. The canonical operational voice for
20
- DDD — where Evans provides the philosophy, Vernon provides the code.
21
-
22
- ## Core methods
23
-
24
- - **Bounded Context Canvas** — Structured workshop output that defines a
25
- bounded context's purpose, strategic classification, domain roles,
26
- ubiquitous language, and inbound/outbound communication.
27
- - **Context mapping patterns** — Partnership, Shared Kernel,
28
- Customer/Supplier, Conformist, Anticorruption Layer, Open Host Service,
29
- Published Language, Separate Ways, Big Ball of Mud. Vocabulary for how
30
- bounded contexts relate.
31
- - **Aggregate design rules** — Small aggregates; reference other
32
- aggregates by ID only; update one aggregate per transaction; use
33
- eventual consistency between aggregates.
34
- - **Event Storming (via Alberto Brandolini)** — Vernon popularized this
35
- modeling method as the pragmatic entry point to DDD for teams new to it.
36
-
37
- ## Sources
38
-
39
- - *Implementing Domain-Driven Design* — Vernon, Addison-Wesley (2013)
40
- - *Domain-Driven Design Distilled* — Vernon, Addison-Wesley (2016)
41
- - *Strategic Monoliths and Microservices* — Vernon, Jaskuła (2021)
42
- - kalele.io — Vernon's consultancy and ongoing DDD content
43
-
44
- ## Related luminaries
45
-
46
- - **Eric Evans** — Vernon operationalizes Evans; pair them always.
47
- - **Alistair Cockburn** — Hexagonal Architecture pairs naturally with
48
- bounded contexts; aggregates live inside hexagons.
49
- - **Gregor Hohpe** — EIP's anticorruption-layer aligns with Vernon's
50
- context mapping.
@@ -1,158 +0,0 @@
1
- ---
2
- tier: lite
3
- name: W. Edwards Deming
4
- slug: w-edwards-deming
5
- claimed_by: [builder, architect, closer, shaper]
6
- primary_domain: engineering
7
- depth: full
8
- description: "\"A bad system will beat a good person every time.\""
9
- ---
10
-
11
- # W. Edwards Deming
12
-
13
- ## Signature
14
-
15
- *"A bad system will beat a good person every time."*
16
-
17
- W. Edwards Deming (1900–1993) was a statistician who taught Japanese
18
- industry to read the system, not the person, when results disappoint.
19
- His finding from decades of plant data: roughly **94% of variation in
20
- outcomes traces to the system**, and roughly **6% traces to people**.
21
- The implication was strict — every time results land badly and the
22
- default reaction is "the person should have been more careful," the
23
- default is wrong 94% of the time. Deming's full discipline ran from the
24
- ground up: a cycle for improvement (**PDSA / PDCA**), a framing for
25
- what management owed the system (**14 Points**), and a system view
26
- called the **System of Profound Knowledge** that tied it all together.
27
-
28
- ## Core methods
29
-
30
- - **PDCA / PDSA cycle (Plan-Do-Check-Act, later Plan-Do-Study-Act)** —
31
- the discipline of substrate improvement. Plan a change. Do it small
32
- first. Study what actually happened. Act on the finding (standardize
33
- or revise). Loop. Use when the change is non-trivial AND the team is
34
- about to ship without a structured way to learn from the result.
35
- - **14 Points for Management** — the duties of leadership in a system
36
- that produces variation. Headline points: drive out fear; break down
37
- barriers between departments; cease dependence on inspection (build
38
- quality in); institute leadership; remove arbitrary numerical quotas.
39
- Read the full 14 when shaping team structure or substrate-discipline
40
- rules — many bassclef rules are 14-Points applied to agents.
41
- - **System of Profound Knowledge** — four lenses applied together:
42
- appreciation for a system (the whole, not the parts); theory of
43
- variation (special vs common causes); theory of knowledge (no
44
- knowledge without prediction); psychology (people respond to
45
- systems). Use when the question is "what kind of fix is this" —
46
- process-level, structural, learning, or human.
47
- - **Common cause vs special cause** — variation has two flavors. Common
48
- cause is built into the system (every run produces it). Special
49
- cause is a specific event (a one-time trigger). The diagnosis path is
50
- different for each. Use when picking remediation: common cause needs
51
- a system change; special cause needs a single intervention.
52
-
53
- ## When to channel this luminary
54
-
55
- Channel Deming whenever the default explanation reaches for
56
- operator-forgetfulness, agent-laziness, adopter-skill-gaps, or any
57
- "person should have been more careful" framing. Deming forces the
58
- question: is the system designed to make the right behavior easy? If
59
- not, the system is the defect.
60
-
61
- Also channel when shaping a hardening pass. The four lenses of the
62
- System of Profound Knowledge are the architect-review lenses Deming
63
- would apply in order. Specifically:
64
-
65
- - Appreciation for a system → C4 Context + Container diagrams; see the
66
- whole substrate before zooming into hooks
67
- - Theory of variation → distinguish substrate-wide failure classes
68
- (common cause) from one-off PR breakage (special cause)
69
- - Theory of knowledge → every hardening proposal predicts an outcome;
70
- no prediction means no learning when the result lands
71
- - Psychology → adopters respond to substrate friction; reduce the
72
- friction rather than asking adopters to push through it
73
-
74
- ## Stack translation
75
-
76
- Bassclef's hooks, rules, validators, and skills are the **system**
77
- Deming describes. Operators and Claude Code agents are the **people**.
78
- When a defect surfaces:
79
-
80
- - If the same defect surfaces across three sessions, that is common
81
- cause — patch the system (hook, validator, rule)
82
- - If the defect is a one-time slip (a typo, a missed paste), that is
83
- special cause — fix the instance; do not change the substrate
84
- - If the defect surfaces because the discipline is methodology-only
85
- (no mechanical gate), the system is the defect — escalate to hook
86
-
87
- PDCA maps onto substrate evolution: a /promote ticket is the **Plan**.
88
- Shipping the rule + hook is the **Do**. Watching for stuck-signal
89
- diagnostics across the next month is the **Study**. Closing or revising
90
- the rule based on usage data is the **Act**. Bassclef's
91
- `stuck-signal-diagnostic.md` rule is Deming's Study phase made
92
- mechanical.
93
-
94
- ## Anti-patterns it prevents
95
-
96
- - **Operator-forgetfulness framing** — When a SessionStart hook fires
97
- on a missing field, the first instinct can be "the operator forgot
98
- to add it." Deming asks: is the hook design such that the field is
99
- obvious? Is the bootstrap row shipped with the validator? If the
100
- answer to either is no, the system is the defect — not the operator.
101
- - **Inspection-as-quality** — When a substrate gate fires repeatedly
102
- and the answer is "more vigilance," that is inspection-instead-of-
103
- quality-built-in. Deming Point #3: cease dependence on inspection.
104
- Instead, build the validation INTO the surface that produces the
105
- artifact (template that includes the required field; schema
106
- validation at write time; pre-commit gate that emits the missing
107
- row).
108
- - **Quota-driven scope-cutting** — When a session's appetite framing
109
- drives toward (a) narrow fix because (c) full audit feels too big,
110
- Deming Point #11 fires: remove arbitrary numerical quotas. Appetite
111
- is a budget for shape-picking, not a quota for cause-categorization.
112
- Run fishbone first; THEN pick the scope that fits the cause.
113
-
114
- ## Worked example
115
-
116
- 2026-06-24 chronicle reads: "Operator-side rot has structural cause,
117
- not operator forgetfulness." That single sentence is Deming applied.
118
- The 51-hour-stale `~/.claude/hooks/bassclef-sync.sh` did not happen
119
- because the operator forgot to update; it happened because the cp-list
120
- in §3 of the sync script omitted the script itself — the hook could
121
- not update itself. ADR-034 closed the gap with the two-stage rocket
122
- pattern — a SYSTEM change, not a person change.
123
-
124
- The four 2026-06-24 substrate defects all share the same Deming class:
125
-
126
- | Defect | System fix shipped | If Deming had been ignored |
127
- |---|---|---|
128
- | Operator-side rot | ADR-034 two-stage bootstrap | Tell operator to remember to sync |
129
- | 32 unwired hooks | #319 + #320 audit | Tell agent to remember to wire |
130
- | /kiss skip on PRs | bassclef#915 → hook | Tell agent to remember /kiss |
131
- | Public-scripts origin | #320 audit + WU-2 C4 Container | Tell operator to remember |
132
-
133
- The right-column reactions are the 6% framing. The left-column fixes
134
- are the 94% framing. Bassclef ships the 94% reactions by default; this
135
- luminary names the discipline.
136
-
137
- ## Sources
138
-
139
- - *Out of the Crisis* — Deming (1986)
140
- - *The New Economics for Industry, Government, Education* — Deming (1993)
141
- - *Statistical Quality Control* — Deming (1939)
142
-
143
- ## Related luminaries
144
-
145
- - **Walter Shewhart** — Deming's mentor; originator of PDCA (then
146
- PDSA). Bassclef does not yet ship a Shewhart entry; the discipline
147
- comes through Deming.
148
- - **Kaoru Ishikawa** — fishbone categorizes; PDCA improves. Use
149
- Ishikawa to see the categories; use Deming to run the improvement
150
- cycle.
151
- - **Taiichi Ohno** — Five Whys traces one chain; Deming asks whether
152
- the chain is common-cause or special-cause variation.
153
- - **Linus Torvalds** — "we do not break userspace" is Deming Point #1
154
- (constancy of purpose) applied to kernel stability. Bassclef's
155
- adopter-respect rule is the same shape.
156
- - **John Ousterhout** — deep modules hide complexity; Deming would
157
- call this designing the system so the surface is easy to use
158
- correctly.
@@ -1,138 +0,0 @@
1
- ---
2
- tier: lite
3
- description: State spine consumers (skills, hooks, rules, scripts) MUST go through the typed accessor library lib/state.sh to read or write bassclef state.
4
- ---
5
-
6
- # Accessor Library Discipline
7
-
8
- State spine consumers (skills, hooks, rules, scripts) MUST go through
9
- the typed accessor library `lib/state.sh` to read or write bassclef
10
- state. Direct filesystem access (cat, jq, awk, grep over JSON state
11
- files) is forbidden when an accessor exists.
12
-
13
- This rule is the Adapter discipline that preserves cxdb portability —
14
- exit criterion 1 of the 7 in canvas v4 §"Adapter discipline":
15
-
16
- > **Accessor library is the ONLY consumer of cxdb APIs.** No skill,
17
- > hook, rule, or script invokes cxdb directly. All access goes through
18
- > `lib/state.sh`.
19
-
20
- Same principle applied at v0 (where the storage backend IS the
21
- filesystem): no consumer reaches around the accessor to the raw files.
22
-
23
- ## Why this rule exists
24
-
25
- When cxdb adoption ships (bassclef#300), the implementation of
26
- `lib/state.sh` swaps from JSON-on-git to cxdb's Turn DAG + Blob CAS.
27
- **This swap is invisible to consumers IF and ONLY IF every consumer
28
- goes through the accessor.** Any consumer that reads
29
- `docs/whereami.json` directly today will need editing tomorrow.
30
-
31
- Beyond cxdb portability, this rule also enforces:
32
-
33
- - **Replay-determinism** — accessors carry the "derive from history,
34
- never cache" rule per canvas v4 SWF mining. Bypassing the accessor
35
- bypasses the discipline (this is what produced bassclef#296
36
- compliance-counter floor-lift).
37
- - **Schema validation** — accessors that mutate (add/set/update_status)
38
- invoke the validator before writing. Direct file writes skip this
39
- gate.
40
- - **Single-source consistency** — if Whereami's storage shape changes
41
- (e.g., schema field rename), only `lib/state.sh` needs updating.
42
-
43
- ## What this rule forbids
44
-
45
- In any skill, hook, rule, or script:
46
-
47
- - `cat docs/whereami.json` → use `state_whereami_get`
48
- - `jq '.field' docs/whereami.json` → use `state_whereami_get | jq '.field'`
49
- - `find state/markers -name '*.json' | wc -l` → use `state_marker_count`
50
- - `awk '/gates_fired:/' chronicle/*.md` → use `state_chronicle_gate_evidence`
51
- - `ls docs/deferred-actions/*.md | grep -v completed` → use `state_deferred_action_pending`
52
- - `cat docs/iteration-bets/<slug>.md | yq frontmatter` → use `state_iteration_bet_get`
53
-
54
- In general: any pattern that reaches into a state file (JSON or
55
- markdown frontmatter) is the violation. Read the contract at
56
- `standards/state-spine-contract.md` for the bassclef accessor surface.
57
-
58
- ## What this rule allows
59
-
60
- - **Reading the accessor library itself** — `source lib/state.sh` and
61
- call its functions. That's the entire point.
62
- - **Reading non-state markdown content** — body sections of Shape B
63
- entities (the narrative parts, not the YAML frontmatter) can be
64
- read directly. Example: `awk '/## Procedure/,/^## /' docs/iteration-bets/<slug>.md`
65
- to extract the Procedure section is fine; that's narrative content,
66
- not state.
67
- - **Reading non-spine files** — `cat .claude/skills/<skill>/SKILL.md`,
68
- `cat README.md`, etc. State spine entities are enumerated in
69
- `standards/state-spine.md`; other files aren't governed.
70
- - **Direct JSON writes during one-shot migrations** (e.g., WU-4
71
- migration script). Migration scripts are explicitly out-of-band —
72
- they bootstrap state into the spine from prior shapes.
73
-
74
- ## What about new accessors that don't exist yet?
75
-
76
- If a consumer needs an accessor not yet in `lib/state.sh`:
77
-
78
- 1. **Check if a generic verb suffices** — `state_<entity>_get`,
79
- `state_<entity>_list`, `state_<entity>_count` cover most reads.
80
- 2. **If a special-purpose accessor is needed**, propose it to the
81
- contract first (`standards/state-spine-contract.md` §"Special-purpose
82
- accessors"), then implement in `lib/state.sh`, then consume.
83
- 3. **Do NOT bypass with direct file access** "just for now." That's
84
- the path that produced bassclef#296.
85
-
86
- The cost of adding a new accessor is small (~5-10 lines + tests). The
87
- cost of accumulating ad-hoc bypass patterns is large and compounds
88
- (every consumer needs a fix when the storage backend changes).
89
-
90
- ## Enforcement
91
-
92
- ### Methodology level
93
-
94
- This rule loads into every session via `additionalDirectories`. Agents
95
- self-check against it before reading or writing state. Code review
96
- flags any direct state-file access in PRs.
97
-
98
- ### Mechanical level (paired with WU-3)
99
-
100
- The `state-validate.sh` PreToolUse hook (WU-3) detects direct writes
101
- to state files and BLOCKs unless the change is going through an
102
- accessor. Read-side enforcement is harder to mechanize but the
103
- write-side gate covers the most damaging case.
104
-
105
- ### Future mechanical level (post-v0)
106
-
107
- A pre-commit hook could grep for forbidden patterns (`cat docs/whereami.json`,
108
- `jq.*docs/whereami.json`, etc.) in staged changes and BLOCK unless an
109
- override comment is present. Defer to v1 once empirical violation rate
110
- is observable.
111
-
112
- ## Override
113
-
114
- `SKIP_ACCESSOR_DISCIPLINE=1 <command>` — logged to trace per existing
115
- bassclef hook idiom. Use only for genuinely-not-yet-covered cases
116
- where adding the accessor is in flight; not as a habitual workaround.
117
-
118
- ## Relationship to other rules + standards
119
-
120
- - `standards/state-spine.md` — entity catalog + storage shapes
121
- - `standards/state-spine-contract.md` — the accessor surface this rule
122
- enforces consumption through
123
- - `lib/state.sh` — the implementation
124
- - `.claude/rules/state-schema-validation.md` (paired with WU-3) —
125
- write-time validation; the accessor's `add`/`set`/`update_status`
126
- methods invoke this validator before writing
127
- - canvas v4 §"Adapter discipline" — the source of this discipline; one
128
- of 7 exit criteria for cxdb portability
129
- - bassclef#296 — the compliance-counter floor-lift incident that
130
- motivates pure-derivation discipline (this rule + replay-determinism)
131
-
132
- ## Retirement condition
133
-
134
- This rule retires only if the accessor library itself retires (very
135
- unlikely — the library is the substrate primitive other state work
136
- builds on). If a future architectural shift moves accessors elsewhere
137
- (e.g., into per-entity files like `lib/state/whereami.sh`), this rule
138
- amends to point at the new location; the discipline persists.