@thebassclef/lite 1.0.4 → 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 +65 -0
- package/dist/cli.js +65 -0
- 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,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: Alistair Cockburn
|
|
4
|
+
slug: alistair-cockburn
|
|
5
|
+
claimed_by: [architect, builder, shaper]
|
|
6
|
+
referenced_by_skills: [decompose, spec, prototype-variants]
|
|
7
|
+
primary_domain: architecture
|
|
8
|
+
depth: full
|
|
9
|
+
solves_problems_brownfield:
|
|
10
|
+
- "The system's business logic is tangled with database access, HTTP handling, and third-party calls — changing one requires understanding all"
|
|
11
|
+
- "Use cases are written as vague user stories that can't be used as acceptance tests"
|
|
12
|
+
- "The architecture works locally but fails at each deployment because no one tested the full wired path"
|
|
13
|
+
- "Every new feature requires touching the database, the service layer, and the API in one change — no independent seams"
|
|
14
|
+
solves_problems_greenfield:
|
|
15
|
+
- "Designing a system where business logic can be tested without a running database or HTTP stack"
|
|
16
|
+
- "Planning the first end-to-end slice that proves the architecture before building any feature depth"
|
|
17
|
+
- "Writing use cases that serve as both requirements and acceptance test specifications"
|
|
18
|
+
- "Choosing a methodology weight that fits the team size and stakes — lightweight for small teams, heavier for safety-critical work"
|
|
19
|
+
anti_patterns:
|
|
20
|
+
- "UI-only or data-layer-only work where hexagonal architecture is over-engineering for the scope"
|
|
21
|
+
- "Exploratory prototypes where formal use cases would slow down learning"
|
|
22
|
+
- "Teams that are fluent in BDD/TDD — the walking skeleton concept is built into their practice"
|
|
23
|
+
sources:
|
|
24
|
+
- type: book
|
|
25
|
+
title: "Writing Effective Use Cases"
|
|
26
|
+
authors: ["Alistair Cockburn"]
|
|
27
|
+
year: 2000
|
|
28
|
+
url: "https://www.amazon.com/Writing-Effective-Use-Cases-Cockburn/dp/0201702258"
|
|
29
|
+
isbn: "0201702258"
|
|
30
|
+
methodology_covered:
|
|
31
|
+
- "Use case writing — title, primary actor, preconditions, main success scenario, extensions"
|
|
32
|
+
- "Goal levels — cloud, kite, sea level (user goals), fish, clam; write at sea level"
|
|
33
|
+
- "Use cases as both requirements and acceptance test specifications"
|
|
34
|
+
- type: book
|
|
35
|
+
title: "Agile Software Development: The Cooperative Game"
|
|
36
|
+
authors: ["Alistair Cockburn"]
|
|
37
|
+
year: 2006
|
|
38
|
+
url: "https://www.amazon.com/Agile-Software-Development-Cooperative-Game/dp/0321482751"
|
|
39
|
+
isbn: "0321482751"
|
|
40
|
+
methodology_covered:
|
|
41
|
+
- "Crystal methodology family — process weight matched to team size and criticality"
|
|
42
|
+
- "Walking skeleton — thin, real, end-to-end path before any feature depth"
|
|
43
|
+
- "Software development as a cooperative game of invention and communication"
|
|
44
|
+
- type: article
|
|
45
|
+
title: "Hexagonal Architecture (Ports and Adapters)"
|
|
46
|
+
authors: ["Alistair Cockburn"]
|
|
47
|
+
year: 2005
|
|
48
|
+
url: "https://alistair.cockburn.us/hexagonal-architecture/"
|
|
49
|
+
methodology_covered:
|
|
50
|
+
- "Ports and Adapters — business logic in the center, ports define interfaces, adapters implement them"
|
|
51
|
+
- "Driving vs driven adapters — test adapters on the driving side; real infrastructure on the driven side"
|
|
52
|
+
- "Business logic never imports infrastructure"
|
|
53
|
+
- type: website
|
|
54
|
+
title: "Alistair Cockburn primary site"
|
|
55
|
+
authors: ["Alistair Cockburn"]
|
|
56
|
+
year: 2000
|
|
57
|
+
url: "https://alistair.cockburn.us/"
|
|
58
|
+
methodology_covered:
|
|
59
|
+
- "Primary site for Hexagonal Architecture article and use case writing resources"
|
|
60
|
+
verification_status: source_gap_flagged
|
|
61
|
+
description: "\"Build the walking skeleton first — the thinnest possible end-to-end slice that exercises every architectural layer, every deploy step, every test layer, before adding any feature."
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
# Alistair Cockburn
|
|
65
|
+
|
|
66
|
+
## Signature
|
|
67
|
+
|
|
68
|
+
*"Build the walking skeleton first — the thinnest possible end-to-end slice that exercises every architectural layer, every deploy step, every test layer, before adding any feature. Prove the architecture works; then add flesh."* [ref:2]
|
|
69
|
+
|
|
70
|
+
Agile Manifesto signatory; originator of the Crystal methodology family; author of **Writing Effective Use Cases** (2000) [ref:1] and the **Hexagonal Architecture** (Ports & Adapters) pattern [ref:3]. The bassclef voice on behavior-driven requirements writing and on architecture that separates business logic from all infrastructure.
|
|
71
|
+
|
|
72
|
+
<!-- SOURCE GAP: alistair.cockburn.us/hexagonal-architecture/ listed as [ref:3] could not be verified via HTTP fetch during audit (returned empty). URL is widely cited in the industry as the original source. If the page has moved, the SENTINEL_bassclef_URL is https://web.archive.org/web/2005*/https://alistair.cockburn.us/hexagonal-architecture/ as an archival fallback. -->
|
|
73
|
+
|
|
74
|
+
## Core methods
|
|
75
|
+
|
|
76
|
+
- **Walking skeleton** — Build one thin, real, end-to-end path through the entire system before adding any feature depth: UI → API → service → DB → tests → CI → deploy. The path must be trivial but real — not a mock or a stub at any layer. The skeleton proves the architecture holds. Then add flesh (features, complexity, error paths) on a proven foundation. [ref:2]
|
|
77
|
+
- **Hexagonal Architecture (Ports & Adapters)** — Business logic lives in the center. Ports are interfaces the business logic defines: "I need a way to store a deal," "I need a way to send a notification." Adapters on the outside implement those interfaces with real infrastructure (Prisma, email providers, HTTP). The business logic never imports infrastructure. Tests inject test adapters; production injects real ones. [ref:3]
|
|
78
|
+
- **Use case writing** — A use case has: title (goal), primary actor, preconditions, main success scenario (numbered steps), and extensions (alternate flows and failure cases). Cockburn's goal levels matter: cloud level (abstract goals), kite level (near goals), sea level (user goals — the target), fish level (sub-goals), and clam level (too detailed). Write use cases at sea level. [ref:1]
|
|
79
|
+
- **Crystal methodology scaling** — Process weight should match team size and criticality. Crystal Clear (2-8 people, low stakes) is minimal. Crystal Orange (25-50 people, moderate stakes) is heavier. Crystal Red (10-20 people, high criticality) is heaviest. Rejects one-size-fits-all methodology: the right process is the lightest one that works for this team and these stakes. [ref:2]
|
|
80
|
+
|
|
81
|
+
## When to channel this luminary
|
|
82
|
+
|
|
83
|
+
When the primary risk is that business logic will be entangled with infrastructure, or that the first deployable slice has never been verified end-to-end. Cockburn dominates new system setup (walking skeleton is the first commit), service layer design (hexagonal separates business from infrastructure), and requirements writing for complex workflows (use cases at sea level). Pair with Evans (domain modeling for the center of the hexagon), Brown (C4 for documenting the resulting architecture), and Beck (TDD for the tests that plug into the hexagonal ports).
|
|
84
|
+
|
|
85
|
+
INSTEAD of using Cockburn's use case formalism for simple CRUD features: a lightweight user story ("as a broker, I can submit a deal listing") is sufficient when the behavior has no branching extensions and no preconditions that matter. Use cases earn their weight when the behavior has multiple actors, multiple failure modes, or serves as an acceptance test specification.
|
|
86
|
+
|
|
87
|
+
## Stack translation
|
|
88
|
+
|
|
89
|
+
In Next.js + Prisma + TypeScript:
|
|
90
|
+
|
|
91
|
+
- **Walking skeleton** — first PR on a new project: one route (`/api/deals`), one Prisma model (`Deal`), one React component (a deal card), one vitest test, one Playwright smoke test, wired CI/CD. No features yet. The skeleton proves the stack works end-to-end before any feature is built.
|
|
92
|
+
- **Hexagonal Architecture** — business logic lives in `src/lib/domain/`; Prisma is an adapter in `src/lib/infrastructure/database/`; the domain defines interfaces (`DealRepository`) that infrastructure implements. Server actions call domain functions; domain functions call repository interfaces; tests inject fake repositories.
|
|
93
|
+
- **Use cases → acceptance tests** — a Cockburn use case's main success scenario is a Playwright test script. Each step in the use case is an interaction. Each extension is a branch in the test. Use case writing and test writing become the same activity.
|
|
94
|
+
- **Goal levels in backlog** — sea-level use cases become iteration bets; sub-goals (fish/clam level) become tasks within a bet. Keeps the betting table at the right altitude.
|
|
95
|
+
|
|
96
|
+
## Anti-patterns it prevents
|
|
97
|
+
|
|
98
|
+
- **Logic in the adapter** — business rules (deal qualification criteria, stage transition policies) coded inside the Prisma query or the Next.js route handler. These rules are invisible to unit tests, tangled with infrastructure, and duplicated when a new adapter (a worker, a CLI) needs the same rule.
|
|
99
|
+
INSTEAD: move the rule to the domain layer; the adapter calls the domain function, not the other way around.
|
|
100
|
+
- **Test-the-infrastructure tests** — tests that spin up a real database and test that Prisma can write to it. These are infrastructure tests, not domain tests. Slow, brittle, and they test the wrong thing.
|
|
101
|
+
INSTEAD: test the domain with test adapters; test the infrastructure adapter in integration tests that stay in the integration tier.
|
|
102
|
+
- **Flabby use cases** — use case main success scenarios that describe system internals ("the system updates the deal record in the database") rather than observable behavior ("the deal status changes to LOI and the broker is notified"). Cockburn's use cases are observable, not implementation-visible. [ref:1]
|
|
103
|
+
- **No skeleton, all flesh** — starting a project by building feature depth before verifying the architectural path end-to-end. The first deployment fails in production because the path was never real until then.
|
|
104
|
+
|
|
105
|
+
## Worked example
|
|
106
|
+
|
|
107
|
+
For POA's deal stage transition feature:
|
|
108
|
+
|
|
109
|
+
**Walking skeleton**: before building any stage-transition UI, build one thin path: a Next.js server action that changes a deal's status, a Prisma write that persists it, a React component that shows the new status, and a Playwright test that confirms the status change is visible after the action. This skeleton runs in CI. Then add the full transition policy, the validation rules, and the notification flow.
|
|
110
|
+
|
|
111
|
+
**Hexagonal architecture**:
|
|
112
|
+
- Port: `StageTransitionPolicy` interface — `canTransition(deal: Deal, targetStage: Stage): PolicyResult`
|
|
113
|
+
- Adapter: `NdaRequiredPolicy` implements `StageTransitionPolicy` using domain logic (no Prisma, no HTTP)
|
|
114
|
+
- Server action: calls `StageTransitionService.advance(dealId, targetStage)` — domain function that uses the policy interface
|
|
115
|
+
- Test: injects `AlwaysAllowPolicy` or `AlwaysDenyPolicy` as test adapters; no DB required
|
|
116
|
+
|
|
117
|
+
**Use case (sea level)**:
|
|
118
|
+
- Title: Advance Deal to LOI
|
|
119
|
+
- Actor: Operator
|
|
120
|
+
- Preconditions: deal is in "Initial Contact" stage; operator is authenticated
|
|
121
|
+
- Main success: operator selects LOI from stage menu → system validates NDA signed → system changes status → broker is notified → operator sees updated stage
|
|
122
|
+
- Extension 2a: NDA not signed → system shows "NDA required" message → deal stage unchanged
|
|
123
|
+
|
|
124
|
+
## Sources
|
|
125
|
+
|
|
126
|
+
- *Writing Effective Use Cases* — Cockburn, Addison-Wesley (2000) [ref:1]
|
|
127
|
+
- "Hexagonal Architecture" — Cockburn, alistair.cockburn.us (2005) — the original article [ref:3]
|
|
128
|
+
- *Agile Software Development: The Cooperative Game* — Cockburn, Addison-Wesley (2006) [ref:2]
|
|
129
|
+
- alistair.cockburn.us — primary site [ref:4]
|
|
130
|
+
|
|
131
|
+
## Corrections applied
|
|
132
|
+
|
|
133
|
+
Cloud Strategy publisher: no correction needed for Cockburn entry. Note: hexagonal architecture URL [ref:3] could not be HTTP-verified during audit but is the widely-cited bassclef source; flagged as source gap.
|
|
134
|
+
|
|
135
|
+
## Related luminaries
|
|
136
|
+
|
|
137
|
+
- **Eric Evans** — DDD provides the domain model that lives inside Cockburn's hexagon. Evans models the business concepts; Cockburn's ports protect them from infrastructure.
|
|
138
|
+
- **Kent Beck** — Walking skeleton aligns with Beck's "make it work" step at architectural scale; TDD tests slot into hexagonal ports as test adapters.
|
|
139
|
+
- **Jeff Patton** — User story mapping references Cockburn as a foundation; use cases and story maps are complementary at different resolution levels.
|
|
140
|
+
- **Simon Brown** — C4 model documents the container-level architecture that hexagonal architecture structures. The hexagon's center and adapters map to C4 components.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: Amazon PR/FAQ
|
|
4
|
+
slug: amazon-pr-faq
|
|
5
|
+
claimed_by: [shaper, product-manager]
|
|
6
|
+
primary_domain: shaping
|
|
7
|
+
depth: stub
|
|
8
|
+
description: "\"Write the press release first. If it doesn't excite, don't build.\""
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Amazon PR/FAQ
|
|
12
|
+
|
|
13
|
+
## Signature
|
|
14
|
+
|
|
15
|
+
*"Write the press release first. If it doesn't excite, don't build."*
|
|
16
|
+
|
|
17
|
+
Amazon's internal methodology for product definition. Write a mock
|
|
18
|
+
press release + customer FAQ BEFORE building. If the announcement
|
|
19
|
+
doesn't compel, the product isn't worth building.
|
|
20
|
+
|
|
21
|
+
## Core methods
|
|
22
|
+
|
|
23
|
+
- **Mock press release** — 1-page release for a hypothetical future launch.
|
|
24
|
+
Customer benefits stated clearly, no jargon.
|
|
25
|
+
- **FAQ** — anticipated customer questions + internal stakeholder
|
|
26
|
+
questions + teardown-worthy concerns. Forces early clarity.
|
|
27
|
+
- **Working backward** — define customer experience first, then
|
|
28
|
+
derive requirements, then design.
|
|
29
|
+
|
|
30
|
+
## Sources
|
|
31
|
+
|
|
32
|
+
- Jeff Bezos 2015 shareholder letter (references the practice)
|
|
33
|
+
- *Working Backwards* — Bryar, Carr (2021) — primary text on PR/FAQ practice
|
|
34
|
+
- *The Amazon Way* — Rossman (2014)
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: Andreas Zeller
|
|
4
|
+
slug: andreas-zeller
|
|
5
|
+
claimed_by: [builder, reviewer]
|
|
6
|
+
referenced_by_skills: [diagnose]
|
|
7
|
+
primary_domain: engineering
|
|
8
|
+
depth: stub
|
|
9
|
+
sources:
|
|
10
|
+
- type: book
|
|
11
|
+
title: "Why Programs Fail: A Guide to Systematic Debugging"
|
|
12
|
+
authors: ["Andreas Zeller"]
|
|
13
|
+
year: 2009
|
|
14
|
+
url: "https://www.whyprogramsfail.com/"
|
|
15
|
+
isbn: "9780123745156"
|
|
16
|
+
methodology_covered:
|
|
17
|
+
- "Systematic debugging — every hypothesis has a test"
|
|
18
|
+
- "Delta Debugging — shrink a failing input to the minimum change"
|
|
19
|
+
- "Causal chain reasoning — walk from symptom to root cause via states"
|
|
20
|
+
- "Scientific method applied to bugs — observe, hypothesize, predict, test"
|
|
21
|
+
- type: online
|
|
22
|
+
title: "The Debugging Book"
|
|
23
|
+
authors: ["Andreas Zeller"]
|
|
24
|
+
year: 2024
|
|
25
|
+
url: "https://www.debuggingbook.org/"
|
|
26
|
+
methodology_covered:
|
|
27
|
+
- "Delta Debugging algorithms in Python — runnable code"
|
|
28
|
+
- "Statistical debugging — probability that a line contributes to failure"
|
|
29
|
+
- "Automatic fault localization — tools that point at suspect code"
|
|
30
|
+
- "Dynamic slicing — trace which statements influenced the buggy value"
|
|
31
|
+
verification_status: draft
|
|
32
|
+
description: "\"Every hypothesis has a test. Delta Debugging shrinks the failing input to its minimum. Debugging as science.\""
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
# Andreas Zeller
|
|
36
|
+
|
|
37
|
+
## Signature
|
|
38
|
+
|
|
39
|
+
*"Every hypothesis has a test. Every test either confirms or falsifies.
|
|
40
|
+
Debugging is science."*
|
|
41
|
+
|
|
42
|
+
Professor at CISPA Helmholtz Center. Author of **Why Programs Fail**
|
|
43
|
+
(2005/2009) and **The Debugging Book** (online, 2024). Invented
|
|
44
|
+
**Delta Debugging** — the algorithm that automatically shrinks a
|
|
45
|
+
failing input to the minimum change that reproduces the fault. Zeller
|
|
46
|
+
is the bassclef voice on systematic, provable debugging.
|
|
47
|
+
|
|
48
|
+
## Core methods
|
|
49
|
+
|
|
50
|
+
- **Scientific method for bugs** — observation → hypothesis →
|
|
51
|
+
prediction → experiment → refined hypothesis. Every step written down.
|
|
52
|
+
- **Delta Debugging** — bisect the difference between passing and
|
|
53
|
+
failing inputs (or versions or configs). O(log n) shrinks to the
|
|
54
|
+
minimum failure-inducing change.
|
|
55
|
+
- **Causal chain from symptom to root** — walk backwards through
|
|
56
|
+
program states. Each state either causes the next failure or does not.
|
|
57
|
+
- **Anomalies over intuition** — pattern-match against the difference
|
|
58
|
+
between what's true when it fails and what's true when it passes.
|
|
59
|
+
|
|
60
|
+
## When bassclef uses this lens
|
|
61
|
+
|
|
62
|
+
- Any "worked at SHA X, fails at SHA Y" bug — Delta Debugging bisects
|
|
63
|
+
the commit range.
|
|
64
|
+
- Any test that fails under condition A but passes under condition B —
|
|
65
|
+
Delta Debugging on the config diff.
|
|
66
|
+
- `/diagnose` skill Five Whys — Zeller's causal-chain framing keeps
|
|
67
|
+
each "why" as a testable hypothesis.
|
|
68
|
+
- Any complex multi-variable failure — force each hypothesis to name
|
|
69
|
+
its falsification predicate before running the experiment.
|
|
70
|
+
|
|
71
|
+
## Depth
|
|
72
|
+
|
|
73
|
+
Stub. Build-out tracked at bassclef-upstream#TBD. Sources — the 2009
|
|
74
|
+
Morgan Kaufmann book plus the free online debugging book.
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: Ash Maurya
|
|
4
|
+
slug: ash-maurya
|
|
5
|
+
claimed_by: [product-manager, shaper]
|
|
6
|
+
referenced_by_skills: [lean-canvas, canvas, value-prop, value-prop-canvas]
|
|
7
|
+
primary_domain: product
|
|
8
|
+
depth: full
|
|
9
|
+
sources:
|
|
10
|
+
- type: book
|
|
11
|
+
title: "Running Lean: Iterate from Plan A to a Plan That Works (3rd edition)"
|
|
12
|
+
authors: ["Ash Maurya"]
|
|
13
|
+
year: 2022
|
|
14
|
+
url: "https://www.oreilly.com/library/view/running-lean-3rd/9781098108762/"
|
|
15
|
+
isbn: "9781098108779"
|
|
16
|
+
methodology_covered:
|
|
17
|
+
- "Lean Canvas — nine-box business model adapted from Business Model Canvas for early-stage startups"
|
|
18
|
+
- "Problem-Solution Fit + Product-Market Fit progression"
|
|
19
|
+
- "Continuous innovation framework — experiment + measure + learn cycles"
|
|
20
|
+
- "Customer Factory + customer-development discipline"
|
|
21
|
+
- type: book
|
|
22
|
+
title: "Scaling Lean: Mastering the Key Metrics for Startup Growth"
|
|
23
|
+
authors: ["Ash Maurya"]
|
|
24
|
+
year: 2016
|
|
25
|
+
url: "https://www.penguinrandomhouse.com/books/541557/scaling-lean-by-ash-maurya/"
|
|
26
|
+
isbn: "9781591847267"
|
|
27
|
+
methodology_covered:
|
|
28
|
+
- "Customer Factory metrics framework — Acquisition + Activation + Retention + Revenue + Referral"
|
|
29
|
+
- "Modeling business as a system of metrics; identifying the bottleneck stage"
|
|
30
|
+
- "Scaling discipline distinct from initial-product-market-fit discipline"
|
|
31
|
+
- type: blog_post
|
|
32
|
+
title: "Leanstack — Ash Maurya methodology site"
|
|
33
|
+
authors: ["Ash Maurya"]
|
|
34
|
+
year: 2025
|
|
35
|
+
url: "https://www.leanfoundry.com/"
|
|
36
|
+
methodology_covered:
|
|
37
|
+
- "Primary venue for Lean Canvas + Running Lean methodology updates"
|
|
38
|
+
- "Continuous Innovation Framework deeper articulation"
|
|
39
|
+
verification_status: verified
|
|
40
|
+
description: "\"Document your Plan A, then identify the riskiest parts of your plan, and systematically test your plan.\""
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# Ash Maurya
|
|
44
|
+
|
|
45
|
+
## Signature
|
|
46
|
+
|
|
47
|
+
*"Document your Plan A, then identify the riskiest parts of your plan, and systematically test your plan."*
|
|
48
|
+
|
|
49
|
+
The lean-shaping luminary for early-stage business model validation. Author of *Running Lean* and *Scaling Lean*. Creator of the **Lean Canvas** — a 9-box adaptation of Osterwalder's Business Model Canvas, optimized for entrepreneurs working under high uncertainty.
|
|
50
|
+
|
|
51
|
+
Lean Canvas asks "does the business model hold together at all" before the product team asks "what should we build." Dunford's positioning answers a different question (who is this for and why is it different); Pichler's product canvas answers another (what is the product shape). The three compose; they do not substitute for each other.
|
|
52
|
+
|
|
53
|
+
## Sources
|
|
54
|
+
|
|
55
|
+
- *Running Lean* — 1st edition 2010, 2nd edition 2012, 3rd edition 2022. The bassclef Lean Canvas reference.
|
|
56
|
+
- *Scaling Lean* (2016) — Maurya's later work on growth metrics + Customer Factory model
|
|
57
|
+
- [leanstack.com](https://leanstack.com) — Maurya's company; templates + courses
|
|
58
|
+
- [practicetrumpstheory.com](https://blog.leanstack.com) — Maurya's blog; "What is the Right Fill Order for the Lean Canvas?" is the load-bearing piece for `/lean-canvas`
|
|
59
|
+
- `.claude/skills/lean-canvas/SKILL.md` — operationalizes Maurya's framework into agent dispatch
|
|
60
|
+
- `.claude/skills/canvas/SKILL.md` — sibling product canvas (Pichler); composes downstream after Lean Canvas validates the business model
|
|
61
|
+
- `.claude/luminaries/lean-product-canvas.md` — Dan Olsen's Product-Market Fit Pyramid; complementary, not duplicate
|
|
62
|
+
|
|
63
|
+
## Core methods
|
|
64
|
+
|
|
65
|
+
- **Lean Canvas — 9 boxes on one page.** Problem → Customer Segments → Unique Value Proposition → Solution → Channels → Revenue Streams → Cost Structure → Key Metrics → Unfair Advantage. Forces concise articulation; 20-minute first pass.
|
|
66
|
+
- **Plan A vs Plan B.** Lean Canvas captures Plan A — the current best guess. Riskiest assumptions get tested; Plan A becomes Plan B when reality refuses to match. Iteration is the design, not failure.
|
|
67
|
+
- **Riskiest-assumption-first validation.** Each box contains beliefs. Beliefs classify as leap-of-faith / anecdotal observation / fact-with-evidence. The riskiest leap-of-faith is the next thing to validate — not the next thing to build.
|
|
68
|
+
- **Desirability → Viability → Feasibility.** When validating an idea (not generating one), test Problem + Customer Segments + UVP first (desirability), Channels + Revenue + Key Metrics second (viability), Solution + Cost + Unfair Advantage third (feasibility). Starting with Solution creates Innovator's Bias — you write Problem statements that justify the Solution you already wanted.
|
|
69
|
+
- **Customer Factory model** (from *Scaling Lean*). Treat the business as a factory that converts strangers into customers. Acquisition → Activation → Retention → Revenue → Referral (AARRR, attributed to Dave McClure, adopted by Maurya). Key Metrics box maps to factory stages.
|
|
70
|
+
- **20-minute snapshot rule.** First pass takes 20 minutes. Boxes can be blank. Iterate every week or after every meaningful customer conversation. The canvas is a thinking tool, not a deliverable.
|
|
71
|
+
|
|
72
|
+
## INSTEAD-block discipline
|
|
73
|
+
|
|
74
|
+
Every "Don't" in lean validation gets a concrete substitute. Per `.claude/rules/context-engineering.md`.
|
|
75
|
+
|
|
76
|
+
| Anti-pattern | INSTEAD |
|
|
77
|
+
|---|---|
|
|
78
|
+
| Spending months writing a business plan | Spend 20 minutes filling a Lean Canvas; refine weekly |
|
|
79
|
+
| "We have no competitors" in Unfair Advantage | Name the closest existing alternative (in-house build, manual workaround, adjacent tool); your unfair advantage is what makes you sticky once they switch |
|
|
80
|
+
| Solving the wrong problem because Solution came first | Start with Problem + Customer Segments; if you must start with Solution, flag the Innovator's Bias risk and revisit Problem critically after first pass |
|
|
81
|
+
| Vanity metrics (registered users, page views) in Key Metrics | Customer Factory stage rates (activation rate, retention curve, referral coefficient). Each metric maps to a factory transition. |
|
|
82
|
+
| Generic UVP ("the best X for Y") | One specific sentence a target customer would forward to a peer. If the target customer wouldn't share it, the UVP isn't done. |
|
|
83
|
+
| Building before validating riskiest assumption | Identify the riskiest leap-of-faith; design the smallest experiment that resolves it; run it before building. |
|
|
84
|
+
| Treating the canvas as a deliverable | Treat it as a thinking surface. Update it after every customer conversation. Old canvases are historical record, not failure. |
|
|
85
|
+
|
|
86
|
+
## When to channel
|
|
87
|
+
|
|
88
|
+
- `/lean-canvas` invocations (any mode) — Maurya's 9-box framework IS the skill's structural backbone
|
|
89
|
+
- `/canvas` Stage 1 (Thesis) — if the business model is unclear, run Lean Canvas first; Pichler's product canvas inherits validated assumptions
|
|
90
|
+
- `/value-prop` invocations — UVP box of Lean Canvas is the input to Dunford's positioning framework
|
|
91
|
+
- `/value-prop-canvas` — Strategyzer Value Proposition Canvas is the Lean Canvas Problem + UVP + Customer Segments boxes expanded; compose Lean Canvas first for business model fit, VPC second for product-market fit
|
|
92
|
+
- Iteration shaping — when a bet's scope feels uncertain, the riskiest-assumption-first lens cuts to the actual validation work
|
|
93
|
+
|
|
94
|
+
## Composition pairs
|
|
95
|
+
|
|
96
|
+
- **Maurya + Dunford** — Lean Canvas validates the business model; Dunford's positioning sharpens the UVP box into a market-ready claim. Maurya answers "does it hold together"; Dunford answers "how do we say it."
|
|
97
|
+
- **Maurya + Pichler (lean-product-canvas)** — Maurya validates the business model first; Olsen's Product-Market Fit Pyramid then guides product detail (target customer → needs → value prop → feature set → UX). Different focal lengths.
|
|
98
|
+
- **Maurya + Osterwalder (Strategyzer)** — Strategyzer's Business Model Canvas is upstream of Lean Canvas; Maurya adapted it for early-stage uncertainty. For mature businesses, Strategyzer; for new bets, Maurya.
|
|
99
|
+
|
|
100
|
+
## Distinct from
|
|
101
|
+
|
|
102
|
+
- **Dunford** — positioning, not business model. Once the business model holds together, Dunford makes the message sharp.
|
|
103
|
+
- **Olsen (lean-product-canvas)** — Product-Market Fit Pyramid, not business model. Once the business model holds, Olsen guides product shape.
|
|
104
|
+
- **Pichler (canvas)** — product canvas (Vision → Target → Stand-Out → Big Picture → Critical Questions). Product-detail-level; assumes the business model already holds.
|
|
105
|
+
- **Cockburn** — use cases at the system level; not strategy-level. Different altitude.
|
|
106
|
+
|
|
107
|
+
## Why this luminary exists in the catalog
|
|
108
|
+
|
|
109
|
+
Three product-strategy luminaries were already in bassclef's catalog:
|
|
110
|
+
|
|
111
|
+
- April Dunford — positioning (the message)
|
|
112
|
+
- Dan Olsen (lean-product-canvas) — Product-Market Fit Pyramid (the product detail)
|
|
113
|
+
- Roman Pichler (canvas) — product canvas (the product vision)
|
|
114
|
+
|
|
115
|
+
None of them answers the upstream question: **does the business model hold together at all?** Maurya's Lean Canvas is the missing piece. For bassclef's growth-loop strategy specifically, the "Revenue Streams" + "Key Metrics" boxes need to be reframed for audience/credibility accrual rather than dollar revenue — Maurya's framework accepts this reframing because the underlying question (which assumptions are riskiest) is general.
|
|
116
|
+
|
|
117
|
+
INSTEAD of "build the product, hope the business model emerges," Maurya's discipline forces explicit business-model articulation upfront — and explicit identification of the riskiest assumption that needs testing before more building.
|
|
118
|
+
|
|
119
|
+
## Closes
|
|
120
|
+
|
|
121
|
+
Backs the new `/lean-canvas` skill (filed 2026-05-25). Corrects the prior gap where the catalog had Olsen for Product-Market Fit Pyramid but no luminary for Lean Canvas itself.
|
|
@@ -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)
|