@thebassclef/lite 1.0.4 → 1.1.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 (275) hide show
  1. package/dist/cli.cjs +298 -55
  2. package/dist/cli.js +298 -55
  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/.claude/agents/architect.md +70 -0
  7. package/dist/lite/.claude/agents/builder.md +114 -0
  8. package/dist/lite/.claude/agents/designer.md +156 -0
  9. package/dist/lite/.claude/agents/reviewer.md +88 -0
  10. package/dist/lite/.claude/hooks/bassclef-sync.sh +85 -27
  11. package/dist/lite/.claude/hooks/longrun-prep-compounding-axis-check.sh +492 -0
  12. package/dist/lite/.claude/hooks/longrun-prep-render-check.sh +236 -0
  13. package/dist/lite/.claude/hooks/persona-name-scrub-check.sh +105 -0
  14. package/dist/lite/.claude/hooks/skill-step-list-check.sh +171 -0
  15. package/dist/lite/.claude/luminaries/alan-cooper.md +170 -0
  16. package/dist/lite/.claude/luminaries/alistair-cockburn.md +140 -0
  17. package/dist/lite/.claude/luminaries/amazon-pr-faq.md +34 -0
  18. package/dist/lite/.claude/luminaries/andreas-zeller.md +74 -0
  19. package/dist/lite/.claude/luminaries/ash-maurya.md +121 -0
  20. package/dist/lite/.claude/luminaries/bill-buxton.md +210 -0
  21. package/dist/lite/.claude/luminaries/charles-sanders-peirce.md +150 -0
  22. package/dist/lite/.claude/luminaries/david-ogilvy.md +192 -0
  23. package/dist/lite/.claude/luminaries/don-norman.md +173 -0
  24. package/dist/lite/.claude/luminaries/edward-tufte.md +179 -0
  25. package/dist/lite/.claude/luminaries/eric-evans.md +160 -0
  26. package/dist/lite/.claude/luminaries/frederick-brooks.md +50 -0
  27. package/dist/lite/.claude/luminaries/gang-of-four.md +157 -0
  28. package/dist/lite/.claude/luminaries/glenford-myers.md +230 -0
  29. package/dist/lite/.claude/luminaries/hunt-thomas.md +115 -0
  30. package/dist/lite/.claude/luminaries/hyrum-wright.md +94 -0
  31. package/dist/lite/.claude/luminaries/jason-fried-dhh.md +46 -0
  32. package/dist/lite/.claude/luminaries/jesse-james-garrett.md +154 -0
  33. package/dist/lite/.claude/luminaries/john-ousterhout.md +94 -0
  34. package/dist/lite/.claude/luminaries/karl-popper.md +132 -0
  35. package/dist/lite/.claude/luminaries/kent-beck.md +168 -0
  36. package/dist/lite/.claude/luminaries/linus-torvalds.md +218 -0
  37. package/dist/lite/.claude/luminaries/martin-fowler.md +164 -0
  38. package/dist/lite/.claude/luminaries/michael-feathers.md +125 -0
  39. package/dist/lite/.claude/luminaries/michael-nygard.md +118 -0
  40. package/dist/lite/.claude/luminaries/robert-c-martin.md +164 -0
  41. package/dist/lite/.claude/luminaries/saltzer-schroeder.md +194 -0
  42. package/dist/lite/.claude/luminaries/sophia-prater.md +193 -0
  43. package/dist/lite/.claude/luminaries/stephen-toulmin.md +131 -0
  44. package/dist/lite/.claude/luminaries/tony-hoare.md +170 -0
  45. package/dist/lite/.claude/luminaries/vaughn-vernon.md +50 -0
  46. package/dist/lite/.claude/luminaries/w-edwards-deming.md +158 -0
  47. package/dist/lite/.claude/rules/accessor-library-discipline.md +110 -0
  48. package/dist/lite/.claude/rules/adr-discipline.md +96 -0
  49. package/dist/lite/.claude/rules/api-conventions.md +115 -0
  50. package/dist/lite/.claude/rules/artifact-ingestion.md +137 -0
  51. package/dist/lite/.claude/rules/assert-only-after-verify.md +111 -0
  52. package/dist/lite/.claude/rules/blocked-items.md +139 -0
  53. package/dist/lite/.claude/rules/bootstrap-pair-discipline.md +106 -0
  54. package/dist/lite/.claude/rules/branching.md +28 -0
  55. package/dist/lite/.claude/rules/cold-adopter-harness-discipline.md +93 -0
  56. package/dist/lite/.claude/rules/commit-conventions.md +22 -0
  57. package/dist/lite/.claude/rules/compounding-axis-fresh-analysis.md +173 -0
  58. package/dist/lite/.claude/rules/compounding-sequence-fresh-analysis.md +173 -0
  59. package/dist/lite/.claude/rules/context-engineering.md +155 -0
  60. package/dist/lite/.claude/rules/context-management.md +85 -0
  61. package/dist/lite/.claude/rules/defensive-bash.md +52 -0
  62. package/dist/lite/.claude/rules/deferred-actions.md +233 -0
  63. package/dist/lite/.claude/rules/destructive-operations.md +69 -0
  64. package/dist/lite/.claude/rules/diagnosis.md +38 -0
  65. package/dist/lite/.claude/rules/github-issue-flash-tweet.md +114 -0
  66. package/dist/lite/.claude/rules/guardrails.md +73 -0
  67. package/dist/lite/.claude/rules/hook-wire-on-author.md +77 -0
  68. package/dist/lite/.claude/rules/identifier-leak-prevention.md +73 -0
  69. package/dist/lite/.claude/rules/iteration-bet-brief-completeness.md +43 -0
  70. package/dist/lite/.claude/rules/lite-manifest-schema-change-discipline.md +79 -0
  71. package/dist/lite/.claude/rules/longrun-prep-plan-doc-compression.md +77 -0
  72. package/dist/lite/.claude/rules/loop-discipline.md +71 -0
  73. package/dist/lite/.claude/rules/manual-prod-approval.md +100 -0
  74. package/dist/lite/.claude/rules/marker-enrichment-discipline.md +72 -0
  75. package/dist/lite/.claude/rules/mobile-ephemeral-session.md +109 -0
  76. package/dist/lite/.claude/rules/new-dependency-check.md +44 -0
  77. package/dist/lite/.claude/rules/oo-ad-entry-point.md +95 -0
  78. package/dist/lite/.claude/rules/operator-facing-prose.md +177 -0
  79. package/dist/lite/.claude/rules/option-label-discipline.md +82 -0
  80. package/dist/lite/.claude/rules/pattern-annotation.md +83 -0
  81. package/dist/lite/.claude/rules/persona-name-leak-scrub.md +90 -0
  82. package/dist/lite/.claude/rules/plain-english-discipline.md +132 -0
  83. package/dist/lite/.claude/rules/plan-enumeration-needs-value-props.md +177 -0
  84. package/dist/lite/.claude/rules/pr-body-shape.md +195 -0
  85. package/dist/lite/.claude/rules/pr-strategy.md +142 -0
  86. package/dist/lite/.claude/rules/pr-title-shape.md +90 -0
  87. package/dist/lite/.claude/rules/prototype-workflow.md +53 -0
  88. package/dist/lite/.claude/rules/reserved-skill-names.md +103 -0
  89. package/dist/lite/.claude/rules/schema-management.md +42 -0
  90. package/dist/lite/.claude/rules/sdlc-gates.md +149 -0
  91. package/dist/lite/.claude/rules/security.md +37 -0
  92. package/dist/lite/.claude/rules/session-artifacts.md +236 -0
  93. package/dist/lite/.claude/rules/skill-composition-declarations.md +105 -0
  94. package/dist/lite/.claude/rules/skill-description-clarity.md +196 -0
  95. package/dist/lite/.claude/rules/skill-procedure-step-list.md +119 -0
  96. package/dist/lite/.claude/rules/sprint-prep-preset-picker.md +76 -0
  97. package/dist/lite/.claude/rules/state-schema-validation.md +156 -0
  98. package/dist/lite/.claude/rules/stuck-signal-diagnostic.md +111 -0
  99. package/dist/lite/.claude/rules/substrate-config-schema.md +85 -0
  100. package/dist/lite/.claude/rules/test-list-discipline.md +129 -0
  101. package/dist/lite/.claude/rules/test-sufficiency.md +186 -0
  102. package/dist/lite/.claude/rules/testing-tier-config.md +125 -0
  103. package/dist/lite/.claude/rules/testing.md +38 -0
  104. package/dist/lite/.claude/rules/turn-estimate-grounding.md +82 -0
  105. package/dist/lite/.claude/rules/visual-hierarchy.md +427 -0
  106. package/dist/lite/.claude/rules/we-dont-break-adopters.md +103 -0
  107. package/dist/lite/.claude/rules/whereami-load-bearing.md +184 -0
  108. package/dist/lite/.claude/rules/writing-craft-discipline.md +72 -0
  109. package/dist/lite/.claude/rules/wu-sequencing-compounds.md +119 -0
  110. package/dist/lite/.claude/skills/build/SKILL.md +640 -0
  111. package/dist/lite/.claude/skills/chronicle/SKILL.md +55 -0
  112. package/dist/lite/.claude/skills/clean-artifacts/SKILL.md +249 -0
  113. package/dist/lite/.claude/skills/decompose/SKILL.md +280 -0
  114. package/dist/lite/.claude/skills/diagnose/SKILL.md +297 -0
  115. package/dist/lite/.claude/skills/feynman/SKILL.md +90 -0
  116. package/dist/lite/.claude/skills/howdoi/SKILL.md +105 -0
  117. package/dist/lite/.claude/skills/ia-model/SKILL.md +108 -0
  118. package/dist/lite/.claude/skills/interaction-design/SKILL.md +112 -0
  119. package/dist/lite/.claude/skills/interpret-input/SKILL.md +180 -0
  120. package/dist/lite/.claude/skills/journal/SKILL.md +209 -0
  121. package/dist/lite/.claude/skills/kiss/SKILL.md +449 -0
  122. package/dist/lite/.claude/skills/launch/SKILL.md +915 -0
  123. package/dist/lite/.claude/skills/lean-canvas/SKILL.md +332 -0
  124. package/dist/lite/.claude/skills/longrun/SKILL.md +512 -0
  125. package/dist/lite/.claude/skills/luminary/SKILL.md +481 -0
  126. package/dist/lite/.claude/skills/ogilvy-writing-audit/SKILL.md +177 -0
  127. package/dist/lite/.claude/skills/onboard-repo/SKILL.md +1640 -0
  128. package/dist/lite/.claude/skills/pattern-review/SKILL.md +99 -0
  129. package/dist/lite/.claude/skills/personas/SKILL.md +207 -0
  130. package/dist/lite/.claude/skills/promote/SKILL.md +283 -0
  131. package/dist/lite/.claude/skills/requirement/SKILL.md +98 -0
  132. package/dist/lite/.claude/skills/retro/SKILL.md +117 -0
  133. package/dist/lite/.claude/skills/riff/SKILL.md +114 -0
  134. package/dist/lite/.claude/skills/roadmap-reconcile/SKILL.md +163 -0
  135. package/dist/lite/.claude/skills/session-end/SKILL.md +309 -0
  136. package/dist/lite/.claude/skills/session-log/SKILL.md +299 -0
  137. package/dist/lite/.claude/skills/skills/SKILL.md +228 -0
  138. package/dist/lite/.claude/skills/spec/SKILL.md +105 -0
  139. package/dist/lite/.claude/skills/sprint/SKILL.md +418 -0
  140. package/dist/lite/.claude/skills/stage/SKILL.md +384 -0
  141. package/dist/lite/.claude/skills/state-a-problem/SKILL.md +185 -0
  142. package/dist/lite/.claude/skills/temperance/SKILL.md +108 -0
  143. package/dist/lite/.claude/skills/use-case/SKILL.md +417 -0
  144. package/dist/lite/.claude/skills/user-stories/SKILL.md +268 -0
  145. package/dist/lite/.claude/skills/value-prop/SKILL.md +251 -0
  146. package/dist/lite/.claude/skills/verify/SKILL.md +160 -0
  147. package/dist/lite/.claude/skills/visual-review/SKILL.md +503 -0
  148. package/dist/lite/.claude/skills/whats-the-plan/SKILL.md +202 -0
  149. package/dist/lite/.claude/skills/whereami/SKILL.md +307 -0
  150. package/dist/lite/AGENTS.md +79 -0
  151. package/dist/lite/CLAUDE-lite.md +85 -0
  152. package/dist/lite/CODE_OF_CONDUCT.md +28 -0
  153. package/dist/lite/CONTRIBUTING.md +177 -0
  154. package/dist/lite/README.md +173 -0
  155. package/dist/lite/SECURITY.md +19 -0
  156. package/dist/lite/architecture/decisions/ADR-029-release-pipeline.md +79 -0
  157. package/dist/lite/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +139 -0
  158. package/dist/lite/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +192 -0
  159. package/dist/lite/architecture/decisions/ADR-039-release-tagging-scheme.md +145 -0
  160. package/dist/lite/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +155 -0
  161. package/dist/lite/architecture/decisions/ADR-044-unified-skill-body-template.md +162 -0
  162. package/dist/lite/lib/clean-artifacts-sweep.sh +112 -0
  163. package/dist/lite/lib/code-comment-discipline.sh +144 -0
  164. package/dist/lite/lib/composer-preflight.sh +459 -0
  165. package/dist/lite/lib/deferred-actions.sh +146 -0
  166. package/dist/lite/lib/hook-header-parser.sh +61 -0
  167. package/dist/lite/lib/hook-heartbeat.sh +152 -0
  168. package/dist/lite/lib/hook-inject.sh +255 -0
  169. package/dist/lite/lib/hook-installer.sh +195 -0
  170. package/dist/lite/lib/luminary-pick.sh +96 -0
  171. package/dist/lite/lib/output-discipline.sh +143 -0
  172. package/dist/lite/lib/prose-scan-boundary.sh +171 -0
  173. package/dist/lite/lib/rewrite-check.sh +214 -0
  174. package/dist/lite/lib/session-rescue.sh +151 -0
  175. package/dist/lite/lib/source-graph-walker.sh +277 -0
  176. package/dist/lite/lib/state.sh +1372 -0
  177. package/dist/lite/lib/telemetry.sh +205 -0
  178. package/dist/lite/lib/tier-check.sh +187 -0
  179. package/dist/lite/lib/tier-dependency-audit.sh +1088 -0
  180. package/dist/lite/presence/install/bassclef-hook-connect.sh +178 -0
  181. package/dist/lite/presence/install/bassclef-sync.dispatcher.template.sh +841 -0
  182. package/dist/lite/presence/install/bassclef-sync.template.sh +2278 -0
  183. package/dist/lite/presence/install/schedule-auto-save.cron.sh +88 -0
  184. package/dist/lite/presence/install/schedule-auto-save.taskscheduler.md +122 -0
  185. package/dist/lite/scripts/aggregate-telemetry.sh +217 -0
  186. package/dist/lite/scripts/analyze-tier-dependencies.sh +239 -0
  187. package/dist/lite/scripts/generate-lite-manifest.sh +505 -0
  188. package/dist/lite/scripts/generate-tier-manifest.sh +28 -0
  189. package/dist/lite/scripts/intent-drift-check.sh +456 -0
  190. package/dist/lite/scripts/lite-manifest-drift-check.sh +146 -0
  191. package/dist/lite/scripts/render-lite-manifest-doc.sh +150 -0
  192. package/dist/lite/standards/adr-template.md +86 -0
  193. package/dist/lite/standards/api-conventions/nextjs.md +84 -0
  194. package/dist/lite/standards/artifact-composition.md +209 -0
  195. package/dist/lite/standards/bash-hook-safety.md +246 -0
  196. package/dist/lite/standards/bassclef-configs-schema.md +232 -0
  197. package/dist/lite/standards/bassclef-evolution.md +143 -0
  198. package/dist/lite/standards/bassclef-internal-jargon.md +244 -0
  199. package/dist/lite/standards/bassclef-managed-sentinel.md +96 -0
  200. package/dist/lite/standards/bassclef-source-config.md +228 -0
  201. package/dist/lite/standards/branch-stacking.md +408 -0
  202. package/dist/lite/standards/code-safety-principles.md +176 -0
  203. package/dist/lite/standards/composer-prerequisites.md +155 -0
  204. package/dist/lite/standards/deferred-actions-schema.md +204 -0
  205. package/dist/lite/standards/dependency-discipline/cargo.md +39 -0
  206. package/dist/lite/standards/dependency-discipline/gem.md +43 -0
  207. package/dist/lite/standards/dependency-discipline/go-mod.md +41 -0
  208. package/dist/lite/standards/dependency-discipline/npm.md +42 -0
  209. package/dist/lite/standards/dependency-discipline/pip.md +42 -0
  210. package/dist/lite/standards/deployment-topology/ec2-tailscale.md +225 -0
  211. package/dist/lite/standards/deployment-topology.md +69 -0
  212. package/dist/lite/standards/docs-sync-allowlist.md +76 -0
  213. package/dist/lite/standards/domain-and-dns.md +145 -0
  214. package/dist/lite/standards/frontend-stack.md +67 -0
  215. package/dist/lite/standards/frontmatter-schema.md +154 -0
  216. package/dist/lite/standards/graceful-exit.md +227 -0
  217. package/dist/lite/standards/hook-idempotency.md +102 -0
  218. package/dist/lite/standards/hook-injection-discipline.md +202 -0
  219. package/dist/lite/standards/hook-install-class.md +215 -0
  220. package/dist/lite/standards/input-handler-interface.md +152 -0
  221. package/dist/lite/standards/lite-manifest-schema-changes.md +180 -0
  222. package/dist/lite/standards/lite-manifest.json +2797 -0
  223. package/dist/lite/standards/luminary-matching.md +105 -0
  224. package/dist/lite/standards/luminary-problem-patterns.md +481 -0
  225. package/dist/lite/standards/migration-discipline/active-record.md +50 -0
  226. package/dist/lite/standards/migration-discipline/alembic.md +43 -0
  227. package/dist/lite/standards/migration-discipline/gorm.md +50 -0
  228. package/dist/lite/standards/migration-discipline/prisma.md +53 -0
  229. package/dist/lite/standards/migration-discipline/sqlalchemy.md +51 -0
  230. package/dist/lite/standards/mobile-ephemeral-session.md +167 -0
  231. package/dist/lite/standards/model-routing-discipline.md +160 -0
  232. package/dist/lite/standards/ogilvy-writing-rules.md +225 -0
  233. package/dist/lite/standards/opener-discipline.md +96 -0
  234. package/dist/lite/standards/operator-facing-prose-discipline.md +201 -0
  235. package/dist/lite/standards/persona-schema.md +229 -0
  236. package/dist/lite/standards/pluggable-luminaries.md +323 -0
  237. package/dist/lite/standards/pr-body-discipline.md +115 -0
  238. package/dist/lite/standards/preview-state-schema.md +189 -0
  239. package/dist/lite/standards/project-directory-layout.md +276 -0
  240. package/dist/lite/standards/release-tagging.md +137 -0
  241. package/dist/lite/standards/reserved-skill-names.md +120 -0
  242. package/dist/lite/standards/scannable-multi-option-output.md +265 -0
  243. package/dist/lite/standards/sdlc-compliance.md +286 -0
  244. package/dist/lite/standards/sdlc-gates/typescript.md +57 -0
  245. package/dist/lite/standards/secrets-lifecycle.md +210 -0
  246. package/dist/lite/standards/security-scanner-adapter.md +145 -0
  247. package/dist/lite/standards/session-board.md +256 -0
  248. package/dist/lite/standards/skill-output-discipline.md +121 -0
  249. package/dist/lite/standards/state-spine-contract.md +255 -0
  250. package/dist/lite/standards/state-spine.md +511 -0
  251. package/dist/lite/standards/steering-hints/kiss-words.md +11 -0
  252. package/dist/lite/standards/substrate-config-schema.md +267 -0
  253. package/dist/lite/standards/tech-stack-config.md +109 -0
  254. package/dist/lite/standards/tier-dependency-analysis.md +167 -0
  255. package/dist/lite/standards/tier-runtime-deps/lite.md +57 -0
  256. package/dist/lite/standards/tier-tag-schema.md +155 -0
  257. package/dist/lite/standards/two-layer-config.md +99 -0
  258. package/dist/lite/standards/use-case-format.md +292 -0
  259. package/dist/lite/standards/user-story-invest.md +268 -0
  260. package/dist/lite/standards/velocity-and-appetite.md +229 -0
  261. package/dist/lite/standards/voice-input-pattern.md +119 -0
  262. package/dist/lite/standards/whereami-schema.md +301 -0
  263. package/dist/lite/standards/worktree-management.md +211 -0
  264. package/dist/lite/standards/writing-guide.md +213 -0
  265. package/dist/lite/templates/chronicle-template.md +75 -0
  266. package/dist/lite/templates/deferred-action-template.md +45 -0
  267. package/dist/lite/templates/memory-proposal-template.md +77 -0
  268. package/dist/lite/templates/persona-template.md +200 -0
  269. package/dist/lite/templates/pr-faq.md +45 -0
  270. package/dist/lite/templates/secret-rotation-template.md +162 -0
  271. package/dist/lite/templates/spec-template.md +131 -0
  272. package/dist/lite/templates/use-case-template.md +194 -0
  273. package/dist/lite/templates/user-story-template.md +107 -0
  274. package/dist/lite/templates/whereami-template.md +101 -0
  275. package/package.json +12 -5
