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.
Files changed (128) hide show
  1. package/LICENSE +21 -0
  2. package/PRINCIPLES.md +70 -0
  3. package/README.md +213 -0
  4. package/VERSION +1 -0
  5. package/bin/boss +3 -0
  6. package/library/README.md +19 -0
  7. package/library/agents/.gitkeep +0 -0
  8. package/library/agents/mentor-venture.md +57 -0
  9. package/library/hooks/.gitkeep +0 -0
  10. package/library/hooks/auto-log.js +133 -0
  11. package/library/hooks/memory-cue.js +82 -0
  12. package/library/hooks/secrets-guard.js +87 -0
  13. package/library/memory-seed/README.md +29 -0
  14. package/library/memory-seed/durable-facts-example.md +16 -0
  15. package/library/practices/.gitkeep +0 -0
  16. package/library/practices/agent-security.md +111 -0
  17. package/library/practices/ai-adoption-culture.md +104 -0
  18. package/library/practices/ai-ux-patterns.md +246 -0
  19. package/library/practices/celebration-of-done.md +100 -0
  20. package/library/practices/conscience-voicing.md +121 -0
  21. package/library/practices/context-discipline.md +116 -0
  22. package/library/practices/design-system.md +152 -0
  23. package/library/practices/git-workflow.md +119 -0
  24. package/library/practices/harm-taxonomy.md +45 -0
  25. package/library/practices/quality-ratchet.md +48 -0
  26. package/library/practices/revalidation.md +57 -0
  27. package/library/practices/scalable-architecture.md +111 -0
  28. package/library/practices/ship-it-live.md +149 -0
  29. package/library/practices/skill-authoring.md +70 -0
  30. package/library/skills/.gitkeep +0 -0
  31. package/library/skills/boss-learn/SKILL.md +63 -0
  32. package/library/skills/boss-sync/SKILL.md +48 -0
  33. package/package.json +49 -0
  34. package/registry/CHANGELOG.md +2737 -0
  35. package/src/board.js +655 -0
  36. package/src/brain.js +288 -0
  37. package/src/cli.js +542 -0
  38. package/src/conscience.js +426 -0
  39. package/src/insights.js +147 -0
  40. package/src/learn.js +92 -0
  41. package/src/map.js +103 -0
  42. package/src/modes.js +82 -0
  43. package/src/paths.js +36 -0
  44. package/src/registry.js +34 -0
  45. package/src/scaffold.js +138 -0
  46. package/src/sync.js +292 -0
  47. package/src/team.js +103 -0
  48. package/stages/L0-quickstart/manifest.json +12 -0
  49. package/stages/L0-quickstart/template/.claude/agents/coder-generalist.md +31 -0
  50. package/stages/L0-quickstart/template/.claude/agents/mentor-venture.md +57 -0
  51. package/stages/L0-quickstart/template/.claude/agents/pm.md +28 -0
  52. package/stages/L0-quickstart/template/.claude/hooks/conscience.js +89 -0
  53. package/stages/L0-quickstart/template/.claude/hooks/lib/loop-runtime.js +507 -0
  54. package/stages/L0-quickstart/template/.claude/hooks/lib/yaml.js +163 -0
  55. package/stages/L0-quickstart/template/.claude/hooks/memory-cue.js +82 -0
  56. package/stages/L0-quickstart/template/.claude/hooks/secrets-guard.js +87 -0
  57. package/stages/L0-quickstart/template/.claude/rules/your-app-code.md +17 -0
  58. package/stages/L0-quickstart/template/.claude/settings.json +36 -0
  59. package/stages/L0-quickstart/template/.claude/skills/boss/SKILL.md +161 -0
  60. package/stages/L0-quickstart/template/.claude/skills/boss-learn/SKILL.md +63 -0
  61. package/stages/L0-quickstart/template/.claude/skills/boss-sync/SKILL.md +55 -0
  62. package/stages/L0-quickstart/template/.claude/skills/canvas/SKILL.md +112 -0
  63. package/stages/L0-quickstart/template/.claude/skills/comprehend/SKILL.md +72 -0
  64. package/stages/L0-quickstart/template/.claude/skills/decide/SKILL.md +122 -0
  65. package/stages/L0-quickstart/template/.claude/skills/feedback/SKILL.md +68 -0
  66. package/stages/L0-quickstart/template/.claude/skills/import/SKILL.md +73 -0
  67. package/stages/L0-quickstart/template/.claude/skills/persona/SKILL.md +92 -0
  68. package/stages/L0-quickstart/template/.claude/skills/prototype/SKILL.md +114 -0
  69. package/stages/L0-quickstart/template/.claude/skills/triage/SKILL.md +104 -0
  70. package/stages/L0-quickstart/template/.claude/skills/welcome/SKILL.md +262 -0
  71. package/stages/L0-quickstart/template/AGENTS.md +31 -0
  72. package/stages/L0-quickstart/template/CLAUDE.md +57 -0
  73. package/stages/L0-quickstart/template/docs/IDS.md +42 -0
  74. package/stages/L0-quickstart/template/docs/ideas/INDEX.md +24 -0
  75. package/stages/L0-quickstart/template/docs/loops/canvas-loop.md +90 -0
  76. package/stages/L0-quickstart/template/docs/loops/capture-loop.md +64 -0
  77. package/stages/L1-mvp/manifest.json +12 -0
  78. package/stages/L1-mvp/template/.claude/agents/mentor-architect.md +124 -0
  79. package/stages/L1-mvp/template/.claude/agents/mentor-cofounder.md +85 -0
  80. package/stages/L1-mvp/template/.claude/agents/mentor-gtm.md +49 -0
  81. package/stages/L1-mvp/template/.claude/agents/program-manager.md +46 -0
  82. package/stages/L1-mvp/template/.claude/agents/tester.md +42 -0
  83. package/stages/L1-mvp/template/.claude/hooks/auto-log.js +133 -0
  84. package/stages/L1-mvp/template/.claude/rules/feature-context.md +18 -0
  85. package/stages/L1-mvp/template/.claude/skills/ai-cost/SKILL.md +249 -0
  86. package/stages/L1-mvp/template/.claude/skills/ai-failure-states/SKILL.md +226 -0
  87. package/stages/L1-mvp/template/.claude/skills/ai-first-init/SKILL.md +227 -0
  88. package/stages/L1-mvp/template/.claude/skills/close/SKILL.md +170 -0
  89. package/stages/L1-mvp/template/.claude/skills/consult/SKILL.md +72 -0
  90. package/stages/L1-mvp/template/.claude/skills/cost-review/SKILL.md +204 -0
  91. package/stages/L1-mvp/template/.claude/skills/design-tokens-init/SKILL.md +192 -0
  92. package/stages/L1-mvp/template/.claude/skills/drift-deep/SKILL.md +170 -0
  93. package/stages/L1-mvp/template/.claude/skills/evals/SKILL.md +154 -0
  94. package/stages/L1-mvp/template/.claude/skills/extract/SKILL.md +209 -0
  95. package/stages/L1-mvp/template/.claude/skills/judge-traces/SKILL.md +68 -0
  96. package/stages/L1-mvp/template/.claude/skills/log/SKILL.md +64 -0
  97. package/stages/L1-mvp/template/.claude/skills/practice/SKILL.md +92 -0
  98. package/stages/L1-mvp/template/.claude/skills/pretotype/SKILL.md +95 -0
  99. package/stages/L1-mvp/template/.claude/skills/red-team/SKILL.md +137 -0
  100. package/stages/L1-mvp/template/.claude/skills/revalidate/SKILL.md +51 -0
  101. package/stages/L1-mvp/template/.claude/skills/ship/SKILL.md +105 -0
  102. package/stages/L1-mvp/template/.claude/skills/smoke/SKILL.md +43 -0
  103. package/stages/L1-mvp/template/.claude/skills/spec/SKILL.md +145 -0
  104. package/stages/L1-mvp/template/claude-append.md +122 -0
  105. package/stages/L1-mvp/template/docs/loops/ai-failure-state-loop.md +107 -0
  106. package/stages/L1-mvp/template/docs/loops/coordination-loop.md +116 -0
  107. package/stages/L1-mvp/template/docs/loops/cost-budget-loop.md +117 -0
  108. package/stages/L1-mvp/template/docs/loops/cost-review-loop.md +113 -0
  109. package/stages/L1-mvp/template/docs/loops/design-tokens-loop.md +98 -0
  110. package/stages/L1-mvp/template/docs/loops/drift-loop.md +149 -0
  111. package/stages/L1-mvp/template/docs/loops/extraction-loop.md +128 -0
  112. package/stages/L1-mvp/template/docs/loops/focus-loop.md +106 -0
  113. package/stages/L1-mvp/template/docs/loops/pretotype-loop.md +88 -0
  114. package/stages/L1-mvp/template/docs/loops/spec-loop.md +83 -0
  115. package/stages/L2-v1/manifest.json +12 -0
  116. package/stages/L2-v1/template/.claude/agents/db-architect.md +91 -0
  117. package/stages/L2-v1/template/.claude/agents/mentor-business.md +124 -0
  118. package/stages/L2-v1/template/.claude/agents/mentor-fundraising.md +72 -0
  119. package/stages/L2-v1/template/.claude/agents/mentor-pitch.md +84 -0
  120. package/stages/L2-v1/template/.claude/agents/mentor-talent.md +84 -0
  121. package/stages/L2-v1/template/.claude/agents/ui-designer.md +81 -0
  122. package/stages/L2-v1/template/.claude/agents/ux-designer.md +87 -0
  123. package/stages/L2-v1/template/.claude/skills/board/SKILL.md +98 -0
  124. package/stages/L2-v1/template/.claude/skills/design-review/SKILL.md +77 -0
  125. package/stages/L2-v1/template/.claude/skills/ux-check/SKILL.md +93 -0
  126. package/stages/L2-v1/template/claude-append.md +59 -0
  127. package/stages/L2-v1/template/docs/loops/design-drift-loop.md +108 -0
  128. 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.