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,98 @@
1
+ ---
2
+ name: board
3
+ description: The cross-FEAT sequencing surface for {{PROJECT_NAME}}. Reads INDEX + FEAT frontmatter + smoke state + evals state + override entries to produce a live board view — what's open, what's blocked, what's next, what's parallelizable. Owned by `program-manager` (the *when*; distinct from `pm`'s *what*). Usage - /board (or /board --next, /board --blocked, /board --by-cohort)
4
+ ---
5
+
6
+ # /board — the cross-FEAT sequencing surface
7
+
8
+ At MVP the queue was small; `program-manager`'s next-up list lived in conversation. At V1
9
+ there are usually 5+ FEATs in flight, real dependencies between them, real blockers, and a
10
+ real need to surface *what is the project actually working on right now.* `/board` is that
11
+ view.
12
+
13
+ It's a *live read*, not a maintained document. The skill computes it from the frontmatter +
14
+ state of the actual FEAT files. If you want to change the board, change the FEATs — don't
15
+ edit the board view.
16
+
17
+ ## What the board shows
18
+
19
+ By default (`/board` with no flags):
20
+
21
+ ```
22
+ {{PROJECT_NAME}} — board
23
+ mode: {{MODE}}
24
+ smoke: ✓ green (last run: <when>)
25
+ evals: 12 / 14 cases passing across 3 FEATs (2 failing in FEAT-007)
26
+
27
+ In flight (3):
28
+ ⊙ FEAT-005 user-onboarding-flow acceptance: 3/5 smoke: ✓ evals: n/a
29
+ ⊙ FEAT-007 AI-summarization-prompt acceptance: 1/4 smoke: ✓ evals: 4/6 ⚠
30
+ ⊙ FEAT-008 schema-migration-v2 acceptance: 0/3 smoke: ✗ blocked: db-architect review
31
+
32
+ Next-up (2, ordered):
33
+ ◯ FEAT-009 empty-state-illustrations deps: FEAT-005 done
34
+ ◯ FEAT-010 hover-state-microinteractions deps: design-tokens-loop closed
35
+
36
+ Blocked (1):
37
+ ▣ FEAT-006 team-permissions blocked: needs mentor-business call (pricing tier shape)
38
+
39
+ Deferred (1):
40
+ ⌀ FEAT-011 ai-suggest-completion override: skipped — rationale: re-open after FEAT-007 evals stabilize
41
+
42
+ Recently shipped (3, last 14 days):
43
+ ✓ FEAT-002 ✓ FEAT-003 ✓ FEAT-004
44
+ ```
45
+
46
+ ## How to run it
47
+
48
+ 1. **Walk `docs/ideas/FEAT-*.md`** to enumerate every FEAT. Read each one's frontmatter
49
+ (`status`), acceptance-criteria checklist progress, smoke field, evals field.
50
+ 2. **Walk `docs/devlog.md`** for override entries naming FEATs. Filter recent ones.
51
+ 3. **Walk `docs/loops/*.md` state** (use the same logic `boss status --conscience` uses) to
52
+ identify loops that gate any FEATs (e.g., a FEAT depends on `design-tokens-loop` being
53
+ closed).
54
+ 4. **Compute the board.** Group FEATs by status:
55
+ - **In flight** — `status: building`; show acceptance progress + smoke + evals state
56
+ - **Next-up** — `status: ready` (specced, not yet started); show dependencies + suggested order
57
+ - **Blocked** — `status: building` AND smoke is red, or a dep is unclosed, or an override
58
+ was recorded
59
+ - **Deferred** — `status: deferred` or an override entry naming this FEAT exists
60
+ - **Recently shipped** — `status: shipped` within last 14 days (cap at 5)
61
+ 5. **Output the board** in a readable Markdown-friendly text format.
62
+
63
+ ## Flags
64
+
65
+ - `--next` — show only Next-up, ordered with rationale
66
+ - `--blocked` — show only Blocked, with the specific blocker for each
67
+ - `--by-cohort` — group by which persona-cohort the FEAT primarily serves (reads
68
+ `.boss/config.json` cohort + FEAT frontmatter `serves_cohort` if present)
69
+ - `--deferred` — show only Deferred + the re-open conditions from each override
70
+ - `--evals` — show evals state across FEATs; highlight FEATs with failing cases
71
+
72
+ ## How the board interacts with the conscience
73
+
74
+ The board is `program-manager`'s view; the conscience's loops are independent. But they
75
+ intersect at the boundaries:
76
+ - A FEAT in *Next-up* whose `spec-loop`'s entry isn't satisfied (canvas-loop not closed) is
77
+ arguably premature; flag with `⚠` and a one-liner.
78
+ - A FEAT in *Blocked* on `design-tokens-loop` is signal that `/design-tokens-init` should run.
79
+ - Multiple FEATs *Deferred* with overrides pointing at the same upstream concern is signal
80
+ for `pm` or `mentor-venture` — there's a real bottleneck, not just incidental skips.
81
+
82
+ ## What this skill does NOT do
83
+
84
+ - Doesn't edit FEAT files. View-only. To change priority, change the FEAT's frontmatter or
85
+ acceptance state.
86
+ - Doesn't run smoke / evals. It reports their *last known result* per FEAT. To get fresh
87
+ state, run `/smoke` or `/evals` first.
88
+ - Doesn't track dependencies that aren't declared. If `FEAT-008` actually depends on `FEAT-005`
89
+ but the FEAT files don't say so, the board can't show it. Declaring deps in FEAT frontmatter
90
+ (`requires: [FEAT-005]`) is the discipline that makes the board honest.
91
+
92
+ ## Rules
93
+
94
+ - **Live read, not maintained doc.** Don't write a `docs/board.md`. The view IS the board.
95
+ - **Frontmatter is truth.** If the board is wrong, fix the source FEAT file, not the board view.
96
+ - **Brief.** A board view longer than one screen is failing — group, summarize, link to detail.
97
+ - **`program-manager`-owned.** This skill is the program-manager agent's primary surface; when
98
+ ambiguity about priority emerges, route to `program-manager`.
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: design-review
3
+ description: Before-code design review for {{PROJECT_NAME}}. Runs the proposed UI through `ui-designer` (token + visual authority) and `ux-designer` (flows + 5-state requirement) in sequence. Reads `docs/design/DESIGN_TOKENS.md` + `docs/design/STYLE_GUIDE.md` + the relevant FEAT spec. Outputs concrete diffs or numbered issues. Catches token violations + missing states + brand drift BEFORE code commits. Pairs with `/ux-check` (after-code review). Usage - /design-review [FEAT-NNN | path-to-component-spec]
4
+ ---
5
+
6
+ # /design-review — before-code design review
7
+
8
+ Catch design failures *before* they're in production code, where they're cheapest to fix. Most
9
+ of the AI-generated-UI failure modes from IDEA-010 (the 47 blues, pattern reinvention, billion-
10
+ line drift, missing states, brand-default) are catchable at this stage with a structured
11
+ review. After-code review (`/ux-check`) is the second gate; this is the first.
12
+
13
+ ## When to run it
14
+
15
+ - A FEAT introduces or significantly modifies UI — *before* `coder-generalist` writes the code.
16
+ - A new component is being added — *before* the file lands.
17
+ - The founder wants a second look on a design decision they made — anytime.
18
+
19
+ ## How to run it
20
+
21
+ 1. **Read the spec.** The FEAT being reviewed, the proposed component (sketch / mockup /
22
+ description), and the relevant section of any design brief.
23
+ 2. **Read the system.** `docs/design/DESIGN_TOKENS.md` (authoritative tokens), `docs/design/
24
+ STYLE_GUIDE.md` (how tokens compose into patterns), `docs/ideas/CANVAS.md` (Promises cell —
25
+ the brand anchor).
26
+ 3. **Run `ui-designer` first** — pass the spec + the design system; ask for review against:
27
+ - Token compliance (no raw hex; no raw spacing; no font-family inlined)
28
+ - Three-layer architecture preserved (semantic tokens used, not primitives)
29
+ - Brand-anchored choices (matches canvas Promises voice, not internet-default)
30
+ - Reuse-before-creation: does a similar pattern exist in `src/components/`?
31
+ 4. **Run `ux-designer` next** — pass the spec + ui-designer's notes; ask for review against:
32
+ - All 5 states named (default / hover / active / disabled / empty) — plus loading + error
33
+ for async / interactive elements
34
+ - Affordances clear (Norman's lens — the user can tell what's interactive)
35
+ - Nielsen heuristics (visibility, recognition, error prevention, recovery)
36
+ - Accessibility floor: keyboard nav, focus visibility, screen reader output, color-isn't-
37
+ the-only-signal, WCAG 2 AA contrast
38
+ - AI-specific UX (if applicable): options-not-truth, visible confidence, undo/edit/regenerate,
39
+ deliberate failure states
40
+ 5. **Synthesize.** Output:
41
+ - **Token violations** — list each; propose the right token; flag if a new token is
42
+ legitimately needed and which layer
43
+ - **Missing states** — list each missing state; propose what each should be
44
+ - **Brand drift** — flag any visual choices that contradict the canvas Promises voice
45
+ - **Accessibility issues** — listed by WCAG / Nielsen heuristic violated
46
+ - **AI-UX issues** (where applicable) — listed
47
+ 6. **Capture the review** in `docs/design/reviews/<feat-nnn-or-date>.md`. The review is a
48
+ diff against the proposed design, not a critique-only doc — propose every change concretely.
49
+
50
+ ## What this skill does NOT do
51
+
52
+ - Doesn't write the implementation. After review passes, `coder-generalist` writes the code.
53
+ - Doesn't run on existing shipped code. That's `/ux-check`'s job.
54
+ - Doesn't approve when an override is recorded. The founder can override a finding (record in
55
+ the review doc with substantive rationale); the review respects.
56
+
57
+ ## Cohort-aware delivery
58
+
59
+ Per `.boss/config.json` cohort declaration (v0.20+):
60
+ - `vibe-coder-newbie` / `first-product`: explain *why* each token-compliance / state-coverage
61
+ point matters; this cohort is most likely to find design discipline foreign
62
+ - `eng-builder` / `returning-founder`: terse list of violations; assume context
63
+ - `vibe-virtuoso`: lean into the architecture (atomic discipline, token layer-cake); skip the
64
+ 101 explanations
65
+ - `non-tech-founder` / `domain-expert`: plain language; emphasize the user-facing consequences
66
+ of each issue
67
+ - `indie-hacker`: right-sized — avoid suggesting heavier discipline than the project earns
68
+
69
+ ## Rules
70
+
71
+ - **Before code.** This review is BEFORE the implementation. If you're reviewing shipped code,
72
+ you're running the wrong skill — use `/ux-check`.
73
+ - **Propose, don't just critique.** Every finding includes a specific change suggestion.
74
+ - **Reuse first.** The first question on every new component: *does a similar pattern exist?*
75
+ - **Cite the practitioner / heuristic.** "Violates Nielsen #4 — consistency and standards"
76
+ beats "this is inconsistent."
77
+ - **Capture the review.** Without `docs/design/reviews/`, the discipline doesn't compound.
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: ux-check
3
+ description: After-code UX review for {{PROJECT_NAME}}. Run against shipped UI to catch what slipped through `/design-review` or accumulated as drift. Walks the actual user journey (not the spec), checks the 5 states are real (not just designed), runs accessibility heuristics, applies AI-specific UX where relevant. Pairs with `/design-review` (before-code) — same lens, different timing. Usage - /ux-check [route-or-component-path | FEAT-NNN]
4
+ ---
5
+
6
+ # /ux-check — after-code UX review
7
+
8
+ The before-code review catches design-spec failures; this skill catches *implementation*
9
+ failures — the gap between what was specced and what shipped. Most production UX failures
10
+ live in this gap: the empty state was designed but never built; the loading state defaults to
11
+ a spinner instead of the designed skeleton; the error state shows raw stack traces because
12
+ the recovery path was an afterthought.
13
+
14
+ This is also where AI-generated drift becomes visible. Even with `/design-review` upstream, the
15
+ `coder-generalist` (or AI doing the same role) sometimes ships a slight variant that
16
+ accumulates. `/ux-check` catches that.
17
+
18
+ ## When to run it
19
+
20
+ - A FEAT just landed and is functionally working — *before* it's considered "shipped."
21
+ - A user reported a UX issue — start `/ux-check` here, walk to where the issue surfaces.
22
+ - Routine audit — run against the most-recently-shipped FEATs every 1-2 weeks.
23
+ - A new persona-reaction (v0.19) surfaced a UX concern — `/ux-check` validates whether the
24
+ persona's read matches the shipped reality.
25
+
26
+ ## How to run it
27
+
28
+ 1. **Pick the surface.** A specific route, a component, or the FEAT-NNN whose UI is being
29
+ reviewed.
30
+ 2. **Walk the actual flow.** Not the spec — the SHIPPED experience. Open the page; click
31
+ through; trigger every state.
32
+ 3. **Check the 5 states are real:**
33
+ - Default — does it look like the design?
34
+ - Hover — feedback visible?
35
+ - Active — feedback during the action?
36
+ - Disabled — *and the reason for disabled* (so the user can act on it)?
37
+ - Empty — designed copy + visual, not "no results"
38
+ - Loading — skeleton (almost always) not spinner
39
+ - Error — recovery path, not just error text
40
+ 4. **Accessibility heuristics:**
41
+ - Tab through every interactive element; focus visible at each step?
42
+ - Read with screen reader (or use semantic HTML inspection); does the announced output
43
+ make sense in isolation?
44
+ - Color isn't the only signal (red alone for error, green alone for success — fail)
45
+ - Contrast ratios meet WCAG 2 AA
46
+ - Touch targets ≥ 44×44 px on mobile / responsive
47
+ 5. **Nielsen heuristics walk:**
48
+ - **#1 Visibility of system status** — does the user always know what's happening?
49
+ - **#3 User control and freedom** — is undo / cancel / back available where consequential?
50
+ - **#5 Error prevention** — does the design avoid errors rather than just handle them?
51
+ - **#9 Help users recognize/diagnose/recover from errors** — error states with recovery
52
+ paths?
53
+ 6. **AI-specific UX (where applicable):**
54
+ - AI as **options**, not truth — visible confidence; multiple plausible answers where
55
+ uncertainty exists
56
+ - **Human-in-the-loop** on consequential actions (no auto-apply on irreversible)
57
+ - **Undo / edit / regenerate** on AI outputs
58
+ - **Deliberate failure states** — what does the user get when the AI is unavailable / wrong /
59
+ slow?
60
+ 7. **Capture findings** in `docs/design/ux-check-<feat-or-date>.md`. Each issue: severity
61
+ (blocking / serious / minor / nit), the specific scene, the proposed fix.
62
+
63
+ ## What this skill does NOT do
64
+
65
+ - Doesn't fix the code. Findings route to `coder-generalist` (or stack-specific coder) for
66
+ fixes.
67
+ - Doesn't replace usability testing with real users (Erika Hall's discipline — *Just Enough
68
+ Research*). Heuristic walkthroughs catch a lot but miss what real users do.
69
+ - Doesn't approve when issues are recorded as overrides. Same override discipline as
70
+ everywhere else: skip with substantive rationale + re-open conditions.
71
+
72
+ ## How findings feed back
73
+
74
+ - **Token violations** (raw hex in shipped code) → `design-drift-loop` is detecting this; this
75
+ skill cross-confirms
76
+ - **Pattern reinvention** (new component that duplicates existing) → flag the duplicate;
77
+ propose consolidation
78
+ - **Missing states** → these are the most common shipped-UX failures; track them as a category
79
+ in `docs/design/ux-check-summary.md` so you can see if a particular state-category is your
80
+ pattern weakness
81
+ - **AI-UX issues** → may surface needs for the v0.20 cohort-aware-conscience design (the
82
+ conscience speaks differently per cohort about how to fix AI-UX)
83
+
84
+ ## Rules
85
+
86
+ - **Walk the actual flow.** The spec might say the empty state is designed; the shipped
87
+ reality might say "No results." Trust the experience, not the spec.
88
+ - **Severity matters.** A blocking accessibility issue is not the same as a polish issue;
89
+ don't flatten the list.
90
+ - **Capture every check.** Without `docs/design/ux-check-*.md` files, the discipline doesn't
91
+ compound.
92
+ - **Pair with personas (v0.19) where relevant.** A persona's reaction to a flow can surface
93
+ cohort-specific UX failures that the heuristic walk misses.
@@ -0,0 +1,59 @@
1
+ ## V1 working rules (added on `boss unlock v1`)
2
+
3
+ > {{MODE}} mode is *ready for a real, shippable release*. The design layer turns on, the second
4
+ > tier of mentors arrives, and discipline tightens on the parts that matter when real users meet
5
+ > the product. Same JIT principle — nothing imposed until earned — but the V1-stage ceremonies
6
+ > are now earned.
7
+
8
+ 1. **Design tokens are authoritative.** Every style value comes from `docs/design/DESIGN_TOKENS.md`
9
+ + the corresponding code file. The `design-drift-loop` watches for drift — raw hex codes,
10
+ near-duplicate components, tokens-file-untouched-while-components-grow. New colors are added
11
+ to the tokens, never inline. (Future: PostToolUse hook for hardcoded-style detection lands in
12
+ v0.23.)
13
+ 2. **`/design-review` before code; `/ux-check` after.** Design choices that touch user-facing
14
+ surfaces run through both. Review by `ui-designer` (token + visual authority) and `ux-designer`
15
+ (flows + states). The 5-state requirement is non-optional: every interactive element specifies
16
+ default / hover / active / disabled / empty (and loading where relevant).
17
+ 3. **`/board` is the sequencing surface.** Cross-FEAT prioritization. Read by `program-manager`
18
+ (the *when*, not the *what*). What's blocked, what's parallelizable, what's next.
19
+ 4. **Data shape is a decision, not an accident.** `db-architect` reviews schema before code, even
20
+ in solo-builder mode. Schema migrations are first-class; ad-hoc column adds are flagged.
21
+ 5. **The mentor board has full V1 quorum.** `mentor-business` (model + pricing — Patrick Campbell,
22
+ Madhavan Ramanujam, the right-sized voices). `mentor-fundraising` (Janz, Skok — defaulting to
23
+ "don't raise" unless earned). `mentor-pitch` (Raskin spine, Miller story-driven, Neumeier
24
+ simplicity). `mentor-talent` (Hughes Johnson, the right-sized team voices). All advisory; never
25
+ binding legal/financial/medical.
26
+ 6. **The conscience still runs.** Every prior moment (caution, Done, restraint, coherence) keeps
27
+ firing — V1 doesn't replace earlier discipline, it adds the V1-specific surface.
28
+
29
+ ## What V1 adds (alongside MVP)
30
+
31
+ - **Skills:**
32
+ - `/board` — cross-FEAT sequencing surface (`program-manager`'s authoritative view)
33
+ - `/design-review` — before-code design review against tokens + brand + 5 states
34
+ - `/ux-check` — after-code review of flows, interaction patterns, Nielsen heuristics
35
+ - **Builder agents:**
36
+ - `ui-designer` — token + visual authority. Cites Brad Frost (Atomic Design), Nathan Curtis
37
+ (layer-cake tokens), Jina Anne (W3C DTCG). Refuses raw hex unless overridden; pairs with
38
+ `voice-keeper` (BOSS-internal) when copy is involved.
39
+ - `ux-designer` — flows + states + interactions. Cites Don Norman (affordances), Jakob
40
+ Nielsen (10 heuristics), Steve Krug (clarity), Luke Wroblewski (forms/mobile).
41
+ - `db-architect` — schema design, indexes, query patterns. Cites the AI-native data voices
42
+ (Liu on structured outputs) + classical (Stonebraker, Date, Codd).
43
+ - **Mentor agents** (promoted from BOSS-local in v0.15 to template here):
44
+ - `mentor-business` — model, pricing, packaging, willingness-to-pay
45
+ - `mentor-fundraising` — whether / when / how to raise; defaults to *don't*
46
+ - `mentor-pitch` — story + deck + 60-second-version + demo arc
47
+ - `mentor-talent` — first hires, contractor vs employee, operating cadence
48
+ - **Loops:**
49
+ - `design-drift-loop` — V1-stage; emits the `coherence` moment when system-vs-code drift
50
+ exceeds threshold (raw hex codes appearing, near-duplicate components, tokens file
51
+ stale while components grow)
52
+ - **Conventions:**
53
+ - `docs/design/DESIGN_TOKENS.md` is authoritative (created at MVP via `/design-tokens-init`;
54
+ enforced at V1)
55
+ - `docs/design/STYLE_GUIDE.md` documents how tokens compose into patterns
56
+ - `docs/architecture/` carries db-architect's schema decisions
57
+ - `docs/board.md` (or live-state computed from FEAT frontmatter) drives `/board`
58
+ - **Graduation:** when the team grows, the org gets real, and a product council needs to be a
59
+ thing — `boss unlock scale`.
@@ -0,0 +1,108 @@
1
+ ---
2
+ id: design-drift-loop
3
+ type: loop
4
+ stage: L2-v1
5
+ runner_type: hook
6
+ attributed_to: [Brad Frost, Nathan Curtis, Diana Mounter]
7
+ also_relevant: [Dan Mall, Jina Anne, Ajesh Shah]
8
+ entry:
9
+ - exists: { path: docs/design/DESIGN_TOKENS.md }
10
+ exit:
11
+ - count_at_least:
12
+ path_glob: src/**
13
+ pattern: '#[0-9a-fA-F]{3,8}\b'
14
+ min: 1
15
+ exclude_files_matching: '\.tokens?\.|\.theme\.|DESIGN_TOKENS'
16
+ drift_moment: coherence
17
+ ---
18
+
19
+ # Loop: design-drift (V1)
20
+
21
+ The V1-stage counterpart to `design-tokens-loop` (MVP). MVP-stage gates *whether the tokens
22
+ exist*; V1-stage gates *whether the tokens are still authoritative.* The drift signal: raw hex
23
+ codes appearing in source files, near-duplicate components multiplying, the tokens file going
24
+ stale while components grow. The IDEA-010 failure mode catalog (47 blues, pattern
25
+ reinvention, billion-line drift) materializing despite the MVP-stage discipline.
26
+
27
+ `runner_type: hook` — the conscience hook evaluates this on every UserPromptSubmit at V1. The
28
+ entry predicate (tokens file exists) is met for any project that has unlocked V1 with the
29
+ MVP-stage `/design-tokens-init` having been run. The exit predicate is **inverted** — when the
30
+ exit predicate *fires* (≥1 raw hex code in code, excluding the tokens-file itself), the loop
31
+ is "stalled" and the conscience emits `coherence`.
32
+
33
+ This is a subtle pattern worth naming: most loops have *positive* exit predicates ("the
34
+ artifact exists"). This loop's exit predicate is *the bad signal* — "raw hex codes exist" —
35
+ and the loop is "drift-emitting" when that bad-signal is present. The IDEA-008 primitive
36
+ supports this without modification (predicate ok-ness is just boolean state).
37
+
38
+ ## Entry artifact
39
+
40
+ `docs/design/DESIGN_TOKENS.md` exists. Set during MVP-stage via `/design-tokens-init`. If a
41
+ project is in V1 mode without this file, design-tokens-loop should re-open (founder skipped
42
+ it at MVP).
43
+
44
+ ## Purpose
45
+
46
+ Catch design-system drift early. When a raw hex code lands in committed source code, the
47
+ conscience surfaces a `coherence` nudge — "you shipped `#FF6B35` directly in
48
+ `src/components/<X>`; should this be a new token in the system (and then referenced by
49
+ name)?" The founder either:
50
+ - Routes the value through the token system (the fix)
51
+ - Records an override (legitimate when the value is genuinely one-off / debug / non-shipping)
52
+
53
+ ## Exit artifact
54
+
55
+ This loop is "closed" when **no raw hex codes** exist in source code (excluding the tokens
56
+ file itself and any `*.tokens.*` / `*.theme.*` config files where raw values legitimately
57
+ live).
58
+
59
+ ## Drift
60
+
61
+ `entry: satisfied` (tokens file exists) AND `exit: not satisfied` (raw hex codes exist) →
62
+ loop open → conscience emits `coherence`.
63
+
64
+ Confidence scales with the count of raw hex codes:
65
+ - 1-3: low (might be transient — feature in flight)
66
+ - 4-10: medium (real accumulation)
67
+ - 11+: high (the 47-blues failure mode is in progress)
68
+
69
+ The voice (cohort-aware per v0.20):
70
+ - `vibe-coder-newbie` / `first-product`: explain *why* this matters; route to the token
71
+ - `eng-builder` / `returning-founder`: terse — list the files, propose the consolidation
72
+ - `vibe-virtuoso`: lean into the architecture — "your component pattern's drifting; want me
73
+ to consolidate to the token?"
74
+ - `non-tech-founder` / `domain-expert`: plain language — "the visual system is drifting; the
75
+ AI will compound this if we don't fix it now"
76
+ - `indie-hacker`: right-sized — "if this is throwaway, override; if it's keeping, consolidate"
77
+
78
+ ## How to remix
79
+
80
+ - **Skip:** legitimate when the UI is genuinely one-off (a debug page, an internal admin
81
+ tool, a transient feature). Override grammar:
82
+ ```
83
+ - **OVERRIDE:** proceeded with raw hex in `src/<file>` — rationale: <one-off /
84
+ debug / not-user-facing>; expires <date or never>.
85
+ ```
86
+ - **Swap predicate scope:** add `not_path_glob` filters to exclude specific directories
87
+ (e.g., `src/admin/**`) if a whole directory legitimately operates outside the design system.
88
+ Edit this loop spec's frontmatter; record the rationale in `docs/devlog.md`.
89
+ - **Tighten predicate:** add detection for near-duplicate components (similar file sizes,
90
+ similar import patterns) — V1+ heuristic. Author the predicate; consider promoting via
91
+ `/boss-learn` if it generalizes.
92
+
93
+ ## When this loop re-opens
94
+
95
+ - A raw hex code is added to a source file
96
+ - The tokens file is renamed or deleted (entry fails — re-open as unopenable; route to
97
+ `/design-tokens-init` to re-establish)
98
+ - A new stack is introduced where the predicate's regex doesn't match — update the spec
99
+ with the new stack's pattern
100
+
101
+ ## Future v0.23+: PostToolUse hook
102
+
103
+ A PostToolUse hook (fires *after* Edit/Write tool calls) can catch raw style values *at
104
+ write-time* — before they're committed. The hook would flag the value, propose the token,
105
+ and let the founder accept/override. Deferred from v0.22 because PostToolUse is a different
106
+ hook surface than UserPromptSubmit (BOSS's only hook type today). The pre-commit drift
107
+ detection (this loop) is the v0.22 substitute; the at-write-time detection is the
108
+ v0.23+ upgrade.
@@ -0,0 +1,13 @@
1
+ # L3 · Scale — NOT YET AUTHORED
2
+
3
+ The full agentic-org mode — "a fully blown-out, complex app." Planned contents (generalized from dhun):
4
+
5
+ - PM org: Chief of Staff (`pm`) + Principal-PM pattern, `/pm`, `/pm-roundup`, `/product-council`
6
+ - lab governance tiers (3-tier change control for algorithm-like subsystems)
7
+ - `/refactor-wave` (Saaf/Dabba wave decomposition) + rollback
8
+ - `/code-health`, `/perf-check`
9
+ - `/saturday` cadence chain, `/reflect`
10
+ - full IDS: `RFC-NNN`, `DEC-...`, `EXP-NNN`, `AUDIT-NNN`
11
+ - agents: `historian`, `code-health-lead`, `release-manager`, Principal PMs
12
+
13
+ To author: add `manifest.json` + `template/` here.