@@ -0,0 +1,225 @@
1
+ ---
2
+ tier: lite
3
+ title: Ogilvy writing rules — reference for the writing-craft discipline
4
+ sources:
5
+ - David Ogilvy — "How to Write" internal memo (1982; 10 rules to Ogilvy and Mather management)
6
+ - Kenneth Roman + Joel Raphaelson — Writing That Works (Harper and Row, 1981)
7
+ authoring_luminaries:
8
+ primary: [david-ogilvy]
9
+ supporting: [stephen-toulmin, rich-hickey, kent-beck]
10
+ description: "This standard holds the 10 rules bassclef's writing-craft discipline references."
11
+ ---
12
+
13
+ # Ogilvy writing rules — bassclef reference
14
+
15
+ This standard holds the 10 rules bassclef's writing-craft discipline references. Each rule names the test, the violation pattern, the fix. Grounded in David Ogilvy's 1982 "How to Write" memo and Kenneth Roman and Joel Raphaelson's *Writing That Works* (1981). No wording lifted from any other source — bassclef's own restatement of the public rules.
16
+
17
+ Cited by:
18
+
19
+ - `.claude/rules/writing-craft-discipline.md` — auto-loaded rule; first-person composition checks
20
+ - `.claude/skills/ogilvy-writing-audit/SKILL.md` — audit skill; severity-tagged violations
21
+ - `.claude/hooks/plain-english-steering.sh` (extension per ticket #935) — steering hook reads rule names from here
22
+
23
+ ## Sources read
24
+
25
+ - David Ogilvy 1982 "How to Write" memo — public circulation
26
+ - Kenneth Roman + Joel Raphaelson 1981 *Writing That Works* — published book
27
+ - `.claude/luminaries/david-ogilvy.md` — full luminary shipping alongside this standard
28
+
29
+ ## The 10 rules
30
+
31
+ ### Rule 1 — Natural voice
32
+
33
+ Read the sentence aloud. Would a real person say it that way to a respected peer?
34
+
35
+ **Fails.**
36
+ - "Pursuant to our earlier discussion..."
37
+ - "It has come to my attention that..."
38
+ - "Please be advised that..."
39
+ - Passive voice where active would fit: "A decision was made" → "We decided"
40
+
41
+ **Fixes.**
42
+ - "As we discussed..."
43
+ - "I noticed..."
44
+ - Just state the point without the preamble.
45
+
46
+ Natural does NOT mean casual. Lawyers and engineers have natural voices that sound like lawyers and engineers. Natural means the writer sounds like themselves, speaking to a peer.
47
+
48
+ ### Rule 2 — Short units
49
+
50
+ Words, sentences, paragraphs — keep them short.
51
+
52
+ **Word swaps (Ogilvy's list, extended).**
53
+ - utilize → use
54
+ - commence → start
55
+ - endeavor → try
56
+ - facilitate → help
57
+ - terminate → end
58
+ - implement → do
59
+ - demonstrate → show
60
+ - approximately → about
61
+ - subsequent → next
62
+ - in order to → to
63
+
64
+ **Sentence rule.** If a sentence runs past 25 words, it hides two or three sentences. Split at the natural clause boundary.
65
+
66
+ **Paragraph rule.** If a paragraph runs past 6 sentences (about 100 words), it covers more than one idea. Split.
67
+
68
+ ### Rule 3 — No jargon
69
+
70
+ If a normal word would carry the same meaning, use the normal word. Ogilvy's list — "reconceptualize," "demassification," "attitudinally," "judgmentally" — extends into modern consulting speak.
71
+
72
+ **Common offenders in agent output.**
73
+ - leverage (as verb), synergies, verticals, circle back, deep dive
74
+ - ideate, iterate (vague), pivot (metaphorical)
75
+ - value-add, move the needle, boil the ocean
76
+ - robust, scalable, holistic (outside biology)
77
+ - stakeholder (often no referent)
78
+ - operationalize, incentivize, strategize
79
+
80
+ **When jargon is fine.** Technical writing where the term has a precise meaning the audience shares. "API rate limit" in dev docs stays.
81
+
82
+ **When jargon is not fine.** Anywhere the writer is trying to sound important instead of be precise.
83
+
84
+ ### Rule 4 — Verify quotations
85
+
86
+ Flag quotations for verification. Attributed quotes ("As Einstein said...") are misattributed 90 percent of the time.
87
+
88
+ Bassclef does not usually quote outside sources. When we do — in journal entries, luminary bodies, R&R citations — verify the source.
89
+
90
+ ### Rule 5 — Read-aloud test
91
+
92
+ Read the passage in your head. If it stumbles, rewrite.
93
+
94
+ **Fails.**
95
+ - Tongue-twisters: "The situation's specification specifies..."
96
+ - Long lines with no comma rest — a 35-word sentence is physically hard to speak
97
+ - Unintentional rhymes: "The initiation of the presentation caused frustration..."
98
+ - Repeated words within one sentence: "review the review of the review process"
99
+
100
+ **Fix.** Split, rearrange, cut. The passage should flow at reading speed.
101
+
102
+ ### Rule 6 — Clear ask
103
+
104
+ If the message requests action, is the ask crystal clear? Can the reader state, in one sentence, what they should do next?
105
+
106
+ **Fails.**
107
+ - Information dump with no ask at the end
108
+ - Buried ask: "...and if you could send over the Q3 numbers as well..."
109
+ - Vague ask: "Let me know your thoughts."
110
+ - Passive ask: "It would be great if someone could..."
111
+
112
+ **Fix.** State the ask directly at the top or bottom. Name the decision, the format, the deadline.
113
+
114
+ When no ask is needed — pure information — say so: "No action needed — sharing for awareness."
115
+
116
+ ### Rule 7 — Comprehension (Roman + Raphaelson)
117
+
118
+ "People seldom act on what they cannot understand."
119
+
120
+ Could the intended reader — not an insider, but the actual recipient — understand what is being said on first read?
121
+
122
+ **Fails.**
123
+ - Unexplained acronyms (especially internal ones — "the PM flagged KR slippage")
124
+ - Assumed context: "as discussed in the offsite"
125
+ - Compressed logic that skips steps
126
+ - Pronouns without clear antecedents: "They said this would happen"
127
+
128
+ **Fix.** Write for the reader who was not in the last meeting. Expand acronyms first mention. Name the people. Show the steps.
129
+
130
+ Different from Rule 3 (jargon). Jargon is bad words. Comprehension is the bigger question: after reading the whole thing, does the reader actually know what is going on?
131
+
132
+ ### Rule 8 — Completeness (Roman + Raphaelson)
133
+
134
+ "When you say something, make sure you have said it. The chances of your having said it are only fair."
135
+
136
+ Did the writer actually state the thing they meant to state, or did they dance around it?
137
+
138
+ **Fails.**
139
+ - Questions implied but not asked
140
+ - Requests implied but not made
141
+ - Conclusions implied but not stated
142
+ - Main point arrives halfway through
143
+
144
+ **Diagnostic.** What is the ONE thing the reader needs to take from this? Is that thing actually written down, in plain language, somewhere the reader will see it?
145
+
146
+ Overlaps with Rule 6 (clear ask) but broader. Rule 6 covers action. Rule 8 covers whether the message itself is fully delivered.
147
+
148
+ ### Rule 9 — Honesty / no hedging (Roman + Raphaelson)
149
+
150
+ "Intelligent readers develop a nose for deceptive writing and are seldom taken in by it."
151
+ "Bad news is not made better by being baffling as well as unwelcome."
152
+
153
+ Is the writer saying what they mean, or hiding behind softening language?
154
+
155
+ **Fails (euphemisms).**
156
+ - "right-sizing" → layoffs
157
+ - "we're going in a different direction" → we're rejecting your proposal
158
+ - "challenging" → bad, failing
159
+ - "opportunity for improvement" → problem
160
+ - "reached out" → contacted, called, emailed
161
+
162
+ **Fails (weasel words).**
163
+ - "arguably," "somewhat," "perhaps," "it could be argued"
164
+ - "we believe" as a shield for controversial claims
165
+ - Hedging adverbs stacked: "potentially," "possibly," "likely"
166
+ - Passive voice hiding the actor: "mistakes were made"
167
+
168
+ **Fix.** Say the thing straight. Bad news arrives first, then the reason, then the next step.
169
+
170
+ **When hedging IS fine.** Genuine uncertainty honestly acknowledged: "I'm not sure — it might be A or B" is fine. Calibrated confidence: "likely" used when the probability is around 70 percent is fine.
171
+
172
+ ### Rule 10 — Facts with context (Roman + Raphaelson)
173
+
174
+ "Never present facts on their own, like unstrung gems."
175
+
176
+ For each fact, number, or data point: does the reader know why it matters? Is it connected to a point?
177
+
178
+ **Fails.**
179
+ - "Revenue was 4.2M." (What matters? Up? Down? Compared to what?)
180
+ - Bullet lists of numbers with no interpretation
181
+ - "The data shows..." followed by data but no "therefore..."
182
+ - Percentages without denominators: "engagement up 40 percent" (from what? over what period?)
183
+
184
+ **Fix.** For every fact, ask "so what?" Answer inline.
185
+
186
+ **Diagnostic.** R&R's metaphor: facts are building materials. Readers are not impressed by a pile of bricks. They want to see the building.
187
+
188
+ ## Severity guidance
189
+
190
+ When flagging a violation, tag severity:
191
+
192
+ - **🔴 Critical** — The violation actively undermines the message. The reader will be confused, misled, or fail to act. Must fix.
193
+ - **🟡 Moderate** — The violation weakens the writing. A sharp reader will notice. Should fix.
194
+ - **🟢 Minor** — A small stumble. The message works without fixing it. Optional polish.
195
+
196
+ **Calibration examples.**
197
+
198
+ - Jargon in a customer-facing headline = Critical. Jargon in paragraph 4 of a memo = Moderate.
199
+ - Missing ask in an action-requesting email = Critical. Unclear ask in an FYI update = Moderate.
200
+ - A 30-word sentence in dense technical copy = Moderate. A 30-word sentence in a memo intro = Critical.
201
+ - A stray euphemism in a friendly update = Minor. A euphemism burying bad news = Critical.
202
+
203
+ **When in doubt, ask.** Would the intended reader still take the intended action after reading this? If no, it's Critical.
204
+
205
+ ## What the rules do NOT cover
206
+
207
+ Ogilvy's memo names four more behavioral rules that prose alone cannot audit:
208
+
209
+ 1. Have you read *Writing That Works* three times? (Ogilvy's Rule 1)
210
+ 2. Did you check your quotations? (Rule 6 in text form is above; the behavioral check is separate)
211
+ 3. Did you sleep on it? "Never send a letter or memo on the day you write it. Read it aloud the next morning, then edit." (Rule 7)
212
+ 4. If it is important, did you get a colleague to improve it? (Rule 8)
213
+ 5. If you want action, is writing actually the right medium? Ogilvy's Rule 10: "Don't write — go tell the person what you want."
214
+
215
+ The audit surface — `/ogilvy-writing-audit` skill — flags these as reminders at the end of every audit, without trying to check them from text.
216
+
217
+ ## Rules bassclef adds on top
218
+
219
+ - **`/kiss words` composes with this standard.** After `/ogilvy-writing-audit` flags the violations, `/kiss words` mechanical substitution fixes what a wordlist covers. The audit diagnoses; the fix skill applies.
220
+ - **`standards/bassclef-internal-jargon.md` extends the Rule 3 list.** Bassclef adds business jargon Ogilvy's 1982 memo did not cover (leverage as verb, synergies, circle back, deep dive, ideate, value-add, robust, scalable, holistic, stakeholder without referent).
221
+ - **`.claude/rules/plain-english-discipline.md` sits alongside.** Grade-level target (grade 8-9 today; grade 8 after ticket #935 lands). This standard covers writing craft; that rule covers vocabulary and grade.
222
+
223
+ ## Retirement condition
224
+
225
+ This standard retires only if bassclef stops shipping operator-facing prose. The specific rules may evolve (the wordlist grows; severity calibration adjusts) but the discipline of prose-as-craft persists.
@@ -0,0 +1,96 @@
1
+ ---
2
+ tier: lite
3
+ description: Every planning-surface opener carries three blocks in this order — Problem, Value prop, Evidence.
4
+ ---
5
+
6
+ # Opener discipline — Problem + Value prop + Evidence
7
+
8
+ Every planning-surface opener carries three blocks in this order — Problem, Value prop, Evidence. The reader sees the pain, then the fix, then the receipts. Same shape scales down (a short session) or up (a goal close).
9
+
10
+ ## The shape
11
+
12
+ ```
13
+ ## Problem (via /state-a-problem brief)
14
+ [≤500 chars: who was affected + what pain + when + why now + outcome sought]
15
+
16
+ ## Value prop (via /value-prop tweet)
17
+ [≤280 chars: claim + sharpener]
18
+
19
+ ## Evidence (per .claude/rules/assert-only-after-verify.md)
20
+ - Source: [file path, ticket, commit SHA — what I read inline]
21
+ - Warrant: [one sentence tying the source to the claim]
22
+ ```
23
+
24
+ Three blocks. First block frames the pain. Second block names the outcome. Third block cites what backs the claim.
25
+
26
+ ## When this discipline fires
27
+
28
+ Every planning surface where the agent addresses the operator:
29
+
30
+ - `/longrun` prep + checkpoint + closeout output
31
+ - `/sprint` opener output
32
+ - `/session-log` (formerly `/chronicle`) opener block
33
+ - `/session-end` closeout dispatch shape
34
+ - Any agent turn prose that opens with a status assertion
35
+
36
+ Pass-through cases (discipline does not fire):
37
+
38
+ - Conversational asides mid-session ("switching to main now") — no assertion carried
39
+ - Tool output relayed verbatim — the tool is the source
40
+ - Direct answers to operator questions where the answer IS the value block
41
+
42
+ ## Why three blocks
43
+
44
+ Seven luminaries converged on the shape:
45
+
46
+ - **Alan Cooper** — persona-anchored. The reader wants pain framing before solution framing.
47
+ - **Steve Krug** — don't make me think. A tweet claim alone makes the reader backfill "why should I care."
48
+ - **Stephen Toulmin** — claim + data + warrant. Three blocks carry all three.
49
+ - **Amazon PR/FAQ** — write the press release first. A press release opens with problem + value pairing, not claim + description.
50
+ - **Marty Cagan** — outcomes not output.
51
+ - **Kent Beck** — YAGNI. Three lines minimum; drop the fourth.
52
+ - **Taiichi Ohno** — 7 wastes. Prior tweet + KISS pairing overlapped semantically; consolidate.
53
+
54
+ ## What replaces the old opener
55
+
56
+ The prior shape was `/value-prop tweet` + `/kiss words` — a claim in tweet form plus a paragraph summary of the same claim. It carried the same information twice while missing pain framing and evidence citation.
57
+
58
+ The new shape retires the tweet + KISS pair at planning surfaces. Tweet mode stays as one of the `/value-prop` sizes for other uses (like a status one-liner in chat). KISS words stays as a mode of `/kiss` for prose passes. Both stop being the opener default at planning surfaces.
59
+
60
+ ## Sizing guidance
61
+
62
+ Scale the three blocks to the surface:
63
+
64
+ | Surface | Problem | Value prop | Evidence |
65
+ |---|---|---|---|
66
+ | `/sprint` opener | 1-2 sentences | 1-line tweet | 1 source + 1 warrant |
67
+ | `/longrun` prep | Full 500-char problem | Full 280-char tweet | 3-5 sources + warrants |
68
+ | `/longrun` checkpoint | 1-2 sentences | 1-line tweet | 1-2 sources + warrants |
69
+ | `/longrun` closeout | Full 500-char problem | Full 280-char tweet | Sources cited per major finding |
70
+ | `/session-log` opener | Full 500-char problem | Full 280-char tweet | Sources per section |
71
+
72
+ The reader's context governs the block size. A checkpoint mid-session needs less than a closeout at end-of-work.
73
+
74
+ ## Grace window
75
+
76
+ Old openers keep working through 2026-10-31 per ADR-031 grace window and `.claude/rules/we-dont-break-adopters.md`. Sessions from before the rewrite still open with tweet + KISS; new sessions open with the three blocks. No adopter breakage.
77
+
78
+ ## Composes with
79
+
80
+ - `.claude/rules/pr-body-shape.md` — sister discipline at PR body surface
81
+ - `.claude/rules/github-issue-flash-tweet.md` — sister discipline at GitHub issue body surface
82
+ - `.claude/rules/operator-facing-prose.md` Rule 3 — skill-dispatch citation extends to naming the standard opener
83
+ - `.claude/rules/assert-only-after-verify.md` — the argument shape the Evidence block satisfies
84
+ - `.claude/skills/state-a-problem/SKILL.md` — brief mode drafts the Problem block
85
+ - `.claude/skills/value-prop/SKILL.md` — tweet mode drafts the Value prop block
86
+ - ADR-040 Decisions 1-4 — the parent rewrite that introduced this standard
87
+
88
+ ## Refs
89
+
90
+ - bassclef-upstream#750 — the ticket that mapped this rewrite
91
+ - bassclef-upstream#1178 — the sister rewrite at PR + issue body surfaces
92
+ - bassclef-upstream#559 — R8 mechanization umbrella (assert-only-after-verify parent)
93
+
94
+ ## Retirement condition
95
+
96
+ This standard retires only if the three-block shape stops matching adopter reading behavior. The mechanical layer (hook scan for the shape) may ship as a follow-on when methodology drift is observed. Until then, this is methodology; the discipline holds at authoring time.
@@ -0,0 +1,201 @@
1
+ ---
2
+ tier: lite
3
+ description: "Universal principle: any shorthand in operator-facing prose carries a plain-language gloss at first mention per response."
4
+ ---
5
+
6
+ # Operator-facing prose discipline
7
+
8
+ Universal principle: any shorthand in operator-facing prose carries a plain-language gloss at first mention per response. When editing any SKILL.md file, apply a /kiss pass to the whole file in the same change.
9
+
10
+ This standard scales operator attention across cross-session time gaps. The operator returns to substrate after hours, days, or weeks; the decoder ring for WU-N, F-X.Y, ADR-NNN, #NNN, LF-N, B1, B2 shouldn't have to be reconstructed from memory or substrate every time.
11
+
12
+ ## Scope
13
+
14
+ Two surfaces:
15
+
16
+ 1. **All operator-facing skill output** — /sprint, /longrun, /diagnose, /autonomous, /retro, /promote, /temperance, /value-prop, /lean-canvas, /personas, /canvas, /roadmap-reconcile, /whereami, and any future skill that produces output an operator reads.
17
+ 2. **All turn-level prose between Claude Code and operator** — not just skill output. Conversational discipline applies the same gloss rule.
18
+
19
+ ## Rule 1 — Gloss at first mention per response
20
+
21
+ Any shorthand reference in operator-facing prose carries a plain-language gloss at first mention per response. Subsequent mentions in the same response don't need to re-gloss.
22
+
23
+ Format: `<shorthand> (<plain-language description>)`.
24
+
25
+ Examples:
26
+
27
+ | Shorthand | Glossed form |
28
+ |---|---|
29
+ | `WU-4` | `WU-4 (Tier 0 pitch draft using canvas UVP)` |
30
+ | `#774` | `#774 (Phase XIV rescope proposal)` |
31
+ | `F-D9.1` | `F-D9.1 (README hedges audience — audit HIGH)` |
32
+ | `ADR-021` | `ADR-021 (anchor catalog selection)` |
33
+ | `LF1` | `LF1 (Morgan-as-gatekeeper riskiest assumption)` |
34
+ | `B1` | `B1 (tier-1-proposal-shaper bet)` |
35
+ | `B2-WU1` | `B2-WU1 (README rewrite per F-D9.1)` |
36
+ | `bassclef#739` | `bassclef#739 (substrate-coherence CI)` |
37
+ | `Phase XIV` | `Phase XIV (Draw the Line — IP Guard, growth-loop rescope pending)` |
38
+
39
+ ### What this rule does NOT require
40
+
41
+ - **Re-glossing within the same response.** First mention only.
42
+ - **Glossing standard-vocabulary technical terms.** API, schema, hook, PR, commit, branch, merge — these stay as-is. See `standards/plain-english-discipline.md` "Keep standard technical vocabulary" section for the full allowlist.
43
+ - **Glossing reserved concept names from the four-name system.** `substrate`, `bassclef`, `cameo`, `Studio`, `Band`, `bandleader` are allowlisted per bassclef#763 (/kiss reserved-name allowlist). They carry meaning the operator chose deliberately; gloss would be patronizing.
44
+ - **Glossing skill names.** `/sprint`, `/longrun`, `/lean-canvas` — operator-invocable skills carry their own context via the `/` prefix.
45
+
46
+ ### When the gloss is awkward
47
+
48
+ If the gloss inflates a sentence beyond readability, restructure the sentence rather than expand inline. Example:
49
+
50
+ - Awkward: "Continue with WU-4 (Tier 0 pitch draft using canvas UVP A' selected for substrate-credibility audience + UVP D for dreamer-operator framing) after merging #773 (ADR-021 amendment for IP→growth-loop pivot)."
51
+ - Restructured: "Continue with WU-4 after merging #773. WU-4 drafts the Tier 0 pitch using canvas UVP. #773 amends ADR-021 for the growth-loop pivot."
52
+
53
+ The principle is operator readability, not mechanical glossing.
54
+
55
+ ## Rule 2 — /kiss pass when editing any SKILL.md
56
+
57
+ When touching any SKILL.md file for any reason, apply a /kiss pass to the entire file in the same change. Not a separate cycle.
58
+
59
+ Reasoning: if we're authoring an update to the skill that adds substrate discipline, the existing bassclef-internal vocabulary in that same file should be rewritten plain at the same time. Otherwise we ship discipline-as-substrate fixes that contain the very jargon the discipline catches.
60
+
61
+ ### /kiss pass mechanics
62
+
63
+ Apply the rewrite rules from `.claude/rules/plain-english-discipline.md` (the master plain-English rule). Substitution targets that recur most often in SKILL.md files:
64
+
65
+ | Phrase | Replacement |
66
+ |---|---|
67
+ | `load-bearing` | `essential` or `required` (or remove) |
68
+ | `cross-cutting` | `affects multiple boxes` or name what it crosses |
69
+ | `forcing function` | name what it forces directly |
70
+ | `operator-locked` | `decided` or `set` |
71
+ | `substrate-resident` | `in bassclef already` or `shipped` |
72
+ | `operating thesis` | `the goal.we're making` |
73
+ | `compose-with` | `uses` or `builds on` |
74
+ | `tier-preset` | `preset` or `size` |
75
+ | `operationalize` | `do` or `ship` |
76
+ | `composer (as noun)` | `runs` or `chains` or `combines` |
77
+
78
+ Allowlist per bassclef#763 holds: `substrate`, `bassclef`, `cameo`, `Studio`, `Band`, `bandleader` stay.
79
+
80
+ ### Scope of the /kiss pass
81
+
82
+ The pass covers the SKILL.md file's prose — descriptions, procedure narrative, when-to-use sections, why-this-exists sections, examples in prose form. It does NOT cover:
83
+
84
+ - Code blocks
85
+ - File path references
86
+ - Reserved skill names
87
+ - Quoted vocabulary from operator memory or chronicles
88
+
89
+ ### When the /kiss pass produces no edits
90
+
91
+ If the file is already clean, the pass produces no edits. State this explicitly in the commit message ("kiss pass: no edits — file already clean") so future readers know the discipline was applied.
92
+
93
+ ## Rule 3 — Tweets lead with the goal, not just the work done
94
+
95
+ A Tweet (≤280 chars) in a PR body, chronicle entry, or summary table tells the reader two things: what the work is FOR (the goal it serves) and what the work DID (the changes it shipped). When a Tweet captures only the second, the first rots within weeks — a future reader can't tell what problem the PR solved or why anyone cared.
96
+
97
+ Format: `<what this is for>. <what it did>.`
98
+
99
+ The goal sentence comes first. The work sentence comes second.
100
+
101
+ ### Worked example — PR #825 (bassclef#811 implementation)
102
+
103
+ The original Tweet shipped without a goal sentence:
104
+
105
+ > Per bassclef#811: sunj-labs/bassclef-upstream created; 115 files migrated (2 with git history, 113 bulk-imported); per-subdirectory symlinks set up via scripts/operator-setup.sh; adopters see only README placeholder; Rule 3 still passes; two standards docs codify the workflow.
106
+
107
+ This tells you what happened. It doesn't tell you the goal was: operator-private files now have backup and version history without leaking to people who clone the public repo.
108
+
109
+ The goal-first rewrite:
110
+
111
+ > Operator-private files now safe from disk loss and version-controlled, but still hidden from people who clone the public repo. Per bassclef#811: sunj-labs/bassclef-upstream created; 115 files migrated; symlinks via scripts/operator-setup.sh; adopters see only README placeholder.
112
+
113
+ Fits 280 chars. Names the goal first. Says what was done second.
114
+
115
+ ### What counts as a "goal"
116
+
117
+ The goal is what the operator (or adopter) gets from this work. Useful tests:
118
+
119
+ - If someone reads only the Tweet in 6 months, can they tell what problem the work solved?
120
+ - If a future contributor asks "why did we ship this?", does the Tweet answer them?
121
+ - If the work didn't ship at all, what would the operator miss?
122
+
123
+ ### Three Tweet rules together
124
+
125
+ Tweets now carry three discipline rules:
126
+
127
+ 1. **Fit in 280 chars** (per bassclef#785 — tweet-style descriptions in summary tables)
128
+ 2. **Keep scoping qualifiers** (per bassclef#805 — "deferred within Tier 1" not just "deferred")
129
+ 3. **Lead with the goal** (this rule, per bassclef#831 — what the work is FOR, then what it did)
130
+
131
+ All three rules become a single mechanical check when Rule 5 of substrate-coherence CI lands (bassclef#807).
132
+
133
+ ### What this rule does NOT require
134
+
135
+ - **Lengthening the Tweet.** Goal-first should compress, not expand. If adding a goal sentence pushes past 280 chars, compress the work sentence.
136
+ - **Restating the title.** PR titles already name the work; the Tweet's goal sentence adds the WHY the title doesn't capture.
137
+ - **Goal-first for every PR-body section.** Tweets carry the goal; deeper sections (Summary, Implementation, Test plan) can lead with mechanics.
138
+
139
+ ## Audience-vigilance scaling argument
140
+
141
+ The operator works across cross-session time gaps. A morning /sprint output that references `B1-WU4` without gloss requires the operator to either:
142
+
143
+ 1. Remember what B1-WU4 was from yesterday's session (unreliable across multi-day gaps)
144
+ 2. Read substrate (goal body + stack manifest + chronicle) to reconstruct the reference (operator-time tax)
145
+ 3. Ask the agent to expand the reference (extra turn, breaks flow)
146
+
147
+ Glossing at first mention costs the agent zero additional reasoning — the gloss is already in scope from substrate reads the agent did to produce the response. The cost-shift is from operator-time to agent-tokens. The operator-time savings compound across every reference in every operator-facing response.
148
+
149
+ The /kiss pass on SKILL.md edits closes the meta-discipline gap: if we ship substrate that says "operator-facing output should be plain" and that substrate is itself dense with bassclef-internal vocabulary, the discipline corrodes at its own source. Every SKILL.md edit is an opportunity to apply the discipline to the substrate doing the enforcing.
150
+
151
+ ## Enforcement layers
152
+
153
+ | Layer | Mechanism | Status |
154
+ |---|---|---|
155
+ | Methodology | This standard + `.claude/rules/operator-facing-prose.md` (the conversational rule) | Loaded into every session via `additionalDirectories` |
156
+ | Skill-level | Every operator-facing SKILL.md cites this standard in its rules section | Phased rollout — /longrun + /sprint + /diagnose + /autonomous land first |
157
+ | Mechanical | bassclef#739 (substrate-coherence CI) extension lints operator-facing skill output for unglossed shorthand | Deferred — methodology-first, mechanical later |
158
+ | /kiss pass on SKILL.md edits | Discipline-as-substrate per Rule 2 above | Methodology-level; substrate-clarity-gate hook (bassclef#382) already enforces at file-write boundary for jargon |
159
+
160
+ ## Methodology source
161
+
162
+ Andrej Karpathy (`andrej-karpathy` luminary entry) is the methodology source for bassclef's clarity discipline. Karpathy's CPU-and-RAM framing — LLM as stateless computation engine; context window as finite working memory — makes prose clarity an engineering constraint, not a stylistic preference.
163
+
164
+ Operator-facing prose is the context the model loads next session. Glossing shorthand at first mention, applying `/kiss` on SKILL.md edits, leading tweets with the goal — all three rules are concrete implementations of Karpathy's framing applied at the operator-facing surface. Each rule reduces context-budget waste (operator-time on the surface side, model-attention budget on the substrate side).
165
+
166
+ Downstream practitioners apply INSTEAD-block discipline and DO/DO-NOT bounding as specific patterns; this standard cites Karpathy as the methodology, not those patterns as the source. The patterns compose; the methodology grounds them.
167
+
168
+ ## Relationship to other discipline standards
169
+
170
+ - `.claude/rules/plain-english-discipline.md` — master plain-English rule. This standard extends it with the gloss rule + the /kiss-pass-on-edits meta-discipline.
171
+ - `.claude/rules/skill-description-clarity.md` — narrow case at skill description field. This standard extends to skill body prose.
172
+ - `.claude/rules/github-issue-flash-tweet.md` — flash-tweet-then-detail discipline for GitHub issue bodies. Sibling.
173
+ - `.claude/rules/context-engineering.md` — INSTEAD-block discipline for negations. Karpathy's methodology grounds the rule; INSTEAD-block is the pattern.
174
+ - `.claude/rules/visual-hierarchy.md` — formatting discipline for long agent output. Sibling.
175
+ - `.claude/luminaries/andrej-karpathy.md` — methodology source. CPU-and-RAM framing makes prose clarity a substrate constraint.
176
+
177
+ ## Override
178
+
179
+ Per `.claude/rules/plain-english-discipline.md`: `SKIP_PLAIN_ENGLISH=1 <command>` for genuine cases (quoting an exact phrase from memory or external doc). Logged via trace-helper. Use rarely.
180
+
181
+ There is no override for the /kiss pass on SKILL.md edits — that's a meta-discipline that holds without exception. If a SKILL.md edit can't carry a /kiss pass within the same change (scope is too tight, urgency is too high), the discipline is signaling that the SKILL.md needs a dedicated /kiss-pass PR. File it.
182
+
183
+ ## Surfaced in
184
+
185
+ - /sprint 2026-05-30 morning session — operator returned after overnight gap, surfaced that shorthand references in /sprint output require plain-language gloss for cross-session orientation. Pattern recurs in every operator session with a time gap from prior work.
186
+ - Same session — operator surfaced the meta-discipline: if we are already authoring SKILL.md updates for the gloss rule, the existing jargon in those files should be rewritten in the same pass.
187
+
188
+ ## Refs
189
+
190
+ - bassclef#790 — parent ticket
191
+ - bassclef#785 — tweet-style descriptions in /longrun summary tables (sibling Tweet rule — length)
192
+ - bassclef#805 — Tweet scoping-qualifier discipline (sibling Tweet rule — qualifiers)
193
+ - bassclef#831 — Tweets lead with the goal (this Rule 3 — goal-first)
194
+ - bassclef#807 — Rule 5 of substrate-coherence CI will check all three Tweet rules together
195
+ - bassclef#780 — glossary + substrate-quote discipline (session-start glossary; this standard adds at-mention gloss)
196
+ - bassclef#763 — /kiss reserved-name allowlist
197
+ - bassclef#767 — /kiss hook coverage at artifact-write surfaces
198
+ - bassclef#779 — /kiss interactive-session anchoring at turn-counter boundaries
199
+ - bassclef#786 — /kiss PR-body hook enforcement decision (sibling)
200
+ - bassclef#787 — PR-body scrub discipline (sibling)
201
+ - `.claude/rules/plain-english-discipline.md` — master plain-English rule (this standard extends)