@thebassclef/lite 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +85 -4
  3. package/dist/cli.cjs +1610 -0
  4. package/dist/cli.js +1587 -0
  5. package/dist/index.cjs +4 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +4 -0
  8. package/package.json +51 -3
  9. package/substrate/.bassclef/lite-manifest.json +1794 -0
  10. package/substrate/.claude/agents/architect.md +70 -0
  11. package/substrate/.claude/agents/builder.md +114 -0
  12. package/substrate/.claude/agents/designer.md +156 -0
  13. package/substrate/.claude/agents/reviewer.md +88 -0
  14. package/substrate/.claude/hooks/artifact-ingestion-gate.sh +357 -0
  15. package/substrate/.claude/hooks/assert-verify-steering.sh +77 -0
  16. package/substrate/.claude/hooks/bassclef-source-config-validate.sh +215 -0
  17. package/substrate/.claude/hooks/bassclef-sync.sh +634 -0
  18. package/substrate/.claude/hooks/compound-noun-scrub.sh +292 -0
  19. package/substrate/.claude/hooks/kiss-expansion-inject.sh +69 -0
  20. package/substrate/.claude/hooks/plain-english-steering.sh +156 -0
  21. package/substrate/.claude/hooks/post-skill-friction-check.sh +177 -0
  22. package/substrate/.claude/hooks/post-skill-telemetry.sh +62 -0
  23. package/substrate/.claude/hooks/pre-build-gate.sh +511 -0
  24. package/substrate/.claude/hooks/pre-commit-gate.sh +452 -0
  25. package/substrate/.claude/hooks/session-end.sh +433 -0
  26. package/substrate/.claude/hooks/session-reflection.sh +303 -0
  27. package/substrate/.claude/hooks/skill-body-grade-gate.sh +219 -0
  28. package/substrate/.claude/hooks/skill-body-intent-drift.sh +107 -0
  29. package/substrate/.claude/hooks/skill-step-list-check.sh +171 -0
  30. package/substrate/.claude/hooks/state-validate.sh +271 -0
  31. package/substrate/.claude/hooks/substrate-clarity-gate.sh +1110 -0
  32. package/substrate/.claude/hooks/temperance-gate.sh +147 -0
  33. package/substrate/.claude/hooks/testing-tier-enforce.sh +233 -0
  34. package/substrate/.claude/hooks/turn-prose-grade-measure.sh +219 -0
  35. package/substrate/.claude/hooks/turn-prose-kiss-check.sh +434 -0
  36. package/substrate/.claude/hooks/vocabulary-migration-check.sh +171 -0
  37. package/substrate/.claude/hooks/whereami-utc-gate.sh +142 -0
  38. package/substrate/.claude/luminaries/alan-cooper.md +170 -0
  39. package/substrate/.claude/luminaries/alistair-cockburn.md +140 -0
  40. package/substrate/.claude/luminaries/amazon-pr-faq.md +34 -0
  41. package/substrate/.claude/luminaries/ash-maurya.md +121 -0
  42. package/substrate/.claude/luminaries/bill-buxton.md +210 -0
  43. package/substrate/.claude/luminaries/charles-sanders-peirce.md +150 -0
  44. package/substrate/.claude/luminaries/david-ogilvy.md +192 -0
  45. package/substrate/.claude/luminaries/don-norman.md +173 -0
  46. package/substrate/.claude/luminaries/edward-tufte.md +179 -0
  47. package/substrate/.claude/luminaries/eric-evans.md +160 -0
  48. package/substrate/.claude/luminaries/frederick-brooks.md +50 -0
  49. package/substrate/.claude/luminaries/gang-of-four.md +157 -0
  50. package/substrate/.claude/luminaries/jason-fried-dhh.md +46 -0
  51. package/substrate/.claude/luminaries/jesse-james-garrett.md +154 -0
  52. package/substrate/.claude/luminaries/john-ousterhout.md +94 -0
  53. package/substrate/.claude/luminaries/karl-popper.md +132 -0
  54. package/substrate/.claude/luminaries/kent-beck.md +168 -0
  55. package/substrate/.claude/luminaries/linus-torvalds.md +218 -0
  56. package/substrate/.claude/luminaries/martin-fowler.md +164 -0
  57. package/substrate/.claude/luminaries/michael-feathers.md +125 -0
  58. package/substrate/.claude/luminaries/michael-nygard.md +118 -0
  59. package/substrate/.claude/luminaries/robert-c-martin.md +164 -0
  60. package/substrate/.claude/luminaries/saltzer-schroeder.md +194 -0
  61. package/substrate/.claude/luminaries/sophia-prater.md +193 -0
  62. package/substrate/.claude/luminaries/stephen-toulmin.md +131 -0
  63. package/substrate/.claude/rules/artifact-ingestion.md +179 -0
  64. package/substrate/.claude/rules/assert-only-after-verify.md +137 -0
  65. package/substrate/.claude/rules/blocked-items.md +146 -0
  66. package/substrate/.claude/rules/branching.md +28 -0
  67. package/substrate/.claude/rules/commit-conventions.md +22 -0
  68. package/substrate/.claude/rules/context-engineering.md +202 -0
  69. package/substrate/.claude/rules/context-management.md +85 -0
  70. package/substrate/.claude/rules/destructive-operations.md +69 -0
  71. package/substrate/.claude/rules/diagnosis.md +38 -0
  72. package/substrate/.claude/rules/guardrails.md +73 -0
  73. package/substrate/.claude/rules/identifier-leak-prevention.md +104 -0
  74. package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +98 -0
  75. package/substrate/.claude/rules/oo-ad-entry-point.md +117 -0
  76. package/substrate/.claude/rules/operator-facing-prose.md +196 -0
  77. package/substrate/.claude/rules/plain-english-discipline.md +154 -0
  78. package/substrate/.claude/rules/pr-body-shape.md +317 -0
  79. package/substrate/.claude/rules/pr-strategy.md +167 -0
  80. package/substrate/.claude/rules/sdlc-gates.md +149 -0
  81. package/substrate/.claude/rules/session-artifacts.md +236 -0
  82. package/substrate/.claude/rules/state-schema-validation.md +162 -0
  83. package/substrate/.claude/rules/whereami-load-bearing.md +202 -0
  84. package/substrate/.claude/rules/writing-craft-discipline.md +92 -0
  85. package/substrate/.claude/skills/build/SKILL.md +640 -0
  86. package/substrate/.claude/skills/decompose/SKILL.md +280 -0
  87. package/substrate/.claude/skills/diagnose/SKILL.md +297 -0
  88. package/substrate/.claude/skills/howdoi/SKILL.md +105 -0
  89. package/substrate/.claude/skills/ia-model/SKILL.md +108 -0
  90. package/substrate/.claude/skills/interaction-design/SKILL.md +112 -0
  91. package/substrate/.claude/skills/interpret-input/SKILL.md +180 -0
  92. package/substrate/.claude/skills/kiss/SKILL.md +449 -0
  93. package/substrate/.claude/skills/launch/SKILL.md +924 -0
  94. package/substrate/.claude/skills/lean-canvas/SKILL.md +332 -0
  95. package/substrate/.claude/skills/longrun/SKILL.md +426 -0
  96. package/substrate/.claude/skills/luminary/SKILL.md +481 -0
  97. package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +177 -0
  98. package/substrate/.claude/skills/onboard-repo/SKILL.md +2190 -0
  99. package/substrate/.claude/skills/pattern-review/SKILL.md +99 -0
  100. package/substrate/.claude/skills/personas/SKILL.md +207 -0
  101. package/substrate/.claude/skills/promote/SKILL.md +283 -0
  102. package/substrate/.claude/skills/requirement/SKILL.md +98 -0
  103. package/substrate/.claude/skills/retro/SKILL.md +117 -0
  104. package/substrate/.claude/skills/riff/SKILL.md +114 -0
  105. package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +163 -0
  106. package/substrate/.claude/skills/session-end/SKILL.md +309 -0
  107. package/substrate/.claude/skills/session-log/SKILL.md +299 -0
  108. package/substrate/.claude/skills/skills/SKILL.md +228 -0
  109. package/substrate/.claude/skills/spec/SKILL.md +105 -0
  110. package/substrate/.claude/skills/sprint/SKILL.md +392 -0
  111. package/substrate/.claude/skills/stage/SKILL.md +384 -0
  112. package/substrate/.claude/skills/state-a-problem/SKILL.md +185 -0
  113. package/substrate/.claude/skills/temperance/SKILL.md +108 -0
  114. package/substrate/.claude/skills/use-case/SKILL.md +417 -0
  115. package/substrate/.claude/skills/user-stories/SKILL.md +268 -0
  116. package/substrate/.claude/skills/value-prop/SKILL.md +251 -0
  117. package/substrate/.claude/skills/verify/SKILL.md +160 -0
  118. package/substrate/.claude/skills/whereami/SKILL.md +307 -0
  119. package/substrate/AGENTS.md +79 -0
  120. package/substrate/CLAUDE-lite.md +85 -0
  121. package/substrate/CODE_OF_CONDUCT.md +28 -0
  122. package/substrate/CONTRIBUTING.md +177 -0
  123. package/substrate/README.md +173 -0
  124. package/substrate/SECURITY.md +19 -0
  125. package/substrate/architecture/decisions/ADR-029-release-pipeline.md +79 -0
  126. package/substrate/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +139 -0
  127. package/substrate/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +192 -0
  128. package/substrate/architecture/decisions/ADR-039-release-tagging-scheme.md +145 -0
  129. package/substrate/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +155 -0
  130. package/substrate/architecture/decisions/ADR-044-unified-skill-body-template.md +162 -0
  131. package/substrate/lib/clean-artifacts-sweep.sh +112 -0
  132. package/substrate/lib/code-comment-discipline.sh +144 -0
  133. package/substrate/lib/composer-preflight.sh +459 -0
  134. package/substrate/lib/hook-inject.sh +255 -0
  135. package/substrate/lib/luminary-pick.sh +96 -0
  136. package/substrate/lib/output-discipline.sh +143 -0
  137. package/substrate/lib/rewrite-check.sh +214 -0
  138. package/substrate/lib/state.sh +1372 -0
  139. package/substrate/lib/telemetry.sh +205 -0
  140. package/substrate/lib/tier-check.sh +138 -0
  141. package/substrate/lib/tier-dependency-audit.sh +933 -0
  142. package/substrate/presence/install/bassclef-hook-connect.sh +178 -0
  143. package/substrate/presence/install/bassclef-sync.dispatcher.template.sh +841 -0
  144. package/substrate/presence/install/bassclef-sync.template.sh +2076 -0
  145. package/substrate/presence/install/schedule-auto-save.cron.sh +88 -0
  146. package/substrate/presence/install/schedule-auto-save.taskscheduler.md +122 -0
  147. package/substrate/scripts/aggregate-telemetry.sh +217 -0
  148. package/substrate/scripts/analyze-tier-dependencies.sh +239 -0
  149. package/substrate/scripts/generate-lite-manifest.sh +489 -0
  150. package/substrate/scripts/generate-tier-manifest.sh +28 -0
  151. package/substrate/scripts/intent-drift-check.sh +456 -0
  152. package/substrate/scripts/lite-manifest-drift-check.sh +146 -0
  153. package/substrate/scripts/render-lite-manifest-doc.sh +150 -0
  154. package/substrate/standards/bassclef-configs-schema.md +232 -0
  155. package/substrate/standards/bassclef-evolution.md +143 -0
  156. package/substrate/standards/bassclef-internal-jargon.md +244 -0
  157. package/substrate/standards/bassclef-managed-sentinel.md +96 -0
  158. package/substrate/standards/bassclef-source-config.md +228 -0
  159. package/substrate/standards/deferred-actions-schema.md +204 -0
  160. package/substrate/standards/docs-sync-allowlist.md +76 -0
  161. package/substrate/standards/graceful-exit.md +227 -0
  162. package/substrate/standards/hook-idempotency.md +102 -0
  163. package/substrate/standards/lite-manifest-schema-changes.md +75 -0
  164. package/substrate/standards/luminary-problem-patterns.md +481 -0
  165. package/substrate/standards/ogilvy-writing-rules.md +225 -0
  166. package/substrate/standards/opener-discipline.md +96 -0
  167. package/substrate/standards/operator-facing-prose-discipline.md +201 -0
  168. package/substrate/standards/project-directory-layout.md +276 -0
  169. package/substrate/standards/release-tagging.md +137 -0
  170. package/substrate/standards/sdlc-compliance.md +286 -0
  171. package/substrate/standards/secrets-lifecycle.md +210 -0
  172. package/substrate/standards/security-scanner-adapter.md +145 -0
  173. package/substrate/standards/skill-output-discipline.md +90 -0
  174. package/substrate/standards/state-spine.md +511 -0
  175. package/substrate/standards/tech-stack-config.md +109 -0
  176. package/substrate/standards/tier-dependency-analysis.md +167 -0
  177. package/substrate/standards/tier-runtime-deps/lite.md +57 -0
  178. package/substrate/standards/tier-tag-schema.md +155 -0
  179. package/substrate/standards/whereami-schema.md +301 -0
  180. package/substrate/standards/writing-guide.md +213 -0
  181. package/substrate/templates/deferred-action-template.md +45 -0
  182. package/substrate/templates/whereami-template.md +101 -0
