@slowcook-ai/cli 0.6.14 → 0.7.1
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/dist/commands/init/plan.d.ts.map +1 -1
- package/dist/commands/init/plan.js +10 -17
- package/dist/commands/init/plan.js.map +1 -1
- package/dist/commands/init/templates.d.ts +0 -5
- package/dist/commands/init/templates.d.ts.map +1 -1
- package/dist/commands/init/templates.js +0 -229
- package/dist/commands/init/templates.js.map +1 -1
- package/dist/commands/refine/agent.d.ts +3 -0
- package/dist/commands/refine/agent.d.ts.map +1 -1
- package/dist/commands/refine/agent.js +16 -5
- package/dist/commands/refine/agent.js.map +1 -1
- package/dist/commands/refine/prompts.d.ts +1 -1
- package/dist/commands/refine/prompts.d.ts.map +1 -1
- package/dist/commands/refine/prompts.js +26 -8
- package/dist/commands/refine/prompts.js.map +1 -1
- package/dist/commands/refine/relationship.d.ts +20 -2
- package/dist/commands/refine/relationship.d.ts.map +1 -1
- package/dist/commands/refine/relationship.js +48 -5
- package/dist/commands/refine/relationship.js.map +1 -1
- package/dist/commands/refine/spec-yaml.d.ts +32 -32
- package/dist/commands/testgen/agent.d.ts +33 -0
- package/dist/commands/testgen/agent.d.ts.map +1 -1
- package/dist/commands/testgen/agent.js +185 -14
- package/dist/commands/testgen/agent.js.map +1 -1
- package/dist/commands/testgen/prompts.d.ts +10 -12
- package/dist/commands/testgen/prompts.d.ts.map +1 -1
- package/dist/commands/testgen/prompts.js +150 -87
- package/dist/commands/testgen/prompts.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/init/plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/init/plan.ts"],"names":[],"mappings":"AAsBA,MAAM,WAAW,WAAW;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAcD,wBAAgB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,aAAa,CAO3D;AAED,qBAAa,SAAU,SAAQ,KAAK;gBACtB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAgGxE"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Pure planning logic for `slowcook init`. Takes a snapshot of the filesystem
|
|
2
2
|
// (via an injected reader), returns the planned actions. No I/O side effects
|
|
3
3
|
// here — all writes happen in the CLI wrapper so this is trivially testable.
|
|
4
|
-
import { frozenPathsJson,
|
|
4
|
+
import { frozenPathsJson, brewingReadme, contextMdTemplate, slowcookCliVersionFile, preCommitHook, codeownersFullFile, codeownersSection, gitkeep, CLI_VERSION_FOR_TEMPLATES, SLOWCOOK_CLI_VERSION_FILE, SLOWCOOK_CODEOWNERS_MARKER_BEGIN, SLOWCOOK_CODEOWNERS_MARKER_END, } from "./templates.js";
|
|
5
|
+
import { getGitHubCiArtifacts } from "@slowcook-ai/forge-github";
|
|
6
|
+
import { getTsStackConfig } from "@slowcook-ai/stack-ts";
|
|
5
7
|
const TARGETS = {
|
|
6
8
|
frozenPaths: ".brewing/frozen-paths.json",
|
|
7
9
|
stack: ".brewing/stack.json",
|
|
@@ -9,10 +11,6 @@ const TARGETS = {
|
|
|
9
11
|
contextMd: ".brewing/context.md",
|
|
10
12
|
cliVersion: SLOWCOOK_CLI_VERSION_FILE,
|
|
11
13
|
manifestsGitkeep: ".brewing/manifests/.gitkeep",
|
|
12
|
-
workflow: ".github/workflows/slowcook.yml",
|
|
13
|
-
specMergedWorkflow: ".github/workflows/slowcook-spec-merged.yml",
|
|
14
|
-
testgenWorkflow: ".github/workflows/slowcook-testgen.yml",
|
|
15
|
-
brewAutoWorkflow: ".github/workflows/slowcook-brew-auto.yml",
|
|
16
14
|
preCommitHook: ".githooks/pre-commit",
|
|
17
15
|
codeowners: "CODEOWNERS",
|
|
18
16
|
packageJson: "package.json",
|
|
@@ -62,7 +60,7 @@ export function buildPlan(reader, options) {
|
|
|
62
60
|
// 1. .brewing/frozen-paths.json
|
|
63
61
|
addSimpleFile(actions, reader, options.force, TARGETS.frozenPaths, frozenPathsJson());
|
|
64
62
|
// 2. .brewing/stack.json
|
|
65
|
-
addSimpleFile(actions, reader, options.force, TARGETS.stack,
|
|
63
|
+
addSimpleFile(actions, reader, options.force, TARGETS.stack, getTsStackConfig({ hasPlaywright: tmplParams.hasPlaywright }));
|
|
66
64
|
// 3. .brewing/README.md
|
|
67
65
|
addSimpleFile(actions, reader, options.force, TARGETS.brewingReadme, brewingReadme());
|
|
68
66
|
// 3b. .brewing/context.md (project context for agents)
|
|
@@ -75,17 +73,12 @@ export function buildPlan(reader, options) {
|
|
|
75
73
|
if (!reader.exists(".brewing/manifests/")) {
|
|
76
74
|
actions.push({ kind: "create", path: TARGETS.manifestsGitkeep, contents: gitkeep() });
|
|
77
75
|
}
|
|
78
|
-
// 5.
|
|
79
|
-
|
|
80
|
-
//
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
// 5d. .github/workflows/slowcook-brew-auto.yml — auto-trigger brew when a
|
|
85
|
-
// tests PR merges. Consumers who want humans-in-the-loop before every brew
|
|
86
|
-
// can delete this file; `slowcook-brew.yml` (workflow_dispatch) is the
|
|
87
|
-
// manual alternative.
|
|
88
|
-
addSimpleFile(actions, reader, options.force, TARGETS.brewAutoWorkflow, slowcookBrewAutoWorkflow());
|
|
76
|
+
// 5. CI workflows are provided by the forge adapter. Today only GitHub
|
|
77
|
+
// is wired; future forges (GitLab, Gitea) supply their own via a
|
|
78
|
+
// similar static export. See packages/forge-github/src/templates.ts.
|
|
79
|
+
for (const artifact of getGitHubCiArtifacts({ cliVersion })) {
|
|
80
|
+
addSimpleFile(actions, reader, options.force, artifact.path, artifact.contents);
|
|
81
|
+
}
|
|
89
82
|
// 5e. .githooks/pre-commit — forces code-map regen on src/ commits.
|
|
90
83
|
// Activation per clone: `git config core.hooksPath .githooks`. Without
|
|
91
84
|
// this hook, contributors hit the stale-map CI failure on every PR
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/init/plan.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,6EAA6E;AAC7E,6EAA6E;AAE7E,OAAO,EACL,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/init/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,13 +15,8 @@ export interface TemplateParams {
|
|
|
15
15
|
export declare const SLOWCOOK_CODEOWNERS_MARKER_BEGIN = "# --- slowcook:frozen-paths BEGIN ---";
|
|
16
16
|
export declare const SLOWCOOK_CODEOWNERS_MARKER_END = "# --- slowcook:frozen-paths END ---";
|
|
17
17
|
export declare function frozenPathsJson(): string;
|
|
18
|
-
export declare function stackJson(params: TemplateParams): string;
|
|
19
18
|
export declare function contextMdTemplate(): string;
|
|
20
19
|
export declare function brewingReadme(): string;
|
|
21
|
-
export declare function slowcookTestgenWorkflow(cliVersion: string): string;
|
|
22
|
-
export declare function slowcookSpecMergedWorkflow(cliVersion: string): string;
|
|
23
|
-
export declare function slowcookBrewAutoWorkflow(): string;
|
|
24
|
-
export declare function slowcookWorkflow(cliVersion: string): string;
|
|
25
20
|
export declare function codeownersSection(params: TemplateParams): string;
|
|
26
21
|
export declare function codeownersFullFile(params: TemplateParams): string;
|
|
27
22
|
export declare function gitkeep(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/commands/init/templates.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE;AAaD,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gCAAgC,0CAA0C,CAAC;AACxF,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,wBAAgB,eAAe,IAAI,MAAM,CAoCxC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/commands/init/templates.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,yBAAyB,UAAU,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,kCAAkC,CAAC;AAEzE,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE;AAaD,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,gCAAgC,0CAA0C,CAAC;AACxF,eAAO,MAAM,8BAA8B,wCAAwC,CAAC;AAEpF,wBAAgB,eAAe,IAAI,MAAM,CAoCxC;AAGD,wBAAgB,iBAAiB,IAAI,MAAM,CAmD1C;AAED,wBAAgB,aAAa,IAAI,MAAM,CA0CtC;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAehE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQjE;AAED,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAqCtC"}
|
|
@@ -52,33 +52,6 @@ export function frozenPathsJson() {
|
|
|
52
52
|
},
|
|
53
53
|
}, null, 2) + "\n");
|
|
54
54
|
}
|
|
55
|
-
export function stackJson(params) {
|
|
56
|
-
const doc = "Project-level stack configuration consumed by slowcook (@slowcook-ai/stack-ts). " +
|
|
57
|
-
"Tells the harness how to discover and run tests. Only include suites that are " +
|
|
58
|
-
"actually runnable — slowcook refuses to record an incomplete manifest." +
|
|
59
|
-
(params.hasPlaywright
|
|
60
|
-
? " (Playwright detected in package.json; slowcook's playwright discovery is not yet " +
|
|
61
|
-
"implemented, so the e2e suite is intentionally omitted. Add it back post-upgrade.)"
|
|
62
|
-
: "");
|
|
63
|
-
return (JSON.stringify({
|
|
64
|
-
$schema: "./stack.schema.json",
|
|
65
|
-
$doc: doc,
|
|
66
|
-
language: "typescript",
|
|
67
|
-
package_manager: "npm",
|
|
68
|
-
test: {
|
|
69
|
-
backend: {
|
|
70
|
-
runner: "vitest",
|
|
71
|
-
run_command: "npx vitest run",
|
|
72
|
-
discover_command: "npx vitest list",
|
|
73
|
-
reporter_format: "vitest-list-lines",
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
lint: {
|
|
77
|
-
lint_command: "npm run lint",
|
|
78
|
-
typecheck_command: "npm run typecheck",
|
|
79
|
-
},
|
|
80
|
-
}, null, 2) + "\n");
|
|
81
|
-
}
|
|
82
55
|
export function contextMdTemplate() {
|
|
83
56
|
return `# Project context for slowcook agents
|
|
84
57
|
|
|
@@ -174,208 +147,6 @@ npx --yes @slowcook-ai/cli@latest map generate # refresh .brewing/code-map.*
|
|
|
174
147
|
Deliberately slightly inconvenient. Frozen-path changes are rare events that deserve a reviewer's eyes.
|
|
175
148
|
`;
|
|
176
149
|
}
|
|
177
|
-
export function slowcookTestgenWorkflow(cliVersion) {
|
|
178
|
-
void cliVersion;
|
|
179
|
-
return `name: slowcook testgen
|
|
180
|
-
|
|
181
|
-
# Generates Vitest integration tests whenever a new spec lands on main
|
|
182
|
-
# (specs/story-*.yaml touched in the push). Idempotent — skips specs that
|
|
183
|
-
# already have tests. Output is a draft PR containing the new test files,
|
|
184
|
-
# per-story manifests, and (if the spec supersedes others) removal of
|
|
185
|
-
# the superseded stories' tests.
|
|
186
|
-
|
|
187
|
-
on:
|
|
188
|
-
push:
|
|
189
|
-
branches: [main]
|
|
190
|
-
paths:
|
|
191
|
-
- 'specs/story-*.yaml'
|
|
192
|
-
- 'specs/_index.yaml'
|
|
193
|
-
|
|
194
|
-
concurrency:
|
|
195
|
-
group: slowcook-testgen-main
|
|
196
|
-
cancel-in-progress: false
|
|
197
|
-
|
|
198
|
-
jobs:
|
|
199
|
-
testgen:
|
|
200
|
-
runs-on: ubuntu-latest
|
|
201
|
-
permissions:
|
|
202
|
-
contents: write
|
|
203
|
-
pull-requests: write
|
|
204
|
-
steps:
|
|
205
|
-
- uses: actions/checkout@v4
|
|
206
|
-
with:
|
|
207
|
-
fetch-depth: 0
|
|
208
|
-
|
|
209
|
-
${RESOLVE_PIN_STEP}
|
|
210
|
-
|
|
211
|
-
- name: Configure git identity for agent commits
|
|
212
|
-
run: |
|
|
213
|
-
git config user.name "slowcook-testgen[bot]"
|
|
214
|
-
git config user.email "slowcook-testgen@users.noreply.github.com"
|
|
215
|
-
|
|
216
|
-
- uses: actions/setup-node@v4
|
|
217
|
-
with:
|
|
218
|
-
node-version: 20
|
|
219
|
-
|
|
220
|
-
- name: Generate tests
|
|
221
|
-
env:
|
|
222
|
-
ANTHROPIC_API_KEY: \${{ secrets.ANTHROPIC_API_KEY }}
|
|
223
|
-
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
224
|
-
SLOWCOOK_DEBUG: "1"
|
|
225
|
-
run: |
|
|
226
|
-
npx --yes "$SLOWCOOK_CLI" testgen --all
|
|
227
|
-
`;
|
|
228
|
-
}
|
|
229
|
-
export function slowcookSpecMergedWorkflow(cliVersion) {
|
|
230
|
-
void cliVersion;
|
|
231
|
-
return `name: slowcook — spec merged
|
|
232
|
-
|
|
233
|
-
# Transitions source-issue labels from \`spec-submitted\` → \`spec-ready\` when
|
|
234
|
-
# a spec PR merges. Detects spec PRs by the \`slowcook-spec\` label.
|
|
235
|
-
|
|
236
|
-
on:
|
|
237
|
-
pull_request:
|
|
238
|
-
types: [closed]
|
|
239
|
-
|
|
240
|
-
jobs:
|
|
241
|
-
transition:
|
|
242
|
-
if: >-
|
|
243
|
-
github.event.pull_request.merged == true &&
|
|
244
|
-
contains(github.event.pull_request.labels.*.name, 'slowcook-spec')
|
|
245
|
-
runs-on: ubuntu-latest
|
|
246
|
-
permissions:
|
|
247
|
-
issues: write
|
|
248
|
-
contents: read
|
|
249
|
-
pull-requests: read
|
|
250
|
-
steps:
|
|
251
|
-
- uses: actions/checkout@v4
|
|
252
|
-
with:
|
|
253
|
-
ref: \${{ github.event.pull_request.merge_commit_sha }}
|
|
254
|
-
|
|
255
|
-
${RESOLVE_PIN_STEP}
|
|
256
|
-
|
|
257
|
-
- uses: actions/setup-node@v4
|
|
258
|
-
with:
|
|
259
|
-
node-version: 20
|
|
260
|
-
|
|
261
|
-
- name: Transition labels
|
|
262
|
-
env:
|
|
263
|
-
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
264
|
-
run: |
|
|
265
|
-
npx --yes "$SLOWCOOK_CLI" on-spec-merged --pr \${{ github.event.pull_request.number }}
|
|
266
|
-
`;
|
|
267
|
-
}
|
|
268
|
-
export function slowcookBrewAutoWorkflow() {
|
|
269
|
-
return `name: slowcook brew — auto on tests merged
|
|
270
|
-
|
|
271
|
-
# Auto-triggers the \`slowcook-brew\` workflow when a tests PR (label
|
|
272
|
-
# \`slowcook-tests\`) merges to main. Extracts the story id(s) from the
|
|
273
|
-
# PR title and fires one brew run per story. Sonnet 4.6 default keeps
|
|
274
|
-
# cost around $0.05–$0.50 per story; \`slowcook-brew.yml\`'s concurrency
|
|
275
|
-
# rules serialize runs per story.
|
|
276
|
-
#
|
|
277
|
-
# Manual dispatch of \`slowcook-brew.yml\` remains available for explicit
|
|
278
|
-
# re-runs and for stories that need a non-default model/budget.
|
|
279
|
-
|
|
280
|
-
on:
|
|
281
|
-
pull_request:
|
|
282
|
-
types: [closed]
|
|
283
|
-
|
|
284
|
-
jobs:
|
|
285
|
-
trigger:
|
|
286
|
-
if: >-
|
|
287
|
-
github.event.pull_request.merged == true &&
|
|
288
|
-
contains(github.event.pull_request.labels.*.name, 'slowcook-tests')
|
|
289
|
-
runs-on: ubuntu-latest
|
|
290
|
-
permissions:
|
|
291
|
-
actions: write
|
|
292
|
-
contents: read
|
|
293
|
-
steps:
|
|
294
|
-
- name: Extract story ids from PR title
|
|
295
|
-
id: parse
|
|
296
|
-
env:
|
|
297
|
-
TITLE: \${{ github.event.pull_request.title }}
|
|
298
|
-
run: |
|
|
299
|
-
set -eu
|
|
300
|
-
IDS=$(printf '%s\\n' "$TITLE" | grep -oE 'story-[0-9]+' | sed 's/story-//' | sort -u | tr '\\n' ' ' || true)
|
|
301
|
-
if [ -z "$IDS" ]; then
|
|
302
|
-
echo "::notice::No story ids found in PR title '$TITLE' — skipping auto-brew."
|
|
303
|
-
fi
|
|
304
|
-
echo "story_ids=$IDS" >> "$GITHUB_OUTPUT"
|
|
305
|
-
|
|
306
|
-
- name: Dispatch brew per story
|
|
307
|
-
if: steps.parse.outputs.story_ids != ''
|
|
308
|
-
env:
|
|
309
|
-
GH_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
310
|
-
run: |
|
|
311
|
-
set -eu
|
|
312
|
-
for id in \${{ steps.parse.outputs.story_ids }}; do
|
|
313
|
-
echo "Dispatching slowcook-brew.yml for story-$id"
|
|
314
|
-
gh workflow run slowcook-brew.yml \\
|
|
315
|
-
--repo \${{ github.repository }} \\
|
|
316
|
-
-f story_id=$id \\
|
|
317
|
-
-f budget_usd=10 \\
|
|
318
|
-
-f max_iterations=10 \\
|
|
319
|
-
-f model=claude-sonnet-4-6
|
|
320
|
-
done
|
|
321
|
-
`;
|
|
322
|
-
}
|
|
323
|
-
export function slowcookWorkflow(cliVersion) {
|
|
324
|
-
void cliVersion;
|
|
325
|
-
return `name: slowcook
|
|
326
|
-
|
|
327
|
-
on:
|
|
328
|
-
pull_request:
|
|
329
|
-
types: [opened, synchronize, reopened, labeled, unlabeled]
|
|
330
|
-
|
|
331
|
-
concurrency:
|
|
332
|
-
group: slowcook-\${{ github.event.pull_request.number }}
|
|
333
|
-
cancel-in-progress: true
|
|
334
|
-
|
|
335
|
-
jobs:
|
|
336
|
-
check:
|
|
337
|
-
name: slowcook checks
|
|
338
|
-
runs-on: ubuntu-latest
|
|
339
|
-
steps:
|
|
340
|
-
- uses: actions/checkout@v4
|
|
341
|
-
with:
|
|
342
|
-
fetch-depth: 0
|
|
343
|
-
|
|
344
|
-
${RESOLVE_PIN_STEP}
|
|
345
|
-
|
|
346
|
-
- uses: actions/setup-node@v4
|
|
347
|
-
with:
|
|
348
|
-
node-version: 20
|
|
349
|
-
cache: npm
|
|
350
|
-
|
|
351
|
-
- name: Install consumer deps
|
|
352
|
-
# \`manifest verify\` shells out to the consumer's own test runner
|
|
353
|
-
# (e.g. \`npx vitest list\`) which loads the project's test config.
|
|
354
|
-
# Installing node_modules ensures that config can resolve its imports.
|
|
355
|
-
run: npm ci
|
|
356
|
-
|
|
357
|
-
- name: Guard — frozen paths
|
|
358
|
-
env:
|
|
359
|
-
HAS_OVERRIDE: \${{ contains(github.event.pull_request.labels.*.name, 'override-freeze') }}
|
|
360
|
-
run: |
|
|
361
|
-
set -eu
|
|
362
|
-
ARGS="--base origin/\${{ github.base_ref }} --head HEAD"
|
|
363
|
-
if [ "$HAS_OVERRIDE" = "true" ]; then
|
|
364
|
-
ARGS="$ARGS --override"
|
|
365
|
-
echo "::notice::'override-freeze' label present — guard runs in advisory mode."
|
|
366
|
-
fi
|
|
367
|
-
npx --yes "$SLOWCOOK_CLI" guard $ARGS
|
|
368
|
-
|
|
369
|
-
- name: Manifest — verify discoverable tests
|
|
370
|
-
run: npx --yes "$SLOWCOOK_CLI" manifest verify
|
|
371
|
-
|
|
372
|
-
- name: Code map — check it's up to date
|
|
373
|
-
# Fails if the committed .brewing/code-map.{json,md} differs from a
|
|
374
|
-
# fresh regeneration. Fix by running \`npx slowcook map generate\`
|
|
375
|
-
# locally, commit the result, and push.
|
|
376
|
-
run: npx --yes "$SLOWCOOK_CLI" map check
|
|
377
|
-
`;
|
|
378
|
-
}
|
|
379
150
|
export function codeownersSection(params) {
|
|
380
151
|
return `${SLOWCOOK_CODEOWNERS_MARKER_BEGIN}
|
|
381
152
|
# Paths frozen by slowcook. Agent-authored PRs cannot modify them;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/commands/init/templates.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sDAAsD;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,+BAA+B,CAAC;AAEzE,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO,UAAU,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG;;;0HAGiG,CAAC;AAS3H,MAAM,CAAC,MAAM,gCAAgC,GAAG,uCAAuC,CAAC;AACxF,MAAM,CAAC,MAAM,8BAA8B,GAAG,qCAAqC,CAAC;AAEpF,MAAM,UAAU,eAAe;IAC7B,OAAO,CACL,IAAI,CAAC,SAAS,CACZ;QACE,OAAO,EAAE,4BAA4B;QACrC,IAAI,EACF,qFAAqF;YACrF,6FAA6F;YAC7F,iEAAiE;QACnE,WAAW,EAAE;YACX,QAAQ;YACR,iBAAiB;YACjB,gBAAgB;YAChB,qBAAqB;SACtB;QACD,KAAK,EAAE;YACL,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,4BAA4B;YAC5B,qBAAqB;YACrB,qBAAqB;YACrB,gCAAgC;YAChC,4CAA4C;YAC5C,wCAAwC;SACzC;QACD,OAAO,EAAE;YACP,cAAc,EAAE;gBACd,gBAAgB,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC;aACzD;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/commands/init/templates.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sDAAsD;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,+BAA+B,CAAC;AAEzE,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,OAAO,UAAU,GAAG,IAAI,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG;;;0HAGiG,CAAC;AAS3H,MAAM,CAAC,MAAM,gCAAgC,GAAG,uCAAuC,CAAC;AACxF,MAAM,CAAC,MAAM,8BAA8B,GAAG,qCAAqC,CAAC;AAEpF,MAAM,UAAU,eAAe;IAC7B,OAAO,CACL,IAAI,CAAC,SAAS,CACZ;QACE,OAAO,EAAE,4BAA4B;QACrC,IAAI,EACF,qFAAqF;YACrF,6FAA6F;YAC7F,iEAAiE;QACnE,WAAW,EAAE;YACX,QAAQ;YACR,iBAAiB;YACjB,gBAAgB;YAChB,qBAAqB;SACtB;QACD,KAAK,EAAE;YACL,kBAAkB;YAClB,mBAAmB;YACnB,kBAAkB;YAClB,4BAA4B;YAC5B,qBAAqB;YACrB,qBAAqB;YACrB,gCAAgC;YAChC,4CAA4C;YAC5C,wCAAwC;SACzC;QACD,OAAO,EAAE;YACP,cAAc,EAAE;gBACd,gBAAgB,EAAE,CAAC,cAAc,EAAE,oBAAoB,CAAC;aACzD;SACF;KACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;AACJ,CAAC;AAGD,MAAM,UAAU,iBAAiB;IAC/B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDR,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCR,CAAC;AACF,CAAC;AAGD,MAAM,UAAU,iBAAiB,CAAC,MAAsB;IACtD,OAAO,GAAG,gCAAgC;;;;kCAIV,MAAM,CAAC,KAAK;kCACZ,MAAM,CAAC,KAAK;kCACZ,MAAM,CAAC,KAAK;kCACZ,MAAM,CAAC,KAAK;8CACA,MAAM,CAAC,KAAK;8CACZ,MAAM,CAAC,KAAK;8CACZ,MAAM,CAAC,KAAK;8CACZ,MAAM,CAAC,KAAK;EACxD,8BAA8B;CAC/B,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAsB;IACvD,qEAAqE;IACrE,OAAO;;;;;EAKP,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCR,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EACV,YAAY,EAGZ,IAAI,EAEL,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAc,MAAM,UAAU,CAAC;AACtD,OAAO,KAAK,EACV,YAAY,EAGZ,IAAI,EAEL,MAAM,mBAAmB,CAAC;AAwB3B,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAC7C,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,0DAA2C,CAAC;AAErE,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,GAAG,EAAE,IAAI,CAAC;CACX;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAKrC,wBAAsB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAmK9E;AA4DD,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AA+BjC,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,YAAY,GAChB,WAAW,CA6Cb"}
|
|
@@ -3,7 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { REFINEMENT_ANALYST_SYSTEM, SPEC_CHECKLIST_MD, draftPrTitle, draftPrBody, } from "./prompts.js";
|
|
4
4
|
import { readIndex, writeIndex, writeSpec, listActiveSpecs, nextStoryId, entryFromSpec, } from "./spec-yaml.js";
|
|
5
5
|
import { buildProjectContext } from "./context.js";
|
|
6
|
-
import { analyzeRelationship, contradictionCommentBody, overlapCommentBody, } from "./relationship.js";
|
|
6
|
+
import { analyzeRelationship, contradictionCommentBody, overlapCommentBody, followUpCommentBody, } from "./relationship.js";
|
|
7
7
|
import { applySupersede } from "@slowcook-ai/core";
|
|
8
8
|
export const LABEL_CHANGE_OF_MIND = "change-of-mind";
|
|
9
9
|
export const LABEL_BLOCKED_CONTRADICTION = "blocked-contradiction";
|
|
@@ -35,19 +35,29 @@ export async function runRefinement(ctx) {
|
|
|
35
35
|
const verdict = await analyzeRelationship({ issueTitle: issue.title, issueBody: issue.body, activeSpecs: existingSpecs }, { llm: ctx.llm, model: ctx.relationshipModel });
|
|
36
36
|
const hasChangeOfMind = issue.labels.includes(LABEL_CHANGE_OF_MIND);
|
|
37
37
|
if (verdict.kind === "overlap") {
|
|
38
|
-
const comment = await ctx.forge.createIssueComment(ctx.issueNumber, overlapCommentBody(verdict));
|
|
38
|
+
const comment = await ctx.forge.createIssueComment(ctx.issueNumber, overlapCommentBody(verdict, existingSpecs));
|
|
39
39
|
await ctx.forge.addIssueLabels(ctx.issueNumber, [LABEL_BLOCKED_OVERLAP]);
|
|
40
40
|
return { kind: "overlap-flagged", conflicting_ids: verdict.conflicting_ids };
|
|
41
41
|
}
|
|
42
|
+
if (verdict.kind === "follow_up") {
|
|
43
|
+
// Info only — refinement continues. Post the comment so the PM can see
|
|
44
|
+
// the agent noted the relationship + will cite it in related_specs.
|
|
45
|
+
// If we've already posted one for this issue, skip (dedup handled
|
|
46
|
+
// elsewhere in the agent's comment-seen logic).
|
|
47
|
+
await ctx.forge.createIssueComment(ctx.issueNumber, followUpCommentBody(verdict, existingSpecs));
|
|
48
|
+
// Intentionally no label — follow_up is not a blocker. Refinement
|
|
49
|
+
// continues below. The resulting spec's `related_specs` field will
|
|
50
|
+
// cite the predecessors.
|
|
51
|
+
}
|
|
42
52
|
if (verdict.kind === "contradiction") {
|
|
43
53
|
if (!hasChangeOfMind) {
|
|
44
|
-
await ctx.forge.createIssueComment(ctx.issueNumber, contradictionCommentBody(verdict, false));
|
|
54
|
+
await ctx.forge.createIssueComment(ctx.issueNumber, contradictionCommentBody(verdict, false, existingSpecs));
|
|
45
55
|
await ctx.forge.addIssueLabels(ctx.issueNumber, [LABEL_BLOCKED_CONTRADICTION]);
|
|
46
56
|
return { kind: "contradiction-blocked", conflicting_ids: verdict.conflicting_ids };
|
|
47
57
|
}
|
|
48
58
|
// Authorized change-of-mind: post an acknowledgment, clear any stale
|
|
49
59
|
// blocker label from a prior pass, and proceed.
|
|
50
|
-
await ctx.forge.createIssueComment(ctx.issueNumber, contradictionCommentBody(verdict, true));
|
|
60
|
+
await ctx.forge.createIssueComment(ctx.issueNumber, contradictionCommentBody(verdict, true, existingSpecs));
|
|
51
61
|
await ctx.forge.removeIssueLabel(ctx.issueNumber, LABEL_BLOCKED_CONTRADICTION);
|
|
52
62
|
}
|
|
53
63
|
const supersedes = verdict.kind === "contradiction" && hasChangeOfMind ? verdict.conflicting_ids : [];
|
|
@@ -148,7 +158,8 @@ ${issue.body}`;
|
|
|
148
158
|
for (const c of comments) {
|
|
149
159
|
const skip = c.body.startsWith("### slowcook · overlap detected") ||
|
|
150
160
|
c.body.startsWith("### slowcook · contradiction") ||
|
|
151
|
-
c.body.startsWith("### slowcook · change-of-mind authorized")
|
|
161
|
+
c.body.startsWith("### slowcook · change-of-mind authorized") ||
|
|
162
|
+
c.body.startsWith("### slowcook · follow-up detected");
|
|
152
163
|
if (skip)
|
|
153
164
|
continue;
|
|
154
165
|
let body = c.body;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/commands/refine/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* from Opus-level reasoning.
|
|
12
12
|
*/
|
|
13
13
|
export declare const SPEC_CHECKLIST_MD = "\nA complete, testable spec covers ALL of these items. If any are missing or ambiguous, ask about them:\n\n1. **Actors** \u2014 who performs the action? (e.g., authenticated member, admin, anonymous visitor)\n2. **Preconditions** \u2014 what must be true before the action can happen? Auth status, state of prior data, feature flags, etc.\n3. **Invariants** \u2014 what must remain true regardless of input or timing? (e.g., \"ration never exceeds 15\", \"one vote per user per poll\")\n4. **API contract** (if applicable) \u2014 HTTP method, path, request shape, success response shape, error codes and when each fires\n5. **UI behavior** per relevant viewport \u00D7 color scheme \u2014 what the user sees and how they interact, at minimum: desktop_light, mobile_light, and mobile_dark\n6. **Acceptance scenarios** \u2014 concrete Given/When/Then examples that an engineer can turn into tests. Aim for 3-6, covering happy path AND edge cases.\n7. **Non-goals** \u2014 what is explicitly out of scope for this story? (e.g., \"editing reactions is a separate story\")\n";
|
|
14
|
-
export declare const RELATIONSHIP_ANALYST_SYSTEM = "You are a careful spec analyst for the slowcook brewing harness.\n\nGiven a new GitHub issue and a list of existing specs (summaries + selected full bodies), classify the relationship. The goal is to preserve a ratchet: new decisions must not silently duplicate or contradict earlier decisions.\n\nClassify as one of:\n - \"new_or_independent\": this issue addresses a concern not covered by any active spec\n - \"overlap\": this issue substantially
|
|
14
|
+
export declare const RELATIONSHIP_ANALYST_SYSTEM = "You are a careful spec analyst for the slowcook brewing harness.\n\nGiven a new GitHub issue and a list of existing specs (summaries + selected full bodies), classify the relationship. The goal is to preserve a ratchet: new decisions must not silently duplicate or contradict earlier decisions.\n\nClassify as one of:\n - \"new_or_independent\": this issue addresses a concern not covered by any active spec.\n - \"follow_up\": this issue **fulfills scope that an active spec explicitly deferred via its `non_goals` list**. This is the \"builds on top\" pattern \u2014 a prior story intentionally left something out to stay shippable, and this issue picks it up. **Not** an overlap, even if the two stories touch the same surface (same page, same table, same route file). The prior spec's non-goal is a positive invitation: \"someone should do this later, just not in that story.\" Refinement continues normally; the resulting spec will list the predecessor in `related_specs`.\n - \"overlap\": this issue substantially **re-defines or re-implements active scope** that's already covered by a spec (same API with the same behaviour, same invariant re-stated with different values, same user journey with duplicated acceptance criteria). \"Same surface\" alone is NOT overlap \u2014 only duplicated or conflicting scope is.\n - \"contradiction\": this issue proposes something **incompatible** with an active spec \u2014 reverses a rule, changes a decision, breaks an invariant that's stated as active goal. The caller will check for a \"change-of-mind\" label: if present, it is authorized revocation; if absent, it is a blocker.\n\n## Distinguishing follow_up from overlap (this matters \u2014 most real product work looks like this)\n\nWhen a new issue touches surface covered by a prior spec, apply this decision tree:\n\n1. Is the touched surface listed in the prior spec's **active goals / acceptance_scenarios / api_contract**? \u2192 **overlap** (re-definition).\n2. Is the touched surface listed in the prior spec's **non_goals**, or does the prior spec defer the topic with phrasing like \"separate story\", \"not in this scope\", \"later\"? \u2192 **follow_up** (the prior spec explicitly invited this).\n3. Does the new issue **reverse** an invariant the prior spec treats as active? \u2192 **contradiction**.\n4. Otherwise \u2192 **new_or_independent**.\n\nConcrete examples:\n\n- Prior spec defines `POST /api/reactions` with \"ration = 15/week\". New issue asks for \"ration = 20/week\". \u2192 **contradiction** (reverses a live invariant).\n- Prior spec implements `/u/<handle>` page + handle auto-assignment. Its non_goals list: \"user-driven handle editing is a separate future story\". New issue asks for user-driven handle editing on a profile page. \u2192 **follow_up** (prior non_goal \u2192 new goal). **NOT overlap**, even though both touch `profiles` + the `/u/<handle>` page.\n- Prior spec defines `POST /api/rewos` creating a rewo. New issue asks for `POST /api/rewos` with a different response schema. \u2192 **overlap** (same API, re-definition).\n- New issue adds `PATCH /api/profiles/me` where no prior spec mentioned it. \u2192 **new_or_independent**.\n\nReturn STRICTLY the following JSON, no prose before or after:\n\n{\n \"kind\": \"new_or_independent\" | \"follow_up\" | \"overlap\" | \"contradiction\",\n \"conflicting_ids\": [\"042\", \"007\"],\n \"reasoning\": \"one-paragraph explanation citing specific spec ids. For follow_up, QUOTE the non_goal or deferral phrasing that invites the new scope.\"\n}\n\n- For \"new_or_independent\", set conflicting_ids to [].\n- For \"follow_up\", list the predecessor spec id(s) in conflicting_ids (the field name is historical; treat as \"related_ids\" for this verdict).\n- For \"overlap\" and \"contradiction\", list every conflicting spec id, not just the strongest match.\n- \"reasoning\" should name specs by id AND cite the specific text (invariant, non-goal, api_contract entry) that drove the classification. Be concrete.\n- If information is insufficient, pick the most conservative outcome: contradiction > overlap > follow_up > independent. But don't default to overlap just because surfaces are shared \u2014 require evidence of **scope duplication**, not just state-sharing.";
|
|
15
15
|
export declare const REFINEMENT_ANALYST_SYSTEM: (checklist: string, projectContext: string) => string;
|
|
16
16
|
/** Trivial, used only as a title for the draft PR. */
|
|
17
17
|
export declare function draftPrTitle(storyId: string, title: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,iBAAiB,kjCAU7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/commands/refine/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,iBAAiB,kjCAU7B,CAAC;AAEF,eAAO,MAAM,2BAA2B,qrIAsCoN,CAAC;AAE7P,eAAO,MAAM,yBAAyB,GAAI,WAAW,MAAM,EAAE,gBAAgB,MAAM,WAmFiK,CAAC;AAErP,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,GAAG,MAAM,CAaT"}
|
|
@@ -26,22 +26,40 @@ export const RELATIONSHIP_ANALYST_SYSTEM = `You are a careful spec analyst for t
|
|
|
26
26
|
Given a new GitHub issue and a list of existing specs (summaries + selected full bodies), classify the relationship. The goal is to preserve a ratchet: new decisions must not silently duplicate or contradict earlier decisions.
|
|
27
27
|
|
|
28
28
|
Classify as one of:
|
|
29
|
-
- "new_or_independent": this issue addresses a concern not covered by any active spec
|
|
30
|
-
- "
|
|
31
|
-
- "
|
|
29
|
+
- "new_or_independent": this issue addresses a concern not covered by any active spec.
|
|
30
|
+
- "follow_up": this issue **fulfills scope that an active spec explicitly deferred via its \`non_goals\` list**. This is the "builds on top" pattern — a prior story intentionally left something out to stay shippable, and this issue picks it up. **Not** an overlap, even if the two stories touch the same surface (same page, same table, same route file). The prior spec's non-goal is a positive invitation: "someone should do this later, just not in that story." Refinement continues normally; the resulting spec will list the predecessor in \`related_specs\`.
|
|
31
|
+
- "overlap": this issue substantially **re-defines or re-implements active scope** that's already covered by a spec (same API with the same behaviour, same invariant re-stated with different values, same user journey with duplicated acceptance criteria). "Same surface" alone is NOT overlap — only duplicated or conflicting scope is.
|
|
32
|
+
- "contradiction": this issue proposes something **incompatible** with an active spec — reverses a rule, changes a decision, breaks an invariant that's stated as active goal. The caller will check for a "change-of-mind" label: if present, it is authorized revocation; if absent, it is a blocker.
|
|
33
|
+
|
|
34
|
+
## Distinguishing follow_up from overlap (this matters — most real product work looks like this)
|
|
35
|
+
|
|
36
|
+
When a new issue touches surface covered by a prior spec, apply this decision tree:
|
|
37
|
+
|
|
38
|
+
1. Is the touched surface listed in the prior spec's **active goals / acceptance_scenarios / api_contract**? → **overlap** (re-definition).
|
|
39
|
+
2. Is the touched surface listed in the prior spec's **non_goals**, or does the prior spec defer the topic with phrasing like "separate story", "not in this scope", "later"? → **follow_up** (the prior spec explicitly invited this).
|
|
40
|
+
3. Does the new issue **reverse** an invariant the prior spec treats as active? → **contradiction**.
|
|
41
|
+
4. Otherwise → **new_or_independent**.
|
|
42
|
+
|
|
43
|
+
Concrete examples:
|
|
44
|
+
|
|
45
|
+
- Prior spec defines \`POST /api/reactions\` with "ration = 15/week". New issue asks for "ration = 20/week". → **contradiction** (reverses a live invariant).
|
|
46
|
+
- Prior spec implements \`/u/<handle>\` page + handle auto-assignment. Its non_goals list: "user-driven handle editing is a separate future story". New issue asks for user-driven handle editing on a profile page. → **follow_up** (prior non_goal → new goal). **NOT overlap**, even though both touch \`profiles\` + the \`/u/<handle>\` page.
|
|
47
|
+
- Prior spec defines \`POST /api/rewos\` creating a rewo. New issue asks for \`POST /api/rewos\` with a different response schema. → **overlap** (same API, re-definition).
|
|
48
|
+
- New issue adds \`PATCH /api/profiles/me\` where no prior spec mentioned it. → **new_or_independent**.
|
|
32
49
|
|
|
33
50
|
Return STRICTLY the following JSON, no prose before or after:
|
|
34
51
|
|
|
35
52
|
{
|
|
36
|
-
"kind": "new_or_independent" | "overlap" | "contradiction",
|
|
53
|
+
"kind": "new_or_independent" | "follow_up" | "overlap" | "contradiction",
|
|
37
54
|
"conflicting_ids": ["042", "007"],
|
|
38
|
-
"reasoning": "one-paragraph explanation citing specific spec ids
|
|
55
|
+
"reasoning": "one-paragraph explanation citing specific spec ids. For follow_up, QUOTE the non_goal or deferral phrasing that invites the new scope."
|
|
39
56
|
}
|
|
40
57
|
|
|
41
58
|
- For "new_or_independent", set conflicting_ids to [].
|
|
42
|
-
- For "
|
|
43
|
-
- "
|
|
44
|
-
-
|
|
59
|
+
- For "follow_up", list the predecessor spec id(s) in conflicting_ids (the field name is historical; treat as "related_ids" for this verdict).
|
|
60
|
+
- For "overlap" and "contradiction", list every conflicting spec id, not just the strongest match.
|
|
61
|
+
- "reasoning" should name specs by id AND cite the specific text (invariant, non-goal, api_contract entry) that drove the classification. Be concrete.
|
|
62
|
+
- If information is insufficient, pick the most conservative outcome: contradiction > overlap > follow_up > independent. But don't default to overlap just because surfaces are shared — require evidence of **scope duplication**, not just state-sharing.`;
|
|
45
63
|
export const REFINEMENT_ANALYST_SYSTEM = (checklist, projectContext) => `You are a rigorous product analyst for the slowcook brewing harness.
|
|
46
64
|
|
|
47
65
|
Your job is to help the PM turn a GitHub issue into a precise, testable spec. You operate in rounds: each round, you either (a) ask the PM clarifying questions OR (b) emit the final spec as YAML. You do not both ask AND emit in the same round.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/commands/refine/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;CAUhC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/commands/refine/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;CAUhC,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4PAsCiN,CAAC;AAE7P,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,SAAiB,EAAE,cAAsB,EAAE,EAAE,CAAC;;;;;;EAMtF,cAAc;;;;;;EAMd,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oPAuEyO,CAAC;AAErP,sDAAsD;AACtD,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,KAAa;IACzD,OAAO,eAAe,OAAO,MAAM,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAI3B;IACC,MAAM,iBAAiB,GACrB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,uDAAuD,IAAI,CAAC,UAAU;aACnE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC;aAC1B,IAAI,CAAC,IAAI,CAAC,qEAAqE;QACpF,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,sBAAsB,IAAI,CAAC,WAAW;;;EAG7C,iBAAiB;;oCAEiB,CAAC;AACrC,CAAC"}
|