@thebassclef/lite 0.1.0 → 0.1.2
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 +2 -0
- package/dist/cli.js +2 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/substrate/.bassclef/lite-manifest.json +999 -92
- package/substrate/.claude/hooks/longrun-prep-compounding-axis-check.sh +492 -0
- package/substrate/.claude/hooks/longrun-prep-compounding-sequence-check.sh +492 -0
- package/substrate/.claude/hooks/pre-commit-gate.sh +1 -2
- package/substrate/.claude/hooks/turn-prose-kiss-check.sh +30 -1
- package/substrate/.claude/luminaries/glenford-myers.md +230 -0
- package/substrate/.claude/luminaries/hunt-thomas.md +115 -0
- package/substrate/.claude/luminaries/hyrum-wright.md +94 -0
- package/substrate/.claude/luminaries/michael-feathers.md +2 -2
- package/substrate/.claude/luminaries/tony-hoare.md +170 -0
- package/substrate/.claude/luminaries/vaughn-vernon.md +50 -0
- package/substrate/.claude/luminaries/w-edwards-deming.md +158 -0
- package/substrate/.claude/rules/accessor-library-discipline.md +138 -0
- package/substrate/.claude/rules/adr-discipline.md +120 -0
- package/substrate/.claude/rules/api-conventions.md +125 -0
- package/substrate/.claude/rules/bootstrap-pair-discipline.md +141 -0
- package/substrate/.claude/rules/cold-adopter-harness-discipline.md +129 -0
- package/substrate/.claude/rules/compounding-axis-fresh-analysis.md +188 -0
- package/substrate/.claude/rules/compounding-sequence-fresh-analysis.md +188 -0
- package/substrate/.claude/rules/defensive-bash.md +68 -0
- package/substrate/.claude/rules/deferred-actions.md +233 -0
- package/substrate/.claude/rules/github-issue-flash-tweet.md +156 -0
- package/substrate/.claude/rules/hook-wire-on-author.md +103 -0
- package/substrate/.claude/rules/iteration-bet-brief-completeness.md +54 -0
- package/substrate/.claude/rules/lite-manifest-schema-change-discipline.md +3 -3
- package/substrate/.claude/rules/longrun-prep-plan-doc-compression.md +89 -0
- package/substrate/.claude/rules/loop-discipline.md +81 -0
- package/substrate/.claude/rules/manual-prod-approval.md +100 -0
- package/substrate/.claude/rules/marker-enrichment-discipline.md +99 -0
- package/substrate/.claude/rules/mobile-ephemeral-session.md +109 -0
- package/substrate/.claude/rules/new-dependency-check.md +51 -0
- package/substrate/.claude/rules/option-label-discipline.md +108 -0
- package/substrate/.claude/rules/pattern-annotation.md +100 -0
- package/substrate/.claude/rules/plain-english-discipline.md +11 -9
- package/substrate/.claude/rules/plan-enumeration-needs-value-props.md +211 -0
- package/substrate/.claude/rules/pr-title-shape.md +161 -0
- package/substrate/.claude/rules/prototype-workflow.md +65 -0
- package/substrate/.claude/rules/reserved-skill-names.md +123 -0
- package/substrate/.claude/rules/schema-management.md +49 -0
- package/substrate/.claude/rules/security.md +37 -0
- package/substrate/.claude/rules/skill-composition-declarations.md +124 -0
- package/substrate/.claude/rules/skill-description-clarity.md +247 -0
- package/substrate/.claude/rules/skill-procedure-step-list.md +137 -0
- package/substrate/.claude/rules/stuck-signal-diagnostic.md +140 -0
- package/substrate/.claude/rules/substrate-config-schema.md +98 -0
- package/substrate/.claude/rules/test-list-discipline.md +175 -0
- package/substrate/.claude/rules/test-sufficiency.md +210 -0
- package/substrate/.claude/rules/testing-tier-config.md +145 -0
- package/substrate/.claude/rules/testing.md +38 -0
- package/substrate/.claude/rules/turn-estimate-grounding.md +134 -0
- package/substrate/.claude/rules/visual-hierarchy.md +437 -0
- package/substrate/.claude/rules/we-dont-break-adopters.md +126 -0
- package/substrate/.claude/rules/wu-sequencing-compounds.md +145 -0
- package/substrate/.claude/skills/build/SKILL.md +1 -1
- package/substrate/.claude/skills/chronicle/SKILL.md +55 -0
- package/substrate/.claude/skills/clean-artifacts/SKILL.md +249 -0
- package/substrate/.claude/skills/decompose/SKILL.md +1 -1
- package/substrate/.claude/skills/diagnose/SKILL.md +1 -1
- package/substrate/.claude/skills/feynman/SKILL.md +90 -0
- package/substrate/.claude/skills/howdoi/SKILL.md +1 -1
- package/substrate/.claude/skills/ia-model/SKILL.md +1 -1
- package/substrate/.claude/skills/interaction-design/SKILL.md +1 -1
- package/substrate/.claude/skills/interpret-input/SKILL.md +8 -8
- package/substrate/.claude/skills/journal/SKILL.md +209 -0
- package/substrate/.claude/skills/kiss/SKILL.md +1 -1
- package/substrate/.claude/skills/launch/SKILL.md +14 -23
- package/substrate/.claude/skills/lean-canvas/SKILL.md +1 -1
- package/substrate/.claude/skills/longrun/SKILL.md +45 -8
- package/substrate/.claude/skills/luminary/SKILL.md +1 -1
- package/substrate/.claude/skills/ogilvy-writing-audit/SKILL.md +1 -1
- package/substrate/.claude/skills/onboard-repo/SKILL.md +143 -709
- package/substrate/.claude/skills/pattern-review/SKILL.md +1 -1
- package/substrate/.claude/skills/personas/SKILL.md +5 -5
- package/substrate/.claude/skills/promote/SKILL.md +1 -1
- package/substrate/.claude/skills/requirement/SKILL.md +1 -1
- package/substrate/.claude/skills/retro/SKILL.md +1 -1
- package/substrate/.claude/skills/riff/SKILL.md +1 -1
- package/substrate/.claude/skills/roadmap-reconcile/SKILL.md +1 -1
- package/substrate/.claude/skills/session-end/SKILL.md +1 -1
- package/substrate/.claude/skills/session-log/SKILL.md +3 -3
- package/substrate/.claude/skills/skills/SKILL.md +1 -1
- package/substrate/.claude/skills/spec/SKILL.md +1 -1
- package/substrate/.claude/skills/sprint/SKILL.md +1 -1
- package/substrate/.claude/skills/stage/SKILL.md +1 -1
- package/substrate/.claude/skills/state-a-problem/SKILL.md +1 -1
- package/substrate/.claude/skills/temperance/SKILL.md +1 -1
- package/substrate/.claude/skills/use-case/SKILL.md +1 -1
- package/substrate/.claude/skills/user-stories/SKILL.md +1 -1
- package/substrate/.claude/skills/value-prop/SKILL.md +1 -1
- package/substrate/.claude/skills/verify/SKILL.md +1 -1
- package/substrate/.claude/skills/visual-review/SKILL.md +503 -0
- package/substrate/.claude/skills/whats-the-plan/SKILL.md +202 -0
- package/substrate/.claude/skills/whereami/SKILL.md +2 -2
- package/substrate/CONTRIBUTING.md +1 -1
- package/substrate/README.md +5 -5
- package/substrate/lib/prose-scan-boundary.sh +171 -0
- package/substrate/lib/tier-check.sh +50 -1
- package/substrate/lib/tier-dependency-audit.sh +159 -4
- package/substrate/presence/install/bassclef-sync.template.sh +1 -1
- package/substrate/scripts/generate-lite-manifest.sh +21 -5
- package/substrate/standards/adr-template.md +86 -0
- package/substrate/standards/api-conventions/nextjs.md +84 -0
- package/substrate/standards/artifact-composition.md +209 -0
- package/substrate/standards/bash-hook-safety.md +246 -0
- package/substrate/standards/branch-stacking.md +408 -0
- package/substrate/standards/code-safety-principles.md +176 -0
- package/substrate/standards/composer-prerequisites.md +155 -0
- package/substrate/standards/dependency-discipline/cargo.md +39 -0
- package/substrate/standards/dependency-discipline/gem.md +43 -0
- package/substrate/standards/dependency-discipline/go-mod.md +41 -0
- package/substrate/standards/dependency-discipline/npm.md +42 -0
- package/substrate/standards/dependency-discipline/pip.md +42 -0
- package/substrate/standards/deployment-topology/ec2-tailscale.md +225 -0
- package/substrate/standards/deployment-topology.md +69 -0
- package/substrate/standards/docs-sync-allowlist.md +4 -4
- package/substrate/standards/domain-and-dns.md +145 -0
- package/substrate/standards/frontend-stack.md +67 -0
- package/substrate/standards/frontmatter-schema.md +154 -0
- package/substrate/standards/hook-injection-discipline.md +202 -0
- package/substrate/standards/hook-install-class.md +215 -0
- package/substrate/standards/input-handler-interface.md +152 -0
- package/substrate/standards/lite-manifest-schema-changes.md +60 -0
- package/substrate/standards/luminary-matching.md +105 -0
- package/substrate/standards/migration-discipline/active-record.md +50 -0
- package/substrate/standards/migration-discipline/alembic.md +43 -0
- package/substrate/standards/migration-discipline/gorm.md +50 -0
- package/substrate/standards/migration-discipline/prisma.md +53 -0
- package/substrate/standards/migration-discipline/sqlalchemy.md +51 -0
- package/substrate/standards/mobile-ephemeral-session.md +167 -0
- package/substrate/standards/model-routing-discipline.md +160 -0
- package/substrate/standards/persona-schema.md +229 -0
- package/substrate/standards/pluggable-luminaries.md +323 -0
- package/substrate/standards/pr-body-discipline.md +115 -0
- package/substrate/standards/preview-state-schema.md +189 -0
- package/substrate/standards/reserved-skill-names.md +120 -0
- package/substrate/standards/scannable-multi-option-output.md +261 -0
- package/substrate/standards/sdlc-gates/typescript.md +57 -0
- package/substrate/standards/session-board.md +256 -0
- package/substrate/standards/state-spine-contract.md +255 -0
- package/substrate/standards/steering-hints/kiss-words.md +11 -0
- package/substrate/standards/substrate-config-schema.md +267 -0
- package/substrate/standards/tier-dependency-analysis.md +1 -1
- package/substrate/standards/tier-tag-schema.md +1 -1
- package/substrate/standards/two-layer-config.md +99 -0
- package/substrate/standards/use-case-format.md +292 -0
- package/substrate/standards/user-story-invest.md +268 -0
- package/substrate/standards/velocity-and-appetite.md +229 -0
- package/substrate/standards/voice-input-pattern.md +119 -0
- package/substrate/standards/worktree-management.md +211 -0
- package/substrate/templates/chronicle-template.md +75 -0
- package/substrate/templates/memory-proposal-template.md +77 -0
- package/substrate/templates/persona-template.md +200 -0
- package/substrate/templates/pr-faq.md +45 -0
- package/substrate/templates/secret-rotation-template.md +162 -0
- package/substrate/templates/spec-template.md +131 -0
- package/substrate/templates/use-case-template.md +194 -0
- package/substrate/templates/user-story-template.md +107 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: feynman
|
|
4
|
+
description: "Explain a technical concept in plain English \u2014 Feynman style. For CTO-vettable sidebars in journal entries or standalone micro-posts."
|
|
5
|
+
problem: "Technical concepts get explained with jargon. Non-technical readers stop reading."
|
|
6
|
+
value: "Explains a technical concept in plain English \u2014 Feynman style. For CTO-vettable sidebars in journal entries."
|
|
7
|
+
inputs: [A concept name or paragraph text]
|
|
8
|
+
outputs: [Feynman-style explanation, Analogy anchors, Grade-8 prose]
|
|
9
|
+
user_invocable: true
|
|
10
|
+
disable_model_invocation: false
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Feynman — Plain-English Technical Explanation
|
|
14
|
+
|
|
15
|
+
Explain a technical concept so that:
|
|
16
|
+
- A PE operating partner understands why it matters economically
|
|
17
|
+
- A CTO confirms it's technically precise
|
|
18
|
+
- A board member can repeat the core idea in their own words
|
|
19
|
+
|
|
20
|
+
Named after Richard Feynman's principle: if you can't explain it simply,
|
|
21
|
+
you don't understand it well enough.
|
|
22
|
+
|
|
23
|
+
## When to use
|
|
24
|
+
|
|
25
|
+
- Flagged by /journal as `[FEYNMAN: concept]`
|
|
26
|
+
- User asks "explain X simply" or "feynman this"
|
|
27
|
+
- A post references a technical concept that needs unpacking for
|
|
28
|
+
non-technical senior leaders while remaining CTO-credible
|
|
29
|
+
|
|
30
|
+
## Method
|
|
31
|
+
|
|
32
|
+
### Step 1: State what it does in one sentence
|
|
33
|
+
|
|
34
|
+
No jargon. No analogies yet. Just the function.
|
|
35
|
+
|
|
36
|
+
"Temperance is a mandatory pause that forces the system to justify
|
|
37
|
+
its approach before executing."
|
|
38
|
+
|
|
39
|
+
### Step 2: Explain why it exists — the failure it prevents
|
|
40
|
+
|
|
41
|
+
Connect to a real failure mode that the audience recognizes.
|
|
42
|
+
|
|
43
|
+
"It exists because autonomous systems optimize for throughput. Without
|
|
44
|
+
a pause, the system will retry failed approaches faster rather than
|
|
45
|
+
understanding why they failed — the same pattern that causes large
|
|
46
|
+
engineering organizations to ship broken features faster instead of
|
|
47
|
+
fixing the root cause."
|
|
48
|
+
|
|
49
|
+
### Step 3: Give the analogy (optional — only if it clarifies)
|
|
50
|
+
|
|
51
|
+
Pick an analogy from the audience's world:
|
|
52
|
+
|
|
53
|
+
- PE: "It's the investment committee memo before deploying capital"
|
|
54
|
+
- Enterprise: "It's the pre-flight checklist — not bureaucracy, but
|
|
55
|
+
the minimum discipline that prevents expensive mistakes"
|
|
56
|
+
- Board: "It's the governance gate between strategy approval and execution"
|
|
57
|
+
|
|
58
|
+
### Step 4: State the technical precision (for the CTO)
|
|
59
|
+
|
|
60
|
+
One sentence that a technical reviewer would nod at.
|
|
61
|
+
|
|
62
|
+
"Implemented as a pre-execution checklist that evaluates five dimensions:
|
|
63
|
+
simplicity, blast radius, verification cost, reversibility, and whether
|
|
64
|
+
the system is treating symptoms or root causes."
|
|
65
|
+
|
|
66
|
+
## Output format
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
### [Concept Name]
|
|
70
|
+
|
|
71
|
+
**What it does**: [one sentence, no jargon]
|
|
72
|
+
|
|
73
|
+
**Why it exists**: [the failure it prevents, in operating terms]
|
|
74
|
+
|
|
75
|
+
**Analogy**: [from the audience's world — PE, enterprise, or board]
|
|
76
|
+
|
|
77
|
+
**Technical precision**: [one sentence a CTO would verify]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Rules
|
|
81
|
+
|
|
82
|
+
- Never more than 4 sentences total for the core explanation
|
|
83
|
+
- The analogy must come from enterprise/PE/board — not academia, not startups
|
|
84
|
+
- If the concept doesn't need all 4 parts, drop the analogy
|
|
85
|
+
- The explanation must be accurate enough that a CTO wouldn't correct it
|
|
86
|
+
- Avoid "it's like..." phrasing — state what it IS, then use analogy only to illuminate
|
|
87
|
+
|
|
88
|
+
## Output discipline
|
|
89
|
+
|
|
90
|
+
Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: howdoi
|
|
4
|
-
description:
|
|
4
|
+
description: "Search bassclef skills and rules for an adopter goal \u2014 LLM-assisted. Two modes \u2014 search (top matches) and compose (matches plus suggested chains). Ranks by semantic fit and cites what each match does."
|
|
5
5
|
problem: "Adopters know what they want to do but not which bassclef skill or rule fits."
|
|
6
6
|
value: "One question in. A short list of the skills and rules that match your goal."
|
|
7
7
|
inputs: [A one-sentence goal in plain English]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: ia-model
|
|
4
|
-
description: Build information architecture from entity inventory
|
|
4
|
+
description: "Build information architecture from an entity inventory plus task flows. Derives nav structure, labeling, and screen map from the domain nouns."
|
|
5
5
|
problem: "Screens get designed before the nouns behind them are named. Nav drifts across pages."
|
|
6
6
|
value: "One entity map that drives every downstream screen. Nav stays clean because the model is clean."
|
|
7
7
|
inputs: [Task flows from spec, Entity inventory from decompose]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: interaction-design
|
|
4
|
-
description: IA
|
|
4
|
+
description: "Turn IA plus task flows into interaction design \u2014 state diagrams, sequence diagrams, user flows. Final step in the UX translation chain before decompose."
|
|
5
5
|
problem: "Nav and entities are drawn but the flow between screens is not. Devs invent transitions."
|
|
6
6
|
value: "State diagrams and sequence diagrams that name every screen transition and API call."
|
|
7
7
|
inputs: [IA model plus task flows]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: interpret-input
|
|
4
|
-
description: "
|
|
4
|
+
description: "Turn any input into a schema-valid InputArtifact. Modes: text, URL, image, repo, transcript, napkin, mixed. text + repo ship today. Others return valid stubs. First step of the cameo pipeline."
|
|
5
5
|
problem: "Different sessions start with different input shapes \u2014 text or URL or image or repo or transcript."
|
|
6
6
|
value: "One schema-validated artifact from any input. Downstream skills read one shape not seven."
|
|
7
7
|
inputs: [Any input — text or URL or image or repo ref or transcript]
|
|
@@ -102,21 +102,21 @@ With `--persist`: JSON written to `docs/input-artifacts/<slug>.json`. Stdout pri
|
|
|
102
102
|
|
|
103
103
|
## Mode status
|
|
104
104
|
|
|
105
|
-
Two modes work today. Five return schema-valid stubs pending
|
|
105
|
+
Two modes work today. Five return schema-valid stubs pending future work.
|
|
106
106
|
|
|
107
107
|
<!-- FKGL-EXEMPT: mode reference table -->
|
|
108
108
|
| Mode | Status | Behavior |
|
|
109
109
|
|---|---|---|
|
|
110
110
|
| `text` | works | Identity — `extracted_text = source`; URL regex for `external_urls` |
|
|
111
111
|
| `repo` | works | Walks local git dir or clones URL; populates `entities_seen`, `actor_candidates`, `boundary_objects`, `readme_excerpt`, `title`. Falls back to a stub if the path cannot be resolved. |
|
|
112
|
-
| `url` | not yet | Target — fetch + readable text scrape
|
|
113
|
-
| `image` | not yet | Target — vision-based UI extraction
|
|
114
|
-
| `transcript` | not yet | Target — speaker-tagged actor mapping
|
|
115
|
-
| `napkin` | not yet | Target — hand-drawn diagram extraction
|
|
116
|
-
| `mixed` | not yet | Target — compose multiple extractors
|
|
112
|
+
| `url` | not yet | Target — fetch + readable text scrape |
|
|
113
|
+
| `image` | not yet | Target — vision-based UI extraction |
|
|
114
|
+
| `transcript` | not yet | Target — speaker-tagged actor mapping |
|
|
115
|
+
| `napkin` | not yet | Target — hand-drawn diagram extraction |
|
|
116
|
+
| `mixed` | not yet | Target — compose multiple extractors |
|
|
117
117
|
<!-- /FKGL-EXEMPT -->
|
|
118
118
|
|
|
119
|
-
Stubs are still schema-valid InputArtifacts. The current stub value is `extracted_text: "deferred to Phase C"` — a
|
|
119
|
+
Stubs are still schema-valid InputArtifacts. The current stub value is `extracted_text: "deferred to Phase C"` — a marker string a future release will update. Downstream consumers should not crash on it. They may surface a warning that BCE extraction will be empty.
|
|
120
120
|
|
|
121
121
|
### Repo extractor heuristics
|
|
122
122
|
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
tier: lite
|
|
3
|
+
name: journal
|
|
4
|
+
description: "Draft a journal entry from this session's work \u2014 tuned to PE, search, and board audiences per the writing guide and brand questionnaire."
|
|
5
|
+
problem: "Session work fades from memory. Insight worth sharing with PE partners or eng leaders never gets written."
|
|
6
|
+
value: "Drafts a journal entry from this session's work. Tuned for PE, search, and board audiences."
|
|
7
|
+
inputs: [Optional audience filter — PE or search or board]
|
|
8
|
+
outputs: [Journal draft with voice per audience, Audience recommendations table]
|
|
9
|
+
user_invocable: true
|
|
10
|
+
disable_model_invocation: false
|
|
11
|
+
requires:
|
|
12
|
+
files: [standards/writing-guide.md]
|
|
13
|
+
network: true
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /journal — Draft Journal Entries from Session Work
|
|
17
|
+
|
|
18
|
+
Draft 3 short-form journal entries from the current session's work,
|
|
19
|
+
calibrated to the operator's target audience and brand positioning.
|
|
20
|
+
Publishable to LinkedIn, Substack, an internal blog, or held as
|
|
21
|
+
archive.
|
|
22
|
+
|
|
23
|
+
## Plain-English requirement (Phase II Trim the Fat — bassclef#559)
|
|
24
|
+
|
|
25
|
+
journal entries have personal/sensory/story-driven voice (per `feedback_writing_voice` memory) — voice trumps strict rule. The substrate-clarity-gate hook treats journal entry path as ADVISORY tier: it emits notices on bassclef-internal jargon, long sentences, and passive voice but never blocks.
|
|
26
|
+
|
|
27
|
+
INSTEAD of running /kiss words mechanically over draft prose: read the advisory notices and decide. Some passive voice in journal entries is fine ("the deploy was approved" reads naturally in narrative). Some long sentences carry rhythm. Pure mechanical substitution would flatten the voice.
|
|
28
|
+
|
|
29
|
+
What DOES still apply: drop bassclef-internal jargon (substrate, primitive, load-bearing, composer, tier-preset). LinkedIn audiences include investors, eng leaders, board operators — none have bassclef context. If the draft uses these words, run /kiss words on those specific terms (or rewrite by hand).
|
|
30
|
+
|
|
31
|
+
## Before writing
|
|
32
|
+
|
|
33
|
+
1. Read `standards/writing-guide.md` — the journal-entry style guide
|
|
34
|
+
2. Read the brand questionnaire from memory (if it exists) for audience,
|
|
35
|
+
tone, topics, and positioning
|
|
36
|
+
3. Read the current session's chronicle entry for raw material
|
|
37
|
+
4. If called after `/journal mine`: use the selected moment as primary
|
|
38
|
+
source material. Read the full chronicle for that session.
|
|
39
|
+
5. Check what angles have been covered (read existing drafts in
|
|
40
|
+
`docs/operator-private/journals/`). This is **informational context, not a
|
|
41
|
+
filter** — repeating themes across posts is intentional. It builds
|
|
42
|
+
recognition. But knowing what's been said helps pick fresh angles.
|
|
43
|
+
|
|
44
|
+
## Two audiences — every notable moment gets two variants
|
|
45
|
+
|
|
46
|
+
Each notable decision, trade-off, or insight produces **two post variants**:
|
|
47
|
+
|
|
48
|
+
### Variant A: CPTO → Board / PE / Executive Search
|
|
49
|
+
|
|
50
|
+
The operator speaking to people who evaluate operating talent and back
|
|
51
|
+
enterprise transformations.
|
|
52
|
+
|
|
53
|
+
- **Primary audience**: PE senior partners, executive search leaders,
|
|
54
|
+
board-level decision-makers
|
|
55
|
+
- **Tone**: Bezos/Jassy/Collison — calm, analytical, operator-grade
|
|
56
|
+
- **Depth**: Business outcome, capital efficiency, governance model.
|
|
57
|
+
One concrete technical detail as proof, no more.
|
|
58
|
+
- **Vocabulary**: "governance primitive" not "SKILL.md". "Coordination
|
|
59
|
+
framework" not "agent choreography." See writing guide.
|
|
60
|
+
- **Connects to**: EBITDA, capital efficiency, operating model, scale,
|
|
61
|
+
talent leverage, risk management
|
|
62
|
+
|
|
63
|
+
### Variant B: CPTO → Senior Engineers / Technical Founders
|
|
64
|
+
|
|
65
|
+
The same operator speaking to people who will build or evaluate the
|
|
66
|
+
technical approach.
|
|
67
|
+
|
|
68
|
+
- **Primary audience**: CTOs, VP Engineering, staff+ engineers,
|
|
69
|
+
technical founders, eng managers
|
|
70
|
+
- **Tone**: Thoughtful practitioner — shows the work, not just the result
|
|
71
|
+
- **Depth**: Architecture decisions, trade-offs, what was tried and
|
|
72
|
+
rejected, specific patterns used. Technical enough that a senior
|
|
73
|
+
engineer learns something.
|
|
74
|
+
- **Vocabulary**: Use real terms — ADRs, choreography, hooks, substrate.
|
|
75
|
+
No need to abstract. This audience knows what a pre-commit hook is.
|
|
76
|
+
- **Connects to**: Engineering quality, developer experience, system
|
|
77
|
+
reliability, team velocity, technical debt management
|
|
78
|
+
|
|
79
|
+
### How to pair them
|
|
80
|
+
|
|
81
|
+
The same moment becomes two posts:
|
|
82
|
+
- **Variant A**: "We killed three features before writing a line of code.
|
|
83
|
+
Here's why that's the highest-leverage thing a technical operator can do."
|
|
84
|
+
- **Variant B**: "Our Shaper agent runs Five Whys before any spec reaches
|
|
85
|
+
Construction. Here's the gate architecture and why it caught a scope
|
|
86
|
+
creep we would have shipped."
|
|
87
|
+
|
|
88
|
+
Both posts reference the same work. They land differently because they
|
|
89
|
+
answer different questions: A answers "is this person a credible operator?"
|
|
90
|
+
B answers "is this approach technically sound?"
|
|
91
|
+
|
|
92
|
+
## Rules
|
|
93
|
+
|
|
94
|
+
- **Two variants per notable moment** — label as (A: Board) and (B: Engineering)
|
|
95
|
+
- **Name concepts, not implementations** in Variant A. Real terms in Variant B.
|
|
96
|
+
- **Connect to enterprise economics** in Variant A. Connect to engineering
|
|
97
|
+
quality in Variant B.
|
|
98
|
+
- **Bezos/Jassy/Collison tone** for Variant A. Thoughtful practitioner for B.
|
|
99
|
+
- **Structure**: Hook → Setup → Body (with → arrows) → Takeaway
|
|
100
|
+
- **Every post must stand completely on its own** — no "in my last post"
|
|
101
|
+
references, no series context, no callbacks. Each post works for someone
|
|
102
|
+
who has never read anything you've written before.
|
|
103
|
+
- **Repetition across posts is intentional** — the LinkedIn algorithm shows
|
|
104
|
+
each post to a subset of your network. Covering the same theme from
|
|
105
|
+
different angles builds recognition. Don't avoid a topic just because
|
|
106
|
+
you've posted about it before.
|
|
107
|
+
- **600-1200 words** per post
|
|
108
|
+
- **3-7 posts per session** — across both variants. A session with 2 notable
|
|
109
|
+
moments produces 4 posts (2A + 2B).
|
|
110
|
+
|
|
111
|
+
## Audience recommendations table (MUST — include in every draft file)
|
|
112
|
+
|
|
113
|
+
Every draft file must start with a master audience recommendations table:
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
| # | Variant | Title | Primary audience | Hook strength | Publish priority |
|
|
117
|
+
|---|---------|-------|-----------------|--------------|-----------------|
|
|
118
|
+
| 1A | Board | [title] | PE partners — "[angle]" | Strong | 1 |
|
|
119
|
+
| 1B | Eng | [title] | Senior engineers — "[angle]" | Very strong | 2 |
|
|
120
|
+
| 2A | Board | [title] | Board/search — "[angle]" | Medium | Hold |
|
|
121
|
+
| 2B | Eng | [title] | CTOs — "[angle]" | Strong | 3 |
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
For each post, specify:
|
|
125
|
+
- **Variant**: A (Board/PE) or B (Engineering)
|
|
126
|
+
- **Primary audience**: PE partners, board, exec search (A) or CTOs, eng leaders, technical founders (B)
|
|
127
|
+
- **Hook strength**: rate honestly. "Very strong" = contrarian or cautionary. "Strongest" = thought leadership.
|
|
128
|
+
- **Publish priority**: recommended sequence with rationale, or "Hold" for article/longer form
|
|
129
|
+
- **Pair notes**: which A/B posts cover the same moment — they should not publish same day
|
|
130
|
+
|
|
131
|
+
End the table with:
|
|
132
|
+
- **Recommended publish sequence** with rationale (alternate A/B to reach both audiences)
|
|
133
|
+
- **Hold for articles** — posts that work better as longer LinkedIn articles
|
|
134
|
+
- **Pairing notes** — which A and B posts are about the same moment
|
|
135
|
+
|
|
136
|
+
## When a concept needs technical explanation
|
|
137
|
+
|
|
138
|
+
Flag it for the /feynman skill. In the draft, mark it:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
[FEYNMAN: concept name — for CTO sidebar]
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
After drafting all 3 posts, run /feynman on each flagged concept.
|
|
145
|
+
Weave the Feynman explanation into the post or note it as a comment-thread follow-up.
|
|
146
|
+
|
|
147
|
+
## Output
|
|
148
|
+
|
|
149
|
+
1. Check for gaps: when was the last journal entry? Are there missed
|
|
150
|
+
sessions? **Backfill those FIRST, oldest to newest** (per session-artifacts rule).
|
|
151
|
+
2. Write drafts to `docs/operator-private/journals/YYYY-MM-DD.md` with audience
|
|
152
|
+
recommendations table at the top
|
|
153
|
+
3. Push drafts to the repo's journal-entry Google Doc — use `--dir` for
|
|
154
|
+
automatic chronological ordering (the script sorts by filename):
|
|
155
|
+
```bash
|
|
156
|
+
# Batch push — script sorts YYYY-MM-DD filenames automatically
|
|
157
|
+
cd ~/src/your-org/your-app && npx tsx scripts/push-to-gdoc.ts \
|
|
158
|
+
--dir [drafts directory] \
|
|
159
|
+
--doc-id [journal_doc_id from substrate.config.md]
|
|
160
|
+
|
|
161
|
+
# Single file push (when only one new draft)
|
|
162
|
+
cd ~/src/your-org/your-app && npx tsx scripts/push-to-gdoc.ts \
|
|
163
|
+
--file [draft path] \
|
|
164
|
+
--doc-id [journal_doc_id from substrate.config.md]
|
|
165
|
+
|
|
166
|
+
# Fix out-of-order doc: clear and re-push everything sorted
|
|
167
|
+
cd ~/src/your-org/your-app && npx tsx scripts/push-to-gdoc.ts \
|
|
168
|
+
--dir [drafts directory] --replace \
|
|
169
|
+
--doc-id [journal_doc_id from substrate.config.md]
|
|
170
|
+
```
|
|
171
|
+
Google Doc IDs (for reference — always read from substrate.config.md):
|
|
172
|
+
- Bassclef: `1f9nUSmwpFvcZhnfmYvhyNWZuElMwqfz3muWdIcwMUrA`
|
|
173
|
+
- POA: `1Gwhsh6aC6lq1jRQhGSpZ9BUNBlpdY3SNFpnIlMP97Zk`
|
|
174
|
+
4. **Verify the push succeeded** — check the output for "Appended N chars"
|
|
175
|
+
5. Note in the chronicle that posts were drafted and pushed
|
|
176
|
+
6. If Google Doc push fails (no script, no auth): drafts stay local in
|
|
177
|
+
`docs/operator-private/journals/` AND a deferred-action entry is written so the
|
|
178
|
+
next capable session completes the push. Do not silently skip.
|
|
179
|
+
|
|
180
|
+
### Deferring a failed push
|
|
181
|
+
|
|
182
|
+
When the current session cannot push to the configured `journal_doc_id`
|
|
183
|
+
(missing `gcloud-auth` / `google-docs-write` — typical in mobile,
|
|
184
|
+
cloud-web, or a desktop session without the SA key):
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
TS=$(date -u +"%Y-%m-%dT%H-%M-%SZ")
|
|
188
|
+
ID="${TS}-journal-gdoc-push"
|
|
189
|
+
cp templates/deferred-action-template.md \
|
|
190
|
+
"docs/deferred-actions/${ID}.md"
|
|
191
|
+
# Fill frontmatter:
|
|
192
|
+
# pending_action: push-journals-to-gdoc
|
|
193
|
+
# requires_capability: [gcloud-auth, google-docs-write]
|
|
194
|
+
# priority: medium
|
|
195
|
+
# origin_skill: /journal
|
|
196
|
+
# resolves_when: |
|
|
197
|
+
# Google Doc <journal_doc_id> reflects docs/operator-private/journals/ in chronological order
|
|
198
|
+
# Cross-ref the draft file(s) in the body.
|
|
199
|
+
git add "docs/deferred-actions/${ID}.md"
|
|
200
|
+
git commit -m "chore: defer journal gdoc-push (<draft-date>)"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
See `.claude/rules/deferred-actions.md` and
|
|
204
|
+
`standards/deferred-actions-schema.md`. Silent skip violates
|
|
205
|
+
`session-artifacts.md` ("silence is not deferral").
|
|
206
|
+
|
|
207
|
+
## Output discipline
|
|
208
|
+
|
|
209
|
+
Dispatch `/kiss words --rewrite` on your skill output before you return it. See `standards/skill-output-discipline.md` for the contract.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: kiss
|
|
4
|
-
description: "Keep
|
|
4
|
+
description: "Keep it simple. Two modes: scope (compresses what ships; runs /value-prop brief plus MUST/SHOULD/COULD buckets) and words (rewrites to grade 8; big word to small word swap). Reads standards/bassclef-internal-jargon.md."
|
|
5
5
|
problem: "Scope grows. Prose fills with jargon. Adopters read a wall of bassclef-internal words and give up."
|
|
6
6
|
value: "Two modes \u2014 scope compresses what ships. Words rewrites vocabulary to grade 8. Plain English at the wire."
|
|
7
7
|
inputs: [A ticket or goal path for scope mode, Paragraph text for words mode]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: launch
|
|
4
|
-
description: "Turn an idea into a buildable plan.
|
|
4
|
+
description: "Turn an idea into a buildable plan. Ships a clickable mock gallery plus the spec, user stories, decomposition, and migration plan. Two sizes: medium and full. Two deploy modes: extended (subdomain) and --local (localhost)."
|
|
5
5
|
problem: "An idea is a doc. A working feature is code. The gap in between is where projects stall."
|
|
6
6
|
value: "Turns an idea into a buildable plan \u2014 mock gallery and spec and INVEST stories. Ready for /build."
|
|
7
7
|
inputs: [A rough idea or ticket or canvas]
|
|
@@ -135,19 +135,15 @@ case $PREFLIGHT_RC in
|
|
|
135
135
|
esac
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
Override: `SKIP_COMPOSER_PREFLIGHT=1` (logged
|
|
139
|
-
|
|
140
|
-
`standards/composer-prerequisites.md` for full discipline.
|
|
138
|
+
Override: `SKIP_COMPOSER_PREFLIGHT=1` (logged). See
|
|
139
|
+
`standards/composer-prerequisites.md` for the full contract.
|
|
141
140
|
|
|
142
|
-
The 6 checks
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
and `/launch-preview` would have nowhere to land).
|
|
141
|
+
The 6 checks are feature-branch, state-spine, personas, budget,
|
|
142
|
+
skill-registry, and deploy-host. See bassclef#271, #449, #450 for
|
|
143
|
+
the race + hosting-platform edge cases.
|
|
146
144
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
Use when `/stage` (light) or `/launch` is dispatched purely
|
|
150
|
-
for design exploration. Default is full chain (deploy-host required).
|
|
145
|
+
`--no-launch` skips the deploy-host check for design exploration.
|
|
146
|
+
Default is the full chain (deploy-host required).
|
|
151
147
|
|
|
152
148
|
### Phase 0 — Pre-flight
|
|
153
149
|
|
|
@@ -318,7 +314,7 @@ Same as `/stage` Phase 2 — Jacobson method via `/objectory-decompose`.
|
|
|
318
314
|
Output: `docs/decompositions/<slug>-domain.md` with entity inventory
|
|
319
315
|
+ actor list + verb-goal pairs + BCE matrix.
|
|
320
316
|
|
|
321
|
-
**Distinction from
|
|
317
|
+
**Distinction from `/stage`**: medium + full consume the FULL BCE
|
|
322
318
|
matrix downstream (in /ia-model + /interaction-design + /decompose
|
|
323
319
|
steps). Quick + light only consume the verb-goal pairs (for
|
|
324
320
|
/value-prop input).
|
|
@@ -822,7 +818,7 @@ PR body MUST surface: "Operator's next action: review the Construction
|
|
|
822
818
|
iteration-goal draft at <path>; if approved, run `/build-iteration
|
|
823
819
|
<slug>-construction` (bassclef#335)."
|
|
824
820
|
|
|
825
|
-
## Tier behavior (BUILD-only
|
|
821
|
+
## Tier behavior (BUILD-only; `/stage` for prototype tiers)
|
|
826
822
|
|
|
827
823
|
| Tier | Phase B MVP | Status |
|
|
828
824
|
|---|---|---|
|
|
@@ -861,15 +857,10 @@ Same baseline as `/stage` PLUS:
|
|
|
861
857
|
- ux-migration step fails (no chosen variant): operator must run with
|
|
862
858
|
`base=<slug>` OR pick winner via gallery review
|
|
863
859
|
|
|
864
|
-
## Reserved-names check
|
|
865
|
-
|
|
866
|
-
`launch` is NOT on `standards/reserved-skill-names.md` list.
|
|
867
|
-
Verified during this skill creation.
|
|
868
|
-
|
|
869
860
|
## Relationship to other skills + standards
|
|
870
861
|
|
|
871
862
|
- `/stage` — sibling (prototype tiers; same input-handler interface)
|
|
872
|
-
- `/interpret-input` — Phase 1 producer (same as
|
|
863
|
+
- `/interpret-input` — Phase 1 producer (same as `/stage`)
|
|
873
864
|
- `/objectory-decompose` — Phase 2 producer (same as /stage)
|
|
874
865
|
- `/value-prop` — Phase 3 producer (different mode by tier)
|
|
875
866
|
- `/personas`, `/jtbd-tasks`, `/value-prop-canvas` — Phase 3b
|
|
@@ -916,9 +907,9 @@ This is the Construction-transition step in the
|
|
|
916
907
|
|
|
917
908
|
Methodology-level. State-validate.sh hook enforces preview-state.yml
|
|
918
909
|
+ iteration-goal.schema.json validation. PR-first discipline enforced
|
|
919
|
-
via branching.md rule + pre-build-gate hook.
|
|
920
|
-
|
|
910
|
+
via branching.md rule + pre-build-gate hook. No additional hook
|
|
911
|
+
enforcement added.
|
|
921
912
|
|
|
922
913
|
## Output discipline
|
|
923
914
|
|
|
924
|
-
Dispatch `/kiss words --rewrite` on
|
|
915
|
+
Dispatch `/kiss words --rewrite` on output. See `standards/skill-output-discipline.md`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: lean-canvas
|
|
4
|
-
description: Produce a Lean Canvas
|
|
4
|
+
description: "Produce a Lean Canvas \u2014 Ash Maurya's 9-box template \u2014 filled through persona lenses. Two modes: commercial (revenue in dollars) and growth-loop (audience plus credibility). Outputs the riskiest assumption to validate next."
|
|
5
5
|
problem: "New products get built without naming the customer or the problem or the unfair advantage."
|
|
6
6
|
value: "Ash Maurya's 9-box canvas filled through persona work. One page names the business."
|
|
7
7
|
inputs: [Personas file, Value proposition data, A rough product idea]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: longrun
|
|
3
|
-
description: "Run a long autonomous session that paces itself
|
|
3
|
+
description: "Run a long autonomous session that paces itself. Prepares scope. Checkpoints at phase boundaries. Closes with session log and retrospective. Three modes: prep, checkpoint, closeout."
|
|
4
4
|
problem: "Sessions over 50 turns drift. Context compacts and the goal disappears."
|
|
5
5
|
value: "A long autonomous session that paces itself. Prep and checkpoint and closeout \u2014 clean state every wake."
|
|
6
6
|
inputs: [prep or checkpoint or closeout mode plus scope hints]
|
|
@@ -240,12 +240,40 @@ Pick one shape. Do not mix them.
|
|
|
240
240
|
**Step 1.4c** — Section-anchor rule (per bassclef-upstream#853; Norman + Garrett). Every table in prep output ships under a distinct `###` header. One anchor per concern:
|
|
241
241
|
|
|
242
242
|
- `### Options` — the option-set table
|
|
243
|
-
- `### Compounding value per option` — the
|
|
243
|
+
- `### Compounding value per option` — the 6-axis block (Step 1.5; new default per bassclef-upstream#1555 PR-2. Legacy 5-axis accepted through 2026-10-31 grace window)
|
|
244
244
|
- `### Adopter benefit per option` — the 3-axis block (Step 1.6)
|
|
245
245
|
- `### Step sequencing` — the step table (Step 1.7)
|
|
246
|
-
- `### Per-step compounding` — the
|
|
246
|
+
- `### Per-step compounding` — the axis-per-step block (Step 1.7a; 6-axis default, 5-axis grace)
|
|
247
247
|
|
|
248
|
-
Between top-level `###` anchors, use at least 2 blank lines OR a horizontal rule (`---`). Never stack two tables under one anchor. See the Norman + Garrett debate
|
|
248
|
+
Between top-level `###` anchors, use at least 2 blank lines OR a horizontal rule (`---`). Never stack two tables under one anchor. See the Norman + Garrett debate below. It carries the design principles.
|
|
249
|
+
|
|
250
|
+
<!-- FKGL-EXEMPT: worked example — code fence + heading hierarchy per bassclef-upstream#1535 -->
|
|
251
|
+
**Worked example — H2 / H3 / H4 hierarchy** (per bassclef-upstream#1535; Norman signifier + Feathers sprout). The `### Compounding value per option` anchor names the section. Individual options nest at H4 (`#### Option a`) beneath it. The hook regex accepts H2 through H6 or bold prefix (`**Option a`) since PR #1534; H4 nested under H3 is the canonical shape adopters most often reach for.
|
|
252
|
+
|
|
253
|
+
Copy this shape and the hook clears first-shot:
|
|
254
|
+
|
|
255
|
+
```markdown
|
|
256
|
+
### Compounding value per option
|
|
257
|
+
|
|
258
|
+
#### Option a — <label>
|
|
259
|
+
|
|
260
|
+
- Where the payoff shows up: <value>
|
|
261
|
+
- How often it fires: <value>
|
|
262
|
+
- What must be true first: <value>
|
|
263
|
+
- Does this teach a shape later work reuses: <value>
|
|
264
|
+
- What breaks if we ship this half-done: <value>
|
|
265
|
+
|
|
266
|
+
#### Option b — <label>
|
|
267
|
+
|
|
268
|
+
- Where the payoff shows up: <value>
|
|
269
|
+
- How often it fires: <value>
|
|
270
|
+
- What must be true first: <value>
|
|
271
|
+
- Does this teach a shape later work reuses: <value>
|
|
272
|
+
- What breaks if we ship this half-done: <value>
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Same H3 container + H4 options shape applies to `### Adopter benefit per option` (Step 1.6) and `### Per-step compounding` (Step 1.7a). Do NOT stack two options under one H4 header. Do NOT skip the container anchor. See fixture `.claude/hooks/tests/fixtures/2026-09-08-step-1-4c-worked-example/prep-message.txt` (pinned by Test 28 in `longrun-prep-compounding-sequence-check.test.sh`) for the exact body the hook accepts.
|
|
276
|
+
<!-- /FKGL-EXEMPT -->
|
|
249
277
|
|
|
250
278
|
**Step 1.4d** — Delta-rendering rule (per bassclef-upstream#853; Norman feedback loop). When the operator asks for a refinement (add column, change filter, reshape one option), render ONLY the delta. Cite the source anchor by name.
|
|
251
279
|
|
|
@@ -268,16 +296,25 @@ Full re-render is only correct when the operator asks for it explicitly ("show m
|
|
|
268
296
|
|
|
269
297
|
> **Recommend:** Option a (scope X · N-M turns · risk 🟢/🟡/🔴) because Y.
|
|
270
298
|
|
|
271
|
-
Then under `### Compare options`, render a compact scan-table. Then under `### Compounding value per option`, render the 5-axis block for
|
|
299
|
+
Then under `### Compare options`, render a compact scan-table. Then under `### Compounding value per option`, render the 5-axis block for the recommended option only. Per bassclef-upstream#1376. Non-recommended options carry axis values as cells in the scan-table row above. One cell per axis per option. Reader lands the recommended card fast. Other options stay auditable from the scan-table row.
|
|
272
300
|
|
|
273
301
|
<!-- FKGL-EXEMPT: column enumeration + glyph-legend cross-ref -->
|
|
274
302
|
Scan-table columns: `Option`, `Scope`, `Turns`, `Compounds`, `Risk`, `Why not (non-rec.)`. Glyphs encode risk (🟢/🟡/🔴). Words carry compounding rate. The `Why not` column carries one line per non-recommended option — what the operator gives up. The recommended option's cell reads `—` (recommended). Fresh analysis per option; do not copy from other docs.
|
|
275
303
|
<!-- /FKGL-EXEMPT -->
|
|
276
304
|
|
|
277
|
-
Then the
|
|
305
|
+
Then the axis block under `### Compounding value per option`. Bullets carry each axis for the recommended option. Per `.claude/rules/compounding-sequence-fresh-analysis.md` postcondition. The section satisfies the rule and the `longrun-prep-compounding-sequence-check.sh` hook. Cells carry each axis for other options. One cell per axis per option.
|
|
278
306
|
|
|
279
307
|
<!-- FKGL-EXEMPT: axis enumeration + grace-window note -->
|
|
280
|
-
The
|
|
308
|
+
The 6-axis default (new; per bassclef-upstream#1555 PR-2). These read as practical decision fields for Sam and Louis:
|
|
309
|
+
|
|
310
|
+
- **Deliverable** — what ships when this option lands (plain sentence)
|
|
311
|
+
- **Problem** — user pain the option removes (draft via `/state-a-problem brief`; ≤500 chars)
|
|
312
|
+
- **Value prop** — claim + sharpener (draft via `/value-prop tweet`; ≤280 chars)
|
|
313
|
+
- **Turns** — grounded range citing past goal actuals per `.claude/rules/turn-estimate-grounding.md`
|
|
314
|
+
- **Risk** — 🟢 low / 🟡 medium / 🔴 high
|
|
315
|
+
- **Shipping priority** — Q1 / Q2 / Q3 / Q4 or blank (blank prompts `Run /eisenhower to prioritize?`)
|
|
316
|
+
|
|
317
|
+
The 5-axis legacy shape (grace window through 2026-10-31 per ADR-031; hook accepts both):
|
|
281
318
|
|
|
282
319
|
- **Where the payoff shows up** (was: Compounding surface) — per-PR / per-release / per-session / per-adopter / per-quarter
|
|
283
320
|
- **How often it fires** (was: Compounding rate) — continuous / frequent / per-session / per-adopter / per-quarter
|
|
@@ -285,7 +322,7 @@ The 5 axes (plain-English preferred per ADR-040 D4; compressed compound-noun for
|
|
|
285
322
|
- **Does this teach a shape later work reuses** (was: Inverse-dependency) — yes (name the later work) / no
|
|
286
323
|
- **What breaks if we ship this half-done** (was: Risk class) — low / medium / high
|
|
287
324
|
|
|
288
|
-
|
|
325
|
+
Hook accepts either shape through the grace window per PR #1591. R8 catch preserved via `/state-a-problem` + `/value-prop` skill dispatches — those tools resist copy-paste and force fresh per-option analysis.
|
|
289
326
|
<!-- /FKGL-EXEMPT -->
|
|
290
327
|
|
|
291
328
|
**Step 1.6** — Under `### <label> · <scope> · <turns> · <risk>`, render a full card for recommended-only. Non-recommended options do NOT get a card by default (per #959 + bassclef-web#152 R2; Prater + Tufte + Cooper). They ship their rationale in the Step 1.5 `Why not` column plus the § Compounding value per option block above. Default prep volume drops by roughly half. Operators pick from the scan table. They read the card only for the option they lean toward. Progressive disclosure per Prater. Operator asks "show cards for B and C too" to expand.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: luminary
|
|
4
|
-
description: Browse and preview luminary files
|
|
4
|
+
description: "Browse and preview luminary files. Filter by discipline (ux, visual, architecture, product), by claiming agent (designer, architect), or preview a specific luminary by slug. Catalog analog to /skills."
|
|
5
5
|
problem: "Design lenses live in files no one reads. Adopters pick generic patterns because they don't know the catalog."
|
|
6
6
|
value: "A browser for the luminary catalog. Filter by discipline. Preview by slug before you pin one to a goal."
|
|
7
7
|
inputs: [Optional discipline filter — ux or visual or architecture or product]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
tier: lite
|
|
3
3
|
name: ogilvy-writing-audit
|
|
4
|
-
description: "Audit prose against Ogilvy's 10 writing rules
|
|
4
|
+
description: "Audit prose against Ogilvy's 10 writing rules plus Roman-Raphaelson principles. Produces severity-tagged violations with fixes. Diagnoses; /kiss words fixes. Fires on 'audit this memo', 'review my writing', 'check this draft'."
|
|
5
5
|
problem: "Prose ships with jargon and long sentences and hedge words. Readers stop reading."
|
|
6
6
|
value: "Ogilvy's ten rules applied to your prose. Severity-tagged findings that /kiss can fix."
|
|
7
7
|
inputs: [A file path or PR body or paragraph text]
|