@@ -0,0 +1,210 @@
1
+ ---
2
+ tier: lite
3
+ name: Bill Buxton
4
+ slug: bill-buxton
5
+ claimed_by: [designer]
6
+ referenced_by_skills: [prototype-variants, interaction-design, prototype-gallery]
7
+ primary_domain: ux
8
+ depth: full
9
+ agent_drafted: 2026-05-06
10
+ operator_review_pending: true
11
+ verification_status: verified
12
+ sources:
13
+ - type: book
14
+ title: "Sketching User Experiences: Getting the Design Right and the Right Design"
15
+ authors: ["Bill Buxton"]
16
+ year: 2007
17
+ isbn: "978-0123740373"
18
+ url: "https://www.elsevier.com/books/sketching-user-experiences/buxton/978-0-12-374037-3"
19
+ methodology_covered: ["fidelity ladder", "sketching vs prototyping distinction", "three-panel storyboarding", "champion-challenger principle"]
20
+ - type: website
21
+ title: "billbuxton.com"
22
+ authors: ["Bill Buxton"]
23
+ url: "https://billbuxton.com"
24
+ methodology_covered: ["ongoing research and practice commentary"]
25
+ solves_problems_brownfield:
26
+ - "Team jumps to high-fidelity prototypes without exploring alternatives"
27
+ - "First idea ships because nothing else was generated to compare it to"
28
+ - "Sketches and prototypes are conflated; divergent exploration is skipped"
29
+ - "Interactive prototypes lock in design decisions before exploration is done"
30
+ solves_problems_greenfield:
31
+ - "Establishing a prototype-discipline practice from day one"
32
+ - "Designing a process where divergent exploration precedes convergent refinement"
33
+ - "Building a team where sketching is the gateway, not a perfunctory step"
34
+ - "Planning a workflow where fidelity ladder is enforced (sketches before wireframes before mockups before interactive)"
35
+ anti_patterns:
36
+ - "Trivial design tasks where sketching overhead exceeds value"
37
+ - "Pure copy / microcopy work where sketching isn't the lens"
38
+ - "Teams that already have strong divergent-exploration habits"
39
+ description: "\"Get the design right, and the right design.\""
40
+ ---
41
+
42
+ # Bill Buxton
43
+
44
+ ## Signature
45
+
46
+ *"Get the design right, and the right design."*
47
+
48
+ Sketching pioneer. Author of *Sketching User Experiences: Getting the Design Right and the Right Design* (2007). The canonical voice on **fidelity discipline** — knowing when low-fi serves, when hi-fi misleads, and why most teams skip sketching to their detriment.
49
+
50
+ Buxton's signature contribution is the **two-phase model of design**: divergent (get the right design — explore many alternatives) → convergent (get the design right — refine the chosen one). Most teams collapse the phases or skip divergent entirely; the result is one-solution thinking. Buxton's method forces the divergent phase visible.
51
+
52
+ For canonical, Buxton is the variant-discipline luminary — the framework justifying `/riff-prototypes` and `/launch`'s emphasis on multiple variants per direction. Without Buxton's fidelity ladder, teams jump to interactive prototypes too fast, lock in answers that should have stayed exploratory.
53
+
54
+ ## Sources
55
+
56
+ - *Sketching User Experiences: Getting the Design Right and the Right Design* — Buxton, Morgan Kaufmann (2007) — primary
57
+ - [billbuxton.com](https://billbuxton.com) — primary site, ongoing essays
58
+ - *Sketching User Experiences: The Workbook* — Greenberg / Carpendale / Marquardt / Buxton (2011) — applied exercises
59
+ - Conference talks: CHI, IxDA (publicly archived; YouTube)
60
+ - Adjacent: *Sketching Interfaces* — Bill Verplank (peer); *Designing Interactions* — Bill Moggridge (1990s peer)
61
+
62
+ ## Core methods
63
+
64
+ - **Sketching vs prototyping** — [ref:1]
65
+ - **Sketches**: divergent, disposable, exploratory, fast, ambiguous-by-design
66
+ - **Prototypes**: convergent, refined, testable, slow, specific
67
+ - Teams that conflate them skip the divergent phase entirely and produce one-solution thinking
68
+ - The discipline is to recognize which mode you're in
69
+
70
+ - **Fidelity ladder** — Stages of refinement: [ref:1]
71
+ 1. **Sketches** (paper, whiteboard, low-fi digital) — many; cheap; exploratory
72
+ 2. **Wireframes** (more structured; still flexible)
73
+ 3. **Mockups** (visual fidelity; not interactive)
74
+ 4. **Interactive prototypes** (clickable; close to final)
75
+ 5. **Production** (real code, real data)
76
+ - Each rung answers different questions; climbing too fast locks in the wrong answer
77
+
78
+ - **Three-panel comic storyboarding** — Forces interaction thinking, not just screen thinking: [ref:1]
79
+ 1. Context (where + when + who)
80
+ 2. Action (what the user does)
81
+ 3. Reaction (what the system does + how user responds)
82
+ - Three-panel form is Buxton's signature; richer than wireframe, lighter than prototype
83
+
84
+ - **Reprise / theme-and-variations** — Generate MANY variations of a sketch before committing. Quantity over quality early; quality emerges from the comparison. The N-th sketch is often the strongest because the first N-1 cleared the obvious answers.
85
+
86
+ - **The right design vs designing right** — Different problems:
87
+ - "The right design" is divergent (which direction?); answered by exploration + variation
88
+ - "Design it right" is convergent (how do we execute?); answered by refinement + iteration
89
+ - Both are necessary; collapsing them produces "the well-executed first idea" which is rarely the strongest
90
+
91
+ - **Cost-of-iteration ratio** — Sketches cost $1; wireframes $10; prototypes $100; production $1,000. Wrong answers caught at sketch stage are 1000x cheaper than caught in production. Sketch-first economics are decisive.
92
+
93
+ ## INSTEAD-block discipline
94
+
95
+ | Anti-pattern | INSTEAD |
96
+ |---|---|
97
+ | Jumping to interactive prototype | Stage at the sketch rung first; generate 10-20 sketches; pick 2-3 to wireframe; 1 to prototype |
98
+ | Sketches conflated with prototypes | Distinguish: sketches divergent + cheap + disposable; prototypes convergent + invested. Both have place; not interchangeable |
99
+ | Skipping divergent phase | Force divergent: "give me 10 sketches before any of you starts on a prototype" — rule produces variation that quality-emerges-from |
100
+ | One sketch → one wireframe → one prototype | Many sketches → fewer wireframes → fewer prototypes; ratio narrows by stage; divergent phase bears the variation |
101
+ | Three-panel comic skipped for "just wireframes" | Three-panel forces interaction thinking; wireframes alone capture screen state but not user-system dialogue |
102
+ | Sketches polished | Sketches stay rough — pencil + paper + iterate fast; polishing too early kills the exploratory mode |
103
+ | Stakeholders shown low-fi sketches | Stakeholders shown high-fi only when ready; show low-fi internally, hi-fi externally; Buxton's *Sketching* book has 50 pages on this |
104
+ | Hi-fi prototype before research | Hi-fi at prototype rung; sketches inform research; prototypes test research findings; sequence matters |
105
+ | Climbing fidelity ladder too fast | Each rung answers questions the prior rung CAN'T; if you're answering a sketch-question with a prototype, you spent 100x what you needed to |
106
+ | Single-variation prototype | Even at prototype rung, generate 2-3 variations; comparison reveals strengths the single-variant misses |
107
+ | Treating prototyping as commitment | Prototypes are still iterable; not yet committed to production; Buxton's discipline keeps them flexible |
108
+ | Buxton method without storyboards | Storyboards (three-panel comic) are part of Buxton's method; skipping reduces the method to wireframing |
109
+
110
+ ## When to channel this luminary
111
+
112
+ - Always — when designing or planning a non-trivial design effort where exploration matters
113
+ - Especially — when teams default to high-fidelity prototypes without divergent exploration
114
+ - Pair with `dan-saffer` (microinteractions) — Saffer's microinteractions live at Buxton's prototype rung
115
+ - Pair with `jenifer-tidwell` (UI patterns) — Tidwell provides vocabulary for post-sketch refinement; Buxton provides pre-pattern exploration
116
+ - Pair with `golden-krishna` (no-interface) — Both push against screen-first thinking; Buxton via sketching, Krishna via no-screen-default
117
+
118
+ Do NOT use this luminary alone for trivial design tasks (overhead exceeds value), pure copy / microcopy work (wrong lens), or teams with strong divergent-exploration habits already (overhead).
119
+
120
+ ## Stack translation
121
+
122
+ Method, not implementation; translates to canonical artifacts:
123
+
124
+ - **Sketches** → Pencil + paper or low-fi digital (Excalidraw / FigJam); committed to `docs/sketches/<feature-slug>/N.png`; many; not polished
125
+ - **Three-panel comic storyboards** → Per major user flow; committed to `docs/storyboards/<feature-slug>.md`; markdown with embedded sketches
126
+ - **Wireframe artifact** → `docs/wireframes/<feature-slug>.md` per chosen sketch direction; structural-only
127
+ - **Mockup artifact** → `docs/mockups/<feature-slug>/` per chosen wireframe; visual fidelity
128
+ - **Interactive prototype** → `public/prototypes/<feature-slug>/variant-<X>/` per chosen mockup; HTML/React; close-to-final
129
+ - **Production** → `src/` integration; reviewed against prototype per `prototype-production-coupling.md`
130
+ - **Variation discipline at each rung** → 10-20 sketches → 2-5 wireframes → 2-3 mockups → 2-3 prototypes; narrowing ratio per rung
131
+ - **`/riff-prototypes` skill** → Direct operational descendant of Buxton's "reprise / theme-and-variations" — generates multiple prototypes against a brief
132
+ - **`/launch` skill** → Composes the full sketch → wireframe → mockup → prototype chain; fidelity ladder enforced
133
+
134
+ ## Anti-patterns it prevents
135
+
136
+ - **One-solution thinking** — first idea = shipped idea; alternatives never explored; better answers missed
137
+ - **Premature high-fidelity** — interactive prototype built before sketch exploration; investment locks in suboptimal direction
138
+ - **Polished sketches** — exploratory mode dies; sketches become wireframes-with-attitude; divergent phase lost
139
+ - **Storyboards skipped** — wireframes alone capture state but not interaction; user-system dialogue not designed
140
+ - **Stakeholder confusion** — stakeholders shown low-fi internally to ill effect; or shown only hi-fi and feel "deciding too late"
141
+ - **Sketches treated as commitment** — exploratory output treated as proposal; team commits to half-thought directions
142
+ - **Variation only at top of ladder** — variations explored in sketch; from wireframe onward single-track; loses post-sketch refinement opportunities
143
+
144
+ ## Worked example
145
+
146
+ For canonical's hypothetical "operator-roadmap mobile view" feature:
147
+
148
+ Buxton's prescription:
149
+
150
+ **Phase 1 — Sketches** (15 minutes; 12 sketches):
151
+ - 12 quick sketches of "what does the operator see when they open canonical on phone?"
152
+ - Variations: list view / card view / Kanban / timeline / dashboard / spatial / conversational / 3D / minimal-status / detail-first / etc.
153
+ - All on paper / Excalidraw; rough, fast, disposable
154
+
155
+ **Phase 2 — Three-panel storyboards** (30 minutes; 4 storyboards):
156
+ - Pick 3-4 promising sketch directions
157
+ - Three-panel storyboard per: Context (operator at coffee shop, phone in hand) → Action (opens canonical) → Reaction (sees state, decides what to do)
158
+ - Reveals which directions support the actual use case
159
+
160
+ **Phase 3 — Wireframes** (1 hour; 2 wireframes):
161
+ - Pick 2 storyboard directions
162
+ - Structural wireframes (Excalidraw or Figma low-fi)
163
+
164
+ **Phase 4 — Mockups** (2-4 hours; 2 mockups):
165
+ - Both wireframes get visual mockups; same brand tokens; varying composition
166
+
167
+ **Phase 5 — Interactive prototypes** (1 day; 2 prototypes):
168
+ - Both mockups become clickable prototypes (`/riff-prototypes` outputs)
169
+ - Both deployed; champion-challenger comparison
170
+
171
+ **Phase 6 — Production** (after operator picks):
172
+ - Single chosen direction goes to production via `/launch` chain
173
+
174
+ **Cost-of-iteration economy**:
175
+ - Wrong direction caught at sketch (Phase 1): 15 min
176
+ - Wrong direction caught at storyboard (Phase 2): 30-45 min
177
+ - Wrong direction caught at wireframe (Phase 3): 1-2 hours
178
+ - Wrong direction caught at prototype (Phase 5): 1-2 days
179
+ - Wrong direction caught in production: 1-2 weeks
180
+ - Buxton's discipline saves the latter cost by catching at the former rungs
181
+
182
+ What this luminary catches that "design the mobile view" misses: the divergent-then-convergent sequence; the variation discipline at each rung; the storyboard step (interaction thinking); the cost-of-iteration economy; the multi-variant prototype rung.
183
+
184
+ ## How to use in canonical's chain
185
+
186
+ In `/riff-prototypes`:
187
+ - Direct application of Buxton's reprise / theme-and-variations
188
+ - Multi-variant output enforces divergent phase
189
+ - Operator picks among variants → convergent
190
+
191
+ In `/launch`:
192
+ - Composes sketch → wireframe → mockup → prototype chain
193
+ - Phase ordering enforces fidelity ladder
194
+
195
+ In `/canvas`:
196
+ - Canvas Build Sequence section can include sketches at lowest fidelity
197
+ - Storyboards capture interaction thinking before spec
198
+
199
+ In `/spec`:
200
+ - Spec references which prototype direction won; cites the divergent options + decision rationale
201
+
202
+ ## Related luminaries
203
+
204
+ - **Jenifer Tidwell** — UI patterns provide post-sketch vocabulary; Buxton provides pre-pattern exploration
205
+ - **Dan Saffer** — Microinteractions at high-fidelity rung; Buxton's ladder leads to Saffer's territory
206
+ - **Golden Krishna** — No-interface thinking; both push against screen-first; Buxton via fidelity ladder, Krishna via no-screen-default
207
+ - **Don Norman** — Foundational interaction design; Buxton's storyboards apply Norman's principles
208
+ - **Bill Moggridge** — Peer; *Designing Interactions* covers similar ground
209
+ - **canonical's `/riff-prototypes` skill** — Direct operational descendant
210
+ - **canonical's `/launch` skill** — Direct operational descendant (full ladder)
@@ -0,0 +1,150 @@
1
+ ---
2
+ tier: lite
3
+ name: Charles Sanders Peirce
4
+ slug: charles-sanders-peirce
5
+ claimed_by: [architect, reviewer, closer]
6
+ referenced_by_skills: [diagnose, architect-review, promote, state-a-problem]
7
+ primary_domain: philosophy
8
+ depth: full
9
+ sources:
10
+ - type: paper
11
+ title: "Deduction, Induction, and Hypothesis"
12
+ authors: ["Charles Sanders Peirce"]
13
+ year: 1878
14
+ url: "https://en.wikisource.org/wiki/Popular_Science_Monthly/Volume_13/August_1878/Illustrations_of_the_Logic_of_Science_VI"
15
+ methodology_covered:
16
+ - "Three modes of reasoning — deduction, induction, abduction"
17
+ - "Abduction as inference to the best explanation"
18
+ - "The role of hypothesis in scientific reasoning"
19
+ - type: paper
20
+ title: "How to Make Our Ideas Clear"
21
+ authors: ["Charles Sanders Peirce"]
22
+ year: 1878
23
+ url: "https://en.wikisource.org/wiki/Popular_Science_Monthly/Volume_12/January_1878/Illustrations_of_the_Logic_of_Science_II"
24
+ methodology_covered:
25
+ - "The pragmatic maxim — meaning is the practical consequences of belief"
26
+ - "Clarity through operational testing, not verbal definition"
27
+ - "Truth as the limit of inquiry over indefinite time"
28
+ - type: book
29
+ title: "Collected Papers of Charles Sanders Peirce (8 volumes)"
30
+ authors: ["Charles Sanders Peirce", "Charles Hartshorne (editor)", "Paul Weiss (editor)"]
31
+ year: 1931
32
+ original_year: 1866
33
+ url: "https://www.hup.harvard.edu/catalog.php?isbn=9780674138001"
34
+ isbn: "9780674138001"
35
+ methodology_covered:
36
+ - "Semiotics — the theory of signs and their interpretation"
37
+ - "Pragmatism as a philosophical method"
38
+ - "Logic of inquiry across science, ethics, aesthetics"
39
+ verification_status: verified
40
+ description: "\"Keep inquiry open.\""
41
+ ---
42
+
43
+ # Charles Sanders Peirce
44
+
45
+ ## Signature
46
+
47
+ *"Keep inquiry open."*
48
+
49
+ American philosopher, logician, mathematician (1839-1914). Founder of pragmatism. Coined the term **abduction** — the mode of reasoning that names multiple hypotheses fitting the same evidence and then works to discriminate between them. The bassclef voice on alternative-consideration, root-cause diagnosis, and the discipline that one explanation for the data is rarely enough evidence.
50
+
51
+ ## Core methods
52
+
53
+ - **Three modes of reasoning** — deduction (from rule + case to result), induction (from case + result to rule), and abduction (from result + rule to case). Only abduction generates new hypotheses. The others test what abduction proposes.
54
+
55
+ INSTEAD of running deduction alone: fire abduction first to generate the candidate set, then use deduction and induction to test each candidate.
56
+
57
+ - **Abduction as inference to the best explanation** — when a surprising fact is observed, the abductive move is to ask "what would need to be true for this to be unsurprising?" Multiple candidates always fit.
58
+
59
+ INSTEAD of picking the first fit: name the candidates. Read source to discriminate.
60
+
61
+ - **The pragmatic maxim** — the meaning of any belief is the practical consequences that follow if the belief were true. Beliefs whose truth or falsity make no operational difference are noise.
62
+
63
+ INSTEAD of arguing about beliefs that make no operational difference: reroute to a claim that has practical consequences the reader can test.
64
+
65
+ - **Keep inquiry open** — the cardinal discipline in Peirce's epistemology. Any move that closes off alternative explanations before they have been tested is an inquiry-blocker. Confirmation bias is inquiry-blocking; committing to the first fit is inquiry-blocking.
66
+
67
+ INSTEAD of committing to the first fit: state the candidates, state the discrimination test, run the test.
68
+
69
+ - **Truth as the long run** — truth is the limit of what inquiry would arrive at given indefinite time and effort. Individual claims are provisional; the community and the method carry the discipline.
70
+
71
+ ## When to channel this luminary
72
+
73
+ When the primary risk is confirmation bias — committing to the first explanation that fits the data without considering alternatives. Peirce dominates for root-cause diagnosis, cure surface selection, audit method design, and any moment the agent surfaces "the cause is X" or "the cure is Y." Pair with Popper (Popper says which candidate survives severe testing; Peirce says name the candidates first) and Toulmin (Toulmin gives the argument shape; Peirce insists the claim cell name alternatives before committing).
74
+
75
+ Pass-through cases (Peirce adds no value):
76
+
77
+ - Single-choice technical decisions where only one option is technically feasible. INSTEAD of enumerating alternatives: preserve the one feasible option; abduction over a set of one is trivial.
78
+ - Operator preference calls. INSTEAD of enumerating alternatives: honor the preference; the operator has already made the discrimination.
79
+ - Trivial fixes where the failure message states the cause. INSTEAD of enumerating alternatives: preserve the stated cause; the compiler or test framework has already named the class.
80
+
81
+ ## Stack translation
82
+
83
+ In bassclef substrate work:
84
+
85
+ - **`/diagnose` root cause** → name 2-3 hypotheses that fit the repro. For each, name what would discriminate. Read source. Commit only to the one that survives.
86
+ - **Cure surface selection** → the operator says "the class is R8." Peirce asks: what other classes could the same instances belong to? Confirmation bias would pick R8 because it is named; Peirce checks the alternatives before committing.
87
+ - **Audit method** — the audit surfaces findings. Peirce asks: does the method's lens set exclude explanations by construction? A comprehension-side-only audit misses mechanism-fidelity findings because it lacks the lens. Naming the excluded class is Peirce's contribution.
88
+ - **Ticket filing** — when filing a substrate-defect ticket, Peirce asks: what other tickets already name this class? Confirmation bias files a duplicate; Peirce reads the umbrella first.
89
+ - **PR review** → for every "the cause is X" claim in the PR body, ask "what other causes would fit the same observation?" A PR that names only its own cause has skipped Peirce's discipline.
90
+
91
+ ## Anti-patterns it prevents
92
+
93
+ - **One explanation without alternatives** — "The bug is caused by Y." Might be. Might be Z. Might be W. Naming three and picking one is the discipline.
94
+
95
+ INSTEAD: name 2-3 hypotheses that fit the same data. State the discrimination test. Run it.
96
+
97
+ - **First-fit commitment** — the first hypothesis that fits gets the fix.
98
+
99
+ INSTEAD: test the second and third before shipping. The first fit is a candidate, not a conclusion.
100
+
101
+ - **Blocked inquiry** — closing off an alternative because it is inconvenient, unfashionable, or would require re-reading source the agent has already skimmed.
102
+
103
+ INSTEAD: read the source again. Blocking inquiry is the cardinal sin in Peirce's frame.
104
+
105
+ - **Inquiry theater** — naming three alternatives but designing the discrimination test to favor the preferred candidate.
106
+
107
+ INSTEAD: design the severe test (per Popper) and apply it to each alternative in turn.
108
+
109
+ - **Meaningless distinctions** — arguing about beliefs that make no operational difference.
110
+
111
+ INSTEAD: apply the pragmatic maxim; if the belief has no practical consequence, reroute to a claim that does.
112
+
113
+ ## Worked example
114
+
115
+ For a diagnostic surfaced during `/diagnose`:
116
+
117
+ Peirce's shape:
118
+
119
+ - **Surprising fact**: The kiss hook silent-fails under operator install.
120
+ - **Candidate hypotheses**:
121
+ 1. **H1**: The hook's path resolution uses SCRIPT_DIR/../../ which breaks under operator install layout.
122
+ 2. **H2**: The hook is missing from operator's `~/.claude/settings.json` UserPromptSubmit matcher.
123
+ 3. **H3**: The hook's install-class declaration is `project`, so it does not distribute to operator install.
124
+ - **Discrimination**:
125
+ - Test H1: check the SCRIPT_DIR path under operator layout. Result: SCRIPT_DIR resolves; standards/ does not exist at ../../standards. H1 partially confirmed.
126
+ - Test H2: read `~/.claude/settings.json`. Result: hook IS wired. H2 falsified.
127
+ - Test H3: read hook header. Result: install-class: dual. H3 falsified.
128
+ - **Conclusion**: H1 survives. Cure: use `resolve_standards_path` from `lib/hook-inject.sh` instead of SCRIPT_DIR/../../.
129
+ - **Inquiry open**: H2 and H3 were tested even though H1 was the first fit.
130
+
131
+ Without Peirce the diagnosis would read "the hook path is broken; fix the path." First-fit; the actual class (dual-install path resolution) stays hidden; the cure ships without the shared lib the class needs. INSTEAD: name three candidates, discriminate, ship the cure that survives.
132
+
133
+ ## Sources
134
+
135
+ - "Deduction, Induction, and Hypothesis" — Peirce, *Popular Science Monthly* Volume 13 (August 1878)
136
+ - "How to Make Our Ideas Clear" — Peirce, *Popular Science Monthly* Volume 12 (January 1878)
137
+ - *Collected Papers of Charles Sanders Peirce* — Hartshorne + Weiss (eds.), Harvard University Press (1931-1935, 8 volumes)
138
+ - *The Essential Peirce: Selected Philosophical Writings* — Nathan Houser + Christian Kloesel (eds.), Indiana University Press (Volume 1: 1867-1893; Volume 2: 1893-1913)
139
+ - Stanford Encyclopedia of Philosophy: entry on Peirce — plato.stanford.edu/entries/peirce/
140
+ - Stanford Encyclopedia of Philosophy: entry on abduction — plato.stanford.edu/entries/abduction/
141
+
142
+ ## Related luminaries
143
+
144
+ - **Stephen Toulmin** — Toulmin's claim cell holds one claim; Peirce insists the claim be selected from a named set of alternatives. Toulmin plus Peirce is the well-shaped argument. Both ship in bet 2026-07-01b WU-2.
145
+ - **Karl Popper** — Popper says test each hypothesis severely; Peirce says name the hypotheses to be tested. Without Peirce, Popper has nothing to falsify. Without Popper, Peirce's alternatives stay untested. Both ship in bet 2026-07-01b WU-2.
146
+ - **Kaoru Ishikawa** — Ishikawa's fishbone diagram is Peirce's abduction with a shape. The six bones (Method, Machine, Material, Man, Measurement, Environment) prompt the agent to name candidates for each root-cause dimension before committing.
147
+ - **Michael Feathers** — Feathers's characterization tests discriminate between hypotheses at the code layer. Peirce insists we name three; Feathers writes tests that show which one is right.
148
+ - **W. Edwards Deming** — Deming's Act phase asks whether the intervention actually removed the defect; if not, the wrong hypothesis was the root cause. Peirce's abduction produces the candidates Deming's Act discriminates between.
149
+
150
+ Anchors `.claude/rules/assert-only-after-verify.md` alongside Toulmin + Popper. Primary luminary for `/diagnose` skill in candidate-hypothesis enumeration.
@@ -0,0 +1,192 @@
1
+ ---
2
+ tier: lite
3
+ name: David Ogilvy
4
+ slug: david-ogilvy
5
+ claimed_by: [designer, product-manager, creative-director, reviewer]
6
+ referenced_by_skills: [ogilvy-writing-audit, kiss, journal, session-log]
7
+ primary_domain: writing
8
+ depth: full
9
+ solves_problems_brownfield:
10
+ - "Prose reads dense or bureaucratic; readers bounce"
11
+ - "Memo asks for action but the ask is unclear"
12
+ - "Numbers and facts are dropped into the text without saying why they matter"
13
+ - "Bad news is buried in softening language; the reader has to decode"
14
+ - "Sentences run so long the reader loses the thread"
15
+ solves_problems_greenfield:
16
+ - "Setting the writing voice for a new product surface"
17
+ - "Establishing a house style for chronicles, journal entries, or PR bodies"
18
+ - "Onboarding new writers to a plain-language discipline"
19
+ - "Drafting the first version of an ad, memo, or landing page"
20
+ anti_patterns:
21
+ - "Corporate throat-clearing openers — 'Please be advised that,' 'It has come to my attention'"
22
+ - "Jargon used to sound important rather than to be precise"
23
+ - "Euphemisms that soften bad news into gibberish"
24
+ - "Facts presented alone with no interpretation"
25
+ sources:
26
+ - type: archive
27
+ title: "David Ogilvy — 'How to Write' internal memo"
28
+ authors: ["David Ogilvy"]
29
+ year: 1982
30
+ url: "https://www.themarginalian.org/2012/02/07/david-ogilvy-on-writing/"
31
+ methodology_covered:
32
+ - "10 writing rules circulated to Ogilvy and Mather management"
33
+ - "Natural voice, short units, no jargon, verify quotations, read-aloud test, clear ask"
34
+ - type: book
35
+ title: "Writing That Works — How to Communicate Effectively in Business"
36
+ authors: ["Kenneth Roman", "Joel Raphaelson"]
37
+ year: 1981
38
+ url: ""
39
+ methodology_covered:
40
+ - "Comprehension — 'People seldom act on what they cannot understand'"
41
+ - "Completeness — 'When you say something, make sure you have said it'"
42
+ - "Honesty — no hedging, no euphemisms, straight talk on bad news"
43
+ - "Facts with context — no 'unstrung gems'"
44
+ - type: book
45
+ title: "Ogilvy on Advertising"
46
+ authors: ["David Ogilvy"]
47
+ year: 1983
48
+ url: ""
49
+ methodology_covered:
50
+ - "Copy discipline for headlines and body text"
51
+ - "Test-driven refinement of what actually sells"
52
+ verification_status: verified
53
+ description: "\"Write the way you talk. Naturally.\""
54
+ ---
55
+
56
+ # David Ogilvy
57
+
58
+ ## Signature
59
+
60
+ *"Write the way you talk. Naturally."*
61
+
62
+ David Ogilvy (1911-1999) founded Ogilvy and Mather in 1948 and built the modern discipline of writing that persuades without pretense. His 1982 internal memo "How to Write" — ten rules circulated to Ogilvy and Mather management — remains the shortest useful writing style guide in publication. He paired it with a book he insisted every employee read three times: Kenneth Roman and Joel Raphaelson's *Writing That Works* (1981).
63
+
64
+ ## Core principle
65
+
66
+ Prose is craft. Brevity, natural voice, and a clear ask beat every other lever. The reader is busy. The writer's job is to make the point easy to find and easy to act on.
67
+
68
+ Three operational stances flow from this:
69
+
70
+ 1. **Write the way you talk.** Not casual. Not slang. Your natural voice speaking to a respected peer. Corporate throat-clearing ("Please be advised that") betrays the reader.
71
+ 2. **Every fact needs a reason it matters.** Numbers alone are unstrung gems. String them into an argument or drop them.
72
+ 3. **Bad news is not made better by burying it.** Honesty first. Sympathy second. Euphemisms make bad news worse by adding confusion.
73
+
74
+ ## What this looks like in Ogilvy and Mather
75
+
76
+ - **Client memos read like conversation** — "I need a decision by Friday on whether to prioritize A or B" beats "It would be great if someone could weigh in on the priority question at their convenience"
77
+ - **Ad headlines carry the whole ask** — the reader gets it from the headline; body text supports
78
+ - **Facts always carry an "and therefore"** — a survey stat rides an interpretation
79
+ - **Bad news arrives first** — "We're not going ahead with the campaign. Here's why"
80
+ - **Read-aloud test before send** — if it stumbles in your mouth, it stumbles in the reader's
81
+
82
+ ## Core methods
83
+
84
+ Six methods an agent can invoke by name during writing or review:
85
+
86
+ - **Natural voice test** — Read the sentence aloud. Would a real person say it that way to a respected peer? INSTEAD of "Pursuant to our earlier discussion": "As we discussed."
87
+
88
+ - **Short units test** — If a sentence runs past 25 words, split it. If a paragraph runs past 6 sentences, split it. Look for shorter words that mean the same thing: "utilize" becomes "use"; "commence" becomes "start."
89
+
90
+ - **Read-aloud test** — Read the passage in your head. If it stumbles — tongue-twisters, awkward rhythms, no comma rest in a long line — rewrite until it flows.
91
+
92
+ - **Completeness test** — Ask yourself: 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? Roman and Raphaelson's warning: "When you say something, make sure you have said it. The chances of your having said it are only fair."
93
+
94
+ - **Honesty test** — Are you saying what you mean or hiding behind softening language? Weasel words ("arguably," "somewhat," "perhaps"), euphemisms ("right-sizing," "we're going in a different direction"), passive voice hiding the actor ("mistakes were made") all fail.
95
+
96
+ - **Facts-with-context test** — For every number, fact, or data point: does the reader know why it matters? Is it connected to a point? Roman and Raphaelson's metaphor: "Facts are building materials. Readers are not impressed by a pile of bricks. They want to see the building."
97
+
98
+ ## When to channel this luminary
99
+
100
+ When the primary risk is **prose that fails to persuade or act on**. Ogilvy dominates any surface where an operator or adopter reads for a decision:
101
+
102
+ - Chronicles and session logs — narrative record must land clearly
103
+ - PR body Summary and Test plan sections — reviewers need the ask fast
104
+ - Ticket bodies — Problem section must state user pain, not solution abstraction
105
+ - Journal entries — external audience; Roman-and-Raphaelson completeness test essential
106
+ - Turn prose in agent responses — operator scans on mobile; Ogilvy is exactly the frame
107
+ - Marketing copy, landing pages, onboarding docs — the original domain
108
+
109
+ Pair with **Rich Hickey** (simple vs easy at the writing shape layer — matches Ogilvy's short-units principle), **Stephen Toulmin** (argument shape underneath the words — Ogilvy's facts-with-context is Toulmin's warrant restated as writing craft), and **Kent Beck** (composition rhythm — Ogilvy's read-aloud test is TDD's red-green-refactor for prose).
110
+
111
+ INSTEAD of channeling Ogilvy for pure technical documentation where precision beats natural voice (API contracts, schema shapes, error code tables): route to the surface's own discipline. Ogilvy applies to persuasive and narrative writing. Reference material has its own rules.
112
+
113
+ ## Stack translation
114
+
115
+ Bassclef ships to operators and adopters. Both audiences read on mobile. Both bounce on friction. Ogilvy's discipline maps directly:
116
+
117
+ | Ogilvy and Mather ad copy | Bassclef substrate output |
118
+ |---|---|
119
+ | Client memo asking for approval | PR body asking for review |
120
+ | Ad headline that carries the whole ask | Ticket title + Problem section |
121
+ | Body copy that supports the headline | Chronicle body + PR body Summary |
122
+ | Bad news memo | Failed CI + incident report |
123
+ | Read-aloud test before send | `/kiss words --grade10` + `/ogilvy-writing-audit` before commit |
124
+ | Roman-and-Raphaelson three-times reading | `.claude/rules/writing-craft-discipline.md` auto-loaded every session |
125
+
126
+ ## Anti-patterns Ogilvy prevents
127
+
128
+ - **Corporate throat-clearing openers.** "Please be advised that" adds distance. INSTEAD: state the point.
129
+ - **Jargon to sound important.** "Leverage synergies across verticals" is worse than "get the teams talking." INSTEAD: use the plain word if it carries the same meaning.
130
+ - **Bad news buried in sympathy.** "After careful consideration of a number of factors..." delays the point. INSTEAD: state the decision first, then the reason.
131
+ - **Facts as unstrung gems.** "Revenue was 4.2M" without context does not persuade. INSTEAD: "Revenue was 4.2M, up 30 percent year over year — best quarter yet."
132
+ - **Long sentences with no comma rest.** A 35-word sentence is physically hard to read aloud. INSTEAD: split at the natural clause boundary.
133
+
134
+ ## Worked example
135
+
136
+ **Scenario.** Agent drafts a PR body Summary for a substrate change:
137
+
138
+ **Before (fails Ogilvy — jargon + long sentences + buried ask):**
139
+
140
+ > "Pursuant to the operationalized discussion of the load-bearing shape of the auto-save primitive, this PR introduces a cross-cutting refactor that leverages the SESSION_LOCK guard to obviate mid-session state pollution across a heterogeneous set of adopter operating environments."
141
+
142
+ **After (passes Ogilvy — natural voice + short units + clear ask):**
143
+
144
+ > "Bet 27a diagnose found that session-end.sh commits mid-session, polluting feature branches. This PR adds a SESSION_LOCK check before the commit. When an autonomous session is running, session-end.sh skips the commit. Existing tests stay green; three new cases cover the check. Reviewer confirms the Guard 0 block reads clearly."
145
+
146
+ The second version reads at grade 7. Every sentence has a clear subject. Each idea gets its own sentence. The reader knows what the PR does and what to check.
147
+
148
+ ## How to apply
149
+
150
+ When drafting operator-facing prose or reviewing draft output:
151
+
152
+ 1. **Ask: would a real person say this?** If not, rewrite in natural voice.
153
+ 2. **Ask: what is the ONE thing the reader needs to take from this?** Confirm it is actually written down in plain language.
154
+ 3. **Ask: for every fact or number, did I say why it matters?** If not, add the interpretation or drop the fact.
155
+ 4. **Read it aloud.** If it stumbles, rewrite.
156
+ 5. **Look for weasel words and euphemisms.** Swap for straight talk.
157
+ 6. **Check sentence length.** If any runs past 25 words, split.
158
+
159
+ ## How bassclef channels Ogilvy
160
+
161
+ The discipline lives in:
162
+
163
+ - `.claude/rules/writing-craft-discipline.md` — auto-loaded rule; adds Ogilvy tests as first-person composition checks
164
+ - `standards/ogilvy-writing-rules.md` — reference standard with the 10 rules and violation patterns
165
+ - `.claude/skills/ogilvy-writing-audit/SKILL.md` — operator-invocable audit skill; produces severity-tagged violations with specific fixes
166
+ - `standards/bassclef-internal-jargon.md` — extended with Ogilvy business-jargon terms
167
+ - `.claude/skills/kiss/SKILL.md` — cross-referenced; `/kiss words` composes with `/ogilvy-writing-audit` (audit diagnoses; kiss fixes)
168
+ - `standards/skill-output-discipline.md` — extended to reference Ogilvy writing rules as the craft anchor
169
+
170
+ ## Related luminaries
171
+
172
+ - **Rich Hickey** — simple vs easy at the writing shape layer. Ogilvy's short-units test is Hickey's discipline applied to sentences.
173
+ - **Stephen Toulmin** — argument shape under the words. Ogilvy's facts-with-context is Toulmin's warrant restated as writing craft. The two pair naturally.
174
+ - **Kent Beck** — composition rhythm. Ogilvy's read-aloud test is Beck's red-green-refactor for prose — write, read aloud, revise.
175
+ - **Kenneth Roman and Joel Raphaelson** — Ogilvy insisted every Ogilvy and Mather employee read *Writing That Works* three times. R&R supply rules 7-10 (comprehension, completeness, honesty, facts-with-context) that Ogilvy's memo did not spell out. They stay paired throughout `standards/ogilvy-writing-rules.md`.
176
+ - **Frederick Brooks** — conceptual integrity applies to prose voice. Ogilvy's discipline is one operator holding a coherent voice across every surface.
177
+
178
+ ## Sources
179
+
180
+ - David Ogilvy — "How to Write" internal memo, September 7, 1982 (ten rules to Ogilvy and Mather management; still in wide circulation)
181
+ - Kenneth Roman and Joel Raphaelson — *Writing That Works* (Harper and Row, 1981; Ogilvy insisted every employee read three times)
182
+ - David Ogilvy — *Ogilvy on Advertising* (Crown, 1983)
183
+
184
+ ## Refs
185
+
186
+ - Ticket #934 — this luminary's filing (Ogilvy skill + luminary + rule + standard)
187
+ - Session 2026-07-27a chronicle — the operator + agent discussion that surfaced the fit
188
+ - Sister rule `.claude/rules/plain-english-discipline.md` — bassclef's own grade-level rule that composes with Ogilvy's discipline
189
+
190
+ ## Retirement condition
191
+
192
+ This luminary retires only if bassclef stops shipping operator-facing prose. Until then, Ogilvy is the writing-craft anchor for every surface where a human reads for a decision or a story.