@thebassclef/lite 1.0.3 → 1.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.
- package/dist/cli.cjs +92 -6
- package/dist/cli.js +92 -6
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/lite/.claude/agents/architect.md +70 -0
- package/dist/lite/.claude/agents/builder.md +114 -0
- package/dist/lite/.claude/agents/designer.md +156 -0
- package/dist/lite/.claude/agents/reviewer.md +88 -0
- package/dist/lite/.claude/hooks/bassclef-sync.sh +85 -27
- package/dist/lite/.claude/hooks/longrun-prep-compounding-axis-check.sh +492 -0
- package/dist/lite/.claude/hooks/longrun-prep-render-check.sh +236 -0
- package/dist/lite/.claude/hooks/persona-name-scrub-check.sh +105 -0
- package/dist/lite/.claude/hooks/skill-step-list-check.sh +171 -0
- package/dist/lite/.claude/luminaries/alan-cooper.md +170 -0
- package/dist/lite/.claude/luminaries/alistair-cockburn.md +140 -0
- package/dist/lite/.claude/luminaries/amazon-pr-faq.md +34 -0
- package/dist/lite/.claude/luminaries/andreas-zeller.md +74 -0
- package/dist/lite/.claude/luminaries/ash-maurya.md +121 -0
- package/dist/lite/.claude/luminaries/bill-buxton.md +210 -0
- package/dist/lite/.claude/luminaries/charles-sanders-peirce.md +150 -0
- package/dist/lite/.claude/luminaries/david-ogilvy.md +192 -0
- package/dist/lite/.claude/luminaries/don-norman.md +173 -0
- package/dist/lite/.claude/luminaries/edward-tufte.md +179 -0
- package/dist/lite/.claude/luminaries/eric-evans.md +160 -0
- package/dist/lite/.claude/luminaries/frederick-brooks.md +50 -0
- package/dist/lite/.claude/luminaries/gang-of-four.md +157 -0
- package/dist/lite/.claude/luminaries/glenford-myers.md +230 -0
- package/dist/lite/.claude/luminaries/hunt-thomas.md +115 -0
- package/dist/lite/.claude/luminaries/hyrum-wright.md +94 -0
- package/dist/lite/.claude/luminaries/jason-fried-dhh.md +46 -0
- package/dist/lite/.claude/luminaries/jesse-james-garrett.md +154 -0
- package/dist/lite/.claude/luminaries/john-ousterhout.md +94 -0
- package/dist/lite/.claude/luminaries/karl-popper.md +132 -0
- package/dist/lite/.claude/luminaries/kent-beck.md +168 -0
- package/dist/lite/.claude/luminaries/linus-torvalds.md +218 -0
- package/dist/lite/.claude/luminaries/martin-fowler.md +164 -0
- package/dist/lite/.claude/luminaries/michael-feathers.md +125 -0
- package/dist/lite/.claude/luminaries/michael-nygard.md +118 -0
- package/dist/lite/.claude/luminaries/robert-c-martin.md +164 -0
- package/dist/lite/.claude/luminaries/saltzer-schroeder.md +194 -0
- package/dist/lite/.claude/luminaries/sophia-prater.md +193 -0
- package/dist/lite/.claude/luminaries/stephen-toulmin.md +131 -0
- package/dist/lite/.claude/luminaries/tony-hoare.md +170 -0
- package/dist/lite/.claude/luminaries/vaughn-vernon.md +50 -0
- package/dist/lite/.claude/luminaries/w-edwards-deming.md +158 -0
- package/dist/lite/.claude/rules/accessor-library-discipline.md +110 -0
- package/dist/lite/.claude/rules/adr-discipline.md +96 -0
- package/dist/lite/.claude/rules/api-conventions.md +115 -0
- package/dist/lite/.claude/rules/artifact-ingestion.md +137 -0
- package/dist/lite/.claude/rules/assert-only-after-verify.md +111 -0
- package/dist/lite/.claude/rules/blocked-items.md +139 -0
- package/dist/lite/.claude/rules/bootstrap-pair-discipline.md +106 -0
- package/dist/lite/.claude/rules/branching.md +28 -0
- package/dist/lite/.claude/rules/cold-adopter-harness-discipline.md +93 -0
- package/dist/lite/.claude/rules/commit-conventions.md +22 -0
- package/dist/lite/.claude/rules/compounding-axis-fresh-analysis.md +173 -0
- package/dist/lite/.claude/rules/compounding-sequence-fresh-analysis.md +173 -0
- package/dist/lite/.claude/rules/context-engineering.md +155 -0
- package/dist/lite/.claude/rules/context-management.md +85 -0
- package/dist/lite/.claude/rules/defensive-bash.md +52 -0
- package/dist/lite/.claude/rules/deferred-actions.md +233 -0
- package/dist/lite/.claude/rules/destructive-operations.md +69 -0
- package/dist/lite/.claude/rules/diagnosis.md +38 -0
- package/dist/lite/.claude/rules/github-issue-flash-tweet.md +114 -0
- package/dist/lite/.claude/rules/guardrails.md +73 -0
- package/dist/lite/.claude/rules/hook-wire-on-author.md +77 -0
- package/dist/lite/.claude/rules/identifier-leak-prevention.md +73 -0
- package/dist/lite/.claude/rules/iteration-bet-brief-completeness.md +43 -0
- package/dist/lite/.claude/rules/lite-manifest-schema-change-discipline.md +79 -0
- package/dist/lite/.claude/rules/longrun-prep-plan-doc-compression.md +77 -0
- package/dist/lite/.claude/rules/loop-discipline.md +71 -0
- package/dist/lite/.claude/rules/manual-prod-approval.md +100 -0
- package/dist/lite/.claude/rules/marker-enrichment-discipline.md +72 -0
- package/dist/lite/.claude/rules/mobile-ephemeral-session.md +109 -0
- package/dist/lite/.claude/rules/new-dependency-check.md +44 -0
- package/dist/lite/.claude/rules/oo-ad-entry-point.md +95 -0
- package/dist/lite/.claude/rules/operator-facing-prose.md +177 -0
- package/dist/lite/.claude/rules/option-label-discipline.md +82 -0
- package/dist/lite/.claude/rules/pattern-annotation.md +83 -0
- package/dist/lite/.claude/rules/persona-name-leak-scrub.md +90 -0
- package/dist/lite/.claude/rules/plain-english-discipline.md +132 -0
- package/dist/lite/.claude/rules/plan-enumeration-needs-value-props.md +177 -0
- package/dist/lite/.claude/rules/pr-body-shape.md +195 -0
- package/dist/lite/.claude/rules/pr-strategy.md +142 -0
- package/dist/lite/.claude/rules/pr-title-shape.md +90 -0
- package/dist/lite/.claude/rules/prototype-workflow.md +53 -0
- package/dist/lite/.claude/rules/reserved-skill-names.md +103 -0
- package/dist/lite/.claude/rules/schema-management.md +42 -0
- package/dist/lite/.claude/rules/sdlc-gates.md +149 -0
- package/dist/lite/.claude/rules/security.md +37 -0
- package/dist/lite/.claude/rules/session-artifacts.md +236 -0
- package/dist/lite/.claude/rules/skill-composition-declarations.md +105 -0
- package/dist/lite/.claude/rules/skill-description-clarity.md +196 -0
- package/dist/lite/.claude/rules/skill-procedure-step-list.md +119 -0
- package/dist/lite/.claude/rules/sprint-prep-preset-picker.md +76 -0
- package/dist/lite/.claude/rules/state-schema-validation.md +156 -0
- package/dist/lite/.claude/rules/stuck-signal-diagnostic.md +111 -0
- package/dist/lite/.claude/rules/substrate-config-schema.md +85 -0
- package/dist/lite/.claude/rules/test-list-discipline.md +129 -0
- package/dist/lite/.claude/rules/test-sufficiency.md +186 -0
- package/dist/lite/.claude/rules/testing-tier-config.md +125 -0
- package/dist/lite/.claude/rules/testing.md +38 -0
- package/dist/lite/.claude/rules/turn-estimate-grounding.md +82 -0
- package/dist/lite/.claude/rules/visual-hierarchy.md +427 -0
- package/dist/lite/.claude/rules/we-dont-break-adopters.md +103 -0
- package/dist/lite/.claude/rules/whereami-load-bearing.md +184 -0
- package/dist/lite/.claude/rules/writing-craft-discipline.md +72 -0
- package/dist/lite/.claude/rules/wu-sequencing-compounds.md +119 -0
- package/dist/lite/.claude/skills/build/SKILL.md +640 -0
- package/dist/lite/.claude/skills/chronicle/SKILL.md +55 -0
- package/dist/lite/.claude/skills/clean-artifacts/SKILL.md +249 -0
- package/dist/lite/.claude/skills/decompose/SKILL.md +280 -0
- package/dist/lite/.claude/skills/diagnose/SKILL.md +297 -0
- package/dist/lite/.claude/skills/feynman/SKILL.md +90 -0
- package/dist/lite/.claude/skills/howdoi/SKILL.md +105 -0
- package/dist/lite/.claude/skills/ia-model/SKILL.md +108 -0
- package/dist/lite/.claude/skills/interaction-design/SKILL.md +112 -0
- package/dist/lite/.claude/skills/interpret-input/SKILL.md +180 -0
- package/dist/lite/.claude/skills/journal/SKILL.md +209 -0
- package/dist/lite/.claude/skills/kiss/SKILL.md +449 -0
- package/dist/lite/.claude/skills/launch/SKILL.md +915 -0
- package/dist/lite/.claude/skills/lean-canvas/SKILL.md +332 -0
- package/dist/lite/.claude/skills/longrun/SKILL.md +512 -0
- package/dist/lite/.claude/skills/luminary/SKILL.md +481 -0
- package/dist/lite/.claude/skills/ogilvy-writing-audit/SKILL.md +177 -0
- package/dist/lite/.claude/skills/onboard-repo/SKILL.md +1640 -0
- package/dist/lite/.claude/skills/pattern-review/SKILL.md +99 -0
- package/dist/lite/.claude/skills/personas/SKILL.md +207 -0
- package/dist/lite/.claude/skills/promote/SKILL.md +283 -0
- package/dist/lite/.claude/skills/requirement/SKILL.md +98 -0
- package/dist/lite/.claude/skills/retro/SKILL.md +117 -0
- package/dist/lite/.claude/skills/riff/SKILL.md +114 -0
- package/dist/lite/.claude/skills/roadmap-reconcile/SKILL.md +163 -0
- package/dist/lite/.claude/skills/session-end/SKILL.md +309 -0
- package/dist/lite/.claude/skills/session-log/SKILL.md +299 -0
- package/dist/lite/.claude/skills/skills/SKILL.md +228 -0
- package/dist/lite/.claude/skills/spec/SKILL.md +105 -0
- package/dist/lite/.claude/skills/sprint/SKILL.md +418 -0
- package/dist/lite/.claude/skills/stage/SKILL.md +384 -0
- package/dist/lite/.claude/skills/state-a-problem/SKILL.md +185 -0
- package/dist/lite/.claude/skills/temperance/SKILL.md +108 -0
- package/dist/lite/.claude/skills/use-case/SKILL.md +417 -0
- package/dist/lite/.claude/skills/user-stories/SKILL.md +268 -0
- package/dist/lite/.claude/skills/value-prop/SKILL.md +251 -0
- package/dist/lite/.claude/skills/verify/SKILL.md +160 -0
- package/dist/lite/.claude/skills/visual-review/SKILL.md +503 -0
- package/dist/lite/.claude/skills/whats-the-plan/SKILL.md +202 -0
- package/dist/lite/.claude/skills/whereami/SKILL.md +307 -0
- package/dist/lite/AGENTS.md +79 -0
- package/dist/lite/CLAUDE-lite.md +85 -0
- package/dist/lite/CODE_OF_CONDUCT.md +28 -0
- package/dist/lite/CONTRIBUTING.md +177 -0
- package/dist/lite/README.md +173 -0
- package/dist/lite/SECURITY.md +19 -0
- package/dist/lite/architecture/decisions/ADR-029-release-pipeline.md +79 -0
- package/dist/lite/architecture/decisions/ADR-031-non-breaking-changes-adopter-discipline.md +139 -0
- package/dist/lite/architecture/decisions/ADR-032-adopter-sync-dispatcher-architecture.md +192 -0
- package/dist/lite/architecture/decisions/ADR-039-release-tagging-scheme.md +145 -0
- package/dist/lite/architecture/decisions/ADR-040-planning-skill-vocabulary-and-lite-profile.md +155 -0
- package/dist/lite/architecture/decisions/ADR-044-unified-skill-body-template.md +162 -0
- package/dist/lite/lib/clean-artifacts-sweep.sh +112 -0
- package/dist/lite/lib/code-comment-discipline.sh +144 -0
- package/dist/lite/lib/composer-preflight.sh +459 -0
- package/dist/lite/lib/deferred-actions.sh +146 -0
- package/dist/lite/lib/hook-header-parser.sh +61 -0
- package/dist/lite/lib/hook-heartbeat.sh +152 -0
- package/dist/lite/lib/hook-inject.sh +255 -0
- package/dist/lite/lib/hook-installer.sh +195 -0
- package/dist/lite/lib/luminary-pick.sh +96 -0
- package/dist/lite/lib/output-discipline.sh +143 -0
- package/dist/lite/lib/prose-scan-boundary.sh +171 -0
- package/dist/lite/lib/rewrite-check.sh +214 -0
- package/dist/lite/lib/session-rescue.sh +151 -0
- package/dist/lite/lib/source-graph-walker.sh +277 -0
- package/dist/lite/lib/state.sh +1372 -0
- package/dist/lite/lib/telemetry.sh +205 -0
- package/dist/lite/lib/tier-check.sh +187 -0
- package/dist/lite/lib/tier-dependency-audit.sh +1088 -0
- package/dist/lite/presence/install/bassclef-hook-connect.sh +178 -0
- package/dist/lite/presence/install/bassclef-sync.dispatcher.template.sh +841 -0
- package/dist/lite/presence/install/bassclef-sync.template.sh +2278 -0
- package/dist/lite/presence/install/schedule-auto-save.cron.sh +88 -0
- package/dist/lite/presence/install/schedule-auto-save.taskscheduler.md +122 -0
- package/dist/lite/scripts/aggregate-telemetry.sh +217 -0
- package/dist/lite/scripts/analyze-tier-dependencies.sh +239 -0
- package/dist/lite/scripts/generate-lite-manifest.sh +505 -0
- package/dist/lite/scripts/generate-tier-manifest.sh +28 -0
- package/dist/lite/scripts/intent-drift-check.sh +456 -0
- package/dist/lite/scripts/lite-manifest-drift-check.sh +146 -0
- package/dist/lite/scripts/render-lite-manifest-doc.sh +150 -0
- package/dist/lite/standards/adr-template.md +86 -0
- package/dist/lite/standards/api-conventions/nextjs.md +84 -0
- package/dist/lite/standards/artifact-composition.md +209 -0
- package/dist/lite/standards/bash-hook-safety.md +246 -0
- package/dist/lite/standards/bassclef-configs-schema.md +232 -0
- package/dist/lite/standards/bassclef-evolution.md +143 -0
- package/dist/lite/standards/bassclef-internal-jargon.md +244 -0
- package/dist/lite/standards/bassclef-managed-sentinel.md +96 -0
- package/dist/lite/standards/bassclef-source-config.md +228 -0
- package/dist/lite/standards/branch-stacking.md +408 -0
- package/dist/lite/standards/code-safety-principles.md +176 -0
- package/dist/lite/standards/composer-prerequisites.md +155 -0
- package/dist/lite/standards/deferred-actions-schema.md +204 -0
- package/dist/lite/standards/dependency-discipline/cargo.md +39 -0
- package/dist/lite/standards/dependency-discipline/gem.md +43 -0
- package/dist/lite/standards/dependency-discipline/go-mod.md +41 -0
- package/dist/lite/standards/dependency-discipline/npm.md +42 -0
- package/dist/lite/standards/dependency-discipline/pip.md +42 -0
- package/dist/lite/standards/deployment-topology/ec2-tailscale.md +225 -0
- package/dist/lite/standards/deployment-topology.md +69 -0
- package/dist/lite/standards/docs-sync-allowlist.md +76 -0
- package/dist/lite/standards/domain-and-dns.md +145 -0
- package/dist/lite/standards/frontend-stack.md +67 -0
- package/dist/lite/standards/frontmatter-schema.md +154 -0
- package/dist/lite/standards/graceful-exit.md +227 -0
- package/dist/lite/standards/hook-idempotency.md +102 -0
- package/dist/lite/standards/hook-injection-discipline.md +202 -0
- package/dist/lite/standards/hook-install-class.md +215 -0
- package/dist/lite/standards/input-handler-interface.md +152 -0
- package/dist/lite/standards/lite-manifest-schema-changes.md +180 -0
- package/dist/lite/standards/lite-manifest.json +2797 -0
- package/dist/lite/standards/luminary-matching.md +105 -0
- package/dist/lite/standards/luminary-problem-patterns.md +481 -0
- package/dist/lite/standards/migration-discipline/active-record.md +50 -0
- package/dist/lite/standards/migration-discipline/alembic.md +43 -0
- package/dist/lite/standards/migration-discipline/gorm.md +50 -0
- package/dist/lite/standards/migration-discipline/prisma.md +53 -0
- package/dist/lite/standards/migration-discipline/sqlalchemy.md +51 -0
- package/dist/lite/standards/mobile-ephemeral-session.md +167 -0
- package/dist/lite/standards/model-routing-discipline.md +160 -0
- package/dist/lite/standards/ogilvy-writing-rules.md +225 -0
- package/dist/lite/standards/opener-discipline.md +96 -0
- package/dist/lite/standards/operator-facing-prose-discipline.md +201 -0
- package/dist/lite/standards/persona-schema.md +229 -0
- package/dist/lite/standards/pluggable-luminaries.md +323 -0
- package/dist/lite/standards/pr-body-discipline.md +115 -0
- package/dist/lite/standards/preview-state-schema.md +189 -0
- package/dist/lite/standards/project-directory-layout.md +276 -0
- package/dist/lite/standards/release-tagging.md +137 -0
- package/dist/lite/standards/reserved-skill-names.md +120 -0
- package/dist/lite/standards/scannable-multi-option-output.md +265 -0
- package/dist/lite/standards/sdlc-compliance.md +286 -0
- package/dist/lite/standards/sdlc-gates/typescript.md +57 -0
- package/dist/lite/standards/secrets-lifecycle.md +210 -0
- package/dist/lite/standards/security-scanner-adapter.md +145 -0
- package/dist/lite/standards/session-board.md +256 -0
- package/dist/lite/standards/skill-output-discipline.md +121 -0
- package/dist/lite/standards/state-spine-contract.md +255 -0
- package/dist/lite/standards/state-spine.md +511 -0
- package/dist/lite/standards/steering-hints/kiss-words.md +11 -0
- package/dist/lite/standards/substrate-config-schema.md +267 -0
- package/dist/lite/standards/tech-stack-config.md +109 -0
- package/dist/lite/standards/tier-dependency-analysis.md +167 -0
- package/dist/lite/standards/tier-runtime-deps/lite.md +57 -0
- package/dist/lite/standards/tier-tag-schema.md +155 -0
- package/dist/lite/standards/two-layer-config.md +99 -0
- package/dist/lite/standards/use-case-format.md +292 -0
- package/dist/lite/standards/user-story-invest.md +268 -0
- package/dist/lite/standards/velocity-and-appetite.md +229 -0
- package/dist/lite/standards/voice-input-pattern.md +119 -0
- package/dist/lite/standards/whereami-schema.md +301 -0
- package/dist/lite/standards/worktree-management.md +211 -0
- package/dist/lite/standards/writing-guide.md +213 -0
- package/dist/lite/templates/chronicle-template.md +75 -0
- package/dist/lite/templates/deferred-action-template.md +45 -0
- package/dist/lite/templates/memory-proposal-template.md +77 -0
- package/dist/lite/templates/persona-template.md +200 -0
- package/dist/lite/templates/pr-faq.md +45 -0
- package/dist/lite/templates/secret-rotation-template.md +162 -0
- package/dist/lite/templates/spec-template.md +131 -0
- package/dist/lite/templates/use-case-template.md +194 -0
- package/dist/lite/templates/user-story-template.md +107 -0
- package/dist/lite/templates/whereami-template.md +101 -0
- package/package.json +1 -1
|
@@ -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.
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: Don Norman
|
|
4
|
+
slug: don-norman
|
|
5
|
+
claimed_by: [designer]
|
|
6
|
+
referenced_by_skills: [prototype-variants, interaction-design, visual-review]
|
|
7
|
+
primary_domain: ux
|
|
8
|
+
depth: full
|
|
9
|
+
sources:
|
|
10
|
+
- type: book
|
|
11
|
+
title: "The Design of Everyday Things (revised and expanded edition)"
|
|
12
|
+
authors: ["Don Norman"]
|
|
13
|
+
year: 2013
|
|
14
|
+
url: "https://www.basicbooks.com/titles/don-norman/the-design-of-everyday-things/9780465050659/"
|
|
15
|
+
isbn: "9780465050659"
|
|
16
|
+
methodology_covered:
|
|
17
|
+
- "Affordances — what a thing tells you about how to use it"
|
|
18
|
+
- "Signifiers — perceivable signals of action possibilities"
|
|
19
|
+
- "Mapping — relationship between controls and their effects"
|
|
20
|
+
- "Feedback — communication of action results back to the user"
|
|
21
|
+
- "Conceptual models + mental models + system models"
|
|
22
|
+
- "Seven stages of action — bridge gulfs of execution and evaluation"
|
|
23
|
+
- type: book
|
|
24
|
+
title: "Emotional Design: Why We Love (or Hate) Everyday Things"
|
|
25
|
+
authors: ["Don Norman"]
|
|
26
|
+
year: 2004
|
|
27
|
+
url: "https://www.basicbooks.com/titles/donald-a-norman/emotional-design/9780465051366/"
|
|
28
|
+
isbn: "9780465051366"
|
|
29
|
+
methodology_covered:
|
|
30
|
+
- "Three levels of design — visceral + behavioral + reflective"
|
|
31
|
+
- "Emotion as integral to design quality, not decoration"
|
|
32
|
+
- type: book
|
|
33
|
+
title: "Living with Complexity"
|
|
34
|
+
authors: ["Don Norman"]
|
|
35
|
+
year: 2010
|
|
36
|
+
url: "https://mitpress.mit.edu/9780262528948/living-with-complexity/"
|
|
37
|
+
isbn: "9780262528948"
|
|
38
|
+
methodology_covered:
|
|
39
|
+
- "Complexity is necessary; complication is what we design against"
|
|
40
|
+
- "Signifiers carry the discipline that lets complex systems feel usable"
|
|
41
|
+
verification_status: verified
|
|
42
|
+
solves_problems_brownfield:
|
|
43
|
+
- "Users keep clicking the wrong thing or missing a button; affordances are unclear"
|
|
44
|
+
- "Interface error messages punish the user rather than help them recover"
|
|
45
|
+
- "Mental model and system model have diverged — users predict wrong outcomes"
|
|
46
|
+
- "Mode visibility is missing; users don't know what state they're in"
|
|
47
|
+
solves_problems_greenfield:
|
|
48
|
+
- "Designing a new control surface where affordance language must be self-evident from first encounter"
|
|
49
|
+
- "Building a tool whose error model should help users recover, not punish"
|
|
50
|
+
- "Planning a product where mappings between control and effect must feel natural from day one"
|
|
51
|
+
- "Designing a system where visibility of state is a first-class concern"
|
|
52
|
+
anti_patterns:
|
|
53
|
+
- "Designs whose primary value is delight or emotional resonance — Norman optimizes for clarity, not joy"
|
|
54
|
+
- "Highly abstract or conceptual UIs where direct manipulation isn't the model"
|
|
55
|
+
description: "\"Good design makes the right action obvious."
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
# Don Norman
|
|
59
|
+
|
|
60
|
+
## Signature
|
|
61
|
+
|
|
62
|
+
*"Good design makes the right action obvious. The wrong action should be difficult, or at least conspicuously wrong."*
|
|
63
|
+
|
|
64
|
+
Coined **user experience**; co-founder of Nielsen Norman Group; author of
|
|
65
|
+
**The Design of Everyday Things** and **Emotional Design**. The bassclef
|
|
66
|
+
voice on how physical and digital objects communicate their use through
|
|
67
|
+
perceived properties.
|
|
68
|
+
|
|
69
|
+
## Core methods
|
|
70
|
+
|
|
71
|
+
- **Affordances** — What an object invites a user to do with it, based on
|
|
72
|
+
its physical/visual properties. A button affords pressing; a handle
|
|
73
|
+
affords pulling. The mismatch between real and perceived affordance is
|
|
74
|
+
a design failure.
|
|
75
|
+
- **Signifiers** — Explicit clues that communicate what action is
|
|
76
|
+
possible. Where affordances are inherent, signifiers are designed.
|
|
77
|
+
Arrows, labels, shadows, highlights — all signifiers.
|
|
78
|
+
- **Mapping** — The correspondence between controls and their effects.
|
|
79
|
+
A stove-top dial that controls the front-left burner should be
|
|
80
|
+
spatially closer to that burner than any other.
|
|
81
|
+
- **Feedback loops** — Every action needs immediate, meaningful feedback
|
|
82
|
+
confirming what happened. Silent actions produce anxious users; long
|
|
83
|
+
delays produce retries and duplicate submissions.
|
|
84
|
+
- **Constraints** — Physical, logical, semantic, cultural limits that
|
|
85
|
+
prevent wrong actions. A form field that rejects invalid characters
|
|
86
|
+
is a constraint; a confirmation dialog is not — it's a warning.
|
|
87
|
+
- **Emotional design three-levels** — Visceral (initial impression),
|
|
88
|
+
behavioral (usability in use), reflective (meaning after use). All
|
|
89
|
+
three contribute to product success; missing any degrades the whole.
|
|
90
|
+
|
|
91
|
+
## When to channel this luminary
|
|
92
|
+
|
|
93
|
+
When the biggest risk is that users won't know how to use the thing —
|
|
94
|
+
or will use it wrong. Norman dominates affordance-forward design:
|
|
95
|
+
products where discoverability and error prevention at the interaction
|
|
96
|
+
level are critical. Think: operator tools used daily, forms with
|
|
97
|
+
financial or legal consequences, controls for complex processes where
|
|
98
|
+
mistakes are expensive.
|
|
99
|
+
|
|
100
|
+
Do NOT channel Norman as a primary for: content-heavy sites where
|
|
101
|
+
structure dominates (use Prater or Morville), pure data visualization
|
|
102
|
+
(Tufte), or identity work (Scher/Vignelli).
|
|
103
|
+
|
|
104
|
+
## Stack translation
|
|
105
|
+
|
|
106
|
+
In React + Tailwind + shadcn/ui:
|
|
107
|
+
|
|
108
|
+
- **Affordances** → button components that look clickable (shadow,
|
|
109
|
+
hover state, cursor:pointer). Card components that don't look
|
|
110
|
+
clickable shouldn't be clickable.
|
|
111
|
+
- **Signifiers** → explicit labels + icons + helper text. A disabled
|
|
112
|
+
button should show WHY it's disabled, not just dim.
|
|
113
|
+
- **Mapping** → form layouts where the submit button is near the last
|
|
114
|
+
field, not floating in a sidebar. Navigation where the section you're
|
|
115
|
+
in is visually connected to its content.
|
|
116
|
+
- **Feedback** → toast notifications, loading states, optimistic UI
|
|
117
|
+
updates. Every server action needs a returned state.
|
|
118
|
+
- **Constraints** → form validation at field level (not just submit),
|
|
119
|
+
disabled states when actions are invalid, type="email" / type="number".
|
|
120
|
+
|
|
121
|
+
## Anti-patterns it prevents
|
|
122
|
+
|
|
123
|
+
- **Mystery meat navigation** — icons without labels; users guess what
|
|
124
|
+
each does. Norman's signifier principle demands explicit labeling.
|
|
125
|
+
- **Hidden state actions** — buttons that do different things in
|
|
126
|
+
different states without signaling the change. Violates feedback
|
|
127
|
+
principle.
|
|
128
|
+
- **Silent errors** — form submission that fails without communicating
|
|
129
|
+
why. Every error needs clear, actionable feedback at the point of
|
|
130
|
+
failure.
|
|
131
|
+
- **Mode confusion** — UI that behaves differently in different modes
|
|
132
|
+
without clear mode indicators. The user doesn't know which mode
|
|
133
|
+
they're in.
|
|
134
|
+
- **Ornamental affordance** — cards that look clickable but aren't;
|
|
135
|
+
elements styled like buttons but that are decorative. Betrays the
|
|
136
|
+
user's learned affordance expectations.
|
|
137
|
+
|
|
138
|
+
## Worked example
|
|
139
|
+
|
|
140
|
+
For a deal-stage transition control in POA:
|
|
141
|
+
|
|
142
|
+
Norman would design it as: a clearly labeled button ("Advance to LOI"),
|
|
143
|
+
visually grouped with the current stage display, disabled with
|
|
144
|
+
explanation when the deal is missing required fields ("Missing: Offer
|
|
145
|
+
Price, Buyer Contact"). On click: immediate loading state, optimistic
|
|
146
|
+
UI showing the new stage, toast confirmation on server success, error
|
|
147
|
+
banner with specific reason on failure ("Cannot advance: Seller hasn't
|
|
148
|
+
signed NDA").
|
|
149
|
+
|
|
150
|
+
What Norman would NOT produce: a stage dropdown with no explanation
|
|
151
|
+
for why some options are grayed out; a silent state change where the
|
|
152
|
+
deal advances without confirmation; a generic "Error" toast that
|
|
153
|
+
doesn't explain what went wrong.
|
|
154
|
+
|
|
155
|
+
## Sources
|
|
156
|
+
|
|
157
|
+
- *The Design of Everyday Things* — Norman, Basic Books (1988, rev. 2013)
|
|
158
|
+
- *Emotional Design: Why We Love (or Hate) Everyday Things* — Norman (2003)
|
|
159
|
+
- *Living with Complexity* — Norman (2010)
|
|
160
|
+
- jnd.org — Norman's primary site
|
|
161
|
+
- Nielsen Norman Group — nngroup.com (co-founded)
|
|
162
|
+
|
|
163
|
+
## Related luminaries
|
|
164
|
+
|
|
165
|
+
- **Sophia Prater** — Prater works at the structural layer above Norman's
|
|
166
|
+
interaction layer. Use both: Prater for IA, Norman for the interactions
|
|
167
|
+
within each screen.
|
|
168
|
+
- **Jenifer Tidwell** — Pattern library operationalizes Norman's
|
|
169
|
+
principles into reusable UI vocabulary.
|
|
170
|
+
- **Jakob Nielsen** — NN/g co-founder; heuristics are Nielsen's
|
|
171
|
+
operationalization of Norman-adjacent principles.
|
|
172
|
+
- **Aarron Walter** — Emotional design hierarchy builds on Norman's
|
|
173
|
+
three-level model.
|