@slowcook-ai/cli 0.21.2 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +11 -0
- package/README.md +8 -4
- package/dist/cli.js +7 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/brand/index.d.ts.map +1 -1
- package/dist/commands/brand/index.js +18 -8
- package/dist/commands/brand/index.js.map +1 -1
- package/dist/commands/estimate/index.d.ts +2 -0
- package/dist/commands/estimate/index.d.ts.map +1 -0
- package/dist/commands/estimate/index.js +70 -0
- package/dist/commands/estimate/index.js.map +1 -0
- package/dist/commands/estimate/model.d.ts +117 -0
- package/dist/commands/estimate/model.d.ts.map +1 -0
- package/dist/commands/estimate/model.js +158 -0
- package/dist/commands/estimate/model.js.map +1 -0
- package/dist/commands/eye/index.d.ts.map +1 -1
- package/dist/commands/eye/index.js +16 -6
- package/dist/commands/eye/index.js.map +1 -1
- package/dist/commands/eye/plan.d.ts +41 -6
- package/dist/commands/eye/plan.d.ts.map +1 -1
- package/dist/commands/eye/plan.js +52 -9
- package/dist/commands/eye/plan.js.map +1 -1
- package/dist/commands/eye/run.d.ts +17 -1
- package/dist/commands/eye/run.d.ts.map +1 -1
- package/dist/commands/eye/run.js +38 -6
- package/dist/commands/eye/run.js.map +1 -1
- package/dist/commands/greenfield/index.d.ts.map +1 -1
- package/dist/commands/greenfield/index.js +33 -3
- package/dist/commands/greenfield/index.js.map +1 -1
- package/dist/commands/greenfield/status.d.ts +26 -5
- package/dist/commands/greenfield/status.d.ts.map +1 -1
- package/dist/commands/greenfield/status.js +28 -9
- package/dist/commands/greenfield/status.js.map +1 -1
- package/dist/commands/menu/assemble.d.ts.map +1 -1
- package/dist/commands/menu/assemble.js +6 -0
- package/dist/commands/menu/assemble.js.map +1 -1
- package/dist/commands/menu/index.d.ts.map +1 -1
- package/dist/commands/menu/index.js +42 -14
- package/dist/commands/menu/index.js.map +1 -1
- package/dist/commands/menu/prd.d.ts.map +1 -1
- package/dist/commands/menu/prd.js +17 -0
- package/dist/commands/menu/prd.js.map +1 -1
- package/dist/commands/reconcile/index.d.ts +2 -0
- package/dist/commands/reconcile/index.d.ts.map +1 -0
- package/dist/commands/reconcile/index.js +174 -0
- package/dist/commands/reconcile/index.js.map +1 -0
- package/dist/commands/refine/agent.d.ts.map +1 -1
- package/dist/commands/refine/agent.js +22 -2
- package/dist/commands/refine/agent.js.map +1 -1
- package/dist/commands/refine/context.d.ts +2 -0
- package/dist/commands/refine/context.d.ts.map +1 -1
- package/dist/commands/refine/context.js +21 -0
- package/dist/commands/refine/context.js.map +1 -1
- package/dist/commands/refine/history-index.d.ts +17 -0
- package/dist/commands/refine/history-index.d.ts.map +1 -1
- package/dist/commands/refine/history-index.js +106 -12
- package/dist/commands/refine/history-index.js.map +1 -1
- package/dist/commands/refine/index.d.ts.map +1 -1
- package/dist/commands/refine/index.js +11 -6
- package/dist/commands/refine/index.js.map +1 -1
- package/dist/commands/refine/llm.d.ts +1 -1
- package/dist/commands/refine/llm.d.ts.map +1 -1
- package/dist/commands/refine/llm.js +1 -1
- package/dist/commands/refine/llm.js.map +1 -1
- package/dist/commands/refine/mock-fixtures.d.ts +2 -0
- package/dist/commands/refine/mock-fixtures.d.ts.map +1 -1
- package/dist/commands/refine/mock-fixtures.js +32 -5
- package/dist/commands/refine/mock-fixtures.js.map +1 -1
- package/dist/commands/refine/spec-yaml.d.ts +27 -1
- package/dist/commands/refine/spec-yaml.d.ts.map +1 -1
- package/dist/commands/refine/spec-yaml.js +81 -5
- package/dist/commands/refine/spec-yaml.js.map +1 -1
- package/dist/commands/testgen/agent.d.ts +5 -0
- package/dist/commands/testgen/agent.d.ts.map +1 -1
- package/dist/commands/testgen/agent.js +65 -1
- package/dist/commands/testgen/agent.js.map +1 -1
- package/dist/commands/testgen/index.d.ts.map +1 -1
- package/dist/commands/testgen/index.js +11 -6
- package/dist/commands/testgen/index.js.map +1 -1
- package/dist/commands/trace/check.d.ts +72 -0
- package/dist/commands/trace/check.d.ts.map +1 -1
- package/dist/commands/trace/check.js +93 -0
- package/dist/commands/trace/check.js.map +1 -1
- package/dist/commands/trace/index.d.ts +5 -0
- package/dist/commands/trace/index.d.ts.map +1 -1
- package/dist/commands/trace/index.js +183 -7
- package/dist/commands/trace/index.js.map +1 -1
- package/dist/commands/upsert-agent-docs.d.ts.map +1 -1
- package/dist/commands/upsert-agent-docs.js +11 -0
- package/dist/commands/upsert-agent-docs.js.map +1 -1
- package/dist/commands/vibe/app-gen.d.ts +43 -0
- package/dist/commands/vibe/app-gen.d.ts.map +1 -0
- package/dist/commands/vibe/app-gen.js +512 -0
- package/dist/commands/vibe/app-gen.js.map +1 -0
- package/dist/commands/vibe/index.d.ts.map +1 -1
- package/dist/commands/vibe/index.js +287 -2
- package/dist/commands/vibe/index.js.map +1 -1
- package/dist/commands/vibe/lcr-plan.d.ts +125 -0
- package/dist/commands/vibe/lcr-plan.d.ts.map +1 -0
- package/dist/commands/vibe/lcr-plan.js +155 -0
- package/dist/commands/vibe/lcr-plan.js.map +1 -0
- package/dist/commands/vibe/schema-gen.d.ts +52 -0
- package/dist/commands/vibe/schema-gen.d.ts.map +1 -0
- package/dist/commands/vibe/schema-gen.js +205 -0
- package/dist/commands/vibe/schema-gen.js.map +1 -0
- package/dist/commands.manifest.d.ts.map +1 -1
- package/dist/commands.manifest.js +10 -4
- package/dist/commands.manifest.js.map +1 -1
- package/package.json +9 -9
package/AGENTS.md
CHANGED
|
@@ -232,6 +232,17 @@ non-negotiable defaults unless the user specifically overrides.
|
|
|
232
232
|
## What to read next
|
|
233
233
|
|
|
234
234
|
- [README.md](./README.md) — the marketing overview + status table
|
|
235
|
+
- [docs/EPSS.md](./docs/EPSS.md) — **the Epic·Persona·Scenario·State model.**
|
|
236
|
+
Read before emitting/consuming `testing-surfaces.json`, writing `epic` or
|
|
237
|
+
`acceptance_scenarios` on a spec, or generating the LCR review matrix. Defines
|
|
238
|
+
why a scenario is a task (not a route) and why universal states (loading/error)
|
|
239
|
+
get one Foundations home instead of a per-page repeat. **Design drives state:**
|
|
240
|
+
when building or reviewing a mock, treat each affordance as a requirement and each
|
|
241
|
+
affordance-variant as a State; an affordance's *interaction* (what activating it
|
|
242
|
+
does — e.g. opening a confirm modal vs navigating away) is part of the requirement
|
|
243
|
+
too, so reproduce the flow, never a stub; never simplify a component without recording
|
|
244
|
+
what you dropped — a "drifted from design" comment is a dropped requirement, not a
|
|
245
|
+
cosmetic nit, and "doesn't *behave* like design" is the same class of miss.
|
|
235
246
|
- [REPORTING.md](./REPORTING.md) — how to file a slowcook bug
|
|
236
247
|
- [docs/plans/](./docs/plans/) — the roadmap / design docs (if a story
|
|
237
248
|
references one, read it before running the agent)
|
package/README.md
CHANGED
|
@@ -53,9 +53,9 @@ Run `slowcook help <command>` or `slowcook <command> --help` for per-command det
|
|
|
53
53
|
```
|
|
54
54
|
slowcook recipe [--spec <id>] [--all] [--cwd <path>]
|
|
55
55
|
```
|
|
56
|
-
- **`vibe`** — Design-first
|
|
56
|
+
- **`vibe`** — Design-first mock generator. `vibe plan`/`schema`/`seed` build the whole-app LCR data adaptor (deterministic data model + Drizzle schema + real sql.js SQLite + LLM seed/queries). `vibe app` (deterministic) scaffolds the runnable, navigable LCR: Vite app + router (every surface reachable, BrowserRouter) + the slowcook review-overlay (persona switch + EPSS epic/persona/scenario/state router, from a generated testing-surfaces.json) + a stub page per route; sets review_mode: lcr. `vibe --spec <id>` (legacy per-story) emits a React mockup PR.
|
|
57
57
|
```
|
|
58
|
-
slowcook vibe --
|
|
58
|
+
slowcook vibe (plan | schema [--stdout] | seed [--dry-run] | app [--force] | --spec <id> [--owner <login>] [--dry-run]) [--cwd <path>]
|
|
59
59
|
```
|
|
60
60
|
- **`plate`** — Mockup amendment agent. Triggered by /plate PR comments on slowcook-mockup PRs; force-pushes amendments.
|
|
61
61
|
```
|
|
@@ -100,9 +100,13 @@ Run `slowcook help <command>` or `slowcook <command> --help` for per-command det
|
|
|
100
100
|
```
|
|
101
101
|
slowcook recon [--story <id>] [--cwd <path>] [--reuse-scan] [--stub-scan] [--exclude <glob>]
|
|
102
102
|
```
|
|
103
|
-
- **`trace`** — GUCDI
|
|
103
|
+
- **`trace`** — GUCDI traceability lint over the spine. check: provenance (forward — every spec/LCR node has a why; orphans/dangling fail), coverage (inverse — stories with no LCR surface; --coverage to fail), persona surfaces (declared routes resolve), and freshness (specs whose PRD section changed since stamping; --strict to fail). stamp: baseline each spec's PRD-anchor fingerprint (prd_ref.sha). impact: which stories a PRD change touches (--since <ref> diffs the PRD; or --anchors a,b). Brownfield-safe (never demands a PRD).
|
|
104
104
|
```
|
|
105
|
-
slowcook trace check [--prd <path>] [--cwd <dir>]
|
|
105
|
+
slowcook trace <check|stamp|impact> [--prd <path>] [--cwd <dir>] [--coverage] [--strict] [--since <ref>] [--anchors a,b]
|
|
106
|
+
```
|
|
107
|
+
- **`reconcile`** — PRD↔spec interdependency (LLM). When a PRD section a spec anchors to has changed (see `trace impact`/`trace check`), propose a minimum-diff corrected spec: enumerate which invariants/scenarios/actors/api now contradict the PRD, and report one-hop cross-impact as notes. Propose-not-apply by default (writes specs/story-<id>.reconcile.yaml); --apply accepts it (schema-validated) and re-stamps freshness.
|
|
108
|
+
```
|
|
109
|
+
slowcook reconcile --story <id> [--prd <path>] [--cwd <dir>] [--apply] [--dry-run] [--model <id>]
|
|
106
110
|
```
|
|
107
111
|
- **`eye`** — Fidelity eye (design #8). Renders mock + brewed URLs across the viewport×scheme matrix, grades visual drift, screenshots, exits 1 on drift.
|
|
108
112
|
```
|
package/dist/cli.js
CHANGED
|
@@ -42,6 +42,7 @@ import { eye } from "./commands/eye/index.js";
|
|
|
42
42
|
import { gate } from "./commands/gate/index.js";
|
|
43
43
|
import { menu } from "./commands/menu/index.js";
|
|
44
44
|
import { trace } from "./commands/trace/index.js";
|
|
45
|
+
import { reconcile } from "./commands/reconcile/index.js";
|
|
45
46
|
import { greenfield } from "./commands/greenfield/index.js";
|
|
46
47
|
import { renderHelp, renderCommandHelp, renderReadmeBlock } from "./help.js";
|
|
47
48
|
// Read VERSION from package.json at runtime so the CLI's self-reported
|
|
@@ -297,8 +298,14 @@ async function main() {
|
|
|
297
298
|
case "trace":
|
|
298
299
|
// GUCDI — provenance-completeness lint over the spine (the keystone):
|
|
299
300
|
// every node has a why ∈ {requirement|convention|craft}; orphans fail.
|
|
301
|
+
// Also: check|stamp|impact for PRD↔spec freshness/interdependency.
|
|
300
302
|
await trace(args.slice(1), VERSION);
|
|
301
303
|
return;
|
|
304
|
+
case "reconcile":
|
|
305
|
+
// GUCDI — PRD↔spec interdependency (LLM): propose a corrected spec when a
|
|
306
|
+
// PRD section it anchors to has changed. Propose-not-apply, one hop.
|
|
307
|
+
await reconcile(args.slice(1), VERSION);
|
|
308
|
+
return;
|
|
302
309
|
case "greenfield":
|
|
303
310
|
// GUCDI — scope-completeness dashboard: PRD → stories → brand → LCR →
|
|
304
311
|
// trace, and the single next action.
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/brand/index.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,QAAA,MAAM,iBAAiB;;;;;;;;;;;iBAiBrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAoED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAWpE;AAcD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CA6B7E;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/brand/index.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,QAAA,MAAM,iBAAiB;;;;;;;;;;;iBAiBrB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAoED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAWpE;AAcD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CA6B7E;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyH9E"}
|
|
@@ -25,7 +25,7 @@ import Anthropic from "@anthropic-ai/sdk";
|
|
|
25
25
|
import { BRAND_SYSTEM, costUsdForUsage } from "@slowcook-ai/llm-anthropic";
|
|
26
26
|
import { parseVibeOutput, writeVibeFiles } from "../vibe/emit.js";
|
|
27
27
|
const DEFAULT_MODEL = "claude-opus-4-7";
|
|
28
|
-
const MAX_TOKENS =
|
|
28
|
+
const MAX_TOKENS = 32000; // 4 files incl. a self-contained brand-board.html
|
|
29
29
|
const BrandConfigSchema = z.object({
|
|
30
30
|
schema_version: z.literal(1),
|
|
31
31
|
name: z.string().min(1),
|
|
@@ -188,11 +188,17 @@ export async function brand(argv, _cliVersion) {
|
|
|
188
188
|
process.exit(2);
|
|
189
189
|
}
|
|
190
190
|
// Pre-flight: refuse to overwrite without --refresh.
|
|
191
|
-
const
|
|
192
|
-
const
|
|
193
|
-
|
|
191
|
+
const dsDir = join(args.cwd, "mock", "src", "design-system");
|
|
192
|
+
const exists = [
|
|
193
|
+
"tokens.ts",
|
|
194
|
+
"css.ts",
|
|
195
|
+
"theme.css",
|
|
196
|
+
"brand-board.html",
|
|
197
|
+
"logo.tsx",
|
|
198
|
+
"cues.ts",
|
|
199
|
+
].some((f) => existsSync(join(dsDir, f)));
|
|
194
200
|
if (exists && !args.refresh && !args.dryRun) {
|
|
195
|
-
console.error(`mock/src/design-system/
|
|
201
|
+
console.error(`mock/src/design-system/ already has design-system files. Pass --refresh to overwrite.`);
|
|
196
202
|
process.exit(2);
|
|
197
203
|
}
|
|
198
204
|
const anthropicApiKey = process.env["ANTHROPIC_API_KEY"];
|
|
@@ -209,13 +215,17 @@ export async function brand(argv, _cliVersion) {
|
|
|
209
215
|
return;
|
|
210
216
|
}
|
|
211
217
|
const anthropic = new Anthropic({ apiKey: anthropicApiKey });
|
|
212
|
-
const userPrompt = `Generate the design-system foundation for this mock app from the brand brief in your system prompt. Emit the
|
|
213
|
-
|
|
218
|
+
const userPrompt = `Generate the design-system foundation for this mock app from the brand brief in your system prompt. Emit the file blocks under \`mock/src/design-system/\` per the Output format: \`tokens.ts\`, \`css.ts\`, \`theme.css\`, \`brand-board.html\`, \`logo.tsx\` — plus \`cues.ts\` IF the product is app-like (Rule 6). theme.css MUST cover both modes if the brief asks; brand-board.html must be self-contained + felt. No prose preamble.`;
|
|
219
|
+
// Stream: emitting four files (incl. a self-contained brand-board.html) can
|
|
220
|
+
// exceed the SDK's non-streaming 10-minute guard at this token budget.
|
|
221
|
+
const response = await anthropic.messages
|
|
222
|
+
.stream({
|
|
214
223
|
model: args.model,
|
|
215
224
|
max_tokens: MAX_TOKENS,
|
|
216
225
|
system: BRAND_SYSTEM(projectContext),
|
|
217
226
|
messages: [{ role: "user", content: userPrompt }],
|
|
218
|
-
})
|
|
227
|
+
})
|
|
228
|
+
.finalMessage();
|
|
219
229
|
let spendUsd = 0;
|
|
220
230
|
try {
|
|
221
231
|
// SDK type for usage has narrowed over versions; read via loose cast so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/brand/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EACL,UAAU,EACV,YAAY,GAGb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAW,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,aAAa,GAAG,iBAAiB,CAAC;AACxC,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/brand/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/estimate/index.ts"],"names":[],"mappings":"AAsBA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C/D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `slowcook estimate` — the post-`menu` budget. Reads active specs, computes a
|
|
3
|
+
* 3-point dual-currency estimate per story (countable drivers ⊕ the LLM `effort`
|
|
4
|
+
* block), and rolls the backlog up to portfolio percentiles via Monte-Carlo.
|
|
5
|
+
*
|
|
6
|
+
* This is the earliest, highest-decision-value point on the cone of uncertainty;
|
|
7
|
+
* dash consumes this output for the Forecast/roadmap surfaces. See
|
|
8
|
+
* dash docs/BUDGETING-AND-ROADMAP.md.
|
|
9
|
+
*/
|
|
10
|
+
import { resolve } from "node:path";
|
|
11
|
+
import { listActiveSpecs } from "../refine/spec-yaml.js";
|
|
12
|
+
import { estimateStory, monteCarloPortfolio, SEED_CALIBRATION } from "./model.js";
|
|
13
|
+
function argFlag(argv, flag) {
|
|
14
|
+
const i = argv.indexOf(flag);
|
|
15
|
+
return i >= 0 ? argv[i + 1] : undefined;
|
|
16
|
+
}
|
|
17
|
+
const usd = (cents) => `$${(cents / 100).toLocaleString(undefined, { maximumFractionDigits: 0 })}`;
|
|
18
|
+
const hrs = (h) => `${h.toFixed(1)}h`;
|
|
19
|
+
const tok = (t) => (t >= 1_000_000 ? `${(t / 1_000_000).toFixed(1)}M` : `${Math.round(t / 1000)}k`);
|
|
20
|
+
export async function runEstimate(argv) {
|
|
21
|
+
const cwd = resolve(argFlag(argv, "--cwd") ?? ".");
|
|
22
|
+
const asJson = argv.includes("--json");
|
|
23
|
+
const byEpic = argv.includes("--by-epic");
|
|
24
|
+
const iterations = Number(argFlag(argv, "--iterations") ?? "10000");
|
|
25
|
+
const specs = listActiveSpecs(cwd);
|
|
26
|
+
if (specs.length === 0) {
|
|
27
|
+
console.error("estimate: no active specs under specs/ — run `menu` first.");
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const estimates = specs.map((s) => estimateStory(s, SEED_CALIBRATION));
|
|
31
|
+
const portfolio = monteCarloPortfolio(estimates, iterations);
|
|
32
|
+
const withEffort = specs.filter((s) => s.effort).length;
|
|
33
|
+
if (asJson) {
|
|
34
|
+
process.stdout.write(JSON.stringify({ estimates, portfolio, calibration: "seed", withEffort }, null, 2) + "\n");
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log(`slowcook estimate — ${estimates.length} stories · ${withEffort} carry an \`effort\` block · seed calibration\n`);
|
|
38
|
+
const rows = byEpic ? groupByEpic(estimates) : [{ label: null, items: estimates }];
|
|
39
|
+
for (const group of rows) {
|
|
40
|
+
if (group.label !== null)
|
|
41
|
+
console.log(`\n ▟ ${group.label}`);
|
|
42
|
+
for (const e of group.items) {
|
|
43
|
+
const flags = [e.risk !== "low" ? `risk:${e.risk}` : "", e.confidence < 0.6 ? `conf:${e.confidence}` : "", ...e.qualitativeDrivers]
|
|
44
|
+
.filter(Boolean).join(" ");
|
|
45
|
+
console.log(` story-${e.storyId} ${usd(e.costCents.m).padStart(8)} p50 ${usd(e.costCents.p).padStart(8)} p-hi` +
|
|
46
|
+
` ${hrs(e.hours.m).padStart(7)} · ${tok(e.tokens.m).padStart(5)} tok ${e.title.slice(0, 46)}` +
|
|
47
|
+
(flags ? `\n ↳ ${flags}` : ""));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const P = portfolio;
|
|
51
|
+
console.log(`\n ── Portfolio (Monte-Carlo, ${P.iterations.toLocaleString()} runs over ${P.stories} stories) ──`);
|
|
52
|
+
console.log(` Cost p50 ${usd(P.costCents.p50)} p85 ${usd(P.costCents.p85)} p95 ${usd(P.costCents.p95)} (Σ-deterministic ${usd(P.deterministic.costCents)})`);
|
|
53
|
+
console.log(` Labor p50 ${hrs(P.hours.p50)} p85 ${hrs(P.hours.p85)} p95 ${hrs(P.hours.p95)}`);
|
|
54
|
+
console.log(` Compute p50 ${tok(P.tokens.p50)} p85 ${tok(P.tokens.p85)} p95 ${tok(P.tokens.p95)} tokens`);
|
|
55
|
+
console.log(`\n p85 is the commitment threshold. The cone narrows as vibe/brew actuals replace these assumptions.`);
|
|
56
|
+
}
|
|
57
|
+
function groupByEpic(estimates) {
|
|
58
|
+
const map = new Map();
|
|
59
|
+
const order = [];
|
|
60
|
+
for (const e of estimates) {
|
|
61
|
+
const k = e.epic ?? "(no epic)";
|
|
62
|
+
if (!map.has(k)) {
|
|
63
|
+
map.set(k, []);
|
|
64
|
+
order.push(k);
|
|
65
|
+
}
|
|
66
|
+
map.get(k).push(e);
|
|
67
|
+
}
|
|
68
|
+
return order.map((label) => ({ label, items: map.get(label) }));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/estimate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Budgeting — the deterministic estimation model (pure). Converts a story's
|
|
3
|
+
* COUNTABLE drivers (spec structure) + the LLM's RELATIVE `effort` block into a
|
|
4
|
+
* 3-point, dual-currency estimate (human manhours + agent tokens), then rolls a
|
|
5
|
+
* backlog up to portfolio percentiles via Monte-Carlo simulation.
|
|
6
|
+
*
|
|
7
|
+
* Boundary: the LLM sizes relative + names qualitative drivers (it's unreliable at
|
|
8
|
+
* absolute hours); THIS model owns the absolute conversion via calibrated
|
|
9
|
+
* coefficients. The seed coefficients below are illustrative defaults — the real
|
|
10
|
+
* ones are LEARNED from actuals (reference-class forecasting / the SizeCostTable).
|
|
11
|
+
* See dash docs/BUDGETING-AND-ROADMAP.md.
|
|
12
|
+
*/
|
|
13
|
+
import type { Spec, EffortSize } from "@slowcook-ai/core";
|
|
14
|
+
/** Countable complexity drivers extracted from the spec structure (the inside view). */
|
|
15
|
+
export interface StoryDrivers {
|
|
16
|
+
entities: number;
|
|
17
|
+
fields: number;
|
|
18
|
+
relations: number;
|
|
19
|
+
endpoints: number;
|
|
20
|
+
surfaces: number;
|
|
21
|
+
/** Σ declared states across surfaces (≥1 per surface) — the EPSS matrix size. */
|
|
22
|
+
epssCells: number;
|
|
23
|
+
scenarios: number;
|
|
24
|
+
invariants: number;
|
|
25
|
+
fidelityModes: number;
|
|
26
|
+
openQuestions: number;
|
|
27
|
+
personas: number;
|
|
28
|
+
}
|
|
29
|
+
/** A 3-point estimate (optimistic / most-likely / pessimistic) in one unit. */
|
|
30
|
+
export interface ThreePoint {
|
|
31
|
+
o: number;
|
|
32
|
+
m: number;
|
|
33
|
+
p: number;
|
|
34
|
+
}
|
|
35
|
+
/** A story's estimate across both currencies, 3-point each. */
|
|
36
|
+
export interface StoryEstimate {
|
|
37
|
+
storyId: string;
|
|
38
|
+
title: string;
|
|
39
|
+
epic: string | null;
|
|
40
|
+
/** human manhours (design + qa + review). */
|
|
41
|
+
hours: ThreePoint;
|
|
42
|
+
/** agent tokens (build + test). */
|
|
43
|
+
tokens: ThreePoint;
|
|
44
|
+
/** total cost in cents (labor + compute). */
|
|
45
|
+
costCents: ThreePoint;
|
|
46
|
+
risk: "low" | "medium" | "high";
|
|
47
|
+
confidence: number;
|
|
48
|
+
drivers: StoryDrivers;
|
|
49
|
+
qualitativeDrivers: string[];
|
|
50
|
+
}
|
|
51
|
+
/** Calibration — seed coefficients (illustrative; calibrate from actuals). */
|
|
52
|
+
export interface Calibration {
|
|
53
|
+
/** relative weight per t-shirt size. */
|
|
54
|
+
weight: Record<EffortSize, number>;
|
|
55
|
+
/** human hours per design/qa weight unit. */
|
|
56
|
+
designHoursPerWeight: number;
|
|
57
|
+
qaHoursPerWeight: number;
|
|
58
|
+
/** agent k-tokens per build weight unit. */
|
|
59
|
+
buildKTokPerWeight: number;
|
|
60
|
+
/** structural coefficients (the inside view). */
|
|
61
|
+
structural: {
|
|
62
|
+
designBase: number;
|
|
63
|
+
dSurf: number;
|
|
64
|
+
dMode: number;
|
|
65
|
+
buildBaseK: number;
|
|
66
|
+
bEntity: number;
|
|
67
|
+
bField: number;
|
|
68
|
+
bApi: number;
|
|
69
|
+
bSurf: number;
|
|
70
|
+
qaBase: number;
|
|
71
|
+
qCell: number;
|
|
72
|
+
qInv: number;
|
|
73
|
+
testBaseK: number;
|
|
74
|
+
tScenario: number;
|
|
75
|
+
reviewBase: number;
|
|
76
|
+
rSurf: number;
|
|
77
|
+
rInv: number;
|
|
78
|
+
};
|
|
79
|
+
/** multiplier per qualitative driver (default 1.0 when absent). */
|
|
80
|
+
driverMult: Record<string, number>;
|
|
81
|
+
/** added band per risk level. */
|
|
82
|
+
riskAdd: Record<"low" | "medium" | "high", number>;
|
|
83
|
+
baseBand: number;
|
|
84
|
+
/** $/hour (cents) blended labor rate. */
|
|
85
|
+
roleRateCents: number;
|
|
86
|
+
/** $/million-tokens (cents) blended compute rate. */
|
|
87
|
+
tokenRateCentsPerM: number;
|
|
88
|
+
}
|
|
89
|
+
export declare const SEED_CALIBRATION: Calibration;
|
|
90
|
+
/** Count the structural drivers from a spec (the inside view). */
|
|
91
|
+
export declare function extractDrivers(spec: Spec): StoryDrivers;
|
|
92
|
+
/** Estimate one story: countable drivers ⊕ the LLM effort block → 3-point dual-currency. */
|
|
93
|
+
export declare function estimateStory(spec: Spec, calib?: Calibration): StoryEstimate;
|
|
94
|
+
/** Sample a triangular(o,m,p) distribution given u∈[0,1). */
|
|
95
|
+
export declare function sampleTriangular(tp: ThreePoint, u: number): number;
|
|
96
|
+
export interface Percentiles {
|
|
97
|
+
p50: number;
|
|
98
|
+
p85: number;
|
|
99
|
+
p95: number;
|
|
100
|
+
}
|
|
101
|
+
export interface PortfolioForecast {
|
|
102
|
+
hours: Percentiles;
|
|
103
|
+
tokens: Percentiles;
|
|
104
|
+
costCents: Percentiles;
|
|
105
|
+
/** the deterministic Σ of most-likely values (the v1 method) for comparison. */
|
|
106
|
+
deterministic: {
|
|
107
|
+
hours: number;
|
|
108
|
+
tokens: number;
|
|
109
|
+
costCents: number;
|
|
110
|
+
};
|
|
111
|
+
iterations: number;
|
|
112
|
+
stories: number;
|
|
113
|
+
}
|
|
114
|
+
/** Monte-Carlo: per iteration draw a systemic factor, then sample each story's
|
|
115
|
+
* 3-point per currency, sum, report percentiles. */
|
|
116
|
+
export declare function monteCarloPortfolio(estimates: StoryEstimate[], iterations?: number, seed?: number): PortfolioForecast;
|
|
117
|
+
//# sourceMappingURL=model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/commands/estimate/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
export const SEED_CALIBRATION = {
|
|
2
|
+
weight: { xs: 1, s: 2, m: 4, l: 7, xl: 12 },
|
|
3
|
+
designHoursPerWeight: 2.0,
|
|
4
|
+
qaHoursPerWeight: 1.5,
|
|
5
|
+
buildKTokPerWeight: 80,
|
|
6
|
+
structural: {
|
|
7
|
+
designBase: 1, dSurf: 1.5, dMode: 0.8,
|
|
8
|
+
buildBaseK: 40, bEntity: 30, bField: 4, bApi: 15, bSurf: 20,
|
|
9
|
+
qaBase: 1, qCell: 0.6, qInv: 0.4,
|
|
10
|
+
testBaseK: 30, tScenario: 20,
|
|
11
|
+
reviewBase: 0.5, rSurf: 0.4, rInv: 0.2,
|
|
12
|
+
},
|
|
13
|
+
driverMult: {
|
|
14
|
+
"external-integration": 1.4, "novel-algorithm": 1.5, "stateful-flow": 1.25,
|
|
15
|
+
"multi-persona": 1.2, "data-migration": 1.3, realtime: 1.4, compliance: 1.3,
|
|
16
|
+
concurrency: 1.35, "ambiguous-requirements": 1.3,
|
|
17
|
+
},
|
|
18
|
+
riskAdd: { low: 0, medium: 0.25, high: 0.6 },
|
|
19
|
+
baseBand: 0.5,
|
|
20
|
+
roleRateCents: 8000,
|
|
21
|
+
tokenRateCentsPerM: 900,
|
|
22
|
+
};
|
|
23
|
+
/** Count the structural drivers from a spec (the inside view). */
|
|
24
|
+
export function extractDrivers(spec) {
|
|
25
|
+
const entities = spec.data_contract?.entities ?? [];
|
|
26
|
+
const surfaces = spec.surfaces ?? [];
|
|
27
|
+
const epssCells = surfaces.reduce((n, s) => n + Math.max(1, s.states?.length ?? 1), 0);
|
|
28
|
+
const personas = new Set();
|
|
29
|
+
if (spec.persona?.id)
|
|
30
|
+
personas.add(spec.persona.id);
|
|
31
|
+
for (const a of spec.actors ?? [])
|
|
32
|
+
personas.add(a.name);
|
|
33
|
+
return {
|
|
34
|
+
entities: entities.length,
|
|
35
|
+
fields: entities.reduce((n, e) => n + (e.fields?.length ?? 0), 0),
|
|
36
|
+
relations: entities.reduce((n, e) => n + (e.relations?.length ?? 0), 0),
|
|
37
|
+
endpoints: spec.data_contract?.api?.length ?? 0,
|
|
38
|
+
surfaces: surfaces.length,
|
|
39
|
+
epssCells,
|
|
40
|
+
scenarios: spec.acceptance_scenarios?.length ?? 0,
|
|
41
|
+
invariants: spec.invariants?.length ?? 0,
|
|
42
|
+
fidelityModes: spec.fidelity?.modes?.length ?? 1,
|
|
43
|
+
openQuestions: spec.open_questions?.addressable?.length ?? 0,
|
|
44
|
+
personas: personas.size,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/** Geometric mean of two positive numbers (blends structural + LLM views). */
|
|
48
|
+
const geomean = (a, b) => Math.sqrt(Math.max(a, 0.01) * Math.max(b, 0.01));
|
|
49
|
+
/** Spread a most-likely value into a right-skewed 3-point using risk + confidence. */
|
|
50
|
+
function spread(m, risk, confidence, calib) {
|
|
51
|
+
const band = Math.min(1.2, Math.max(0.1, (calib.baseBand * (1 + calib.riskAdd[risk])) / Math.max(confidence, 0.3)));
|
|
52
|
+
return { o: m * (1 - 0.35 * band), m, p: m * (1 + 1.0 * band) };
|
|
53
|
+
}
|
|
54
|
+
/** Estimate one story: countable drivers ⊕ the LLM effort block → 3-point dual-currency. */
|
|
55
|
+
export function estimateStory(spec, calib = SEED_CALIBRATION) {
|
|
56
|
+
const d = extractDrivers(spec);
|
|
57
|
+
const s = calib.structural;
|
|
58
|
+
const eff = spec.effort;
|
|
59
|
+
// Structural most-likely (the inside view).
|
|
60
|
+
const designH_s = s.designBase + s.dSurf * d.surfaces + s.dMode * d.surfaces * Math.max(0, d.fidelityModes - 1);
|
|
61
|
+
const buildK_s = s.buildBaseK + s.bEntity * d.entities + s.bField * d.fields + s.bApi * d.endpoints + s.bSurf * d.surfaces;
|
|
62
|
+
const qaH_s = s.qaBase + s.qCell * d.epssCells + s.qInv * d.invariants;
|
|
63
|
+
const testK_s = s.testBaseK + s.tScenario * d.scenarios;
|
|
64
|
+
const reviewH_s = s.reviewBase + s.rSurf * d.surfaces + s.rInv * d.invariants;
|
|
65
|
+
// LLM holistic most-likely (the t-shirt view), blended when present.
|
|
66
|
+
const w = (sz) => calib.weight[sz];
|
|
67
|
+
const designH = eff ? geomean(designH_s, w(eff.design) * calib.designHoursPerWeight) : designH_s;
|
|
68
|
+
const buildK = eff ? geomean(buildK_s, w(eff.build) * calib.buildKTokPerWeight) : buildK_s;
|
|
69
|
+
const qaH = eff ? geomean(qaH_s, w(eff.qa) * calib.qaHoursPerWeight) : qaH_s;
|
|
70
|
+
const testK = eff ? geomean(testK_s, w(eff.qa) * calib.buildKTokPerWeight * 0.5) : testK_s;
|
|
71
|
+
const reviewH = eff ? geomean(reviewH_s, w(eff.build) * 0.3) : reviewH_s;
|
|
72
|
+
// Qualitative driver multiplier (hits implementation/test more than design).
|
|
73
|
+
const mult = (eff?.drivers ?? []).reduce((acc, dr) => acc * (calib.driverMult[dr] ?? 1), 1);
|
|
74
|
+
const designMult = Math.sqrt(mult);
|
|
75
|
+
const hoursM = designH * designMult + qaH * mult + reviewH * mult;
|
|
76
|
+
const tokensM = (buildK * mult + testK * mult) * 1000;
|
|
77
|
+
const costM = Math.round((hoursM * calib.roleRateCents) + (tokensM / 1_000_000) * calib.tokenRateCentsPerM);
|
|
78
|
+
const risk = eff?.risk ?? "medium";
|
|
79
|
+
const confidence = eff?.confidence ?? 0.5;
|
|
80
|
+
return {
|
|
81
|
+
storyId: spec.story_id,
|
|
82
|
+
title: spec.title,
|
|
83
|
+
epic: spec.epic ?? null,
|
|
84
|
+
hours: spread(hoursM, risk, confidence, calib),
|
|
85
|
+
tokens: spread(tokensM, risk, confidence, calib),
|
|
86
|
+
costCents: spread(costM, risk, confidence, calib),
|
|
87
|
+
risk,
|
|
88
|
+
confidence,
|
|
89
|
+
drivers: d,
|
|
90
|
+
qualitativeDrivers: eff?.drivers ?? [],
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
// ── Monte-Carlo portfolio rollup ─────────────────────────────────────────────
|
|
94
|
+
/** Deterministic PRNG (mulberry32) so the simulation is reproducible + testable. */
|
|
95
|
+
function mulberry32(seed) {
|
|
96
|
+
let a = seed >>> 0;
|
|
97
|
+
return () => {
|
|
98
|
+
a |= 0;
|
|
99
|
+
a = (a + 0x6d2b79f5) | 0;
|
|
100
|
+
let t = Math.imul(a ^ (a >>> 15), 1 | a);
|
|
101
|
+
t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;
|
|
102
|
+
return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Sample a triangular(o,m,p) distribution given u∈[0,1). */
|
|
106
|
+
export function sampleTriangular(tp, u) {
|
|
107
|
+
const { o, m, p } = tp;
|
|
108
|
+
if (p <= o)
|
|
109
|
+
return o;
|
|
110
|
+
const fc = (m - o) / (p - o);
|
|
111
|
+
return u < fc ? o + Math.sqrt(u * (p - o) * (m - o)) : p - Math.sqrt((1 - u) * (p - o) * (p - m));
|
|
112
|
+
}
|
|
113
|
+
function percentiles(sorted) {
|
|
114
|
+
const at = (q) => sorted[Math.min(sorted.length - 1, Math.floor(q * sorted.length))];
|
|
115
|
+
return { p50: at(0.5), p85: at(0.85), p95: at(0.95) };
|
|
116
|
+
}
|
|
117
|
+
/** Common-mode (systemic) risk factor applied to the WHOLE backlog per iteration —
|
|
118
|
+
* models correlated overruns (a slow team / hard codebase runs everything long).
|
|
119
|
+
* Without it, idiosyncratic story risk over-diversifies and the portfolio band is
|
|
120
|
+
* unrealistically tight. Right-skewed: systemic surprises are usually bad. */
|
|
121
|
+
const SYSTEMIC = { o: 0.92, m: 1.0, p: 1.35 };
|
|
122
|
+
/** Monte-Carlo: per iteration draw a systemic factor, then sample each story's
|
|
123
|
+
* 3-point per currency, sum, report percentiles. */
|
|
124
|
+
export function monteCarloPortfolio(estimates, iterations = 10_000, seed = 0x5c00c) {
|
|
125
|
+
const rand = mulberry32(seed);
|
|
126
|
+
const hours = [], tokens = [], cost = [];
|
|
127
|
+
for (let i = 0; i < iterations; i++) {
|
|
128
|
+
const sf = sampleTriangular(SYSTEMIC, rand()); // shared by all stories this iteration
|
|
129
|
+
let h = 0, t = 0, c = 0;
|
|
130
|
+
for (const e of estimates) {
|
|
131
|
+
// one shared draw per story keeps the currencies correlated (a story that
|
|
132
|
+
// runs long runs long in BOTH hours and tokens) — more realistic than independent.
|
|
133
|
+
const u = rand();
|
|
134
|
+
h += sampleTriangular(e.hours, u) * sf;
|
|
135
|
+
t += sampleTriangular(e.tokens, u) * sf;
|
|
136
|
+
c += sampleTriangular(e.costCents, u) * sf;
|
|
137
|
+
}
|
|
138
|
+
hours.push(h);
|
|
139
|
+
tokens.push(t);
|
|
140
|
+
cost.push(c);
|
|
141
|
+
}
|
|
142
|
+
hours.sort((a, b) => a - b);
|
|
143
|
+
tokens.sort((a, b) => a - b);
|
|
144
|
+
cost.sort((a, b) => a - b);
|
|
145
|
+
return {
|
|
146
|
+
hours: percentiles(hours),
|
|
147
|
+
tokens: percentiles(tokens),
|
|
148
|
+
costCents: percentiles(cost),
|
|
149
|
+
deterministic: {
|
|
150
|
+
hours: estimates.reduce((n, e) => n + e.hours.m, 0),
|
|
151
|
+
tokens: estimates.reduce((n, e) => n + e.tokens.m, 0),
|
|
152
|
+
costCents: estimates.reduce((n, e) => n + e.costCents.m, 0),
|
|
153
|
+
},
|
|
154
|
+
iterations,
|
|
155
|
+
stories: estimates.length,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/commands/estimate/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/eye/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/eye/index.ts"],"names":[],"mappings":"AAyBA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEzE"}
|