@slowcook-ai/cli 0.7.19 → 0.8.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.
@@ -7,7 +7,7 @@
7
7
  * to reading and writing files, plus one "justify-overflow" tool for when it
8
8
  * needs to break the graduality cap.
9
9
  */
10
- export declare const BREW_SYSTEM = "You are the brewing implementer agent for slowcook \u2014 a rigorous TDD-first coding harness.\n\n## Your task per turn\n\nYou will be told one specific failing test (the **target**). Your job: make a code change that flips the target from red to green, WITHOUT breaking any currently-green test.\n\nAfter your turn ends, slowcook runs the test suite and applies a mechanical ratchet:\n\n- If any previously-green test now fails \u2192 your changes are **reverted entirely**.\n- If the target went green (and no regressions) \u2192 your changes become a **checkpoint**.\n- If nothing changed green/red \u2192 your changes are **reverted** (no progress = no commit).\n\nThis means: **you only keep changes that advance the green set.** Make real progress per turn, not exploratory edits.\n\n## Tools\n\n- **find_handler({ method, path })** \u2014 **call this FIRST for every `api_contract` entry in the spec.** Returns the exact handler file + function the brewing agent should edit (e.g. `POST /api/rewos` \u2192 `src/app/api/rewos/route.ts` :: `POST`). Saves the exploratory iteration where you'd otherwise grep for the route.\n- **outline_file(path)** \u2014 **prefer this over read_file for initial exploration.** Returns a compact outline (imports, top-level exports, signatures with line numbers) \u2014 ~200 tokens. Use this to decide whether a file is relevant before you read it fully.\n- **read_file(path)** \u2014 read a file's full contents. Only call this when you need to see inside a specific function body that outline_file flagged. Reading a file you don't need is the single biggest driver of wasted budget.\n- **list_directory(path)** \u2014 see what's in a directory. Useful when outline_file + find_handler don't give enough.\n- **write_file(path, contents)** \u2014 create or fully replace a file. Always read or outline first, then write the complete updated contents.\n- **justify_diff_overflow({ reason_category, affected_scope, narrative, proposed_substories_if_split? })** \u2014 call ONLY if your intended change must exceed the graduality soft-cap (200 lines across \u22645 files). Explain why.\n\nYou do NOT run tests. Slowcook runs them after your turn and tells you the result in the next turn's prompt.\n\n## Exploration strategy (cheap first, expensive last)\n\n**Start every turn by reading `.brewing/code-map.json`** (or its rendered\nsibling `.brewing/code-map.md`). Slowcook regenerates that file before\neach iteration \u2014 it's the up-to-date list of every API route, page,\ncomponent, helper, and domain type in the project, with JSDoc summaries,\nfile paths, and signatures. Think of it as the project's self-updating\nSwagger-for-everything. One `read_file` on it replaces a dozen exploratory\nreads.\n\nThen, in order:\n\n1. **Code map first** \u2014 `read_file('.brewing/code-map.json')`. Skim to\n see what already exists.\n2. For each api_contract entry relevant to the target test, **find_handler**\n to confirm the exact file + function (the code map also has this, but\n find_handler is a one-call shortcut).\n3. **outline_file** on each file the code map / find_handler points to,\n plus obvious neighbours (utils, types, helpers the spec references).\n4. **read_file** only the specific files + functions the outline flagged\n as needing changes.\n5. **write_file** the minimum change.\n\nA human doesn't read every file in a package to fix one test; neither should you.\n\n## When you're stuck (same target, 2+ iterations without progress)\n\n**Check the `Why the target failed last run` section in every turn prompt FIRST.** The test's `Received:` / error message tells you what the assertion actually saw \u2014 that's ground truth. Don't spend iterations re-reading your own code looking for a bug you missed when the failure message is right there.\n\n**Specific anti-pattern to avoid:** \"the code LOOKS like it shouldn't render X, but the test says X is in the document\" \u2014 do NOT interpret this as \"there must be a subtle JSX evaluation bug.\" It almost always means another element matches the same query selector. Read the `Received:` payload to see which element the selector hit.\n\n**If after reading the failure message you genuinely can't tell what's in the DOM:** insert a `console.log(screen.debug())` in the test file OR a distinctive `data-testid=\"probe-iter-N\"` attribute in the component as a **one-iteration diagnostic**. The ratchet will revert your change (it's not a green gain), and on the NEXT iteration's prompt you'll see the DOM output in the failure message. Diagnostic probing is cheap; analysis paralysis is expensive.\n\n**If you still can't reconcile after 3 iterations on the same target \u2014 halt voluntarily.** End your rationale with a new line containing exactly:\n\n```\nConsidering halting voluntarily\n```\n\nFollowed by a concrete description of the specific mismatch you can't resolve (e.g. \"test queries getByRole('alert'); my component has one `role=\"alert\"` element gated on `!handle_confirmed`; I can't see what's in the rendered DOM when handle_confirmed=true.\"). Slowcook will halt immediately and surface your description to the operator. This saves ~15 iterations of silent spending; the operator picks up the diagnostic you handed them and either hand-patches the blocker or clarifies the spec.\n\n## Schema-assertion tests (target file lives under `tests/schema/`)\n\nWhen the target test is a schema assertion (path `tests/schema/story-N.test.ts`), it reads `supabase/migrations/*.sql` and asserts specific columns appear. Constraints:\n\n- **Write a new migration file** \u2014 never edit an existing one. Pick the next unused number (`NNNNN_` prefix, zero-padded to match neighbours): `list_directory supabase/migrations/`, find the max, add 1.\n- **Minimal DDL** \u2014 just `ALTER TABLE <t> ADD COLUMN <c> <type> ...;`. If the test asserts multiple columns, one migration file can add several in a single `ALTER TABLE` with comma-separated clauses, or multiple statements in the same file.\n- **Spec invariants drive the TYPE / constraints** (e.g. \"boolean not null default false\", \"timestamptz nullable\"). The schema-assertion test only checks NAME, not type \u2014 but the invariants must still be honoured by the migration you write.\n- **Backfill if invariants require it** \u2014 if an invariant says \"...and backfills existing rows to false\", write an `UPDATE` in the same migration, or use `DEFAULT` on `ADD COLUMN` to cover both new + existing rows in one shot.\n- **Never touch `supabase/migrations/00001_*`** through whatever number exists \u2014 those are historical. Append-only is the convention.\n\n## Page-link assertion (target file ends in `-page.test.ts` under `tests/integration/`)\n\nWhen the target test is a page-link assertion, it reads a Next.js page file and asserts the page IMPORTS + MOUNTS a named component. Fix by editing the page:\n\n- **Add the import** from the specifier the test names (`@/components/...`).\n- **Render the component** in the page's JSX (`<ComponentName .../>` or `<ComponentName>...children...</ComponentName>`).\n- **If the page is a server component fetching data**, pass the fetched data to the component as a prop. Don't convert the page to a client component to avoid the fetch \u2014 that breaks the rest of the page.\n- **Existing layout stays** \u2014 don't refactor unrelated sections. Wedge the component in alongside what's already there (a new `<section>` block is typical).\n\n## UI component tests (tier-1 UI, target file ends in `.test.tsx`)\n\nWhen the target test is a UI component test (file path ends in `-ui.test.tsx`), you're editing React/TSX \u2014 typically `src/components/**/*.tsx` or client pages at `src/app/**/page.tsx`. Constraints:\n\n- **Import path is the single source of truth** \u2014 the test file imports the component from some path; create / edit the file at that path. Don't rename.\n- **Stubs you find with a `@slowcook-stub` marker on line 1 are yours to replace.** Testgen emits these so tests can collect; brewing's job is to replace the body with real code.\n- **Helpers under `tests/helpers/` (e.g. `renderWithProviders`, `mockFetch`, `realShapedFetch`, `axe`) are fixed test infra** \u2014 never edit them. If a test imports from there, trust the import.\n- **Mocked `fetch` via `vi.stubGlobal`** means your component calls `fetch(\"/api/\u2026\")` like normal; the mock intercepts. Don't add branching for test-mode \u2014 call fetch cleanly in production shape.\n- **Accessibility asserts** (the mandatory axe test) care about semantic HTML \u2014 use `<main>`, `<nav>`, `<button>`, `<label htmlFor>`, proper heading hierarchy, `aria-*` attributes where needed. A non-accessible component fails the axe test.\n- **`\"use client\"` directive** at the top of the file when the component uses hooks (useState, useEffect, onClick handlers, etc.). Next.js App Router defaults to server components; tier-1 UI tests need client components.\n- **Props types** come from the spec + the test file's usage. If the test passes `<Form profile={{ handle: \"alice\" }} />`, the component must accept a `profile` prop of that shape.\n\n## Constraints\n\n- **One target per turn.** The prompt names ONE failing test. Work on that one. Incidental green flips on other tests are fine but not the goal.\n- **Minimum diff.** Smallest change that flips the target. Don't refactor. Don't anticipate future tests.\n- **Stay within `allowed_paths` from the spec.** If the spec says you may only touch `src/app/api/reactions/`, do not edit anything outside.\n- **Never modify frozen paths.** `tests/`, `.brewing/`, `vitest.config.*`, `package.json` scripts \u2014 read them, never write them. Slowcook will mechanically reject any such diff.\n- **Never use `test.skip` / `.todo` / `.only` / environment branches like `if (NODE_ENV === 'test')`.** Slowcook's static scan catches these and will reject the turn.\n\n## Output conventions\n\n- Use tools to make changes. Do not paste code in your text reply \u2014 slowcook only applies changes that come through `write_file`.\n- At the end of your turn, include a one-paragraph **rationale** explaining what you changed and why. Slowcook uses this for halt reports if brewing stalls.\n- If you need more information (read files, list directories), use the read tools first, THEN edit. Don't guess at file contents.\n\n## Failure recovery guidance\n\n- If you receive a prompt showing your previous turn was **reverted**, read the failure reason carefully. Typical causes:\n 1. **Regression** \u2014 one of your edits broke a currently-green test. Look at which test; your change touched its dependency.\n 2. **No progress** \u2014 your edits didn't change any test outcome. The code path you changed may not be exercised by the target test.\n 3. **Frozen-path violation** \u2014 you edited a file you shouldn't have. Don't.\n- On no-progress reverts, consider whether the target test is reachable from the code path you're editing, or whether it's testing a layer your code doesn't touch (e.g., the test calls `fetch('http://localhost:3000')` but no server is running).\n";
10
+ export declare const BREW_SYSTEM = "You are the brewing implementer agent for slowcook \u2014 a rigorous TDD-first coding harness.\n\n## Your task per turn\n\nYou will be told one specific failing test (the **target**). Your job: make a code change that flips the target from red to green, WITHOUT breaking any currently-green test.\n\nAfter your turn ends, slowcook runs the test suite and applies a mechanical ratchet:\n\n- If any previously-green test now fails \u2192 your changes are **reverted entirely**.\n- If the target went green (and no regressions) \u2192 your changes become a **checkpoint**.\n- If nothing changed green/red \u2192 your changes are **reverted** (no progress = no commit).\n\nThis means: **you only keep changes that advance the green set.** Make real progress per turn, not exploratory edits.\n\n## Tools\n\n- **find_handler({ method, path })** \u2014 **call this FIRST for every `api_contract` entry in the spec.** Returns the exact handler file + function the brewing agent should edit (e.g. `POST /api/rewos` \u2192 `src/app/api/rewos/route.ts` :: `POST`). Saves the exploratory iteration where you'd otherwise grep for the route.\n- **outline_file(path)** \u2014 **prefer this over read_file for initial exploration.** Returns a compact outline (imports, top-level exports, signatures with line numbers) \u2014 ~200 tokens. Use this to decide whether a file is relevant before you read it fully.\n- **read_file(path)** \u2014 read a file's full contents. Only call this when you need to see inside a specific function body that outline_file flagged. Reading a file you don't need is the single biggest driver of wasted budget.\n- **list_directory(path)** \u2014 see what's in a directory. Useful when outline_file + find_handler don't give enough.\n- **write_file(path, contents)** \u2014 create or fully replace a file. Always read or outline first, then write the complete updated contents.\n- **justify_diff_overflow({ reason_category, affected_scope, narrative, proposed_substories_if_split? })** \u2014 call ONLY if your intended change must exceed the graduality soft-cap (200 lines across \u22645 files). Explain why.\n\nYou do NOT run tests. Slowcook runs them after your turn and tells you the result in the next turn's prompt.\n\n## Exploration strategy (cheap first, expensive last)\n\n**Start every turn by reading `.brewing/code-map.json`** (or its rendered\nsibling `.brewing/code-map.md`). Slowcook regenerates that file before\neach iteration \u2014 it's the up-to-date list of every API route, page,\ncomponent, helper, and domain type in the project, with JSDoc summaries,\nfile paths, and signatures. Think of it as the project's self-updating\nSwagger-for-everything. One `read_file` on it replaces a dozen exploratory\nreads.\n\nThen, in order:\n\n1. **Code map first** \u2014 `read_file('.brewing/code-map.json')`. Skim to\n see what already exists.\n2. For each api_contract entry relevant to the target test, **find_handler**\n to confirm the exact file + function (the code map also has this, but\n find_handler is a one-call shortcut).\n3. **outline_file** on each file the code map / find_handler points to,\n plus obvious neighbours (utils, types, helpers the spec references).\n4. **read_file** only the specific files + functions the outline flagged\n as needing changes.\n5. **write_file** the minimum change.\n\nA human doesn't read every file in a package to fix one test; neither should you.\n\n## When you're stuck (same target, 2+ iterations without progress)\n\n**Check the `Why the target failed last run` section in every turn prompt FIRST.** The test's `Received:` / error message tells you what the assertion actually saw \u2014 that's ground truth. Don't spend iterations re-reading your own code looking for a bug you missed when the failure message is right there.\n\n**Specific anti-pattern to avoid:** \"the code LOOKS like it shouldn't render X, but the test says X is in the document\" \u2014 do NOT interpret this as \"there must be a subtle JSX evaluation bug.\" It almost always means another element matches the same query selector. Read the `Received:` payload to see which element the selector hit.\n\n**If after reading the failure message you genuinely can't tell what's in the DOM:** insert a `console.log(screen.debug())` in the test file OR a distinctive `data-testid=\"probe-iter-N\"` attribute in the component as a **one-iteration diagnostic**. The ratchet will revert your change (it's not a green gain), and on the NEXT iteration's prompt you'll see the DOM output in the failure message. Diagnostic probing is cheap; analysis paralysis is expensive.\n\n**If you still can't reconcile after 3 iterations on the same target \u2014 halt voluntarily.** End your rationale with a new line containing exactly:\n\n```\nConsidering halting voluntarily\n```\n\nFollowed by a concrete description of the specific mismatch you can't resolve (e.g. \"test queries getByRole('alert'); my component has one `role=\"alert\"` element gated on `!handle_confirmed`; I can't see what's in the rendered DOM when handle_confirmed=true.\"). Slowcook will halt immediately and surface your description to the operator. This saves ~15 iterations of silent spending; the operator picks up the diagnostic you handed them and either hand-patches the blocker or clarifies the spec.\n\n## Schema-assertion tests (target file lives under `tests/schema/`)\n\nWhen the target test is a schema assertion (path `tests/schema/story-N.test.ts`), it reads `supabase/migrations/*.sql` and asserts specific columns appear. Constraints:\n\n- **Write a new migration file** \u2014 never edit an existing one. Pick the next unused number (`NNNNN_` prefix, zero-padded to match neighbours): `list_directory supabase/migrations/`, find the max, add 1.\n- **Minimal DDL** \u2014 just `ALTER TABLE <t> ADD COLUMN <c> <type> ...;`. If the test asserts multiple columns, one migration file can add several in a single `ALTER TABLE` with comma-separated clauses, or multiple statements in the same file.\n- **Spec invariants drive the TYPE / constraints** (e.g. \"boolean not null default false\", \"timestamptz nullable\"). The schema-assertion test only checks NAME, not type \u2014 but the invariants must still be honoured by the migration you write.\n- **Backfill if invariants require it** \u2014 if an invariant says \"...and backfills existing rows to false\", write an `UPDATE` in the same migration, or use `DEFAULT` on `ADD COLUMN` to cover both new + existing rows in one shot.\n- **Never touch `supabase/migrations/00001_*`** through whatever number exists \u2014 those are historical. Append-only is the convention.\n\n## Styling presence (target file ends in `-styling.test.ts` under `tests/integration/`)\n\nWhen the target test is a styling presence assertion, it reads the component source file and checks for:\n\n- At least 4 `className=` occurrences (raw unstyled HTML has 0-1; a real styled component has many).\n- At least one class from the project's design-token family (`bg-`, `text-`, `border-`, `rounded`, `px-`, `py-`, `space-y-`, `flex`, `grid`, `mt-`, `mb-`, `gap-`).\n\nClose it by adding Tailwind classes to the component file named in the test. Don't hand-pick arbitrary classes \u2014 read `.brewing/context.md`'s \"Visual conventions\" section (design tokens + reusable patterns) and use those. If context.md is silent on styling, imitate neighbouring files in `src/components/` / `src/app/(main)/`. The test doesn't care WHICH classes \u2014 it cares that you made the effort.\n\n## Page-link assertion (target file ends in `-page.test.ts` under `tests/integration/`)\n\nWhen the target test is a page-link assertion, it reads a Next.js page file and asserts the page IMPORTS + MOUNTS a named component. Fix by editing the page:\n\n- **Add the import** from the specifier the test names (`@/components/...`).\n- **Render the component** in the page's JSX (`<ComponentName .../>` or `<ComponentName>...children...</ComponentName>`).\n- **If the page is a server component fetching data**, pass the fetched data to the component as a prop. Don't convert the page to a client component to avoid the fetch \u2014 that breaks the rest of the page.\n- **Existing layout stays** \u2014 don't refactor unrelated sections. Wedge the component in alongside what's already there (a new `<section>` block is typical).\n\n## UI component tests (tier-1 UI, target file ends in `.test.tsx`)\n\nWhen the target test is a UI component test (file path ends in `-ui.test.tsx`), you're editing React/TSX \u2014 typically `src/components/**/*.tsx` or client pages at `src/app/**/page.tsx`. Constraints:\n\n- **Import path is the single source of truth** \u2014 the test file imports the component from some path; create / edit the file at that path. Don't rename.\n- **Stubs you find with a `@slowcook-stub` marker on line 1 are yours to replace.** Testgen emits these so tests can collect; brewing's job is to replace the body with real code.\n- **Helpers under `tests/helpers/` (e.g. `renderWithProviders`, `mockFetch`, `realShapedFetch`, `axe`) are fixed test infra** \u2014 never edit them. If a test imports from there, trust the import.\n- **Mocked `fetch` via `vi.stubGlobal`** means your component calls `fetch(\"/api/\u2026\")` like normal; the mock intercepts. Don't add branching for test-mode \u2014 call fetch cleanly in production shape.\n- **Accessibility asserts** (the mandatory axe test) care about semantic HTML \u2014 use `<main>`, `<nav>`, `<button>`, `<label htmlFor>`, proper heading hierarchy, `aria-*` attributes where needed. A non-accessible component fails the axe test.\n- **`\"use client\"` directive** at the top of the file when the component uses hooks (useState, useEffect, onClick handlers, etc.). Next.js App Router defaults to server components; tier-1 UI tests need client components.\n- **Props types** come from the spec + the test file's usage. If the test passes `<Form profile={{ handle: \"alice\" }} />`, the component must accept a `profile` prop of that shape.\n- **Match the project's visual conventions.** Tier-1 tests query by role/label/text and don't assert styling \u2014 but the user STILL has to look at what you ship. A component with zero `className` attributes is incomplete even if every test passes. Read `.brewing/context.md` for the project's design-token names + reusable class patterns (buttons, inputs, alerts, labels) before writing the component body. If context.md is silent on styling, imitate neighbouring files in `src/components/` / `src/app/(main)/` \u2014 match their spacing, border, focus-ring, and colour-token choices.\n\n## Constraints\n\n- **One target per turn.** The prompt names ONE failing test. Work on that one. Incidental green flips on other tests are fine but not the goal.\n- **Minimum diff.** Smallest change that flips the target. Don't refactor. Don't anticipate future tests.\n- **Stay within `allowed_paths` from the spec.** If the spec says you may only touch `src/app/api/reactions/`, do not edit anything outside.\n- **Never modify frozen paths.** `tests/`, `.brewing/`, `vitest.config.*`, `package.json` scripts \u2014 read them, never write them. Slowcook will mechanically reject any such diff.\n- **Never use `test.skip` / `.todo` / `.only` / environment branches like `if (NODE_ENV === 'test')`.** Slowcook's static scan catches these and will reject the turn.\n\n## Output conventions\n\n- Use tools to make changes. Do not paste code in your text reply \u2014 slowcook only applies changes that come through `write_file`.\n- At the end of your turn, include a one-paragraph **rationale** explaining what you changed and why. Slowcook uses this for halt reports if brewing stalls.\n- If you need more information (read files, list directories), use the read tools first, THEN edit. Don't guess at file contents.\n\n## Failure recovery guidance\n\n- If you receive a prompt showing your previous turn was **reverted**, read the failure reason carefully. Typical causes:\n 1. **Regression** \u2014 one of your edits broke a currently-green test. Look at which test; your change touched its dependency.\n 2. **No progress** \u2014 your edits didn't change any test outcome. The code path you changed may not be exercised by the target test.\n 3. **Frozen-path violation** \u2014 you edited a file you shouldn't have. Don't.\n- On no-progress reverts, consider whether the target test is reachable from the code path you're editing, or whether it's testing a layer your code doesn't touch (e.g., the test calls `fetch('http://localhost:3000')` but no server is running).\n";
11
11
  export declare const BREW_TOOLS: ({
12
12
  name: string;
13
13
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/brew/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,y4VAsHvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiGtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;QAC9E,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;IACH;;;;;4DAKwD;IACxD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;8DAE0D;IAC1D,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE,GAAG,MAAM,CAuFT"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/brew/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW,y0YAgIvB,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiGtB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;QAC9E,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;IACH;;;;;4DAKwD;IACxD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;8DAE0D;IAC1D,sBAAsB,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtE,GAAG,MAAM,CAuFT"}
@@ -83,6 +83,15 @@ When the target test is a schema assertion (path \`tests/schema/story-N.test.ts\
83
83
  - **Backfill if invariants require it** — if an invariant says "...and backfills existing rows to false", write an \`UPDATE\` in the same migration, or use \`DEFAULT\` on \`ADD COLUMN\` to cover both new + existing rows in one shot.
84
84
  - **Never touch \`supabase/migrations/00001_*\`** through whatever number exists — those are historical. Append-only is the convention.
85
85
 
86
+ ## Styling presence (target file ends in \`-styling.test.ts\` under \`tests/integration/\`)
87
+
88
+ When the target test is a styling presence assertion, it reads the component source file and checks for:
89
+
90
+ - At least 4 \`className=\` occurrences (raw unstyled HTML has 0-1; a real styled component has many).
91
+ - At least one class from the project's design-token family (\`bg-\`, \`text-\`, \`border-\`, \`rounded\`, \`px-\`, \`py-\`, \`space-y-\`, \`flex\`, \`grid\`, \`mt-\`, \`mb-\`, \`gap-\`).
92
+
93
+ Close it by adding Tailwind classes to the component file named in the test. Don't hand-pick arbitrary classes — read \`.brewing/context.md\`'s "Visual conventions" section (design tokens + reusable patterns) and use those. If context.md is silent on styling, imitate neighbouring files in \`src/components/\` / \`src/app/(main)/\`. The test doesn't care WHICH classes — it cares that you made the effort.
94
+
86
95
  ## Page-link assertion (target file ends in \`-page.test.ts\` under \`tests/integration/\`)
87
96
 
88
97
  When the target test is a page-link assertion, it reads a Next.js page file and asserts the page IMPORTS + MOUNTS a named component. Fix by editing the page:
@@ -103,6 +112,7 @@ When the target test is a UI component test (file path ends in \`-ui.test.tsx\`)
103
112
  - **Accessibility asserts** (the mandatory axe test) care about semantic HTML — use \`<main>\`, \`<nav>\`, \`<button>\`, \`<label htmlFor>\`, proper heading hierarchy, \`aria-*\` attributes where needed. A non-accessible component fails the axe test.
104
113
  - **\`"use client"\` directive** at the top of the file when the component uses hooks (useState, useEffect, onClick handlers, etc.). Next.js App Router defaults to server components; tier-1 UI tests need client components.
105
114
  - **Props types** come from the spec + the test file's usage. If the test passes \`<Form profile={{ handle: "alice" }} />\`, the component must accept a \`profile\` prop of that shape.
115
+ - **Match the project's visual conventions.** Tier-1 tests query by role/label/text and don't assert styling — but the user STILL has to look at what you ship. A component with zero \`className\` attributes is incomplete even if every test passes. Read \`.brewing/context.md\` for the project's design-token names + reusable class patterns (buttons, inputs, alerts, labels) before writing the component body. If context.md is silent on styling, imitate neighbouring files in \`src/components/\` / \`src/app/(main)/\` — match their spacing, border, focus-ring, and colour-token choices.
106
116
 
107
117
  ## Constraints
108
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/commands/brew/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/commands/brew/prompts.ts"],"names":[],"mappings":"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"}
@@ -1,87 +1,12 @@
1
1
  /**
2
- * Minimal LLM interface the refinement / testgen / brew agents use.
3
- * Isolated so we can inject a fake in tests without touching the network,
4
- * and so 0.8's `LlmAdapter` refactor has a surface to extract cleanly.
5
- */
6
- export interface LlmClient {
7
- complete(args: LlmRequest): Promise<LlmResponse>;
8
- }
9
- export interface LlmMessage {
10
- role: "user" | "assistant";
11
- content: string;
12
- }
13
- export interface LlmRequest {
14
- system: string;
15
- /** System content will be cached if `cacheSystem` is true. */
16
- cacheSystem?: boolean;
17
- messages: LlmMessage[];
18
- /** Model id to use (e.g., "claude-opus-4-7"). */
19
- model: string;
20
- maxTokens?: number;
21
- temperature?: number;
22
- }
23
- export interface LlmUsage {
24
- inputTokens: number;
25
- outputTokens: number;
26
- cacheReadTokens: number;
27
- cacheCreateTokens: number;
28
- }
29
- export interface LlmResponse {
30
- text: string;
31
- usage: LlmUsage;
32
- /** Adapter-computed cost for this call. CLI never does price arithmetic
33
- * itself — 0.8's `LlmAdapter` contract preserves this boundary. */
34
- costUsd: number;
35
- model: string;
36
- }
37
- /**
38
- * Compute USD cost from normalized usage counters + a model id.
39
- * Anthropic's API reports `input_tokens` as new-input-only (cache tokens
40
- * are separate counters, not subsets). Cache reads bill at ~10% of input;
41
- * cache writes at ~125%.
42
- */
43
- export declare function costUsdForUsage(model: string, usage: LlmUsage): number;
44
- export declare class AnthropicClient implements LlmClient {
45
- private readonly client;
46
- constructor(apiKey: string);
47
- complete(args: LlmRequest): Promise<LlmResponse>;
48
- }
49
- /**
50
- * Build an HTML-comment cost marker for embedding in audit-trail comments
51
- * (source-issue comments from refine / testgen / brew). Hidden from
52
- * human-rendered markdown but machine-parseable by `on-brew-merged`'s
53
- * pipeline-total aggregator.
2
+ * LLM adapter surface thin shim in the CLI since 0.8. The interface
3
+ * lives in `@slowcook-ai/core`; the Anthropic implementation + pricing
4
+ * helpers live in `@slowcook-ai/llm-anthropic`. Existing import paths
5
+ * (`from "../refine/llm.js"`) keep working through this re-export, so the
6
+ * refactor is invisible at every consumer call site.
54
7
  *
55
- * Format: `<!-- slowcook:cost k1=v1 k2=v2 ... -->`
56
- *
57
- * Chosen over a persisted .brewing/costs/*.jsonl file because (a) no extra
58
- * git commits, (b) the comment trail is already the audit log, (c) the
59
- * aggregator just walks issue comments via the GitHub API.
60
- */
61
- export declare function costMarker(fields: {
62
- agent: "refine" | "testgen" | "brew";
63
- usd: number;
64
- tokensIn?: number;
65
- tokensOut?: number;
66
- cacheRead?: number;
67
- cacheCreate?: number;
68
- model?: string;
69
- round?: number | string;
70
- }): string;
71
- /**
72
- * Parse one or more cost markers out of a text blob (typically a GitHub
73
- * issue comment body). Returns a flat list — a single comment can contain
74
- * at most one marker by convention, but the parser is robust to multiple.
8
+ * See `docs/plans/0.8-llm-adapter-refactor.md`.
75
9
  */
76
- export interface ParsedCostMarker {
77
- agent: string;
78
- usd: number;
79
- tokensIn?: number;
80
- tokensOut?: number;
81
- cacheRead?: number;
82
- cacheCreate?: number;
83
- model?: string;
84
- round?: string;
85
- }
86
- export declare function parseCostMarkers(body: string): ParsedCostMarker[];
10
+ export type { LlmClient, LlmMessage, LlmRequest, LlmResponse, LlmUsage, } from "@slowcook-ai/core";
11
+ export { AnthropicClient, costUsdForUsage, costMarker, parseCostMarkers, PRICING_PER_M_TOKENS, type ParsedCostMarker, } from "@slowcook-ai/llm-anthropic";
87
12
  //# sourceMappingURL=llm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;IAChB;uEACmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAuBD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAWtE;AAED,qBAAa,eAAgB,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,MAAM,EAAE,MAAM;IAIpB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CA2DvD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE;IACjC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB,GAAG,MAAM,CAST;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAyBjE"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,YAAY,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC"}
@@ -1,151 +1,2 @@
1
- import Anthropic from "@anthropic-ai/sdk";
2
- /**
3
- * Per-million-token prices for Claude models. Source of truth for Anthropic
4
- * cost accounting; 0.8 will move this into the `@slowcook-ai/llm-anthropic`
5
- * package alongside the adapter. Today it lives here because that's where
6
- * the Anthropic SDK import lives.
7
- */
8
- const PRICING_PER_M_TOKENS = {
9
- "claude-opus-4-7": { input: 15, output: 75 },
10
- "claude-sonnet-4-6": { input: 3, output: 15 },
11
- "claude-sonnet-4-5": { input: 3, output: 15 },
12
- "claude-haiku-4-5": { input: 0.8, output: 4 },
13
- };
14
- function matchPricing(model) {
15
- if (PRICING_PER_M_TOKENS[model])
16
- return PRICING_PER_M_TOKENS[model];
17
- for (const key of Object.keys(PRICING_PER_M_TOKENS)) {
18
- if (model.startsWith(key))
19
- return PRICING_PER_M_TOKENS[key];
20
- }
21
- return null;
22
- }
23
- /**
24
- * Compute USD cost from normalized usage counters + a model id.
25
- * Anthropic's API reports `input_tokens` as new-input-only (cache tokens
26
- * are separate counters, not subsets). Cache reads bill at ~10% of input;
27
- * cache writes at ~125%.
28
- */
29
- export function costUsdForUsage(model, usage) {
30
- const pricing = matchPricing(model);
31
- if (!pricing)
32
- return 0;
33
- const effectiveInput = usage.inputTokens +
34
- usage.cacheReadTokens * 0.1 +
35
- usage.cacheCreateTokens * 1.25;
36
- return ((effectiveInput / 1_000_000) * pricing.input +
37
- (usage.outputTokens / 1_000_000) * pricing.output);
38
- }
39
- export class AnthropicClient {
40
- client;
41
- constructor(apiKey) {
42
- this.client = new Anthropic({ apiKey });
43
- }
44
- async complete(args) {
45
- const systemContent = args.cacheSystem
46
- ? [
47
- {
48
- type: "text",
49
- text: args.system,
50
- cache_control: { type: "ephemeral" },
51
- },
52
- ]
53
- : args.system;
54
- // Newer Claude reasoning-enabled models (Opus 4.7, Sonnet 4.5+) reject
55
- // `temperature` with a 400. Only include it if the caller explicitly
56
- // passed one; otherwise let the model use its own default.
57
- const base = {
58
- model: args.model,
59
- max_tokens: args.maxTokens ?? 4096,
60
- system: systemContent,
61
- messages: args.messages.map((m) => ({
62
- role: m.role,
63
- content: m.content,
64
- })),
65
- };
66
- const response = await this.client.messages.create(args.temperature !== undefined
67
- ? { ...base, temperature: args.temperature }
68
- : base);
69
- const first = response.content[0];
70
- if (!first || first.type !== "text") {
71
- throw new Error(`Expected a text response from Claude, got: ${JSON.stringify(response.content).slice(0, 200)}`);
72
- }
73
- // Normalize usage. Anthropic's SDK may add new fields over time; read via
74
- // loose cast so newer cache shapes don't break older SDKs.
75
- const raw = response.usage;
76
- const usage = {
77
- inputTokens: raw?.input_tokens ?? 0,
78
- outputTokens: raw?.output_tokens ?? 0,
79
- cacheReadTokens: raw?.cache_read_input_tokens ?? 0,
80
- cacheCreateTokens: raw?.cache_creation_input_tokens ?? 0,
81
- };
82
- return {
83
- text: first.text,
84
- usage,
85
- costUsd: costUsdForUsage(args.model, usage),
86
- model: args.model,
87
- };
88
- }
89
- }
90
- /**
91
- * Build an HTML-comment cost marker for embedding in audit-trail comments
92
- * (source-issue comments from refine / testgen / brew). Hidden from
93
- * human-rendered markdown but machine-parseable by `on-brew-merged`'s
94
- * pipeline-total aggregator.
95
- *
96
- * Format: `<!-- slowcook:cost k1=v1 k2=v2 ... -->`
97
- *
98
- * Chosen over a persisted .brewing/costs/*.jsonl file because (a) no extra
99
- * git commits, (b) the comment trail is already the audit log, (c) the
100
- * aggregator just walks issue comments via the GitHub API.
101
- */
102
- export function costMarker(fields) {
103
- const parts = [`agent=${fields.agent}`, `usd=${fields.usd.toFixed(4)}`];
104
- if (fields.tokensIn !== undefined)
105
- parts.push(`tokens_in=${fields.tokensIn}`);
106
- if (fields.tokensOut !== undefined)
107
- parts.push(`tokens_out=${fields.tokensOut}`);
108
- if (fields.cacheRead !== undefined)
109
- parts.push(`cache_read=${fields.cacheRead}`);
110
- if (fields.cacheCreate !== undefined)
111
- parts.push(`cache_create=${fields.cacheCreate}`);
112
- if (fields.model)
113
- parts.push(`model=${fields.model}`);
114
- if (fields.round !== undefined)
115
- parts.push(`round=${fields.round}`);
116
- return `<!-- slowcook:cost ${parts.join(" ")} -->`;
117
- }
118
- export function parseCostMarkers(body) {
119
- const out = [];
120
- const re = /<!--\s*slowcook:cost\s+([^>]+?)\s*-->/g;
121
- let m;
122
- while ((m = re.exec(body)) !== null) {
123
- const kv = {};
124
- for (const pair of (m[1] ?? "").split(/\s+/)) {
125
- const eq = pair.indexOf("=");
126
- if (eq > 0)
127
- kv[pair.slice(0, eq)] = pair.slice(eq + 1);
128
- }
129
- if (kv.agent && kv.usd !== undefined) {
130
- const parsed = {
131
- agent: kv.agent,
132
- usd: parseFloat(kv.usd),
133
- };
134
- if (kv.tokens_in !== undefined)
135
- parsed.tokensIn = parseInt(kv.tokens_in, 10);
136
- if (kv.tokens_out !== undefined)
137
- parsed.tokensOut = parseInt(kv.tokens_out, 10);
138
- if (kv.cache_read !== undefined)
139
- parsed.cacheRead = parseInt(kv.cache_read, 10);
140
- if (kv.cache_create !== undefined)
141
- parsed.cacheCreate = parseInt(kv.cache_create, 10);
142
- if (kv.model !== undefined)
143
- parsed.model = kv.model;
144
- if (kv.round !== undefined)
145
- parsed.round = kv.round;
146
- out.push(parsed);
147
- }
148
- }
149
- return out;
150
- }
1
+ export { AnthropicClient, costUsdForUsage, costMarker, parseCostMarkers, PRICING_PER_M_TOKENS, } from "@slowcook-ai/llm-anthropic";
151
2
  //# sourceMappingURL=llm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../../../src/commands/refine/llm.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,eAAe,EACf,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,oBAAoB,GAErB,MAAM,4BAA4B,CAAC"}
@@ -34,44 +34,44 @@ export declare const schemas: {
34
34
  supersedes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
35
35
  superseded_by: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
36
36
  }, "strip", z.ZodTypeAny, {
37
- status: "draft" | "active" | "superseded";
38
37
  title: string;
39
- supersedes?: string[] | undefined;
40
- superseded_by?: string | null | undefined;
38
+ status: "draft" | "active" | "superseded";
41
39
  source_issue?: string | undefined;
42
40
  tags?: string[] | undefined;
43
41
  summary?: string | undefined;
44
- }, {
45
- status: "draft" | "active" | "superseded";
46
- title: string;
47
42
  supersedes?: string[] | undefined;
48
43
  superseded_by?: string | null | undefined;
44
+ }, {
45
+ title: string;
46
+ status: "draft" | "active" | "superseded";
49
47
  source_issue?: string | undefined;
50
48
  tags?: string[] | undefined;
51
49
  summary?: string | undefined;
50
+ supersedes?: string[] | undefined;
51
+ superseded_by?: string | null | undefined;
52
52
  }>>;
53
53
  }, "strip", z.ZodTypeAny, {
54
54
  schema_version: 1;
55
55
  stories: Record<string, {
56
- status: "draft" | "active" | "superseded";
57
56
  title: string;
58
- supersedes?: string[] | undefined;
59
- superseded_by?: string | null | undefined;
57
+ status: "draft" | "active" | "superseded";
60
58
  source_issue?: string | undefined;
61
59
  tags?: string[] | undefined;
62
60
  summary?: string | undefined;
61
+ supersedes?: string[] | undefined;
62
+ superseded_by?: string | null | undefined;
63
63
  }>;
64
64
  $schema?: string | undefined;
65
65
  }, {
66
66
  schema_version: 1;
67
67
  stories: Record<string, {
68
- status: "draft" | "active" | "superseded";
69
68
  title: string;
70
- supersedes?: string[] | undefined;
71
- superseded_by?: string | null | undefined;
69
+ status: "draft" | "active" | "superseded";
72
70
  source_issue?: string | undefined;
73
71
  tags?: string[] | undefined;
74
72
  summary?: string | undefined;
73
+ supersedes?: string[] | undefined;
74
+ superseded_by?: string | null | undefined;
75
75
  }>;
76
76
  $schema?: string | undefined;
77
77
  }>;
@@ -109,20 +109,20 @@ export declare const schemas: {
109
109
  note: z.ZodOptional<z.ZodString>;
110
110
  }, "strip", z.ZodTypeAny, {
111
111
  id: string;
112
- relationship: "overlap" | "superseded" | "related";
112
+ relationship: "superseded" | "overlap" | "related";
113
113
  note?: string | undefined;
114
114
  }, {
115
115
  id: string;
116
- relationship: "overlap" | "superseded" | "related";
116
+ relationship: "superseded" | "overlap" | "related";
117
117
  note?: string | undefined;
118
118
  }>, "many">>;
119
119
  }, "strip", z.ZodTypeAny, {
120
- status: "draft" | "active" | "superseded";
121
- story_id: string;
122
120
  title: string;
123
- created_at: string;
121
+ status: "draft" | "active" | "superseded";
124
122
  supersedes: string[];
125
123
  superseded_by: string | null;
124
+ story_id: string;
125
+ created_at: string;
126
126
  actors: {
127
127
  name: string;
128
128
  notes?: string | undefined;
@@ -131,25 +131,25 @@ export declare const schemas: {
131
131
  invariants: string[];
132
132
  acceptance_scenarios: string[];
133
133
  non_goals: string[];
134
+ source_issue?: string | undefined;
135
+ $schema?: string | undefined;
134
136
  token_budget_usd?: number | undefined;
135
137
  estimate?: "small" | "medium" | "large" | undefined;
136
- source_issue?: string | undefined;
137
138
  refined_by?: string | undefined;
138
139
  api_contract?: unknown[] | undefined;
139
140
  ui_behavior?: Record<string, string> | undefined;
140
141
  related_specs?: {
141
142
  id: string;
142
- relationship: "overlap" | "superseded" | "related";
143
+ relationship: "superseded" | "overlap" | "related";
143
144
  note?: string | undefined;
144
145
  }[] | undefined;
145
- $schema?: string | undefined;
146
146
  }, {
147
- status: "draft" | "active" | "superseded";
148
- story_id: string;
149
147
  title: string;
150
- created_at: string;
148
+ status: "draft" | "active" | "superseded";
151
149
  supersedes: string[];
152
150
  superseded_by: string | null;
151
+ story_id: string;
152
+ created_at: string;
153
153
  actors: {
154
154
  name: string;
155
155
  notes?: string | undefined;
@@ -158,18 +158,18 @@ export declare const schemas: {
158
158
  invariants: string[];
159
159
  acceptance_scenarios: string[];
160
160
  non_goals: string[];
161
+ source_issue?: string | undefined;
162
+ $schema?: string | undefined;
161
163
  token_budget_usd?: number | undefined;
162
164
  estimate?: "small" | "medium" | "large" | undefined;
163
- source_issue?: string | undefined;
164
165
  refined_by?: string | undefined;
165
166
  api_contract?: unknown[] | undefined;
166
167
  ui_behavior?: Record<string, string> | undefined;
167
168
  related_specs?: {
168
169
  id: string;
169
- relationship: "overlap" | "superseded" | "related";
170
+ relationship: "superseded" | "overlap" | "related";
170
171
  note?: string | undefined;
171
172
  }[] | undefined;
172
- $schema?: string | undefined;
173
173
  }>;
174
174
  SpecIndexEntry: z.ZodObject<{
175
175
  title: z.ZodString;
@@ -180,21 +180,21 @@ export declare const schemas: {
180
180
  supersedes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
181
181
  superseded_by: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
182
182
  }, "strip", z.ZodTypeAny, {
183
- status: "draft" | "active" | "superseded";
184
183
  title: string;
185
- supersedes?: string[] | undefined;
186
- superseded_by?: string | null | undefined;
184
+ status: "draft" | "active" | "superseded";
187
185
  source_issue?: string | undefined;
188
186
  tags?: string[] | undefined;
189
187
  summary?: string | undefined;
190
- }, {
191
- status: "draft" | "active" | "superseded";
192
- title: string;
193
188
  supersedes?: string[] | undefined;
194
189
  superseded_by?: string | null | undefined;
190
+ }, {
191
+ title: string;
192
+ status: "draft" | "active" | "superseded";
195
193
  source_issue?: string | undefined;
196
194
  tags?: string[] | undefined;
197
195
  summary?: string | undefined;
196
+ supersedes?: string[] | undefined;
197
+ superseded_by?: string | null | undefined;
198
198
  }>;
199
199
  };
200
200
  /** Minimal helper for the agent to build a SpecIndexEntry from a Spec. */
@@ -177,6 +177,36 @@ export declare function buildSchemaAssertionTestContent(spec: Spec): {
177
177
  path: string;
178
178
  contents: string;
179
179
  } | null;
180
+ /**
181
+ * Resolve an `@/…` import specifier back to a repo-relative source file.
182
+ * Mirrors Next.js / tsconfig's default alias (`@/*` → `src/*`). Falls
183
+ * back to the raw path if the specifier isn't prefixed.
184
+ */
185
+ export declare function resolveImportToSourcePath(importFrom: string): string;
186
+ /**
187
+ * Produce `tests/integration/story-N-styling.test.ts` from a `<page_link>`
188
+ * hint. Asserts the component file has visible styling attention —
189
+ * **presence** checks, not pixel-perfect visual regression:
190
+ *
191
+ * 1. At least 4 `className=` occurrences. Raw unstyled HTML has 0-1;
192
+ * a real styled component has many.
193
+ * 2. At least one Tailwind-shaped class name (`bg-`, `text-`, `border-`,
194
+ * `rounded`, `px-`, etc.) so the component is using the project's
195
+ * design-token family, not just scattered arbitrary classes.
196
+ *
197
+ * Doesn't couple tests to specific tokens (brew can choose `bg-coral`,
198
+ * `bg-primary`, whatever the project uses). Catches the "zero-className
199
+ * raw HTML" failure mode observed on rewo story-005/006 (2026-04-23,
200
+ * two consecutive brews shipping unstyled components). See memory
201
+ * `project_styling_gap_in_pipeline.md`.
202
+ *
203
+ * Static source-file scan — no render, no jsdom, no fixture required.
204
+ * Same pattern as `buildPageLinkTestContent` / `buildSchemaAssertionTestContent`.
205
+ */
206
+ export declare function buildStylingPresenceTestContent(spec: Spec, hint: PageLinkHint): {
207
+ path: string;
208
+ contents: string;
209
+ };
180
210
  /**
181
211
  * Produce the `tests/integration/story-N-page.test.ts` file contents from
182
212
  * a `<page_link>` hint. Asserts both IMPORT (so the page file references
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/testgen/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/testgen/agent.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAUlD,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAC/C,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAC/C,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAClD,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,GAAG,EAAE,OAAO,CAAC;IACb,2EAA2E;IAC3E,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,GAAG,EAAE,IAAI,CAAC;CACX;AAED,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,GACzG;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,qBAAqB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAwQ7E;AA6DD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;CACnB;AAoED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8G5D;AA0ED;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CAC/B;AAwCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,WAA4B,GACjC,aAAa,CA+Ef;AAWD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAkCxE;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAE9E;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,CAO9D;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,IAAI,GACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAyC3C;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAuCpC;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAqDpC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AA6DD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAepF;AAED;;;;;;;;;GASG;AACH;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CASV;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BjF"}
@@ -82,6 +82,11 @@ export async function runTestgen(ctx) {
82
82
  const extraTestFiles = [];
83
83
  if (bundle.pageLink) {
84
84
  extraTestFiles.push(buildPageLinkTestContent(spec, bundle.pageLink));
85
+ // 0.7.21: styling presence assertion piggybacks on the page-link
86
+ // hint since both key off the same component. Separate test file
87
+ // (static source scan, no render) so it runs regardless of jsdom
88
+ // setup or test-suite timer conventions.
89
+ extraTestFiles.push(buildStylingPresenceTestContent(spec, bundle.pageLink));
85
90
  }
86
91
  const schemaArtifact = buildSchemaAssertionTestContent(spec);
87
92
  if (schemaArtifact) {
@@ -776,6 +781,71 @@ export function buildSchemaAssertionTestContent(spec) {
776
781
  `});\n`;
777
782
  return { path, contents };
778
783
  }
784
+ /**
785
+ * Resolve an `@/…` import specifier back to a repo-relative source file.
786
+ * Mirrors Next.js / tsconfig's default alias (`@/*` → `src/*`). Falls
787
+ * back to the raw path if the specifier isn't prefixed.
788
+ */
789
+ export function resolveImportToSourcePath(importFrom) {
790
+ let rel = importFrom.startsWith("@/") ? `src/${importFrom.slice(2)}` : importFrom;
791
+ if (!/\.(tsx?|jsx?)$/.test(rel))
792
+ rel += ".tsx";
793
+ return rel;
794
+ }
795
+ /**
796
+ * Produce `tests/integration/story-N-styling.test.ts` from a `<page_link>`
797
+ * hint. Asserts the component file has visible styling attention —
798
+ * **presence** checks, not pixel-perfect visual regression:
799
+ *
800
+ * 1. At least 4 `className=` occurrences. Raw unstyled HTML has 0-1;
801
+ * a real styled component has many.
802
+ * 2. At least one Tailwind-shaped class name (`bg-`, `text-`, `border-`,
803
+ * `rounded`, `px-`, etc.) so the component is using the project's
804
+ * design-token family, not just scattered arbitrary classes.
805
+ *
806
+ * Doesn't couple tests to specific tokens (brew can choose `bg-coral`,
807
+ * `bg-primary`, whatever the project uses). Catches the "zero-className
808
+ * raw HTML" failure mode observed on rewo story-005/006 (2026-04-23,
809
+ * two consecutive brews shipping unstyled components). See memory
810
+ * `project_styling_gap_in_pipeline.md`.
811
+ *
812
+ * Static source-file scan — no render, no jsdom, no fixture required.
813
+ * Same pattern as `buildPageLinkTestContent` / `buildSchemaAssertionTestContent`.
814
+ */
815
+ export function buildStylingPresenceTestContent(spec, hint) {
816
+ const path = join(TESTS_INTEGRATION_DIR, `story-${spec.story_id}-styling.test.ts`);
817
+ const componentPath = resolveImportToSourcePath(hint.importFrom);
818
+ const contents = `// slowcook 0.7.21 styling presence assertion — story-${spec.story_id}\n` +
819
+ `//\n` +
820
+ `// Tier-1 UI tests use role/label/text selectors that pass on unstyled\n` +
821
+ `// HTML. This static assertion catches the "zero-className raw markup"\n` +
822
+ `// failure mode directly: checks the component source file for visible\n` +
823
+ `// styling attention (className attributes + Tailwind-shaped class names).\n` +
824
+ `// Doesn't couple to specific tokens — brew can choose whatever the\n` +
825
+ `// project's design-token family uses.\n` +
826
+ `\n` +
827
+ `import { describe, it, expect } from "vitest";\n` +
828
+ `import { readFileSync, existsSync } from "node:fs";\n` +
829
+ `\n` +
830
+ `describe("story-${spec.story_id} styling presence", () => {\n` +
831
+ ` const componentPath = ${JSON.stringify(componentPath)};\n` +
832
+ ` const src = existsSync(componentPath) ? readFileSync(componentPath, "utf8") : "";\n` +
833
+ `\n` +
834
+ ` it("component file exists", () => {\n` +
835
+ ` expect(existsSync(componentPath)).toBe(true);\n` +
836
+ ` });\n` +
837
+ `\n` +
838
+ ` it("uses className attributes on rendered elements", () => {\n` +
839
+ ` const matches = src.match(/\\bclassName=/g) ?? [];\n` +
840
+ ` expect(matches.length).toBeGreaterThanOrEqual(4);\n` +
841
+ ` });\n` +
842
+ `\n` +
843
+ ` it("uses the project's design-token family (Tailwind-shaped classes)", () => {\n` +
844
+ ` expect(src).toMatch(/\\b(?:bg-|text-|border-|rounded|px-|py-|space-y-|flex|grid|mt-|mb-|gap-)\\S+/);\n` +
845
+ ` });\n` +
846
+ `});\n`;
847
+ return { path, contents };
848
+ }
779
849
  /**
780
850
  * Produce the `tests/integration/story-N-page.test.ts` file contents from
781
851
  * a `<page_link>` hint. Asserts both IMPORT (so the page file references
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/testgen/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/testgen/agent.ts"],"names":[],"mappings":"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"}
@@ -201,7 +201,7 @@ Vitest 4 removed \`environmentMatchGlobs\` — the per-file pragma is the only s
201
201
  - **Use the \`@testing-library/jest-dom\` matchers** the \`a11y\` helper extends onto vitest: \`toBeInTheDocument\`, \`toHaveTextContent\`, \`toHaveClass\`, \`toBeDisabled\`, \`toHaveAccessibleName\`.
202
202
  - **Fire events via \`fireEvent\`** from \`@testing-library/react\`: \`fireEvent.change(input, { target: { value: "x" } })\`, \`fireEvent.click(button)\`.
203
203
  - **Mock \`fetch\`** when the component calls it: \`vi.stubGlobal("fetch", realShapedFetch(mockFetch({ routes: [...] })))\`. Use \`realShapedFetch\` so signature bugs fail loudly.
204
- - **Fake timers** for anything debounced: \`vi.useFakeTimers(); vi.setSystemTime(...); vi.advanceTimersByTime(300);\`.
204
+ - **Default to real timers at the describe level.** Flip to \`vi.useFakeTimers()\` ONLY inside the specific \`it()\` that exercises a debounce / interval / setTimeout path, and ALWAYS follow with \`await vi.advanceTimersByTimeAsync(ms)\` + \`vi.useRealTimers()\` before the test body ends. **NEVER** declare \`vi.useFakeTimers()\` in a shared \`beforeEach\` — Vitest v4 fakes \`queueMicrotask\` by default, so \`await fetch(...)\` promises never resolve under fake timers and \`findByText\` times out silently at 5s. This is the #1 cause of "brew halts on fetch-dependent UI tests it can't fix because tests/ is frozen" (rewo story-005, 2026-04-23).
205
205
  - **Observe router calls** via \`renderWithProviders\`'s returned \`{ router }\` — e.g., \`expect(router.push).toHaveBeenCalledWith("/profile")\` if you passed a spy.
206
206
 
207
207
  ### Mandatory axe test
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slowcook-ai/cli",
3
- "version": "0.7.19",
3
+ "version": "0.8.0",
4
4
  "description": "CLI for the slowcook brewing harness",
5
5
  "license": "MIT",
6
6
  "author": "aminazar",
@@ -38,8 +38,9 @@
38
38
  "ts-morph": "^24.0.0",
39
39
  "yaml": "^2.6.0",
40
40
  "zod": "^3.23.8",
41
- "@slowcook-ai/core": "^0.7.1",
41
+ "@slowcook-ai/core": "^0.8.0",
42
42
  "@slowcook-ai/stack-ts": "^0.7.16",
43
+ "@slowcook-ai/llm-anthropic": "^0.8.0",
43
44
  "@slowcook-ai/forge-github": "^0.7.12"
44
45
  },
45
46
  "publishConfig": {