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,45 @@
1
+ ---
2
+ id: PRACTICE-harm-taxonomy
3
+ type: practice
4
+ owner: mentor-humane
5
+ status: active
6
+ host: stack-neutral
7
+ provenance: distilled via /vet RVW-045 from Anthropic's Unified Harm Framework (5 dimensions) + Ada Lovelace Institute's advanced-AI-assistant harms (4 relationship-harms). Re-homed from a BOSS-local agent edit into a shippable practice per the mentor-architect boundary verdict (2026-06-20) — the humane lens is cross-cutting, so it belongs in a practice every mentor + the conscience can cite, not inside one agent. BOSS v0.84.0.
8
+ ---
9
+
10
+ # Practice — Harm taxonomy (name the axis, don't improvise)
11
+
12
+ > **Where this sits.** The humane lens (Principle #6) is *cross-cutting* — it belongs inside every
13
+ > mentor, the conscience, and the canvas's Risks & Harms cell, not behind one agent's door. This is the
14
+ > shared vocabulary they all reason against, so "who could this harm?" gets a checklist instead of a
15
+ > vibe. Its product-design twin is the dark-pattern checklist in [`ai-ux-patterns.md`](ai-ux-patterns.md).
16
+
17
+ "Who could this harm?" is sharper reasoned against *named axes*. Two complementary lenses — run a choice
18
+ past both before you say "no harm":
19
+
20
+ ## Five harm dimensions (Anthropic, Unified Harm Framework)
21
+
22
+ **physical · psychological · economic · societal · individual-autonomy** — each weighted by
23
+ *likelihood × scale*. "Individual autonomy" maps straight onto BOSS's attention/agency/dignity language.
24
+
25
+ ## Four relationship-harms of personalized AI (Ada Lovelace)
26
+
27
+ **manipulation · emotional dependence · anthropomorphism · overreliance** — the diffuse,
28
+ relationship-level harms conventional product-safety thinking misses, and the ones most live for a
29
+ founder building a companion / affective AI product.
30
+
31
+ ## How to use it
32
+
33
+ - **mentor-venture / `/canvas`:** at the Risks & Harms cell, walk both lists — name the *worst-served*
34
+ person, not an abstraction.
35
+ - **The conscience:** when a moment fires on a harm, name *which axis* it's on (specific beats "this
36
+ seems bad").
37
+ - **The founder's product:** pair with `ai-ux-patterns.md`'s dark-patterns + `/red-team --humane`.
38
+ - **Reflexively — BOSS's own voice:** anthropomorphism / overreliance discipline BOSS too. The "seasoned
39
+ hand who doesn't need the credit" resists para-social pull, performed warmth, and being leaned on as an
40
+ oracle.
41
+
42
+ ## Altitude / JIT
43
+
44
+ Not a wall on a Quickstart. The conscience surfaces the relevant axis JIT; the full taxonomy is the
45
+ reasoning *behind* a humane nudge, not a checklist shoved at a day-one founder (Principle #2).
@@ -0,0 +1,48 @@
1
+ ---
2
+ id: PRACTICE-quality-ratchet
3
+ type: practice
4
+ owner: pm
5
+ status: active
6
+ host: stack-neutral
7
+ provenance: ported UP from the dhun dogfood (.ratchet/ + /code-health gate) via the 2026-06-20 method scan — BOSS v0.48.0
8
+ ---
9
+
10
+ # Practice — The quality ratchet (a baseline that only moves the right way)
11
+
12
+ > **The problem this kills: silent backsliding.** A codebase accumulates the thing you're trying to
13
+ > reduce — `unwrap()`s, `any`s, TODOs, untyped boundaries, skipped tests, bundle bytes — one
14
+ > reasonable-looking change at a time. No single diff looks bad; the trend is the damage. A ratchet
15
+ > turns the trend into a gate: pick one number, write it down, and let it move only in the direction
16
+ > you want.
17
+
18
+ ## The mechanism (deliberately minimal)
19
+
20
+ 1. **Pick one metric** that proxies the quality you care about and can be counted mechanically
21
+ (a grep count, a coverage %, a bundle size, a lint-violation total).
22
+ 2. **Baseline it.** Write the current number to one file (e.g. `.ratchet/<metric>.txt`). One number,
23
+ no ceremony.
24
+ 3. **Gate regressions.** A check (CI, a hook, a `/smoke` step) recomputes the number; if it moved the
25
+ wrong way, the gate trips. Improving the number updates the baseline (the ratchet clicks tighter).
26
+ 4. **Log the why, elsewhere.** When the baseline moves — especially if an override let it loosen — a
27
+ one-line note in a devlog/CHANGELOG records *why*. The ratchet file stays a bare number; the
28
+ reasoning lives where reasoning lives.
29
+
30
+ ## Why one number, one direction
31
+
32
+ The power is in the constraint. A dashboard of twelve metrics gets ignored; one number with a hard
33
+ direction is a decision you can't accidentally skip. The ratchet doesn't ask you to fix everything —
34
+ it asks you to **never make it worse**, which is the achievable version of quality discipline on a
35
+ fast-moving build. (Principle #1: extract the reusable discipline, not a one-off cleanup.)
36
+
37
+ ## When to reach for it vs. when not to
38
+
39
+ - **Reach for it** when something you care about degrades gradually and reversibly, and a single
40
+ countable proxy exists (error-handling debt, type coverage, test count, a11y violations).
41
+ - **Don't** ratchet a number that can't be gamed-proof or that punishes legitimate growth (raw LOC,
42
+ file count). A ratchet on the wrong metric just adds friction. And don't add the gate before the
43
+ metric has earned it — premature ceremony (Principle #2).
44
+
45
+ ## Relationship to BOSS
46
+
47
+ A CLI `boss ratchet` is a *possible* DOWN later — but only once a metric earns it. For now this is the
48
+ named pattern a founder (or BOSS's own repo) can apply by hand or wire into `/smoke`. See `IDEA-027`.
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: PRACTICE-revalidation
3
+ type: practice
4
+ owner: pm
5
+ status: active
6
+ host: stack-neutral
7
+ provenance: ported UP from the dhun dogfood (docs/workflows/lifecycles/REVALIDATION.md) via the 2026-06-20 method scan — BOSS v0.48.0
8
+ ---
9
+
10
+ # Practice — Revalidation (the 3-line gate before paused work re-enters build)
11
+
12
+ > **The problem this kills: zombie features.** Work gets deferred for a good reason — a blocker, a
13
+ > capacity call, a "not yet." Months later it gets picked back up *on momentum*, never re-checked
14
+ > against a world that moved. The result is building something the project no longer needs. The fix
15
+ > is a deliberately tiny gate: three questions, answerable in a minute, before any paused item
16
+ > re-enters the build.
17
+
18
+ ## The gate
19
+
20
+ Before a `deferred`/`paused` idea or feature becomes active again, its owner answers three lines:
21
+
22
+ 1. **Still relevant?** — Is the pain/opportunity it addresses still real and still felt?
23
+ 2. **Still aligned?** — Does it still fit the current goal / canvas / roadmap, or did the direction move?
24
+ 3. **Has anything changed the answer?** — New evidence, a shipped dependency, a host/model shift, a
25
+ competitor, a dead assumption?
26
+
27
+ ## The outcome matrix
28
+
29
+ | Answers | Outcome |
30
+ |---|---|
31
+ | All three **yes** | **Revive.** Move to active; carry on. |
32
+ | Any **no** | **Rescope or kill.** Don't build it as-was. Either reshape it to the new reality or close it with a reason logged. |
33
+ | **Unclear** | **Re-pause** with a *new* `paused_reason` and a `next_review` date. Don't let it drift back in by default. |
34
+
35
+ ## Why it's three lines, not a re-spec
36
+
37
+ The gate has to be *cheaper than the temptation to skip it*. A full re-spec is ceremony; people skip
38
+ ceremony and build the zombie. Three questions clear the bar of "I'll actually do this" — that's the
39
+ whole design. (Principle #2: just-in-time, never premature ceremony.)
40
+
41
+ ## When it fires
42
+
43
+ - A board / RESUME item flagged **stale** (no movement past its `next_review`, or 14d+ untouched).
44
+ - Any time someone says "let's pick up X" about deferred work.
45
+ - Default review intervals when an item is paused: *blocked* → when the blocker ships + 1 week;
46
+ *capacity* → +90 days. Set `next_review` so the gate has a trigger.
47
+
48
+ ## Frontmatter hooks (what makes it automatable)
49
+
50
+ The gate runs off metadata the doc already carries: `status: deferred`, `paused_at`, `paused_reason`,
51
+ `next_review`. A board can surface "time to revalidate" the moment `next_review` passes — the practice
52
+ and the metadata are two halves of one mechanism.
53
+
54
+ ## BOSS's own dogfood
55
+
56
+ BOSS's `docs/RESUME.md` carries a long deferred list and a backlog catalog (IDEA-012). This practice
57
+ is what `/revalidate` runs against them — BOSS eats it first. See `IDEA-027`.
@@ -0,0 +1,111 @@
1
+ ---
2
+ id: PRACTICE-scalable-architecture
3
+ type: practice
4
+ owner: mentor-architect
5
+ status: active
6
+ host: stack-neutral
7
+ provenance: distilled from the 2026-06-20 founding-teams research (RESEARCH-COMPENDIUM-2026-06-20 Part B7 — technical scaffolding that survives the climb) — Fowler MonolithFirst, Shopify's 2.8M-line modular monolith [EVIDENCE], Bezos one-way/two-way doors, Factory.ai "documented conventions rot; enforced conventions compound", Notion's eslint ratchet — BOSS v0.89.0, FEAT-023 thread 2
8
+ ---
9
+
10
+ # Practice — Architecture that survives the climb (defer the tax, enforce the conventions)
11
+
12
+ > **The spine.** The value is never the rule — it's the **enforcement loop**. A convention an agent (or
13
+ > the fiftieth hire) can't enforce against itself rots within a week. AI sharpens this to a point: an agent
14
+ > re-derives the codebase's conventions from scratch every session, so anything you only *wrote down*
15
+ > drifts, and anything you *encoded as a check* compounds. Factory.ai's line is the cleanest statement of
16
+ > it: **"documented conventions rot; enforced conventions compound."** This practice is two moves —
17
+ > **defer the architecture costs you can defer**, and **encode the conventions you can't afford to lose** —
18
+ > so a fast AI build doesn't dig a hole that's expensive to climb out of.
19
+
20
+ ## Modular-monolith-first, extract when forced
21
+
22
+ Start with **one deployable**. Resist the pull to split into services before a real seam demands it
23
+ (Fowler's MonolithFirst; Shopify runs a **2.8M-line modular monolith** [EVIDENCE] — "microservice envy"
24
+ is on the *Hold* ring of the ThoughtWorks radar for a reason). The distributed-systems tax — network
25
+ calls, partial failure, deploy orchestration, eventual consistency — is real and you pay it forever once
26
+ you take it on. At n=1–5 with an AI writing most of the code, that tax buys you nothing and costs you
27
+ velocity.
28
+
29
+ - **The *modular* half is the part that's load-bearing.** A monolith isn't a license for a mud-ball.
30
+ Keep clear module boundaries *inside* the single deployable — each feature/domain owns its code, talks
31
+ to others through a named interface, doesn't reach into another's internals. That's what makes the
32
+ eventual extraction *cheap when forced*: you cut along a seam that already exists, instead of
33
+ untangling one that doesn't. A `FEAT` is a natural module.
34
+ - **"Extract when forced"** means the trigger is a real constraint — a scaling wall, a team that needs
35
+ independent deploys, a compliance boundary — not an aesthetic preference or a blog post. Until then,
36
+ the monolith is the right answer, not the embarrassing one.
37
+
38
+ ## Spend the rigor on the one-way doors — and the schema is the one
39
+
40
+ Most architecture decisions are two-way doors (Bezos): reversible, so decide fast and cheap. **One is
41
+ not — the database schema.** Data outlives code; a bad migration on live data is the change you can't
42
+ take back. So that's where the ceremony goes, from the *first table*:
43
+
44
+ - **Migrations-as-code from day one.** Every schema change is a versioned, reviewed, replayable migration
45
+ file in the repo — never a hand-run `ALTER TABLE` on the database. This is the single thing that's
46
+ genuinely expensive to retrofit (evodb / evolutionary-database discipline), so it's the one piece of
47
+ upfront ceremony that pays for itself immediately.
48
+ - **The migration log *is* a guardrail against AI schema drift.** An agent generating schema changes
49
+ across sessions will happily diverge — add a column here, rename one there, no record of why. The
50
+ migrations directory turns that into a reviewable, ordered, ownable history: the same artifact that
51
+ lets you replay the schema also lets a human (and the next agent) see what changed and veto what
52
+ shouldn't have. Wire schema changes into the **high-risk review tier** (see
53
+ [`git-workflow.md`](git-workflow.md)).
54
+
55
+ ## Conventions as code (enforced, not remembered)
56
+
57
+ A convention only counts if a machine enforces it — otherwise it's a suggestion an agent forgets.
58
+
59
+ - **Formatting is law, not taste.** Adopt a formatter and let it end the style debate permanently
60
+ (Prettier, or **Biome** — its single binary is genuinely agent-friendly for a new repo: one tool, no
61
+ config archaeology). No human and no agent argues about formatting again; the tool decides on save.
62
+ - **Boundaries as lint.** The module boundaries above are worth nothing if anyone can quietly cross them.
63
+ Encode them as lint rules / import boundaries / architectural fitness functions so a crossing *fails a
64
+ check*, not *gets noticed in review* (which it won't, at AI output speed). Start with the principle and
65
+ the lint rules you can write today; the heavier custom-plugin / fitness-function tooling is **NOT-YET**
66
+ until the surface area earns it (Principle #2).
67
+ - **Types at the boundary.** Where the stack has them, turn the strict knobs on early (`strict` mode,
68
+ no-implicit-any) — they're the cheapest enforced convention there is, and they're far more painful to
69
+ retrofit onto a large AI-generated codebase than to start with.
70
+
71
+ ## The ratchet holds the line (extends `quality-ratchet`)
72
+
73
+ The mechanism for *keeping* any of this — module-boundary crossings, schema-drift, type violations,
74
+ skipped tests — is the [`quality-ratchet`](quality-ratchet.md) already in BOSS's library: pick one
75
+ countable number, baseline it, and let it move **only the right way**, gated in `/smoke`. The point of
76
+ naming it here is the architectural application: **the gate holds the line, not the reviewer.** At AI
77
+ output speed a human reviewer cannot be the thing standing between the codebase and a thousand small
78
+ regressions — a "no-new-violations" baseline (Notion's eslint-seatbelt pattern) can. Don't restate the
79
+ ratchet mechanics; reach for that practice and point it at an architecture metric.
80
+
81
+ ## One canonical context file (don't re-derive the rules)
82
+
83
+ The conventions an agent *can't* lint — the why-we're-shaped-this-way, the domain language, the
84
+ landmines — belong in **one canonical, version-controlled context file** (CLAUDE.md / the AGENTS.md
85
+ standard), pruned ruthlessly. The 2026 finding is counterintuitive and worth holding: **the failure mode
86
+ is over-length, not under-spec** — a bloated context file gets *ignored* by the model, which is exactly
87
+ why BOSS keeps its wayfinding lean and JIT-loads the rest. This is [`context-discipline`](context-discipline.md)'s
88
+ territory; named here only because architecture-at-scale lives or dies on whether the next agent inherits
89
+ the decisions or re-invents them.
90
+
91
+ ## Altitude / JIT (right rigor, right rung)
92
+
93
+ Not a Quickstart lecture, and not all at once. **Modular boundaries** matter from the first real build
94
+ (MVP — clear module seams as features accumulate). **Migrations-as-code** arrives at the *first table*,
95
+ not before — a prototype with mock data needs no migration log. **Conventions-as-code** earns its place
96
+ the moment a *second* author touches the repo — and a second *agent* counts, which is sooner than most
97
+ solo founders expect. The distributed-services question is a **V1→Scale** concern; bringing it up at MVP
98
+ is the premature-ceremony failure (Principle #2).
99
+
100
+ ## Relationship to BOSS
101
+
102
+ This extends [`quality-ratchet`](quality-ratchet.md) (the enforcement mechanism) and sits alongside
103
+ [`git-workflow`](git-workflow.md) (the daily flow that merges these conventions safely),
104
+ [`context-discipline`](context-discipline.md) (the one context file), and
105
+ [`agent-security`](agent-security.md) (the human-gate on the irreversible — of which the schema migration
106
+ is the canonical case). A CLI `boss migrate` / a scaffolded migrations directory is a *possible* DOWN
107
+ later, once a real project hits its first table and the by-hand discipline has earned the machinery
108
+ (Principle #1). The `mentor-architect` agent is the natural place to surface this JIT to a founder; that
109
+ DOWN is **deferred** only to avoid a live edit collision, not on judgment. The org/scaling half of
110
+ "surviving the climb" — DRI, give-away-your-Legos, stage breakpoints — is FEAT-023 thread 3 (the
111
+ unauthored V1→Scale rung). See FEAT-023.
@@ -0,0 +1,149 @@
1
+ ---
2
+ id: PRACTICE-ship-it-live
3
+ type: practice
4
+ owner: mentor-architect
5
+ status: active
6
+ host: stack-neutral
7
+ provenance: distilled from the 2026-06-21 CD/deploy deep-research pass (SESSION-2026-06-20-cd-deploy-research — 21 sources, 25 claims adversarially verified 3-vote, 22 confirmed / 3 killed) — DORA/Accelerate 2022-2024 [EVIDENCE], Fowler ParallelChange [EVIDENCE], Willison lethal-trifecta + OWASP LLM Top 10, CVE-2025-48757 (Lovable) + the MoltBook breach as the named vibe-coded incidents — BOSS v0.92.0, FEAT-024
8
+ ---
9
+
10
+ # Practice — Ship it live (the CD half: localhost is not shipped)
11
+
12
+ > **The shape of the problem.** An app that only runs on `localhost` **is a pseudo app.** You cannot
13
+ > prove pain, workflow fit, or willingness-to-pay on a thing no real user can reach — the validation
14
+ > conscience ("what does this prove?") has no teeth if the artifact was never put where someone could
15
+ > prove it. `git-workflow` covered **CI** (is `main` green, can two humans stand behind the merge);
16
+ > this is **CD** — *is this where a real user can hit it, or just you?* The URL is the proof. Everything
17
+ > below is in service of getting that URL early, keeping the deploy reversible, and not leaking your
18
+ > users' data on the way out the door (which, in 2025-26, is exactly how the AI-built app fails).
19
+
20
+ ## Deploy early, deploy cheap, deploy reversible
21
+
22
+ Get a real URL at **MVP**, not at launch. Pick the smallest viable host and pick
23
+ reversible-and-cheap over impressive (Principle #5 — optionality: a private URL on a free tier
24
+ preserves every later choice; a hand-rolled Kubernetes cluster forecloses them). The host is the
25
+ project's call and the project's stack decides it (Principle #4) — Vercel, Fly, Railway, Cloudflare,
26
+ Render, a $5 VPS — the *practice* carries the judgment, not the target.
27
+
28
+ The instinct to wait — "it's not ready, I'll deploy when it's polished" — does not survive scrutiny.
29
+ The "reliability investment is premature at MVP, just keep iterating locally" counter-argument was
30
+ **adversarially tested and failed (killed 0-3)**: there is no good evidence that staying on localhost
31
+ buys you anything. What it costs you is the only thing that matters this early — *contact with a real
32
+ user*. Deploy-day surprises (env that only existed on your laptop, a build step that only you can run,
33
+ a secret you hard-coded) are cheaper to find on day one with one user than at launch with a hundred.
34
+
35
+ > **localhost is not shipped.** Reachability is the gate between a pseudo app and a real one. Ship the
36
+ > ugly version to a real URL, then iterate *in the open*.
37
+
38
+ ## Secrets & authz at the boundary — the leg with teeth
39
+
40
+ This is where the AI-built app actually fails in 2025-26, and it fails the same way every time: **the
41
+ agent ships a frontend that talks to the database with a public key, trusting a security rule it never
42
+ configured.** Read the bundle, get the key, read and write everything. The founder wrote no code, so
43
+ the founder never saw the hole.
44
+
45
+ This is not hypothetical — it's the best-evidenced finding in the whole research pass [EVIDENCE]:
46
+
47
+ - **CVE-2025-48757 (Lovable)** — AI-generated frontends made direct calls to the database via the
48
+ public anon key, relying solely on row-level security the AI never set up. **303 endpoints across
49
+ 170+ apps (~10.3% of those scanned)** leaked PII and third-party API keys. (CVSS is disputed — 8.26
50
+ vs 9.3, supplier-contested — so trust the *mechanism*, not the score.)
51
+ - **MoltBook** — a hardcoded database key plus disabled row-level security leaked **1.5M API tokens and
52
+ 35K emails**. The founder wrote no code at all.
53
+
54
+ A 1.5M-credential leak from a founder who couldn't grade what the AI shipped **is the pseudo→real
55
+ thesis made literal.** So the discipline is non-negotiable at the deploy boundary:
56
+
57
+ - **No secrets in the client.** API keys, tokens, service credentials live in server-side env, never in
58
+ the shipped bundle. A key in frontend JS is public the moment you deploy.
59
+ - **Enforce authz server-side *before* the first public URL.** If the app talks to a database with a
60
+ public/anon key, the row-level security or access rules are what stand between your users and the
61
+ internet — and the AI does **not** configure them by default. Verify they're on before you ship, not
62
+ after the breach.
63
+ - **A human security gate at first deploy.** For a non-technical founder this is the single highest-value
64
+ check, because they can't spot the vuln themselves. BOSS already owns this surface — **don't restate
65
+ it here, run it:** `/red-team`'s pre-ship app-security pass scans the build output + git history for
66
+ shipped secrets (the gap `secrets-guard` deliberately does *not* cover), and
67
+ [`agent-security.md`](agent-security.md) carries the lethal-trifecta / egress mechanics (Willison;
68
+ OWASP ranks prompt-injection #1 and notes it cannot be fully solved within current LLM architecture).
69
+ This practice's job is to make sure that pass *happens at deploy time* — the one moment it pays off.
70
+
71
+ ## Rollback ≠ reversible: schema is the one-way door
72
+
73
+ "I can roll back" is half-true, and the half that's false is the one that hurts. **Instant rollback
74
+ restores only the application artifact** — it re-points the domain at a previous build. It does **not**
75
+ revert your database, and usually not your env either (Vercel documents this limitation against its own
76
+ rollback feature, which is why it's safe to trust). The code goes back; the migration that dropped a
77
+ column does not.
78
+
79
+ So shipping reversibly means two separate disciplines:
80
+
81
+ - **Name the revert path before you deploy.** A deploy you can't undo is a one-way door. Know the one
82
+ command (or one click) that puts the last-good build back, and that it doesn't depend on the deploy
83
+ that just broke.
84
+ - **Make schema changes backward-compatible — expand-migrate-contract** (Fowler, *ParallelChange*
85
+ [EVIDENCE]). Add the new column/table (expand), move code and data to it while both shapes work
86
+ (migrate), drop the old one only once nothing reads it (contract). Each phase is releasable and
87
+ rollback-safe on its own, so a code rollback never strands a database that already moved on. This is
88
+ [`scalable-architecture.md`](scalable-architecture.md)'s "schema = the one-way door" — **deploy is
89
+ *when* it pays off.** Cross-reference for the migration mechanics; the deploy-time teeth are here.
90
+
91
+ ## The honesty anchor (don't sell yourself the safe deploy)
92
+
93
+ **DORA 2024 [EVIDENCE]: AI adoption correlated with *worse* software-delivery stability *and*
94
+ throughput** — driven by larger batches. This is the deploy-time twin of `git-workflow`'s METR anchor:
95
+ shipping faster with an agent does not make your deploys safer, and the felt speedup is not the
96
+ instrument. The instrument is **measured** — change-failure rate and time-to-restore (DORA's stability
97
+ metrics are first-class, not an afterthought to deploy-frequency).
98
+
99
+ One honesty caveat that cuts the other way: it is tempting to claim "but small batches offset the AI
100
+ penalty." The research **killed that inference (1-2)** — DORA does not conclude it. Keep batches small
101
+ because `git-workflow` already earns it (review capacity), not because it's a proven antidote to the
102
+ stability hit. State the finding; don't oversell the fix.
103
+
104
+ ## Preview-per-branch — a judgment, not the review primitive
105
+
106
+ A preview URL per branch *can* be what the other human actually reviews, and several platforms make it
107
+ nearly free. But this is the one place to resist the vendor pitch: **the claim that preview-per-branch
108
+ tightens the review loop is platform-positioning, not independently proven** (it was the single counter-
109
+ argument that survived verification in the research pass). For a two-person team it is often
110
+ **over-ceremony** — the review capacity cap in `git-workflow` is the real constraint, and a preview env
111
+ doesn't raise it.
112
+
113
+ So: reach for preview environments when review *load* grows enough to earn them — multiple concurrent
114
+ branches, a reviewer who isn't the author, a stakeholder who needs to click before merge. Not as a
115
+ mandate at MVP. Right ceremony, right rung (Principle #2).
116
+
117
+ ## Stack-neutral capture (feed the loop)
118
+
119
+ The host, the deploy command, the rollback path, the env-var boundary you settled on — that's a
120
+ **stack-profile output of the learning loop** (Principle #4). Capture it as a `PRAC-NNN` (via
121
+ `/practice`) or a stack profile so the *next* project of that kind starts from a known-good deploy
122
+ recipe instead of rediscovering it. BOSS assumes no deploy target; it *learns* yours and carries it UP.
123
+
124
+ ## Altitude / JIT (don't front-load it)
125
+
126
+ This is **not** a Quickstart lecture. A founder dropping an idea into `/prototype` runs it locally and
127
+ that's correct — sketch freely, no deploy discipline. The reachability discipline earns its place at
128
+ **MVP**, when the work is building-for-real and validation needs an artifact a real user can reach. The
129
+ secrets-at-the-boundary check surfaces the first time the app talks to a database or holds a key; the
130
+ schema discipline surfaces at the first migration; preview environments surface only when review load
131
+ asks for them. Right ceremony, right rung (Principle #2).
132
+
133
+ ## Relationship to BOSS
134
+
135
+ BOSS already ships the security *mechanism* this practice leans on — `/red-team`'s pre-ship pass (the
136
+ shipped-secret scan), [`agent-security.md`](agent-security.md) (the deny-list floor, `secrets-guard`,
137
+ the lethal-trifecta containment), and [`scalable-architecture.md`](scalable-architecture.md)
138
+ (migrations-as-code). This practice is the **operating discipline that fires them at deploy time**, plus
139
+ the deploy-specific judgment a pre-AI CD guide wouldn't have carried: the client-bundled-key trap as the
140
+ *signature* AI-built failure, and rollback-is-not-reversibility. The runner is **`/ship`** — the
141
+ deterministic "put it where a real user can hit it" verbs, with the secrets/authz pre-flight wired in as
142
+ a *check, not a gate* (conscience-not-censor).
143
+
144
+ **Reachable → discoverable.** Reachability is the *first* leg this practice closes; the next is the one the
145
+ conscience otherwise never voices — *will anyone find it?* `/ship` carries a single demand voicing at the
146
+ live moment (*"who's the first real user, and how do they hit this?"*), situation-not-person, pointing at
147
+ `mentor-gtm` for depth — never a marketing nag. That's the distribution-leg asymmetry (IDEA-041) closed at
148
+ the `/ship` moment rather than as an unprompted hook. See [`git-workflow.md`](git-workflow.md) (the CI half
149
+ this extends), and FEAT-024.
@@ -0,0 +1,70 @@
1
+ # Practice: Skill authoring — write skills the model actually triggers and follows
2
+
3
+ > Adapted from Anthropic's own `skill-creator` skill via [RVW-013](../../docs/research/verdicts/RVW-013-skill-creator-authoring-discipline.md).
4
+ > The wisdom, not the harness: the with/without eval machinery is deferred (see *What's left out*).
5
+ > This is ground for anyone authoring a skill — BOSS authoring its own, and (UP candidate) a founder
6
+ > authoring one in their scaffolded project.
7
+
8
+ A skill is a behavior you're handing to a model, not a config file. It fails two ways: it never
9
+ fires when it should (under-triggering), or it fires and the model can't follow it (rigid or vague).
10
+ Three disciplines fix most of both.
11
+
12
+ ## 1. Explanatory over prescriptive
13
+
14
+ Tell the model *why*, and it generalizes to the cases you didn't enumerate. Give it a wall of rules,
15
+ and it follows them literally past the point of sense — and rots the moment the model improves
16
+ underneath it (the IDEA-014 problem: frozen behavior fighting a better model).
17
+
18
+ > Yellow flag: if you're writing `ALWAYS` / `NEVER` in all caps, or nesting rigid step-structures,
19
+ > stop. That's usually fear talking, not clarity. State the reasoning and trust the model to apply it.
20
+
21
+ A handful of caps for genuine load-bearing invariants is fine. A skill *made of* them is a skill
22
+ that doesn't trust its reader — and BOSS's voice assumes intelligence. (Re-read your own draft: most
23
+ `ALWAYS` lines become a single "because" sentence.)
24
+
25
+ ## 2. Progressive disclosure — three levels of loading
26
+
27
+ Context is a budget. Structure the skill so each level loads only when needed:
28
+
29
+ 1. **Metadata (the `description`)** — always in context, ~100 words. This is what the model reads to
30
+ *decide whether to trigger*. It earns the most care (see #3).
31
+ 2. **The SKILL.md body** — loaded only when the skill fires. Keep it tight (the source says <500
32
+ lines; most should be far shorter). This is the *how*.
33
+ 3. **Bundled resources** — templates, examples, reference files — loaded on demand from the body,
34
+ never up front.
35
+
36
+ Don't pour the whole method into the description, and don't make the body re-explain what the
37
+ description said. Each level does its own job once.
38
+
39
+ ## 3. Descriptions earn their triggers
40
+
41
+ Under-triggering is the common failure: a useful skill that never fires because its description is
42
+ shy. The fix is an *explicit*, specific description — name the trigger phrases, the situations, the
43
+ adjacent cases — so the model recognizes the moment. The source skill calls this writing "pushy"
44
+ descriptions.
45
+
46
+ **The BOSS adaptation:** pushy ≠ shouting. A description earns its triggers by being *concrete*
47
+ ("when the user asks X, or is doing Y, or says any of …"), not by adding urgency words. List the
48
+ real trigger phrases; name what it is *not* for (the boundary is as load-bearing as the trigger).
49
+ Look at the existing skills — `/vet`, `/boss-learn`, `/consult` — for the pattern: a one-line *what*,
50
+ then a precise *when*, then the inverse it's distinct from.
51
+
52
+ ## Self-check before shipping a skill
53
+
54
+ A short read, not a harness:
55
+
56
+ - **Trigger test:** read only the `description`. Would *you* know exactly when to fire it, and when
57
+ not to? If the boundary is fuzzy, the model's will be fuzzier.
58
+ - **Rigidity test:** count the `ALWAYS`/`NEVER`/caps. Each one — can it become a "because"?
59
+ - **Level test:** is anything in the body that belongs in a bundled resource? Anything in the
60
+ description that belongs in the body?
61
+ - **Voice test:** does it assume intelligence and never assume knowledge? (Hand to `voice-keeper` if
62
+ unsure.)
63
+
64
+ ## What's left out (deliberately)
65
+
66
+ The source skill ships a **with-skill vs without-skill eval harness** (`workspace/iteration-N/eval-ID/`,
67
+ parallel runs, scored comparison). BOSS does **not** adopt that yet — it's real ceremony, and it
68
+ duplicates the question `/vet` and `conscience-evals/` already ask ("does this beat the baseline?").
69
+ **Re-open** when a shipped skill's value is genuinely disputed and a careful read can't settle it;
70
+ then a with/without comparison earns its weight. Logged in [IDEA-033](../../docs/ideas/IDEA-033-2026-rigor-and-bestpractice-gaps.md).
File without changes
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: boss-learn
3
+ description: Route a proven pattern two ways — UP into the BOSS library as a reusable superset practice, or DOWN into this app as hardened core functionality. The judgment layer over `boss learn`. Usage - /boss-learn [what to promote]
4
+ ---
5
+
6
+ # /boss-learn — the two-destination router
7
+
8
+ PRINCIPLES #1: BOSS is always scaffolding, but at every natural breakpoint (a mode transition, a
9
+ shipped feature, the third time the same work repeats) you **pause and sort the pattern two ways.**
10
+ This skill is that router. It is **not** a one-way "promote to BOSS" — deciding UP vs DOWN *is* the
11
+ work.
12
+
13
+ ## 0. Orient (silent)
14
+
15
+ - Read `PRINCIPLES.md` (#1 especially) and `.boss/manifest.json` (which project/mode you're in).
16
+ - Identify the concrete pattern: the file(s), prompt, workflow, convention, or token set in question.
17
+
18
+ ## 1. Decide the destination
19
+
20
+ Ask one question if it's genuinely unclear; otherwise call it and say why.
21
+
22
+ - **UP → BOSS library** when the pattern is *project-neutral and reusable*: a workflow, an agent or
23
+ skill shape, a hook, a best-practice doc, a memory seed. The test (PRINCIPLES #3): *could a sibling
24
+ project reuse this without copy-pasting code?* If yes, it's superset.
25
+ - **DOWN → app core** when the pattern is *this product's actual functionality* that happens to be
26
+ living as scaffold/ad-hoc. It belongs in the app's own modules, with the app's own tests — not in BOSS.
27
+
28
+ A pattern can route **both**: the generalized shape goes UP, the concrete implementation hardens DOWN.
29
+
30
+ ## 2a. Route UP
31
+
32
+ 1. **Generalize first.** Strip project specifics; replace them with `{{PLACEHOLDERS}}`. Domain logic
33
+ never lands in `library/` (PRINCIPLES: stack- and project-neutral only). Write/clean the file.
34
+ 2. **Pick a category:** `agents` · `skills` · `hooks` · `practices` · `memory-seed`.
35
+ 3. **Promote it:**
36
+ ```
37
+ boss learn <path-to-generalized-file-or-dir> --as <category> --note "<one line: what & why>"
38
+ ```
39
+ This copies it into `library/<category>/`, bumps `VERSION` + `package.json` (minor by default;
40
+ `--patch`/`--major`/`--version X.Y.Z` to override), and prepends a `registry/CHANGELOG.md` entry.
41
+ 4. **Sharpen the CHANGELOG prose** by hand — the auto entry is a stub. The CHANGELOG is what every
42
+ project reads via `/boss-sync`, so make it say what's new and why it matters.
43
+ 5. Tell the user: connected projects pull this via `boss sync` / `/boss-sync`.
44
+
45
+ ## 2b. Route DOWN
46
+
47
+ No BOSS version change. This is product, not scaffold. Give concrete guidance (or do it, if asked):
48
+ - Move the pattern from ad-hoc/scaffold into a **named, owned module/config** in the app.
49
+ - Add the app's own tests around it; wire it into the app's real flow.
50
+ - If a *generalizable shape* remains, note it for a follow-up UP — don't lock value into code (PRINCIPLES #3).
51
+
52
+ ## 3. Close the loop
53
+
54
+ - Update `docs/RESUME.md` if this was a breakpoint worth recording.
55
+ - One-line summary: what moved, which direction, the new BOSS version (if UP), the next step.
56
+
57
+ ## Rules
58
+
59
+ - Deciding the direction is the point — never default to UP. Most app code routes DOWN.
60
+ - Never put domain specifics in `library/`. Generalize or don't promote.
61
+ - `boss learn` edits the BOSS **source** repo (found via the registry's self-hosted entry, or
62
+ `$BOSS_SRC`). Review its diff and commit deliberately — don't auto-commit BOSS.
63
+ - One pattern per run. If the user names several, take the clearest first.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: boss-sync
3
+ description: Pull current BOSS practices into this project — bring the installed modes' skills/agents up to the latest version as a reviewed, narrated diff, then bump the project's BOSS pin. The judgment layer over `boss sync`. Usage - /boss-sync
4
+ ---
5
+
6
+ # /boss-sync — bring this project current
7
+
8
+ The distribution half of the learning loop (PRINCIPLES #1): improvements promoted UP into the BOSS
9
+ library flow back DOWN into every connected project. This skill brings *this* project's BOSS-managed
10
+ files (the skills + agents of its installed modes) up to the current version — reviewed, not blind.
11
+
12
+ ## 0. Orient (silent)
13
+
14
+ - `boss status` — current mode, the project's BOSS pin, and whether newer practices exist.
15
+ - Read `registry/CHANGELOG.md` from the BOSS source repo for **what changed since this project's pin** —
16
+ this is the narration you'll give the user (not just a file list).
17
+
18
+ ## 1. Preview
19
+
20
+ Run `boss sync` (no flags). It lists each BOSS-managed file as `new`, `changed (N lines)`, or up to date,
21
+ across all installed modes, and reconciles any stale mode label (e.g. an old `L0-sketch` pin → `L0-quickstart`).
22
+
23
+ ## 2. Review (the judgment)
24
+
25
+ Before applying, for each **changed** file:
26
+ - Read the project's current copy and the incoming version. Summarize what actually changes.
27
+ - **Flag conflicts:** if the project edited a BOSS-managed file locally, a sync overwrites it. Call this
28
+ out by name and ask before clobbering. (v1 syncs BOSS-managed skills/agents only — see scope below.)
29
+ - Tie changes back to the CHANGELOG entries so the user understands *why*, not just *what*.
30
+
31
+ ## 3. Apply
32
+
33
+ - `boss sync --apply` — writes the new/changed files and bumps the project's `.boss` pin to current.
34
+ - Then show `git diff` and let the user review and commit. The project is the source of truth for its
35
+ own history; BOSS just proposes the update.
36
+
37
+ ## Scope (v1)
38
+
39
+ - Syncs only **BOSS-managed skills/agents** for installed modes.
40
+ - Does **not** auto-merge user-editable files (`CLAUDE.md`, `.claude/settings.json`). If the CHANGELOG
41
+ implies those should change, surface it and let the user merge by hand.
42
+ - New skills/agents added to a mode since the pin are pulled in; nothing is removed.
43
+
44
+ ## Rules
45
+
46
+ - Review before `--apply`. Never overwrite a locally-edited managed file without flagging it first.
47
+ - Narrate from the CHANGELOG — the user should learn what's new, not just see files move.
48
+ - Don't commit for the user; hand them a clean `git diff` to review.
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "bossbuild",
3
+ "version": "0.97.0",
4
+ "description": "BOSS (Build Out Solid Stuff) — a just-in-time startup incubator that cold-starts projects at the right level of agentic ceremony, grows them through modes (Quickstart → MVP → V1 → Scale), and mentors the founder. Make it real.",
5
+ "keywords": [
6
+ "Agentic",
7
+ "framework",
8
+ "humanetech"
9
+ ],
10
+ "homepage": "https://github.com/ajeshh/bossbuild#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/ajeshh/bossbuild/issues"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/ajeshh/bossbuild.git"
17
+ },
18
+ "license": "MIT",
19
+ "author": "Ajesh Shah",
20
+ "type": "module",
21
+ "bin": {
22
+ "boss": "bin/boss"
23
+ },
24
+ "directories": {
25
+ "doc": "docs"
26
+ },
27
+ "files": [
28
+ "bin/",
29
+ "src/",
30
+ "stages/",
31
+ "library/",
32
+ "VERSION",
33
+ "PRINCIPLES.md",
34
+ "registry/CHANGELOG.md"
35
+ ],
36
+ "scripts": {
37
+ "link": "npm install -g .",
38
+ "gen:docs": "node scripts/gen-docs.js",
39
+ "check:wayfinding": "node scripts/check-wayfinding-drift.js",
40
+ "pack:preview": "npm pack --dry-run",
41
+ "eval:gate": "node docs/architecture/conscience-evals/runner.js",
42
+ "eval:judgment": "node docs/architecture/conscience-evals/judgment/replay.js",
43
+ "eval": "npm run eval:gate && npm run eval:judgment",
44
+ "regrade": "node docs/architecture/conscience-evals/judgment/regrade.js"
45
+ },
46
+ "engines": {
47
+ "node": ">=18"
48
+ }
49
+ }