bossbuild 0.97.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/LICENSE +21 -0
- package/PRINCIPLES.md +70 -0
- package/README.md +213 -0
- package/VERSION +1 -0
- package/bin/boss +3 -0
- package/library/README.md +19 -0
- package/library/agents/.gitkeep +0 -0
- package/library/agents/mentor-venture.md +57 -0
- package/library/hooks/.gitkeep +0 -0
- package/library/hooks/auto-log.js +133 -0
- package/library/hooks/memory-cue.js +82 -0
- package/library/hooks/secrets-guard.js +87 -0
- package/library/memory-seed/README.md +29 -0
- package/library/memory-seed/durable-facts-example.md +16 -0
- package/library/practices/.gitkeep +0 -0
- package/library/practices/agent-security.md +111 -0
- package/library/practices/ai-adoption-culture.md +104 -0
- package/library/practices/ai-ux-patterns.md +246 -0
- package/library/practices/celebration-of-done.md +100 -0
- package/library/practices/conscience-voicing.md +121 -0
- package/library/practices/context-discipline.md +116 -0
- package/library/practices/design-system.md +152 -0
- package/library/practices/git-workflow.md +119 -0
- package/library/practices/harm-taxonomy.md +45 -0
- package/library/practices/quality-ratchet.md +48 -0
- package/library/practices/revalidation.md +57 -0
- package/library/practices/scalable-architecture.md +111 -0
- package/library/practices/ship-it-live.md +149 -0
- package/library/practices/skill-authoring.md +70 -0
- package/library/skills/.gitkeep +0 -0
- package/library/skills/boss-learn/SKILL.md +63 -0
- package/library/skills/boss-sync/SKILL.md +48 -0
- package/package.json +49 -0
- package/registry/CHANGELOG.md +2737 -0
- package/src/board.js +655 -0
- package/src/brain.js +288 -0
- package/src/cli.js +542 -0
- package/src/conscience.js +426 -0
- package/src/insights.js +147 -0
- package/src/learn.js +92 -0
- package/src/map.js +103 -0
- package/src/modes.js +82 -0
- package/src/paths.js +36 -0
- package/src/registry.js +34 -0
- package/src/scaffold.js +138 -0
- package/src/sync.js +292 -0
- package/src/team.js +103 -0
- package/stages/L0-quickstart/manifest.json +12 -0
- package/stages/L0-quickstart/template/.claude/agents/coder-generalist.md +31 -0
- package/stages/L0-quickstart/template/.claude/agents/mentor-venture.md +57 -0
- package/stages/L0-quickstart/template/.claude/agents/pm.md +28 -0
- package/stages/L0-quickstart/template/.claude/hooks/conscience.js +89 -0
- package/stages/L0-quickstart/template/.claude/hooks/lib/loop-runtime.js +507 -0
- package/stages/L0-quickstart/template/.claude/hooks/lib/yaml.js +163 -0
- package/stages/L0-quickstart/template/.claude/hooks/memory-cue.js +82 -0
- package/stages/L0-quickstart/template/.claude/hooks/secrets-guard.js +87 -0
- package/stages/L0-quickstart/template/.claude/rules/your-app-code.md +17 -0
- package/stages/L0-quickstart/template/.claude/settings.json +36 -0
- package/stages/L0-quickstart/template/.claude/skills/boss/SKILL.md +161 -0
- package/stages/L0-quickstart/template/.claude/skills/boss-learn/SKILL.md +63 -0
- package/stages/L0-quickstart/template/.claude/skills/boss-sync/SKILL.md +55 -0
- package/stages/L0-quickstart/template/.claude/skills/canvas/SKILL.md +112 -0
- package/stages/L0-quickstart/template/.claude/skills/comprehend/SKILL.md +72 -0
- package/stages/L0-quickstart/template/.claude/skills/decide/SKILL.md +122 -0
- package/stages/L0-quickstart/template/.claude/skills/feedback/SKILL.md +68 -0
- package/stages/L0-quickstart/template/.claude/skills/import/SKILL.md +73 -0
- package/stages/L0-quickstart/template/.claude/skills/persona/SKILL.md +92 -0
- package/stages/L0-quickstart/template/.claude/skills/prototype/SKILL.md +114 -0
- package/stages/L0-quickstart/template/.claude/skills/triage/SKILL.md +104 -0
- package/stages/L0-quickstart/template/.claude/skills/welcome/SKILL.md +262 -0
- package/stages/L0-quickstart/template/AGENTS.md +31 -0
- package/stages/L0-quickstart/template/CLAUDE.md +57 -0
- package/stages/L0-quickstart/template/docs/IDS.md +42 -0
- package/stages/L0-quickstart/template/docs/ideas/INDEX.md +24 -0
- package/stages/L0-quickstart/template/docs/loops/canvas-loop.md +90 -0
- package/stages/L0-quickstart/template/docs/loops/capture-loop.md +64 -0
- package/stages/L1-mvp/manifest.json +12 -0
- package/stages/L1-mvp/template/.claude/agents/mentor-architect.md +124 -0
- package/stages/L1-mvp/template/.claude/agents/mentor-cofounder.md +85 -0
- package/stages/L1-mvp/template/.claude/agents/mentor-gtm.md +49 -0
- package/stages/L1-mvp/template/.claude/agents/program-manager.md +46 -0
- package/stages/L1-mvp/template/.claude/agents/tester.md +42 -0
- package/stages/L1-mvp/template/.claude/hooks/auto-log.js +133 -0
- package/stages/L1-mvp/template/.claude/rules/feature-context.md +18 -0
- package/stages/L1-mvp/template/.claude/skills/ai-cost/SKILL.md +249 -0
- package/stages/L1-mvp/template/.claude/skills/ai-failure-states/SKILL.md +226 -0
- package/stages/L1-mvp/template/.claude/skills/ai-first-init/SKILL.md +227 -0
- package/stages/L1-mvp/template/.claude/skills/close/SKILL.md +170 -0
- package/stages/L1-mvp/template/.claude/skills/consult/SKILL.md +72 -0
- package/stages/L1-mvp/template/.claude/skills/cost-review/SKILL.md +204 -0
- package/stages/L1-mvp/template/.claude/skills/design-tokens-init/SKILL.md +192 -0
- package/stages/L1-mvp/template/.claude/skills/drift-deep/SKILL.md +170 -0
- package/stages/L1-mvp/template/.claude/skills/evals/SKILL.md +154 -0
- package/stages/L1-mvp/template/.claude/skills/extract/SKILL.md +209 -0
- package/stages/L1-mvp/template/.claude/skills/judge-traces/SKILL.md +68 -0
- package/stages/L1-mvp/template/.claude/skills/log/SKILL.md +64 -0
- package/stages/L1-mvp/template/.claude/skills/practice/SKILL.md +92 -0
- package/stages/L1-mvp/template/.claude/skills/pretotype/SKILL.md +95 -0
- package/stages/L1-mvp/template/.claude/skills/red-team/SKILL.md +137 -0
- package/stages/L1-mvp/template/.claude/skills/revalidate/SKILL.md +51 -0
- package/stages/L1-mvp/template/.claude/skills/ship/SKILL.md +105 -0
- package/stages/L1-mvp/template/.claude/skills/smoke/SKILL.md +43 -0
- package/stages/L1-mvp/template/.claude/skills/spec/SKILL.md +145 -0
- package/stages/L1-mvp/template/claude-append.md +122 -0
- package/stages/L1-mvp/template/docs/loops/ai-failure-state-loop.md +107 -0
- package/stages/L1-mvp/template/docs/loops/coordination-loop.md +116 -0
- package/stages/L1-mvp/template/docs/loops/cost-budget-loop.md +117 -0
- package/stages/L1-mvp/template/docs/loops/cost-review-loop.md +113 -0
- package/stages/L1-mvp/template/docs/loops/design-tokens-loop.md +98 -0
- package/stages/L1-mvp/template/docs/loops/drift-loop.md +149 -0
- package/stages/L1-mvp/template/docs/loops/extraction-loop.md +128 -0
- package/stages/L1-mvp/template/docs/loops/focus-loop.md +106 -0
- package/stages/L1-mvp/template/docs/loops/pretotype-loop.md +88 -0
- package/stages/L1-mvp/template/docs/loops/spec-loop.md +83 -0
- package/stages/L2-v1/manifest.json +12 -0
- package/stages/L2-v1/template/.claude/agents/db-architect.md +91 -0
- package/stages/L2-v1/template/.claude/agents/mentor-business.md +124 -0
- package/stages/L2-v1/template/.claude/agents/mentor-fundraising.md +72 -0
- package/stages/L2-v1/template/.claude/agents/mentor-pitch.md +84 -0
- package/stages/L2-v1/template/.claude/agents/mentor-talent.md +84 -0
- package/stages/L2-v1/template/.claude/agents/ui-designer.md +81 -0
- package/stages/L2-v1/template/.claude/agents/ux-designer.md +87 -0
- package/stages/L2-v1/template/.claude/skills/board/SKILL.md +98 -0
- package/stages/L2-v1/template/.claude/skills/design-review/SKILL.md +77 -0
- package/stages/L2-v1/template/.claude/skills/ux-check/SKILL.md +93 -0
- package/stages/L2-v1/template/claude-append.md +59 -0
- package/stages/L2-v1/template/docs/loops/design-drift-loop.md +108 -0
- package/stages/L3-scale/README.md +13 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: canvas
|
|
3
|
+
description: Pressure-test an idea as a humane business — Ajesh Shah's Humane Product Canvas as the spine, with Lean/Lenny-style commercial prompts folded into each cell. Filled just-in-time (a few cells at a time), it's the Quickstart→MVP graduation gate. Usage - /canvas [IDEA-NNN]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /canvas — pressure-test the idea (humanely)
|
|
7
|
+
|
|
8
|
+
The just-in-time mentor that shows up once an idea has legs. Built on **the Humane Product Canvas
|
|
9
|
+
(by Ajesh Shah)** — values-first — with sharp Lean/Lenny business prompts folded into each cell so
|
|
10
|
+
the idea is both *humane* and *viable*.
|
|
11
|
+
|
|
12
|
+
It is **a snapshot, not a final blueprint.** Answers evolve as insight grows. Don't rush to fill
|
|
13
|
+
boxes — sit with the hard questions, sketch, talk, revisit. A half-filled canvas with a sharp
|
|
14
|
+
riskiest-assumption beats a fully-filled canvas of guesses.
|
|
15
|
+
|
|
16
|
+
When the canvas is reasonably filled and the **riskiest assumption has a validation plan**, the idea
|
|
17
|
+
is ready to `boss unlock mvp`.
|
|
18
|
+
|
|
19
|
+
## How to run it
|
|
20
|
+
|
|
21
|
+
1. Pick the idea: `[IDEA-NNN]` if given, else the most active idea in `docs/ideas/`.
|
|
22
|
+
2. Open (or create) `docs/ideas/IDEA-NNN-canvas.md` from the template below.
|
|
23
|
+
3. **Don't interrogate.** Ask about 2-4 cells at a time, starting with the most uncertain. Pull
|
|
24
|
+
answers from the idea's "Current shape" + capture log; only ask what's missing.
|
|
25
|
+
4. Leave `_(not yet)_` on anything unknown — blanks are honest signal, not failure. Re-run anytime.
|
|
26
|
+
5. After each pass, name the **single riskiest assumption** and propose **one experiment this week**
|
|
27
|
+
to test it. Write both in. That's the heartbeat of incubation.
|
|
28
|
+
6. When most cells are filled + the top risk has a validation plan, mark it **Done!** (below) — name
|
|
29
|
+
what became real — then offer `boss unlock mvp`.
|
|
30
|
+
|
|
31
|
+
## The canvas template
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
---
|
|
35
|
+
id: IDEA-NNN-canvas
|
|
36
|
+
type: canvas
|
|
37
|
+
owner: pm
|
|
38
|
+
status: drafting
|
|
39
|
+
version: 0.1
|
|
40
|
+
updated: {{today}}
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# Humane Product Canvas — <Idea title>
|
|
44
|
+
|
|
45
|
+
> A snapshot, not a blueprint. Revisit as insight grows.
|
|
46
|
+
|
|
47
|
+
## 1 · Human Foundation
|
|
48
|
+
_Who you serve, the tension they carry, the value you promise._
|
|
49
|
+
|
|
50
|
+
| Cell | Humane prompt | Sharpen with |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| **People** | Who are you designing for & what matters to them? | Who *exactly* has the painful problem? Be specific — not "everyone." |
|
|
53
|
+
| **Problem** | What real human tension are you solving? | Is it urgent, frequent, expensive, or emotionally painful? What do they use *today* instead (current alternatives)? |
|
|
54
|
+
| **Promises** | What emotional / relational value will it deliver? | The sharp promise: "We help X do Y without Z." |
|
|
55
|
+
|
|
56
|
+
## 2 · Product Expression
|
|
57
|
+
_How it shows up in a life, how people engage, how it sustains itself._
|
|
58
|
+
|
|
59
|
+
| Cell | Humane prompt | Sharpen with |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| **Story** | How does your product show up in someone's life? | What changed that makes this newly possible or urgent (insight / why now)? What's the smallest compelling workflow that solves it (solution)? |
|
|
62
|
+
| **Modes of Engagement** | How do people interact with your product in a humane way? | Does it respect time, attention, autonomy, data? Why are you the right team/product to win (unique advantage)? |
|
|
63
|
+
| **Business Model** | How will you sustain this without compromising your promise? | Who pays, how much, why is it worth it? How do the first 100 find you (acquisition)? What makes usage compound (growth loop)? |
|
|
64
|
+
|
|
65
|
+
## 3 · Stewardship
|
|
66
|
+
_Impact, risks, and the values that guide decisions._
|
|
67
|
+
|
|
68
|
+
| Cell | Humane prompt | Sharpen with |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| **Metrics** | What does meaningful success look like — for people and planet? | Real pull: activation, retention, conversion, willingness to pay. **And the regenerative ones, weighted as seriously:** what people *learn* or gain in well-being, what makes the venture more *resilient* over time — growth that renews, not just extracts. |
|
|
71
|
+
| **Risks & Harms** | What could unintentionally go wrong? Who might be harmed or excluded? | Rank the assumptions that could kill the idea. Be honest about harm at scale. |
|
|
72
|
+
| **Build or buy?** _(for tool-shaped ideas)_ | Is the honest move to *build* this — or would using/buying something that already solves it serve the person better? | Only ask for internal-tool / process-automation ideas (Jason Fried, 2026: most people want the problem *gone*, not a system to maintain). For a genuine product venture, building **is** the move — skip this cell. The humane answer is sometimes "don't build it yourself." |
|
|
73
|
+
| **Principles** | What values will guide your decisions? | The non-negotiables you'll hold even when it's costly. |
|
|
74
|
+
|
|
75
|
+
## Incubation heartbeat
|
|
76
|
+
- **Riskiest assumption:** _(the one most likely to be fatal and least proven)_
|
|
77
|
+
- **Experiment this week:** _(the smallest test to prove/disprove it)_
|
|
78
|
+
- **What result would change the plan?** _(decide before you run it)_
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Done! — the graduation moment
|
|
82
|
+
|
|
83
|
+
When the canvas holds up — most cells filled with real answers (not `_(not yet)_` placeholders) and the
|
|
84
|
+
**riskiest assumption has a validation plan** (an experiment + what result would change the plan) — the
|
|
85
|
+
idea has crossed a real threshold: it's *done enough to build*. Most founders blow right past this and
|
|
86
|
+
just start coding. Don't. This is the conscience's **affirming** voice — the counterpart to "what does
|
|
87
|
+
this prove?" — and you mark it in two beats:
|
|
88
|
+
|
|
89
|
+
1. **Arrival.** Name what became real. Where did they start, and what's solid now — a specific person, a
|
|
90
|
+
real tension, a sharp promise, the one bet that could sink it *with* a way to test it? Say it plainly
|
|
91
|
+
and let it land. This isn't praise; it's acknowledging the idea grew up.
|
|
92
|
+
2. **Next doorway.** Point at what's next without rushing: `boss unlock mvp` brings the build tools and
|
|
93
|
+
the next mentors (architect, GTM). The canvas keeps — they're free to sit with it.
|
|
94
|
+
|
|
95
|
+
In BOSS's voice (the warm register — still spare; tune by ear, don't paste verbatim):
|
|
96
|
+
|
|
97
|
+
> *"Worth stopping here a second. You came in with 'an app that plans meals' — now there's a specific
|
|
98
|
+
> person, a tension that's real, and the one bet that could sink it, with a way to test it this week.
|
|
99
|
+
> That's the idea becoming real. When you're ready, `boss unlock mvp` brings the build tools. No rush —
|
|
100
|
+
> the canvas keeps."*
|
|
101
|
+
|
|
102
|
+
A threshold, not a finish line: "done" here means *ready for the next thing*, and the canvas keeps
|
|
103
|
+
evolving as you learn. Never force it — a half-filled canvas with a sharp riskiest assumption is a fine
|
|
104
|
+
place to sit; mark it Done only when it's genuinely earned, not as a box to tick.
|
|
105
|
+
|
|
106
|
+
## Rules
|
|
107
|
+
|
|
108
|
+
- Humane-first. The Risks & Harms cell is not optional polish — surface real harm honestly, even when inconvenient.
|
|
109
|
+
- Just-in-time, not all-at-once. Blanks are data; never fabricate answers to look complete.
|
|
110
|
+
- Snapshot, not blueprint — expect it to change; bump `version` when it meaningfully shifts.
|
|
111
|
+
- The canvas informs the decision to build; it never replaces actually talking to the people you serve.
|
|
112
|
+
- Credit the framework: Humane Product Canvas by Ajesh Shah.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: comprehend
|
|
3
|
+
description: AI-native scaffold tailoring — read what BOSS can actually understand about this project (the captured idea, the source material, or the adopted repo) and tailor the scaffold to it non-destructively, plus seed the venture brain with an honest first read so the conscience has continuity from day one. Augments the deterministic template scaffold; never replaces it. Opt-in via `boss new --ai` / `boss adopt --ai`. Usage - /comprehend
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /comprehend — tailor the scaffold to what BOSS understands
|
|
7
|
+
|
|
8
|
+
The deterministic scaffold (the `stages/L{0..3}` templates) is the same for every project — that's the
|
|
9
|
+
point: it's the reversible, diffable base. `/comprehend` is the **augmentation**: it reads what's
|
|
10
|
+
actually here and tailors that base to *this* venture, so BOSS starts from understanding instead of a
|
|
11
|
+
generic copy.
|
|
12
|
+
|
|
13
|
+
> **The guardrail (IDEA-022 Track 3 — read this first):** everything `/comprehend` does is **additive
|
|
14
|
+
> and reversible** — plain-text writes the founder can diff and `git revert`. It **never** deletes or
|
|
15
|
+
> rewrites the deterministic scaffold; it fills in placeholders and seeds the brain. A model-generated
|
|
16
|
+
> scaffold you can't inspect is exactly what BOSS warns founders against. If it can't be diffed, it
|
|
17
|
+
> doesn't ship. Run only when `aiNative` is set (`boss new --ai` / `boss adopt --ai`) or the founder
|
|
18
|
+
> asks; otherwise the plain template is correct.
|
|
19
|
+
|
|
20
|
+
## When to run it
|
|
21
|
+
|
|
22
|
+
- Right after `boss new --ai <idea>` (once there's a captured idea / source) or `boss adopt --ai` (the
|
|
23
|
+
existing repo is the material).
|
|
24
|
+
- Any time later, to re-tailor after the understanding has grown (it re-reads and updates, idempotent).
|
|
25
|
+
|
|
26
|
+
## What it reads (what BOSS can honestly understand)
|
|
27
|
+
|
|
28
|
+
In order of strength — use whatever exists, say what you used:
|
|
29
|
+
1. **An adopted repo** (`boss adopt --ai`) — read the code, README, structure, deps (use the wide
|
|
30
|
+
context; this is the strongest signal). Infer what it is, who it's for, what stage it's at.
|
|
31
|
+
2. **Captured idea + source** — `docs/ideas/*.md` + anything under `docs/source/` (`/import`/`/boss`
|
|
32
|
+
pulled it in).
|
|
33
|
+
3. **Nothing yet** — if there's no idea and no repo, say so and stop: *"Nothing to comprehend yet —
|
|
34
|
+
run `/boss <your idea>` or `/import` first, then come back."* Don't invent understanding.
|
|
35
|
+
|
|
36
|
+
## What it does (all additive, all reversible)
|
|
37
|
+
|
|
38
|
+
1. **Fill the project overview** — replace the `_TBD_` overview placeholder in **`AGENTS.md`** (the
|
|
39
|
+
host-neutral file) with a real, honest 2–4 line read of what this is, who it's for, and the stage
|
|
40
|
+
it's at. Mark anything you're unsure of as an open question, not a claim.
|
|
41
|
+
2. **Seed the venture brain** — write the *first* dated read into `.boss/brain/read.md` (create it):
|
|
42
|
+
a short, first-person, **honest** standing summary of what you understand and — crucially — **what
|
|
43
|
+
you don't know yet** (the questions a real conversation would answer). Then stamp it:
|
|
44
|
+
`boss brain record --headline "<one line>"`. This is what gives the conscience continuity from day
|
|
45
|
+
one (it can now voice *with* this read — IDEA-022 Track 4). Honor the brain's must-nots: no
|
|
46
|
+
flattery, no diagnosing the founder, no certainty the material doesn't support; if thin, say less.
|
|
47
|
+
3. **Suggest the disciplines that fit** (recommend, don't auto-apply) — based on what you read, name
|
|
48
|
+
the 1–3 optional disciplines worth turning on, and why: AI in the path → `/ai-first-init`; UI
|
|
49
|
+
accumulating → `/design-tokens-init`; untrusted input / regulated data → opt into `secrets-guard` +
|
|
50
|
+
`/red-team`; a target user worth modeling → `/persona`. The founder confirms each.
|
|
51
|
+
4. **Show your work** — end with a 3-line summary of exactly what you wrote (which files), so it's
|
|
52
|
+
obvious what to keep or revert. *"I tailored AGENTS.md's overview, seeded the brain with a first
|
|
53
|
+
read, and suggested `/ai-first-init`. All of it is in your working tree — diff or revert anything."*
|
|
54
|
+
|
|
55
|
+
## Cohort-aware
|
|
56
|
+
- `first-product` / `non-tech-founder` — plain language; frame it as "I read what's here and wrote down
|
|
57
|
+
what I understand — correct me where I'm wrong."
|
|
58
|
+
- `eng-builder` / `returning-founder` — terse; lead with the inferred stage + the open questions; make
|
|
59
|
+
the diff-and-revert affordance explicit up front.
|
|
60
|
+
- `domain-expert` — flag that domain stakes aren't fully in training data; your read is a starting
|
|
61
|
+
point, their expertise outranks it.
|
|
62
|
+
|
|
63
|
+
## Rules
|
|
64
|
+
|
|
65
|
+
- **Augment, never replace.** The deterministic scaffold is the base; you fill and seed, you don't
|
|
66
|
+
rewrite. Never touch the template skills/agents/hooks.
|
|
67
|
+
- **Inspectable + reversible or it doesn't ship.** Everything is a plain-text write in the working
|
|
68
|
+
tree. Show what you wrote.
|
|
69
|
+
- **Honest understanding only.** Read what's there; mark guesses as guesses; "I don't know yet" is a
|
|
70
|
+
valid (and valuable) output. No invented depth — that's the fortune-cookie failure the brain forbids.
|
|
71
|
+
- **Recommend disciplines, don't impose them.** Principle #2 (just-in-time): suggest what fits, the
|
|
72
|
+
founder turns it on.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decide
|
|
3
|
+
description: Record a load-bearing decision as a durable DEC-NNN record — Context / Decision / Why / a cheap Falsifier (what would prove this wrong, and by when) / Consequences, stamped with who decided (founder vs AI-suggested-ratified vs AI-autonomous) and how reversible it is. The rationale future-you (and a cofounder who wasn't in the room) can read instead of guessing — and the falsifier makes finding out you were wrong cheap and scheduled. Lighter than an RFC, denser than a commit message. Usage - /decide <the decision, or describe it>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /decide — the decision record
|
|
7
|
+
|
|
8
|
+
Most decisions vanish. The diff shows *what* changed; the chat where you chose it scrolls away. Six
|
|
9
|
+
weeks later someone — future-you, or a cofounder — finds the choice and faces two bad options: blindly
|
|
10
|
+
accept it, or blindly change it. Neither knows *why*. A decision record fixes that: it captures the
|
|
11
|
+
**reasoning**, not just the outcome.
|
|
12
|
+
|
|
13
|
+
This is an ADR (architecture decision record), kept light. Use it for the calls that are **load-bearing
|
|
14
|
+
or hard to reverse** — which idea to pursue, which stack, which market, how equity/ownership splits, a
|
|
15
|
+
constraint you're committing to. Skip it for the small two-way-door choices you can undo in a minute
|
|
16
|
+
(those belong in `/log` as a one-line note).
|
|
17
|
+
|
|
18
|
+
## When to reach for it
|
|
19
|
+
|
|
20
|
+
- A choice you'll be asked to justify later, or that you'd regret silently reversing.
|
|
21
|
+
- A **one-way door** (Bezos): expensive or impossible to undo. These *always* deserve a record.
|
|
22
|
+
- A decision a **cofounder** needs to see and could later want to discuss — ownership, direction, who
|
|
23
|
+
owns what. (In a team, the record is the thing both can point at instead of misremembering.)
|
|
24
|
+
|
|
25
|
+
If it's a reversible two-way door, don't ceremonialize it — a `/log` line is enough.
|
|
26
|
+
|
|
27
|
+
## How to run it
|
|
28
|
+
|
|
29
|
+
1. **Resolve the decider** (the one named accountable person — the "DRI"). Get their GitHub handle:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
gh api user --jq '.login' 2>/dev/null || git config user.name
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Use it as `@<login>`. If neither resolves, leave `@you` — never fabricate a name. Also set **how the
|
|
36
|
+
call was made** in `decided_by`: `founder` (a human chose it), `ai-suggested-ratified` (the model
|
|
37
|
+
proposed it, a human signed off), or `ai-autonomous` (the model decided and acted). This makes
|
|
38
|
+
over-delegation of load-bearing calls *visible* — it's where automation bias quietly enters.
|
|
39
|
+
|
|
40
|
+
2. **Pick the next number.** Look in `docs/decisions/` for the highest `DEC-NNN`; add one. First one is
|
|
41
|
+
`DEC-001`. Create the directory if it doesn't exist.
|
|
42
|
+
|
|
43
|
+
3. **Write `docs/decisions/DEC-NNN-<short-slug>.md`:**
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
---
|
|
47
|
+
id: DEC-NNN
|
|
48
|
+
type: decision
|
|
49
|
+
owner: "@<github-login of the decider>"
|
|
50
|
+
decided_by: founder # founder | ai-suggested-ratified | ai-autonomous
|
|
51
|
+
status: decided
|
|
52
|
+
created: {{today}}
|
|
53
|
+
reversibility: reversible | costly | one-way
|
|
54
|
+
revisit_by: <YYYY-MM-DD> # optional — the "by when" of the Falsifier below
|
|
55
|
+
# supersedes: DEC-MMM # only if this replaces an earlier decision
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
# DEC-NNN — <the decision, in one line>
|
|
59
|
+
|
|
60
|
+
## Context
|
|
61
|
+
What's true that forced a choice? The constraints, the options on the table, what's at stake.
|
|
62
|
+
|
|
63
|
+
## Decision
|
|
64
|
+
What we're doing. One or two plain sentences. If there were named contributors to the call beyond the
|
|
65
|
+
decider (pairing, a cofounder who weighed in), name them here — credit the thinking.
|
|
66
|
+
|
|
67
|
+
## Why
|
|
68
|
+
The reasoning. Why this over the alternatives. Name the alternative you rejected and what would change
|
|
69
|
+
your mind. (For `costly`/`one-way` calls, weigh the real options: considered · chosen · why-not.)
|
|
70
|
+
|
|
71
|
+
## Falsifier — what would prove this wrong, and by when?
|
|
72
|
+
The cheapest signal you were wrong, with a date. *"If signups don't move by July, X was wrong."*
|
|
73
|
+
This is the load-bearing field: naming who decided and who's accountable **is not enough** — the real
|
|
74
|
+
bottleneck is the *cost of finding out later* that the call was wrong. A falsifier makes the check cheap
|
|
75
|
+
and scheduled (mirror the date into `revisit_by:`). **Required for `costly`/`one-way`; encouraged for
|
|
76
|
+
`reversible`.**
|
|
77
|
+
|
|
78
|
+
## Consequences
|
|
79
|
+
What this commits you to, what it rules out, what to watch. If `reversibility` is `costly`/`one-way`,
|
|
80
|
+
say what the exit would cost.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
4. **Fill from what the founder gave you.** If they only have the one-liner, write Context + Decision and
|
|
84
|
+
leave **Why** as a single honest question prompt rather than inventing rationale. Blanks are honest;
|
|
85
|
+
fabricated reasoning is worse than a gap.
|
|
86
|
+
|
|
87
|
+
5. **Scale the ceremony to `reversibility` — never block, just match the rigor:**
|
|
88
|
+
- **`reversible`** (undo in minutes) — keep it to a line or two. The bar isn't "is this provably right?"
|
|
89
|
+
but **"is it safe enough to try?"** (the consent question — it gives a non-technical cofounder honest
|
|
90
|
+
language to agree to a reversible call without fully evaluating the technical detail). A falsifier is
|
|
91
|
+
encouraged, not required. Don't ceremonialize a two-way door.
|
|
92
|
+
- **`costly` / `one-way`** (real switching cost / effectively permanent) — **require the Falsifier**
|
|
93
|
+
(what would prove this wrong, by when) and **weigh the alternatives** in `## Why` (considered · chosen
|
|
94
|
+
· why-not). These are the calls worth the extra minutes.
|
|
95
|
+
|
|
96
|
+
6. **If `decided_by` is `ai-suggested-ratified` or `ai-autonomous` AND it's `costly`/`one-way`, ask one
|
|
97
|
+
skeptical question — then stop.** *"This came from the model — what's the one thing you'd check before
|
|
98
|
+
you can't undo it?"* Disposition (a moment of skepticism) catches more than any process; install it at
|
|
99
|
+
the single moment it matters. **It's a prompt, never a gate** — forcing verification backfires (it raises
|
|
100
|
+
the odds people rubber-stamp). Record their answer in the Falsifier; if they wave it off, that's their
|
|
101
|
+
call — note it and move on.
|
|
102
|
+
|
|
103
|
+
## Superseding, not editing
|
|
104
|
+
|
|
105
|
+
A decision record is a **historical fact** — it was true when made. Don't rewrite it when you change your
|
|
106
|
+
mind. Instead: write a **new** `DEC` with `supersedes: DEC-MMM`, and flip the old one's `status:` to
|
|
107
|
+
`superseded`. The chain *is* the story of how your thinking evolved — keep it readable, don't erase it.
|
|
108
|
+
|
|
109
|
+
## What this is not
|
|
110
|
+
|
|
111
|
+
- Not an approval gate. `/decide` records a decision; it never blocks one. (BOSS's conscience may *surface*
|
|
112
|
+
a tension; it never picks the decision for you — and with cofounders, it never takes a side.)
|
|
113
|
+
- Not a cap table or a legal instrument. A `DEC` can record *that* you agreed equity splits 60/40 with a
|
|
114
|
+
4-year vest — it does not compute the split, and it is not legal advice. For ownership/equity/vesting,
|
|
115
|
+
the record is the conversation you had; **a real attorney is the authority.**
|
|
116
|
+
- Not for every choice. Over-record and the log rots. Reserve it for the load-bearing and the one-way.
|
|
117
|
+
|
|
118
|
+
## Why it's worth the two minutes
|
|
119
|
+
|
|
120
|
+
The decisions you don't write down are the ones that cause the worst fights and the slowest re-litigation
|
|
121
|
+
— solo (with your future self) and especially with a cofounder. A short, dated, attributed record is the
|
|
122
|
+
cheapest insurance there is against "wait, why did we do it this way?"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feedback
|
|
3
|
+
description: Send feedback about BOSS itself back to the people who build it — a bug, a confusion, a wish, a "this got in my way." User-initiated and transparent: it shows you exactly what it will send (and the small bit of context attached) before anything leaves your machine, then files it as a GitHub issue upstream (or gives you a prefilled link to paste). Never background telemetry. Usage - /feedback [what's on your mind]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /feedback — tell BOSS's makers what's working and what isn't
|
|
7
|
+
|
|
8
|
+
BOSS is an alpha built in the open. The fastest way it gets better is you saying *"this confused me"*
|
|
9
|
+
or *"I wish it could…"* — in the moment, without leaving your work to go find a form.
|
|
10
|
+
|
|
11
|
+
**This skill is the one and only feedback path, and it is always your move.** BOSS does not watch you,
|
|
12
|
+
does not phone home, does not collect usage in the background. Nothing leaves this machine unless you
|
|
13
|
+
read it and say yes. (That's not a nicety — it's the principle: a tool that helps founders build well
|
|
14
|
+
must itself behave well. See `PRINCIPLES.md`.)
|
|
15
|
+
|
|
16
|
+
## 0. Orient (silent)
|
|
17
|
+
|
|
18
|
+
Read `.boss/manifest.json` for the BOSS version + current mode — that's the only context worth
|
|
19
|
+
attaching, and you'll show it to the founder before sending. Don't read anything else; this isn't a
|
|
20
|
+
diagnostics dump.
|
|
21
|
+
|
|
22
|
+
## 1. Get the feedback
|
|
23
|
+
|
|
24
|
+
- If the founder typed something after `/feedback`, that's it.
|
|
25
|
+
- If not, ask **one** open question: *"What's on your mind — a bug, something confusing, a wish, or
|
|
26
|
+
something that got in your way? A sentence is plenty."*
|
|
27
|
+
- Don't interrogate. One round. Take what they give you.
|
|
28
|
+
|
|
29
|
+
## 2. Draft it — and show it before sending
|
|
30
|
+
|
|
31
|
+
Compose a short issue. Title = a tight one-liner. Body =
|
|
32
|
+
- **What they said** (their words, lightly cleaned up — don't editorialize).
|
|
33
|
+
- **Context** (the *only* thing attached, and you state it plainly): `BOSS <version> · <mode> mode ·
|
|
34
|
+
<OS>`. Nothing else — no file contents, no paths, no transcript.
|
|
35
|
+
|
|
36
|
+
Then **show the founder the full title + body** and ask: *"Send this to BOSS's repo as a public GitHub
|
|
37
|
+
issue? It'll be visible at github.com/ajeshh/BlueprintOS. Yes / edit / keep it local."*
|
|
38
|
+
|
|
39
|
+
- **Yes** → step 3.
|
|
40
|
+
- **Edit** → take their changes, re-show, re-ask.
|
|
41
|
+
- **Keep it local** → write it to `.boss/feedback.log` in this project (append, dated) and stop. Tell
|
|
42
|
+
them where it went. Their call is final.
|
|
43
|
+
|
|
44
|
+
## 3. Send it (only on an explicit yes)
|
|
45
|
+
|
|
46
|
+
Try the direct path first:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
gh issue create --repo ajeshh/BlueprintOS --title "<title>" --body "<body>"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
- **Success** → give them the issue URL. Done. Thank them in one line, no fawning.
|
|
53
|
+
- **`gh` missing or unauthed** → don't block. **Fall back:** print a ready-to-paste link —
|
|
54
|
+
`https://github.com/ajeshh/BlueprintOS/issues/new?title=<urlencoded>&body=<urlencoded>` — and the
|
|
55
|
+
plain body, so they can open it in a browser and submit with one click. Also append to
|
|
56
|
+
`.boss/feedback.log` so they keep a copy either way.
|
|
57
|
+
|
|
58
|
+
## Rules
|
|
59
|
+
|
|
60
|
+
- **User-initiated only. Never automatic.** There is no hook, no loop, no background send. If you ever
|
|
61
|
+
feel tempted to "just collect a bit of telemetry," that's the line BOSS exists not to cross
|
|
62
|
+
(`docs/ideas/IDEA-021`). Don't.
|
|
63
|
+
- **Show before send. Consent is the gate.** The founder sees the exact title + body + the one line of
|
|
64
|
+
context before anything is filed. No silent attachment of paths, code, or transcript.
|
|
65
|
+
- **Public issue = say so.** Filing on a public repo means the text is public. State that plainly so
|
|
66
|
+
the founder doesn't paste anything private by surprise.
|
|
67
|
+
- **Never block on tooling.** No `gh`, no auth, offline — the prefilled-link fallback always works.
|
|
68
|
+
- **Thank, don't grovel.** One sincere line. Then back to their work.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: import
|
|
3
|
+
description: Bring existing material into this project — point at a file, a folder, or a URL (Word doc, Google Doc, Obsidian note, PDF, slide deck, online reference) and BOSS pulls a durable copy into docs/source/ and folds it into your idea. Use it during spin-up or anytime later to add to a captured idea. The on-ramp for "I already jotted this somewhere." Usage - /import <path-or-url> [more paths/urls] [IDEA-NNN]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /import — bring your own material in
|
|
7
|
+
|
|
8
|
+
The idea you're building usually exists *before* the project folder does — in a Word doc, a Google
|
|
9
|
+
Doc, an Obsidian vault, a PDF, a deck, a link. This skill is the on-ramp: **point at it, BOSS pulls it
|
|
10
|
+
in.** No retyping, no "where do I even put this."
|
|
11
|
+
|
|
12
|
+
This is the deliberate, add-material counterpart to `/boss` (which ingests during first spin-up).
|
|
13
|
+
Run `/import` anytime — including well after the idea is captured — to add more sources to it.
|
|
14
|
+
|
|
15
|
+
## 0. Orient (silent)
|
|
16
|
+
|
|
17
|
+
Read, in order:
|
|
18
|
+
- `.boss/manifest.json` — current stage.
|
|
19
|
+
- `docs/ideas/INDEX.md` and `docs/IDS.md` — existing ideas + the next free `IDEA-NNN`.
|
|
20
|
+
- If the founder named an `IDEA-NNN`, read that idea doc — you're adding to it, not starting over.
|
|
21
|
+
|
|
22
|
+
Don't announce these reads.
|
|
23
|
+
|
|
24
|
+
## 1. Collect the sources
|
|
25
|
+
|
|
26
|
+
Take everything the founder pointed at — files, folders, URLs, in any mix:
|
|
27
|
+
- **Local files** — `.md`, `.txt`, `.pdf` (read it), `.docx` (extract the text), Obsidian notes, slide
|
|
28
|
+
decks. Read each.
|
|
29
|
+
- **A folder** — read the text-bearing files in it; don't recurse into binaries you can't parse.
|
|
30
|
+
- **URLs** — a Google Doc share link, a published page, a reference. Fetch each.
|
|
31
|
+
- **Nothing given** — ask once: *"Point me at what you've got — a file path, a folder, or a URL (or a
|
|
32
|
+
few). I'll pull them in."*
|
|
33
|
+
|
|
34
|
+
If a source can't be read (image-only PDF, an auth-walled link, an unsupported binary), **say so plainly
|
|
35
|
+
and skip it** — don't guess at its contents. Name what you skipped and why.
|
|
36
|
+
|
|
37
|
+
## 2. Snapshot — the project owns a copy
|
|
38
|
+
|
|
39
|
+
For each source you successfully read, write a durable copy into `docs/source/` (create the folder if
|
|
40
|
+
absent):
|
|
41
|
+
- **A file** → `docs/source/<original-filename>` (copy it in).
|
|
42
|
+
- **A URL** → `docs/source/<slug>.md` with the source URL on the first line, then the fetched text.
|
|
43
|
+
|
|
44
|
+
This is the "create a dupe" the founder asked for: the idea survives if the original moves, changes, or
|
|
45
|
+
goes offline. **Snapshot first, interpret second** — don't paraphrase away the source.
|
|
46
|
+
|
|
47
|
+
## 3. Fold into the idea
|
|
48
|
+
|
|
49
|
+
- **Adding to an existing idea** (`IDEA-NNN` named, or only one idea exists): append a dated entry to
|
|
50
|
+
that idea's capture log noting what you pulled in and the 1-2 lines it changes about the idea's shape.
|
|
51
|
+
Update the "current shape" at the top if the new material genuinely sharpens or shifts it. Reference
|
|
52
|
+
the snapshot paths under `docs/source/`.
|
|
53
|
+
- **No idea yet** (a fresh project, founder ran `/import` instead of `/boss`): this is really spin-up —
|
|
54
|
+
hand off to `/boss`'s shaping. Read all sources, then create `docs/ideas/IDEA-001-<slug>.md` (frontmatter
|
|
55
|
+
`id`, `type: idea`, `owner: pm`, `status: ready`) seeded from the material, and update
|
|
56
|
+
`docs/ideas/INDEX.md`. Don't make the founder run a second command to see their idea captured.
|
|
57
|
+
|
|
58
|
+
## 4. Wrap up — and point at the next step
|
|
59
|
+
|
|
60
|
+
Tight summary: what you pulled in (and into which `IDEA-NNN`), where the copies live (`docs/source/`),
|
|
61
|
+
anything you skipped and why. **End with the single next step** — usually `/canvas <IDEA-NNN>` if the
|
|
62
|
+
idea now has legs, or "keep adding with `/triage` or `/import`" if it's still forming. Close on the
|
|
63
|
+
action, not the recap.
|
|
64
|
+
|
|
65
|
+
## Rules
|
|
66
|
+
|
|
67
|
+
- **Snapshot before interpret.** The project owns a copy of every source you read. Never summarize a
|
|
68
|
+
source away without first saving it.
|
|
69
|
+
- **Skip honestly.** If you can't read something, say so and skip it — no hallucinated contents.
|
|
70
|
+
- **Don't over-capture.** A pasted one-liner doesn't need a `docs/source/` file; a real document does.
|
|
71
|
+
- **One idea, many facets.** Multiple sources for one idea fold into one `IDEA-NNN` — don't spawn an
|
|
72
|
+
idea per file.
|
|
73
|
+
- **Capture, don't build.** Like `/boss`, this is intake — don't start implementing the product here.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: persona
|
|
3
|
+
description: Build your app's target-user persona from your idea, grow it from what you know + online research + any real user research you drop in, and consult it as an agent voice — both to guide product decisions ("would my user want this?") and to QA your builds ("how would she react to this screen?"). A pre-filter that sharpens the questions you take to real users; never a replacement for talking to them. Usage - /persona [derive | enrich <slug> | consult <slug> "question"]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /persona — your user's voice, as a thinking tool
|
|
7
|
+
|
|
8
|
+
The first thing every app has is a *user*. If you're building a chore tracker for moms, the first
|
|
9
|
+
persona is **a mom managing a household** — and most product decisions get easier when you can ask her.
|
|
10
|
+
`/persona` builds that voice from your idea, grows it as you learn more, and lets you consult it: to
|
|
11
|
+
**guide** what you build, and to **QA** what you built.
|
|
12
|
+
|
|
13
|
+
> **What it is:** a sharpening tool — a fast, honest *pre-filter* that helps you write better questions
|
|
14
|
+
> and catch obvious misses. **What it isn't:** a real user. A synthetic persona will tend to like your
|
|
15
|
+
> idea more than a real person would, and it can't know what it wasn't told. Use it to get *ready* for
|
|
16
|
+
> real conversations (Rob Fitzpatrick's *Mom Test*), never to skip them. BOSS will say this once, then
|
|
17
|
+
> get out of the way.
|
|
18
|
+
|
|
19
|
+
## Modes
|
|
20
|
+
|
|
21
|
+
### `derive` (default when no persona exists yet)
|
|
22
|
+
Read the captured idea (`docs/ideas/*.md`) + its canvas if one exists. Propose the **one primary
|
|
23
|
+
target user** (start with one; secondary users come later). Write `docs/personas/<slug>.md`:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
who — one line ("a working mom, 30s-40s, running a household of 4")
|
|
27
|
+
context — when/where/why they'd reach for this (the situation, not demographics)
|
|
28
|
+
jobs — what they're actually trying to get done (jobs-to-be-done, not features)
|
|
29
|
+
pains — what's hard / annoying / failing about how they do it today
|
|
30
|
+
values — what they care about, what would make them trust or abandon a tool
|
|
31
|
+
what we DON'T know yet — the open questions a real conversation would answer (be honest + specific)
|
|
32
|
+
---
|
|
33
|
+
Evidence ledger: synthetic <N%> · real <N%> (starts 100% synthetic)
|
|
34
|
+
Notable refactors: (dated bullets when evidence reshapes the persona)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Name what's a guess. The `what we don't know` block is the most valuable part — it's the interview
|
|
38
|
+
guide for when you talk to a real one.
|
|
39
|
+
|
|
40
|
+
### `enrich <slug>` — grow it from evidence
|
|
41
|
+
Offer the four sources; fold in what they choose; **shift the ledger** (real grows, synthetic shrinks):
|
|
42
|
+
- **Q&A with you** — ask what *you* already know about this user (you chose this problem for a reason —
|
|
43
|
+
you often know a lot). Your knowledge is real evidence (n≥1).
|
|
44
|
+
- **Online research** — run `deep-research` to ground the archetype in real-world data about this
|
|
45
|
+
group. Better than a guess; still averaged, so mark it synthetic-leaning.
|
|
46
|
+
- **Drop in real research** — point at interviews / surveys / notes (a file, folder, or URL); ingest
|
|
47
|
+
via `/import` and fold the real signal in. **This is the strongest source** — it shrinks the
|
|
48
|
+
synthetic share fastest. (A UX researcher dropping a study here is the ideal case.)
|
|
49
|
+
- **Passive** — read the idea / canvas / build for who-the-user-is clues already on record (no new
|
|
50
|
+
tracking; the work already names them).
|
|
51
|
+
|
|
52
|
+
Each enrich pass: update the persona body, add a dated `Notable refactor` bullet, re-weight the ledger.
|
|
53
|
+
|
|
54
|
+
### `consult <slug> "question"` — ask the voice (both directions)
|
|
55
|
+
Answer **in the persona's voice**, and run in whichever direction fits:
|
|
56
|
+
- **Guidance** (before/during build): *"would she want X? how would she react to this flow?"*
|
|
57
|
+
- **QA** (after build): react to a screen / feature you built — structured (first feeling · what she'd
|
|
58
|
+
do · where she'd bounce · what she'd want different), so you can compare versions over time.
|
|
59
|
+
|
|
60
|
+
Every consult: **balance interest with concerns** (don't just cheerlead), **name what the persona
|
|
61
|
+
can't know** (the blind spots from the ledger), and **close with the caveat** — *"that's a synthetic
|
|
62
|
+
read at <real%> real evidence; go ask <N> real ones before you bet on it."*
|
|
63
|
+
|
|
64
|
+
## The discipline (why this is honest and not snake oil)
|
|
65
|
+
|
|
66
|
+
- **Pre-filter, never validation.** A persona consult is a sharpened guess. The conscience uses it to
|
|
67
|
+
push you *toward* real contact (`/canvas` "who's served", `/pretotype` demand test, the Mom Test),
|
|
68
|
+
never as a substitute. If you're about to build for real on persona signal alone, that's the moment
|
|
69
|
+
BOSS asks: *have you talked to one?*
|
|
70
|
+
- **Synthetic shrinks as real grows.** The ledger is visible on purpose — you always see how much of
|
|
71
|
+
"your user" is real evidence vs. BOSS's average. The persona is the same artifact across its life;
|
|
72
|
+
today's version is just early in it.
|
|
73
|
+
- **Name the blind spots.** LLMs reflect internet-averages and can't *do* behavior — only describe it.
|
|
74
|
+
Higher-stakes or niche users (regulated, marginalized, very specific) are exactly where the synthetic
|
|
75
|
+
read misses most; say so loudly for those.
|
|
76
|
+
|
|
77
|
+
## Cohort-aware
|
|
78
|
+
- `first-product` / `non-tech-founder` — plain language; the deliverable is "a clear picture of who
|
|
79
|
+
you're building for + the questions to go ask them," not a research artifact.
|
|
80
|
+
- `eng-builder` / `returning-founder` — terse; lead with the `what we don't know` gaps and the
|
|
81
|
+
cheerleading caveat; they know personas can lie.
|
|
82
|
+
- `domain-expert` — flag hard that domain stakes (clinical/legal/financial) aren't in training data
|
|
83
|
+
with enough specificity; their own expertise outranks the synthetic read.
|
|
84
|
+
|
|
85
|
+
## Rules
|
|
86
|
+
- **One persona first.** Start with the primary user; add segments only when the idea clearly serves
|
|
87
|
+
distinct users.
|
|
88
|
+
- **Real beats synthetic, always.** Dropped-in research and your own knowledge outweigh online
|
|
89
|
+
averages, which outweigh pure derivation. Weight the ledger accordingly.
|
|
90
|
+
- **Caveat every consult.** The go-talk-to-a-real-one line is non-negotiable — a persona that forgets
|
|
91
|
+
it's synthetic is the pseudo-app trap with a friendly face.
|
|
92
|
+
- **It's both.** The same persona guides decisions *and* QAs builds — point it forward or back.
|