@slowcook-ai/cli 0.19.6 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -2
- package/dist/cli.js +30 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/brand/index.d.ts.map +1 -1
- package/dist/commands/brand/index.js +6 -0
- package/dist/commands/brand/index.js.map +1 -1
- package/dist/commands/brand/logo-cmd.d.ts +2 -0
- package/dist/commands/brand/logo-cmd.d.ts.map +1 -0
- package/dist/commands/brand/logo-cmd.js +90 -0
- package/dist/commands/brand/logo-cmd.js.map +1 -0
- package/dist/commands/brand/logo.d.ts +23 -0
- package/dist/commands/brand/logo.d.ts.map +1 -0
- package/dist/commands/brand/logo.js +60 -0
- package/dist/commands/brand/logo.js.map +1 -0
- package/dist/commands/brew/fidelity-loop.d.ts +71 -0
- package/dist/commands/brew/fidelity-loop.d.ts.map +1 -0
- package/dist/commands/brew/fidelity-loop.js +108 -0
- package/dist/commands/brew/fidelity-loop.js.map +1 -0
- package/dist/commands/brew/fidelity-phase.d.ts +49 -0
- package/dist/commands/brew/fidelity-phase.d.ts.map +1 -0
- package/dist/commands/brew/fidelity-phase.js +75 -0
- package/dist/commands/brew/fidelity-phase.js.map +1 -0
- package/dist/commands/eye/index.d.ts +2 -0
- package/dist/commands/eye/index.d.ts.map +1 -0
- package/dist/commands/eye/index.js +83 -0
- package/dist/commands/eye/index.js.map +1 -0
- package/dist/commands/eye/plan.d.ts +69 -0
- package/dist/commands/eye/plan.d.ts.map +1 -0
- package/dist/commands/eye/plan.js +87 -0
- package/dist/commands/eye/plan.js.map +1 -0
- package/dist/commands/eye/run.d.ts +42 -0
- package/dist/commands/eye/run.d.ts.map +1 -0
- package/dist/commands/eye/run.js +116 -0
- package/dist/commands/eye/run.js.map +1 -0
- package/dist/commands/eye/spec-modes.d.ts +5 -0
- package/dist/commands/eye/spec-modes.d.ts.map +1 -0
- package/dist/commands/eye/spec-modes.js +36 -0
- package/dist/commands/eye/spec-modes.js.map +1 -0
- package/dist/commands/gate/github.d.ts +27 -0
- package/dist/commands/gate/github.d.ts.map +1 -0
- package/dist/commands/gate/github.js +46 -0
- package/dist/commands/gate/github.js.map +1 -0
- package/dist/commands/gate/index.d.ts +2 -0
- package/dist/commands/gate/index.d.ts.map +1 -0
- package/dist/commands/gate/index.js +68 -0
- package/dist/commands/gate/index.js.map +1 -0
- package/dist/commands/gate/model.d.ts +55 -0
- package/dist/commands/gate/model.d.ts.map +1 -0
- package/dist/commands/gate/model.js +64 -0
- package/dist/commands/gate/model.js.map +1 -0
- package/dist/commands/gate/reviewers.d.ts +24 -0
- package/dist/commands/gate/reviewers.d.ts.map +1 -0
- package/dist/commands/gate/reviewers.js +69 -0
- package/dist/commands/gate/reviewers.js.map +1 -0
- package/dist/commands/greenfield/index.d.ts +2 -0
- package/dist/commands/greenfield/index.d.ts.map +1 -0
- package/dist/commands/greenfield/index.js +80 -0
- package/dist/commands/greenfield/index.js.map +1 -0
- package/dist/commands/greenfield/status.d.ts +38 -0
- package/dist/commands/greenfield/status.d.ts.map +1 -0
- package/dist/commands/greenfield/status.js +52 -0
- package/dist/commands/greenfield/status.js.map +1 -0
- package/dist/commands/menu/assemble.d.ts +31 -0
- package/dist/commands/menu/assemble.d.ts.map +1 -0
- package/dist/commands/menu/assemble.js +37 -0
- package/dist/commands/menu/assemble.js.map +1 -0
- package/dist/commands/menu/index.d.ts +5 -0
- package/dist/commands/menu/index.d.ts.map +1 -0
- package/dist/commands/menu/index.js +111 -0
- package/dist/commands/menu/index.js.map +1 -0
- package/dist/commands/menu/prd.d.ts +33 -0
- package/dist/commands/menu/prd.d.ts.map +1 -0
- package/dist/commands/menu/prd.js +68 -0
- package/dist/commands/menu/prd.js.map +1 -0
- package/dist/commands/plate/index.d.ts.map +1 -1
- package/dist/commands/plate/index.js +5 -1
- package/dist/commands/plate/index.js.map +1 -1
- package/dist/commands/plate/route-hint.d.ts +18 -0
- package/dist/commands/plate/route-hint.d.ts.map +1 -0
- package/dist/commands/plate/route-hint.js +21 -0
- package/dist/commands/plate/route-hint.js.map +1 -0
- package/dist/commands/recon/shape-preserve.d.ts +38 -0
- package/dist/commands/recon/shape-preserve.d.ts.map +1 -1
- package/dist/commands/recon/shape-preserve.js +112 -1
- package/dist/commands/recon/shape-preserve.js.map +1 -1
- package/dist/commands/refine/spec-yaml.d.ts +26 -0
- package/dist/commands/refine/spec-yaml.d.ts.map +1 -1
- package/dist/commands/refine/spec-yaml.js +29 -0
- package/dist/commands/refine/spec-yaml.js.map +1 -1
- package/dist/commands/run-mock/index.d.ts.map +1 -1
- package/dist/commands/run-mock/index.js +69 -16
- package/dist/commands/run-mock/index.js.map +1 -1
- package/dist/commands/run-mock/reviewer-auth-server.d.ts +40 -0
- package/dist/commands/run-mock/reviewer-auth-server.d.ts.map +1 -0
- package/dist/commands/run-mock/reviewer-auth-server.js +124 -0
- package/dist/commands/run-mock/reviewer-auth-server.js.map +1 -0
- package/dist/commands/serve/config.d.ts +28 -9
- package/dist/commands/serve/config.d.ts.map +1 -1
- package/dist/commands/serve/config.js +43 -1
- package/dist/commands/serve/config.js.map +1 -1
- package/dist/commands/serve/dev.d.ts +14 -19
- package/dist/commands/serve/dev.d.ts.map +1 -1
- package/dist/commands/serve/dev.js +46 -50
- package/dist/commands/serve/dev.js.map +1 -1
- package/dist/commands/serve/index.d.ts.map +1 -1
- package/dist/commands/serve/index.js +30 -22
- package/dist/commands/serve/index.js.map +1 -1
- package/dist/commands/serve/mock.d.ts +5 -20
- package/dist/commands/serve/mock.d.ts.map +1 -1
- package/dist/commands/serve/mock.js +44 -65
- package/dist/commands/serve/mock.js.map +1 -1
- package/dist/commands/serve/runner.d.ts +52 -0
- package/dist/commands/serve/runner.d.ts.map +1 -0
- package/dist/commands/serve/runner.js +53 -0
- package/dist/commands/serve/runner.js.map +1 -0
- package/dist/commands/serve/staging.d.ts +8 -19
- package/dist/commands/serve/staging.d.ts.map +1 -1
- package/dist/commands/serve/staging.js +53 -91
- package/dist/commands/serve/staging.js.map +1 -1
- package/dist/commands/trace/check.d.ts +67 -0
- package/dist/commands/trace/check.d.ts.map +1 -0
- package/dist/commands/trace/check.js +82 -0
- package/dist/commands/trace/check.js.map +1 -0
- package/dist/commands/trace/index.d.ts +2 -0
- package/dist/commands/trace/index.d.ts.map +1 -0
- package/dist/commands/trace/index.js +86 -0
- package/dist/commands/trace/index.js.map +1 -0
- package/dist/commands/upsert-agent-docs.d.ts.map +1 -1
- package/dist/commands/upsert-agent-docs.js +12 -0
- package/dist/commands/upsert-agent-docs.js.map +1 -1
- package/dist/commands.manifest.d.ts.map +1 -1
- package/dist/commands.manifest.js +32 -2
- package/dist/commands.manifest.js.map +1 -1
- package/dist/lib/mock-shape.d.ts +6 -0
- package/dist/lib/mock-shape.d.ts.map +1 -1
- package/dist/lib/mock-shape.js +26 -0
- package/dist/lib/mock-shape.js.map +1 -1
- package/package.json +8 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../../../src/commands/serve/staging.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../../../src/commands/serve/staging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GUCDI — `trace check` core (pure). The keystone lint that keeps the living,
|
|
3
|
+
* bidirectional requirements spine coherent. It checks PROVENANCE-COMPLETENESS,
|
|
4
|
+
* not requirement-coverage: every node must have an honest "why", from one of
|
|
5
|
+
* - requirement — a PRD initiative (`prd_ref`) or a GitHub issue (`source_issue`)
|
|
6
|
+
* - convention — a project-global standing doc (`conventions.md`)
|
|
7
|
+
* - craft — a genuinely novel inline-tagged decision
|
|
8
|
+
* A node with NONE of these is a true orphan → error. A craft-tagged node PASSES
|
|
9
|
+
* (honest provenance) and is reported for PM ratification. This neither blocks
|
|
10
|
+
* legitimate craft nor forces faking a requirement (the "block-or-lie" trap).
|
|
11
|
+
*
|
|
12
|
+
* It NEVER demands a PRD — brownfield specs trace via `source_issue`. Pure +
|
|
13
|
+
* unit-tested; the IO (reading specs / PRD / scanning the LCR) is in ./index.ts.
|
|
14
|
+
*
|
|
15
|
+
* See docs/plans/gucdi-greenfield.md.
|
|
16
|
+
*/
|
|
17
|
+
export type LcrProvenance = {
|
|
18
|
+
kind: "story";
|
|
19
|
+
id: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "convention";
|
|
22
|
+
ref: string;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "craft";
|
|
25
|
+
rationale: string;
|
|
26
|
+
};
|
|
27
|
+
/** A spec, reduced to its requirement-provenance facts. */
|
|
28
|
+
export interface SpecNode {
|
|
29
|
+
storyId: string;
|
|
30
|
+
prdAnchor?: string;
|
|
31
|
+
sourceIssue?: string;
|
|
32
|
+
}
|
|
33
|
+
/** An LCR file (mock component/page) + the provenance it declares in comments. */
|
|
34
|
+
export interface LcrNode {
|
|
35
|
+
file: string;
|
|
36
|
+
provenance: LcrProvenance[];
|
|
37
|
+
}
|
|
38
|
+
export type TraceCode = "dangling-prd-ref" | "orphan-spec" | "orphan-lcr" | "dangling-lcr-story";
|
|
39
|
+
export interface TraceViolation {
|
|
40
|
+
code: TraceCode;
|
|
41
|
+
subject: string;
|
|
42
|
+
detail: string;
|
|
43
|
+
}
|
|
44
|
+
export interface TraceResult {
|
|
45
|
+
violations: TraceViolation[];
|
|
46
|
+
/** Craft decisions (not in any requirement) — the PM-ratification report. */
|
|
47
|
+
craft: {
|
|
48
|
+
file: string;
|
|
49
|
+
rationale: string;
|
|
50
|
+
}[];
|
|
51
|
+
ok: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Parse provenance comments from a source file. Recognised forms (case-insensitive
|
|
55
|
+
* tag, anywhere in a comment):
|
|
56
|
+
* // @story story-007 (or // story-007)
|
|
57
|
+
* // @convention <ref>
|
|
58
|
+
* // @craft <rationale> (or // craft: <rationale>)
|
|
59
|
+
*/
|
|
60
|
+
export declare function parseLcrProvenance(source: string): LcrProvenance[];
|
|
61
|
+
export declare function checkTrace(input: {
|
|
62
|
+
specs: SpecNode[];
|
|
63
|
+
/** PRD initiative anchors. Empty = no PRD (brownfield) → prd-ref checks skipped. */
|
|
64
|
+
prdAnchors: string[];
|
|
65
|
+
lcrNodes: LcrNode[];
|
|
66
|
+
}): TraceResult;
|
|
67
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/commands/trace/check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,2DAA2D;AAC3D,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,kFAAkF;AAClF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,MAAM,SAAS,GACjB,kBAAkB,GAClB,aAAa,GACb,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,EAAE,EAAE,OAAO,CAAC;CACb;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE,CAYlE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAChC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,oFAAoF;IACpF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,GAAG,WAAW,CAiDd"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GUCDI — `trace check` core (pure). The keystone lint that keeps the living,
|
|
3
|
+
* bidirectional requirements spine coherent. It checks PROVENANCE-COMPLETENESS,
|
|
4
|
+
* not requirement-coverage: every node must have an honest "why", from one of
|
|
5
|
+
* - requirement — a PRD initiative (`prd_ref`) or a GitHub issue (`source_issue`)
|
|
6
|
+
* - convention — a project-global standing doc (`conventions.md`)
|
|
7
|
+
* - craft — a genuinely novel inline-tagged decision
|
|
8
|
+
* A node with NONE of these is a true orphan → error. A craft-tagged node PASSES
|
|
9
|
+
* (honest provenance) and is reported for PM ratification. This neither blocks
|
|
10
|
+
* legitimate craft nor forces faking a requirement (the "block-or-lie" trap).
|
|
11
|
+
*
|
|
12
|
+
* It NEVER demands a PRD — brownfield specs trace via `source_issue`. Pure +
|
|
13
|
+
* unit-tested; the IO (reading specs / PRD / scanning the LCR) is in ./index.ts.
|
|
14
|
+
*
|
|
15
|
+
* See docs/plans/gucdi-greenfield.md.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Parse provenance comments from a source file. Recognised forms (case-insensitive
|
|
19
|
+
* tag, anywhere in a comment):
|
|
20
|
+
* // @story story-007 (or // story-007)
|
|
21
|
+
* // @convention <ref>
|
|
22
|
+
* // @craft <rationale> (or // craft: <rationale>)
|
|
23
|
+
*/
|
|
24
|
+
export function parseLcrProvenance(source) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const m of source.matchAll(/@?story[-\s]+(story-)?(\d+)/gi)) {
|
|
27
|
+
out.push({ kind: "story", id: `story-${m[2]}` });
|
|
28
|
+
}
|
|
29
|
+
for (const m of source.matchAll(/@?convention[:\s]+([^\n*]+?)\s*(?:\*\/|$|\n)/gi)) {
|
|
30
|
+
out.push({ kind: "convention", ref: m[1].trim() });
|
|
31
|
+
}
|
|
32
|
+
for (const m of source.matchAll(/@?craft[:\s]+([^\n*]+?)\s*(?:\*\/|$|\n)/gi)) {
|
|
33
|
+
out.push({ kind: "craft", rationale: m[1].trim() });
|
|
34
|
+
}
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
export function checkTrace(input) {
|
|
38
|
+
const violations = [];
|
|
39
|
+
const anchors = new Set(input.prdAnchors);
|
|
40
|
+
const storyIds = new Set(input.specs.map((s) => `story-${s.storyId}`));
|
|
41
|
+
for (const s of input.specs) {
|
|
42
|
+
if (s.prdAnchor) {
|
|
43
|
+
// Only enforce when a PRD exists; a stray prd_ref with no PRD is its own (later) concern.
|
|
44
|
+
if (anchors.size > 0 && !anchors.has(s.prdAnchor)) {
|
|
45
|
+
violations.push({
|
|
46
|
+
code: "dangling-prd-ref",
|
|
47
|
+
subject: `story-${s.storyId}`,
|
|
48
|
+
detail: `prd_ref anchor '${s.prdAnchor}' is not a PRD initiative`,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (!s.sourceIssue) {
|
|
53
|
+
violations.push({
|
|
54
|
+
code: "orphan-spec",
|
|
55
|
+
subject: `story-${s.storyId}`,
|
|
56
|
+
detail: "no requirement provenance (neither prd_ref nor source_issue)",
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
for (const n of input.lcrNodes) {
|
|
61
|
+
if (n.provenance.length === 0) {
|
|
62
|
+
violations.push({
|
|
63
|
+
code: "orphan-lcr",
|
|
64
|
+
subject: n.file,
|
|
65
|
+
detail: "no provenance comment (@story / @convention / @craft)",
|
|
66
|
+
});
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
for (const p of n.provenance) {
|
|
70
|
+
if (p.kind === "story" && storyIds.size > 0 && !storyIds.has(p.id)) {
|
|
71
|
+
violations.push({
|
|
72
|
+
code: "dangling-lcr-story",
|
|
73
|
+
subject: n.file,
|
|
74
|
+
detail: `cites ${p.id}, which has no spec`,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const craft = input.lcrNodes.flatMap((n) => n.provenance.filter((p) => p.kind === "craft").map((p) => ({ file: n.file, rationale: p.rationale })));
|
|
80
|
+
return { violations, craft, ok: violations.length === 0 };
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/commands/trace/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/trace/index.ts"],"names":[],"mappings":"AAqCA,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD9E"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GUCDI — `slowcook trace check`. Runs the provenance-completeness lint over the
|
|
3
|
+
* spine: specs (requirement provenance via prd_ref/source_issue), the PRD
|
|
4
|
+
* (anchor resolution), and the LCR mock files (story/convention/craft comments).
|
|
5
|
+
* Exits 1 on any orphan/dangling violation; prints the craft-decisions report
|
|
6
|
+
* for PM ratification. Never demands a PRD — brownfield-safe.
|
|
7
|
+
*
|
|
8
|
+
* slowcook trace check [--prd <path>] [--cwd <dir>]
|
|
9
|
+
*
|
|
10
|
+
* Pure lint in ./check.ts; this is the IO shell.
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
13
|
+
import { join, relative, resolve } from "node:path";
|
|
14
|
+
import { listActiveSpecs } from "../refine/spec-yaml.js";
|
|
15
|
+
import { loadMockShapeConfig } from "../../lib/mock-shape.js";
|
|
16
|
+
import { parsePrdInitiatives } from "../menu/prd.js";
|
|
17
|
+
import { checkTrace, parseLcrProvenance } from "./check.js";
|
|
18
|
+
function val(args, flag) {
|
|
19
|
+
const i = args.indexOf(flag);
|
|
20
|
+
return i >= 0 ? args[i + 1] : undefined;
|
|
21
|
+
}
|
|
22
|
+
/** Recursively collect .tsx files under `dir`, skipping any path in `exclude`. */
|
|
23
|
+
function walkTsx(dir, exclude) {
|
|
24
|
+
if (!existsSync(dir))
|
|
25
|
+
return [];
|
|
26
|
+
const out = [];
|
|
27
|
+
for (const name of readdirSync(dir)) {
|
|
28
|
+
const p = join(dir, name);
|
|
29
|
+
if (exclude.has(p) || name === "node_modules")
|
|
30
|
+
continue;
|
|
31
|
+
const st = statSync(p);
|
|
32
|
+
if (st.isDirectory())
|
|
33
|
+
out.push(...walkTsx(p, exclude));
|
|
34
|
+
else if (name.endsWith(".tsx"))
|
|
35
|
+
out.push(p);
|
|
36
|
+
}
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
export async function trace(argv, _cliVersion) {
|
|
40
|
+
if (argv[0] !== "check") {
|
|
41
|
+
console.error("usage: slowcook trace check [--prd <path>] [--cwd <dir>]");
|
|
42
|
+
process.exit(64);
|
|
43
|
+
}
|
|
44
|
+
const rest = argv.slice(1);
|
|
45
|
+
const cwd = resolve(val(rest, "--cwd") ?? ".");
|
|
46
|
+
// 1. Specs → requirement-provenance facts.
|
|
47
|
+
const specNodes = listActiveSpecs(cwd).map((s) => ({
|
|
48
|
+
storyId: s.story_id,
|
|
49
|
+
prdAnchor: s.prd_ref?.anchor,
|
|
50
|
+
sourceIssue: s.source_issue,
|
|
51
|
+
}));
|
|
52
|
+
// 2. PRD anchors (optional — absent = brownfield).
|
|
53
|
+
const prdRel = val(rest, "--prd") ?? "docs/PRD.md";
|
|
54
|
+
const prdAbs = resolve(cwd, prdRel);
|
|
55
|
+
const prdAnchors = existsSync(prdAbs) ? parsePrdInitiatives(readFileSync(prdAbs, "utf8")).map((i) => i.anchor) : [];
|
|
56
|
+
// 3. LCR nodes — mock screens + components (excluding the design system, which
|
|
57
|
+
// is convention/brand provenance, not story-specific).
|
|
58
|
+
const mock = loadMockShapeConfig(cwd);
|
|
59
|
+
const designDir = resolve(cwd, mock.design_system_dir);
|
|
60
|
+
const lcrRoots = [resolve(cwd, mock.screens_root), resolve(cwd, mock.mock_root, "src/components")];
|
|
61
|
+
const files = [...new Set(lcrRoots.flatMap((r) => walkTsx(r, new Set([designDir]))))];
|
|
62
|
+
const lcrNodes = files.map((f) => ({
|
|
63
|
+
file: relative(cwd, f).replace(/\\/g, "/"),
|
|
64
|
+
provenance: parseLcrProvenance(readFileSync(f, "utf8")),
|
|
65
|
+
}));
|
|
66
|
+
if (specNodes.length === 0 && prdAnchors.length === 0 && lcrNodes.length === 0) {
|
|
67
|
+
console.log("trace check: nothing GUCDI-shaped to trace (no specs, no PRD, no LCR) — ok.");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const result = checkTrace({ specs: specNodes, prdAnchors, lcrNodes });
|
|
71
|
+
console.log(`trace check: ${specNodes.length} specs · ${prdAnchors.length} PRD initiatives · ${lcrNodes.length} LCR files`);
|
|
72
|
+
if (result.craft.length) {
|
|
73
|
+
console.log(`\n ${result.craft.length} craft decision(s) — not in any requirement (ratify or note):`);
|
|
74
|
+
for (const c of result.craft)
|
|
75
|
+
console.log(` · ${c.file}: ${c.rationale}`);
|
|
76
|
+
}
|
|
77
|
+
if (result.ok) {
|
|
78
|
+
console.log("\ntrace check: PASS ✓ — every node has honest provenance.");
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
console.error(`\ntrace check: FAIL ✗ — ${result.violations.length} provenance violation(s):`);
|
|
82
|
+
for (const v of result.violations)
|
|
83
|
+
console.error(` [${v.code}] ${v.subject}: ${v.detail}`);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/trace/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsert-agent-docs.d.ts","sourceRoot":"","sources":["../../src/commands/upsert-agent-docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAmBH,wBAAgB,iBAAiB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"upsert-agent-docs.d.ts","sourceRoot":"","sources":["../../src/commands/upsert-agent-docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAmBH,wBAAgB,iBAAiB,IAAI,MAAM,CA0K1C;AAmGD,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC;IACtF,MAAM,EAAE,OAAO,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAClD,SAAS,EAAE,OAAO,GAAG,iBAAiB,GAAG,cAAc,CAAC;CACzD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,qBAAqB,CAsB5G;AAID,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUnE"}
|
|
@@ -137,6 +137,18 @@ Full doc: [\`docs/local-pipeline-role.md\`](https://github.com/aminazar/slowcook
|
|
|
137
137
|
|
|
138
138
|
Recorded sc#145 finding 6 — pattern emerged from the delgoosh dogfood (2026-05) and shipped 5 batches of slowcook feedback as a side effect.
|
|
139
139
|
|
|
140
|
+
### HITL review gates — you cannot self-advance past one (design #9)
|
|
141
|
+
|
|
142
|
+
Some stage transitions are gated on a HUMAN review by a named role (PM / designer / QA), configured in \`.brewing/reviewers.yaml\`. Default gates: refine spec → PM; vibe/plate mock → designer; brew output → QA + designer.
|
|
143
|
+
|
|
144
|
+
This is a HARD halt, and the integrity of it depends on you NOT bypassing it:
|
|
145
|
+
- **Do not advance a story past a gated stage until \`slowcook gate check --stage <stage> --pr <n>\` exits 0.** Run it; don't assume.
|
|
146
|
+
- **Your own approval does NOT count, and you must not manufacture one.** A valid approval is a GitHub PR review (state \`APPROVED\`) from a *human* handle listed for the required role. Reviews from \`slowcook-*[bot]\`, \`github-actions\`, or the agent identity are classified as bot and never satisfy a gate — do not try to approve your own PR, ask a teammate to "rubber-stamp", or label your way around the gate.
|
|
147
|
+
- **A \`CHANGES_REQUESTED\` from a required-role human is a hard stop.** Address it and re-request review; loop back to the gate's \`on_reject_target\` stage (designer reject of a mock → back to plate, not forward to brew).
|
|
148
|
+
- **If a gate blocks you, surface it to the PM** ("blocked-on-\<role\>: needs designer approval on PR #N") rather than working around it. The gate exists because the human's eyes are the contract at that point.
|
|
149
|
+
|
|
150
|
+
The bot pipeline enforces the same gate via \`.github/workflows/slowcook-gate.yml\`; the local pipeline enforces it by your honouring this section.
|
|
151
|
+
|
|
140
152
|
### Working alongside other agents (multi-agent choreography)
|
|
141
153
|
|
|
142
154
|
When your work depends on another agent's still-open PR — common when one agent owns the app shell + another owns a feature inside it — follow this:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upsert-agent-docs.js","sourceRoot":"","sources":["../../src/commands/upsert-agent-docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAe,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,YAAY,GAAG,8EAA8E,CAAC;AACpG,MAAM,UAAU,GAAG,qDAAqD,CAAC;AAEzE;uEACuE;AACvE,MAAM,mBAAmB,GAAG;IAC1B,WAAW;IACX,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,iCAAiC;CAClC,CAAC;AAEF,MAAM,UAAU,iBAAiB;IAC/B,OAAO
|
|
1
|
+
{"version":3,"file":"upsert-agent-docs.js","sourceRoot":"","sources":["../../src/commands/upsert-agent-docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.manifest.d.ts","sourceRoot":"","sources":["../src/commands.manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC;AAE/E,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,KAAK,GACL,cAAc,CAAC;AAEnB,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,KAAK,EAAE,YAAY,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"commands.manifest.d.ts","sourceRoot":"","sources":["../src/commands.manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC;AAE/E,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,KAAK,GACL,cAAc,CAAC;AAEnB,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,KAAK,EAAE,YAAY,CAAC;IACpB,yDAAyD;IACzD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uFAAuF;IACvF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ,EAAE,aAAa,CAAC,YAAY,CAsShD,CAAC;AAWF,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEzE;AAED,wBAAgB,eAAe,IAAI,YAAY,EAAE,CAEhD"}
|
|
@@ -15,6 +15,18 @@
|
|
|
15
15
|
*/
|
|
16
16
|
export const COMMANDS = [
|
|
17
17
|
// --- Pipeline ---
|
|
18
|
+
{
|
|
19
|
+
name: "menu",
|
|
20
|
+
usage: "slowcook menu [--prd <path>] [--cwd <dir>] [--model <id>] [--dry-run]",
|
|
21
|
+
description: "GUCDI greenfield entry: decompose a PRD into a comprehensive, anchored, data-contracted story set under specs/.",
|
|
22
|
+
group: "pipeline",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "greenfield",
|
|
26
|
+
usage: "slowcook greenfield status [--prd <path>] [--cwd <dir>]",
|
|
27
|
+
description: "GUCDI scope-completeness dashboard: where the project is in PRD → stories → brand → LCR → trace, and the single next action.",
|
|
28
|
+
group: "pipeline",
|
|
29
|
+
},
|
|
18
30
|
{
|
|
19
31
|
name: "refine",
|
|
20
32
|
usage: "slowcook refine --issue <number> [--cwd <path>] [--owner <login>] [--repo <name>]",
|
|
@@ -127,6 +139,24 @@ export const COMMANDS = [
|
|
|
127
139
|
description: "Pre-brew structural divergence check. Surfaces missing components / testid gaps / brownfield rename hazards.",
|
|
128
140
|
group: "checks",
|
|
129
141
|
},
|
|
142
|
+
{
|
|
143
|
+
name: "trace",
|
|
144
|
+
usage: "slowcook trace check [--prd <path>] [--cwd <dir>]",
|
|
145
|
+
description: "GUCDI provenance-completeness lint over the spine: every spec/LCR node has a why (requirement/convention/craft); orphans + dangling refs fail; craft is reported. Brownfield-safe (never demands a PRD).",
|
|
146
|
+
group: "checks",
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
name: "eye",
|
|
150
|
+
usage: "slowcook eye --reference <url> --candidate <url> [--story <id>] [--out <dir>] [--viewport <m>] [--scheme <s>] [--max-violations <n>] [--fail-on <axes>] [--watch [--interval <ms>] [--until-converged] [--max-passes <n>]]",
|
|
151
|
+
description: "Fidelity eye (design #8). Renders mock + brewed URLs across the viewport×scheme matrix, grades visual drift, screenshots, exits 1 on drift.",
|
|
152
|
+
group: "checks",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "gate",
|
|
156
|
+
usage: "slowcook gate check --stage <refine|plate|brew> --pr <n> [--repo <owner/name>]",
|
|
157
|
+
description: "HITL review halt (design #9). Refuses to advance a stage until a human in the required role has approved on the PR; bot/agent reviews never satisfy it.",
|
|
158
|
+
group: "checks",
|
|
159
|
+
},
|
|
130
160
|
{
|
|
131
161
|
name: "map",
|
|
132
162
|
usage: "slowcook map (generate|check) [--cwd <path>] [--out <path>] [--md <path>]",
|
|
@@ -245,8 +275,8 @@ export const COMMANDS = [
|
|
|
245
275
|
},
|
|
246
276
|
{
|
|
247
277
|
name: "brand",
|
|
248
|
-
usage: "slowcook brand [--brief <prose>] [--refresh] [--dry-run] [--model <id>] [--cwd <path>]",
|
|
249
|
-
description: "Design-system foundation agent. Emits mock/src/design-system/{tokens.ts, css.ts} from a brand brief.",
|
|
278
|
+
usage: "slowcook brand [--brief <prose>] [--refresh] [--dry-run] [--model <id>] [--cwd <path>] · slowcook brand logo --in <svg|png> [--out <dir>] [--map #hex=token,...]",
|
|
279
|
+
description: "Design-system foundation agent. Emits mock/src/design-system/{tokens.ts, css.ts} from a brand brief. `brand logo` tokenizes a supplied SVG / deterministically traces a PNG (vtracer/potrace — no LLM path-authoring).",
|
|
250
280
|
group: "pipeline",
|
|
251
281
|
},
|
|
252
282
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.manifest.js","sourceRoot":"","sources":["../src/commands.manifest.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commands.manifest.js","sourceRoot":"","sources":["../src/commands.manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/mock-shape.d.ts
CHANGED
|
@@ -11,6 +11,12 @@ declare const MockShapeConfigSchema: z.ZodObject<{
|
|
|
11
11
|
router_file: z.ZodOptional<z.ZodString>;
|
|
12
12
|
scenarios_dir: z.ZodDefault<z.ZodString>;
|
|
13
13
|
scenario_registry_file: z.ZodDefault<z.ZodString>;
|
|
14
|
+
review_mode: z.ZodDefault<z.ZodEnum<{
|
|
15
|
+
scenarios: "scenarios";
|
|
16
|
+
lcr: "lcr";
|
|
17
|
+
}>>;
|
|
18
|
+
review_oauth_client_id: z.ZodOptional<z.ZodString>;
|
|
19
|
+
review_oauth_scope: z.ZodDefault<z.ZodString>;
|
|
14
20
|
}, z.core.$strip>;
|
|
15
21
|
export type MockShapeConfig = z.infer<typeof MockShapeConfigSchema>;
|
|
16
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-shape.d.ts","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"mock-shape.d.ts","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;iBA+BzB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AA2BpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD"}
|
package/dist/lib/mock-shape.js
CHANGED
|
@@ -23,6 +23,28 @@ const MockShapeConfigSchema = z.object({
|
|
|
23
23
|
router_file: z.string().optional(),
|
|
24
24
|
scenarios_dir: z.string().default("mock/scenarios"),
|
|
25
25
|
scenario_registry_file: z.string().default("mock/src/lib/scenario-registry.ts"),
|
|
26
|
+
/**
|
|
27
|
+
* 0.6.0 — review surface shape for the overlay (run-mock passes it to
|
|
28
|
+
* the overlay via NEXT_PUBLIC_SLOWCOOK_REVIEW_MODE).
|
|
29
|
+
*
|
|
30
|
+
* - `"scenarios"` (default): a scenario-picker mock; the overlay hides
|
|
31
|
+
* on `/` and comments key by story_id.
|
|
32
|
+
* - `"lcr"`: a full navigable Living Coded Requirement; the overlay
|
|
33
|
+
* shows on every route and each comment captures its route so plate
|
|
34
|
+
* amends per-page. GUCDI mocks set this.
|
|
35
|
+
*/
|
|
36
|
+
review_mode: z.enum(["scenarios", "lcr"]).default("scenarios"),
|
|
37
|
+
/**
|
|
38
|
+
* 0.6.0 — override the OAuth App Client ID reviewers sign in with (LCR
|
|
39
|
+
* multi-person review). Optional: defaults to the shared slowcook reviewer
|
|
40
|
+
* app. Set this only if a project wants its own consent-screen branding.
|
|
41
|
+
*/
|
|
42
|
+
review_oauth_client_id: z.string().optional(),
|
|
43
|
+
/**
|
|
44
|
+
* 0.6.0 — OAuth scope reviewers grant. `public_repo` (default) for public
|
|
45
|
+
* repos; `repo` when the consumer repo is private.
|
|
46
|
+
*/
|
|
47
|
+
review_oauth_scope: z.string().default("public_repo"),
|
|
26
48
|
});
|
|
27
49
|
const NEXTJS_DEFAULT = {
|
|
28
50
|
schema_version: 1,
|
|
@@ -32,6 +54,8 @@ const NEXTJS_DEFAULT = {
|
|
|
32
54
|
design_system_dir: "mock/src/design-system",
|
|
33
55
|
scenarios_dir: "mock/scenarios",
|
|
34
56
|
scenario_registry_file: "mock/src/lib/scenario-registry.ts",
|
|
57
|
+
review_mode: "scenarios",
|
|
58
|
+
review_oauth_scope: "public_repo",
|
|
35
59
|
};
|
|
36
60
|
const VITE_DEFAULT = {
|
|
37
61
|
schema_version: 1,
|
|
@@ -42,6 +66,8 @@ const VITE_DEFAULT = {
|
|
|
42
66
|
router_file: "mock/src/App.tsx",
|
|
43
67
|
scenarios_dir: "mock/scenarios",
|
|
44
68
|
scenario_registry_file: "mock/src/lib/scenario-registry.ts",
|
|
69
|
+
review_mode: "scenarios",
|
|
70
|
+
review_oauth_scope: "public_repo",
|
|
45
71
|
};
|
|
46
72
|
/**
|
|
47
73
|
* Load `.brewing/mock.yaml`. Returns a default config when the file is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-shape.js","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;IACjD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACnD,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-shape.js","sourceRoot":"","sources":["../../src/lib/mock-shape.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slowcook-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "CLI for the slowcook brewing harness",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "aminazar",
|
|
@@ -35,17 +35,19 @@
|
|
|
35
35
|
"AGENTS.md"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@anthropic-ai/sdk": "^0.
|
|
38
|
+
"@anthropic-ai/sdk": "^0.100.1",
|
|
39
39
|
"@octokit/rest": "^22.0.1",
|
|
40
|
+
"@playwright/test": "^1.40.0",
|
|
40
41
|
"ts-morph": "^28.0.0",
|
|
41
42
|
"yaml": "^2.9.0",
|
|
42
43
|
"zod": "^4.4.3",
|
|
43
|
-
"@slowcook-ai/core": "^0.
|
|
44
|
+
"@slowcook-ai/core": "^0.15.0",
|
|
44
45
|
"@slowcook-ai/stack-ts": "^0.9.9",
|
|
45
|
-
"@slowcook-ai/forge-github": "^0.
|
|
46
|
+
"@slowcook-ai/forge-github": "^0.14.0",
|
|
47
|
+
"@slowcook-ai/llm-anthropic": "^0.17.0",
|
|
46
48
|
"@slowcook-ai/recorder": "^0.9.1",
|
|
47
|
-
"@slowcook-ai/
|
|
48
|
-
"@slowcook-ai/review-overlay": "^0.
|
|
49
|
+
"@slowcook-ai/gates": "^0.11.0",
|
|
50
|
+
"@slowcook-ai/review-overlay": "^0.6.0"
|
|
49
51
|
},
|
|
50
52
|
"devDependencies": {
|
|
51
53
|
"@types/node": "^25.9.1"
|