@momentiq/dark-factory-cli 1.0.0 → 2.0.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 +121 -40
- package/dist/adapters/codex-sdk.d.ts +66 -0
- package/dist/adapters/codex-sdk.d.ts.map +1 -1
- package/dist/adapters/codex-sdk.js +321 -4
- package/dist/adapters/codex-sdk.js.map +1 -1
- package/dist/adapters/critic-result-schema.d.ts +15 -10
- package/dist/adapters/critic-result-schema.d.ts.map +1 -1
- package/dist/adapters/critic-result-schema.js +10 -0
- package/dist/adapters/critic-result-schema.js.map +1 -1
- package/dist/adapters/cursor-cli.d.ts +19 -1
- package/dist/adapters/cursor-cli.d.ts.map +1 -1
- package/dist/adapters/cursor-cli.js +96 -14
- package/dist/adapters/cursor-cli.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +7 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/static-schema-lint.d.ts +68 -0
- package/dist/adapters/static-schema-lint.d.ts.map +1 -0
- package/dist/adapters/static-schema-lint.js +813 -0
- package/dist/adapters/static-schema-lint.js.map +1 -0
- package/dist/branch-protection/spec-default.yaml +2 -2
- package/dist/cli.d.ts +17 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +414 -113
- package/dist/cli.js.map +1 -1
- package/dist/commands/findings.d.ts +6 -0
- package/dist/commands/findings.d.ts.map +1 -0
- package/dist/commands/findings.js +196 -0
- package/dist/commands/findings.js.map +1 -0
- package/dist/commands/show.d.ts +11 -0
- package/dist/commands/show.d.ts.map +1 -0
- package/dist/commands/show.js +78 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/skills.d.ts +6 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +248 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +85 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/compact/index.d.ts +2 -0
- package/dist/compact/index.d.ts.map +1 -0
- package/dist/compact/index.js +3 -0
- package/dist/compact/index.js.map +1 -0
- package/dist/compact/lockfile.d.ts +53 -0
- package/dist/compact/lockfile.d.ts.map +1 -0
- package/dist/compact/lockfile.js +626 -0
- package/dist/compact/lockfile.js.map +1 -0
- package/dist/cycle-doc-validator/validate_cycle_doc.py +39 -9
- package/dist/doctor.d.ts +51 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +497 -1
- package/dist/doctor.js.map +1 -1
- package/dist/evidence/docker-build.d.ts +6 -0
- package/dist/evidence/docker-build.d.ts.map +1 -0
- package/dist/evidence/docker-build.js +199 -0
- package/dist/evidence/docker-build.js.map +1 -0
- package/dist/evidence/index.d.ts +1 -0
- package/dist/evidence/index.d.ts.map +1 -1
- package/dist/evidence/index.js +6 -0
- package/dist/evidence/index.js.map +1 -1
- package/dist/handoff/handoff-verb.d.ts.map +1 -1
- package/dist/handoff/handoff-verb.js +6 -3
- package/dist/handoff/handoff-verb.js.map +1 -1
- package/dist/handoff/ports.d.ts +8 -0
- package/dist/handoff/ports.d.ts.map +1 -1
- package/dist/handoff/real-clients.js +1 -1
- package/dist/handoff/real-clients.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/show-status-core.d.ts +63 -0
- package/dist/lib/show-status-core.d.ts.map +1 -0
- package/dist/lib/show-status-core.js +156 -0
- package/dist/lib/show-status-core.js.map +1 -0
- package/dist/mcp/prompts.d.ts.map +1 -1
- package/dist/mcp/prompts.js +113 -78
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/resources.js +1 -1
- package/dist/mcp/resources.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/doctor.d.ts.map +1 -1
- package/dist/mcp/tools/doctor.js +5 -0
- package/dist/mcp/tools/doctor.js.map +1 -1
- package/dist/mcp/tools/findings.d.ts +0 -22
- package/dist/mcp/tools/findings.d.ts.map +1 -1
- package/dist/mcp/tools/findings.js +5 -73
- package/dist/mcp/tools/findings.js.map +1 -1
- package/dist/mcp/tools/handoff.d.ts.map +1 -1
- package/dist/mcp/tools/handoff.js +10 -17
- package/dist/mcp/tools/handoff.js.map +1 -1
- package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
- package/dist/mcp/tools/review-bypass.js +22 -1
- package/dist/mcp/tools/review-bypass.js.map +1 -1
- package/dist/mcp/tools/skills-install.d.ts +6 -0
- package/dist/mcp/tools/skills-install.d.ts.map +1 -0
- package/dist/mcp/tools/skills-install.js +260 -0
- package/dist/mcp/tools/skills-install.js.map +1 -0
- package/dist/mcp/tools/stats-gate.d.ts.map +1 -1
- package/dist/mcp/tools/stats-gate.js +63 -15
- package/dist/mcp/tools/stats-gate.js.map +1 -1
- package/dist/policy/baseline.d.ts.map +1 -1
- package/dist/policy/baseline.js +11 -3
- package/dist/policy/baseline.js.map +1 -1
- package/dist/policy/gate.d.ts +1 -1
- package/dist/policy/gate.d.ts.map +1 -1
- package/dist/policy/gate.js +96 -12
- package/dist/policy/gate.js.map +1 -1
- package/dist/prompt.d.ts +1 -0
- package/dist/prompt.d.ts.map +1 -1
- package/dist/prompt.js +123 -4
- package/dist/prompt.js.map +1 -1
- package/dist/report.d.ts +130 -3
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +367 -10
- package/dist/report.js.map +1 -1
- package/dist/runner.d.ts +6 -0
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +213 -4
- package/dist/runner.js.map +1 -1
- package/dist/self-consistency.d.ts +144 -0
- package/dist/self-consistency.d.ts.map +1 -0
- package/dist/self-consistency.js +368 -0
- package/dist/self-consistency.js.map +1 -0
- package/dist/skills/config.d.ts +176 -0
- package/dist/skills/config.d.ts.map +1 -0
- package/dist/skills/config.js +251 -0
- package/dist/skills/config.js.map +1 -0
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +8 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/install.d.ts +62 -0
- package/dist/skills/install.d.ts.map +1 -0
- package/dist/skills/install.js +315 -0
- package/dist/skills/install.js.map +1 -0
- package/dist/skills/template.d.ts +42 -0
- package/dist/skills/template.d.ts.map +1 -0
- package/dist/skills/template.js +95 -0
- package/dist/skills/template.js.map +1 -0
- package/dist/trusted-surface/rebind.d.ts.map +1 -1
- package/dist/trusted-surface/rebind.js +199 -2
- package/dist/trusted-surface/rebind.js.map +1 -1
- package/package.json +36 -2
- package/skills/README.md +89 -0
- package/skills/chief-engineer-blitz/SKILL.md.tmpl +443 -0
- package/skills/chief-engineer-blitz/skill.json +53 -0
- package/skills/chief-engineer-review/SKILL.md.tmpl +184 -0
- package/skills/chief-engineer-review/references/review-examples.md.tmpl +130 -0
- package/skills/chief-engineer-review/skill.json +67 -0
- package/skills/chief-engineer-review/templates/code-review-prompt.md.tmpl +111 -0
- package/skills/chief-engineer-review/templates/escalation-prompt.md.tmpl +56 -0
- package/skills/chief-engineer-review/templates/plan-review-prompt.md.tmpl +74 -0
- package/skills/skill-schema.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/skills/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export interface SkillVariableDef {
|
|
2
|
+
readonly description: string;
|
|
3
|
+
readonly source?: string;
|
|
4
|
+
readonly default: string;
|
|
5
|
+
readonly kind?: "scalar" | "list";
|
|
6
|
+
}
|
|
7
|
+
export interface SkillManifest {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly version: string;
|
|
10
|
+
readonly summary: string;
|
|
11
|
+
readonly originatingRepo?: string;
|
|
12
|
+
readonly files: ReadonlyArray<{
|
|
13
|
+
readonly template: string;
|
|
14
|
+
readonly target: string;
|
|
15
|
+
}>;
|
|
16
|
+
readonly variables: Readonly<Record<string, SkillVariableDef>>;
|
|
17
|
+
}
|
|
18
|
+
export type VariableOverride = string | ReadonlyArray<string>;
|
|
19
|
+
export interface RenderTemplateOptions {
|
|
20
|
+
readonly manifest: SkillManifest;
|
|
21
|
+
readonly overrides: Readonly<Record<string, VariableOverride>>;
|
|
22
|
+
}
|
|
23
|
+
export interface RenderResult {
|
|
24
|
+
readonly body: string;
|
|
25
|
+
readonly substituted: ReadonlyArray<{
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly value: string;
|
|
28
|
+
}>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Render `body` by substituting every `{{VAR}}` reference using the skill's
|
|
32
|
+
* manifest + the consumer's overrides. Throws on any reference whose
|
|
33
|
+
* identifier is not declared in `manifest.variables`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function renderTemplateBody(body: string, options: RenderTemplateOptions): RenderResult;
|
|
36
|
+
/**
|
|
37
|
+
* Side-channel: list every `{{VAR}}` reference present in the body, in order
|
|
38
|
+
* of first appearance (deduplicated). Used by the linter that validates a
|
|
39
|
+
* manifest declares every variable its templates actually use.
|
|
40
|
+
*/
|
|
41
|
+
export declare function extractReferencedVariables(body: string): string[];
|
|
42
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/skills/template.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtF,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAChE;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAChE;AAoCD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,GAC7B,YAAY,CAkBd;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAajE"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// `df skills install` — template renderer.
|
|
2
|
+
//
|
|
3
|
+
// Substitutes `{{VARIABLE}}` references in a template body with values
|
|
4
|
+
// resolved from the consumer's `darkfactory.yaml` (with sensible defaults
|
|
5
|
+
// per the skill's manifest).
|
|
6
|
+
//
|
|
7
|
+
// Design decisions:
|
|
8
|
+
//
|
|
9
|
+
// 1. Double-brace delimiter `{{X}}` for install-time variables. Single-brace
|
|
10
|
+
// `{X}` is left UNTOUCHED — that delimiter is reserved for runtime variables
|
|
11
|
+
// the agent fills at skill invocation (PR metadata, manifesto content, etc.).
|
|
12
|
+
// This keeps install-time + runtime variable systems orthogonal in a single
|
|
13
|
+
// file without escape-syntax acrobatics.
|
|
14
|
+
//
|
|
15
|
+
// 2. Strict variable resolution — any `{{VARIABLE}}` reference in the body must
|
|
16
|
+
// be declared in the skill's `skill.json#variables`. Unknown references are
|
|
17
|
+
// a render-time error (catches typos). Declared-but-not-overridden variables
|
|
18
|
+
// use the manifest's `default`.
|
|
19
|
+
//
|
|
20
|
+
// 3. `kind: "list"` variables accept an array from the consumer config and
|
|
21
|
+
// render one element per line (used for QUALITY_GATE_TARGETS). Scalar
|
|
22
|
+
// variables substitute the value as-is (no escape — values are paths/names,
|
|
23
|
+
// not arbitrary user input).
|
|
24
|
+
//
|
|
25
|
+
// 4. No conditional / loop syntax. If a future skill needs them, we'll lift in
|
|
26
|
+
// handlebars; until then strict-substitution is enough and keeps the
|
|
27
|
+
// surface area trivial to audit.
|
|
28
|
+
/**
|
|
29
|
+
* Regex matching `{{IDENTIFIER}}` (uppercase + digits + underscore, must
|
|
30
|
+
* start with a letter). Conservative on purpose — keeps single-brace `{X}`
|
|
31
|
+
* runtime variables and arbitrary mustache-like brace pairs out of scope.
|
|
32
|
+
*/
|
|
33
|
+
const VARIABLE_REGEX = /\{\{([A-Z][A-Z0-9_]*)\}\}/g;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve a variable's effective value: consumer override > manifest default.
|
|
36
|
+
* For `kind: "list"`, an array override is rendered one-per-line; a string
|
|
37
|
+
* override is treated as already-rendered. The manifest default is always a
|
|
38
|
+
* string (lists are declared with a single-line scalar default representing
|
|
39
|
+
* the minimal one-element list).
|
|
40
|
+
*/
|
|
41
|
+
function resolveValue(varName, def, overrides) {
|
|
42
|
+
const override = overrides[varName];
|
|
43
|
+
if (override !== undefined) {
|
|
44
|
+
if (Array.isArray(override)) {
|
|
45
|
+
if (def.kind !== "list") {
|
|
46
|
+
throw new Error(`skills: variable "${varName}" received an array override but its manifest declares kind: "scalar" (or omitted).`);
|
|
47
|
+
}
|
|
48
|
+
return override.join("\n");
|
|
49
|
+
}
|
|
50
|
+
return String(override);
|
|
51
|
+
}
|
|
52
|
+
return def.default;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Render `body` by substituting every `{{VAR}}` reference using the skill's
|
|
56
|
+
* manifest + the consumer's overrides. Throws on any reference whose
|
|
57
|
+
* identifier is not declared in `manifest.variables`.
|
|
58
|
+
*/
|
|
59
|
+
export function renderTemplateBody(body, options) {
|
|
60
|
+
const seen = new Map();
|
|
61
|
+
const rendered = body.replace(VARIABLE_REGEX, (_match, varName) => {
|
|
62
|
+
const def = options.manifest.variables[varName];
|
|
63
|
+
if (def === undefined) {
|
|
64
|
+
throw new Error(`skills: template references undeclared variable "{{${varName}}}" — add it to skill.json#variables for skill "${options.manifest.name}".`);
|
|
65
|
+
}
|
|
66
|
+
let value = seen.get(varName);
|
|
67
|
+
if (value === undefined) {
|
|
68
|
+
value = resolveValue(varName, def, options.overrides);
|
|
69
|
+
seen.set(varName, value);
|
|
70
|
+
}
|
|
71
|
+
return value;
|
|
72
|
+
});
|
|
73
|
+
const substituted = Array.from(seen, ([name, value]) => ({ name, value }));
|
|
74
|
+
return { body: rendered, substituted };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Side-channel: list every `{{VAR}}` reference present in the body, in order
|
|
78
|
+
* of first appearance (deduplicated). Used by the linter that validates a
|
|
79
|
+
* manifest declares every variable its templates actually use.
|
|
80
|
+
*/
|
|
81
|
+
export function extractReferencedVariables(body) {
|
|
82
|
+
const seen = new Set();
|
|
83
|
+
const out = [];
|
|
84
|
+
const re = new RegExp(VARIABLE_REGEX.source, "g");
|
|
85
|
+
let match;
|
|
86
|
+
while ((match = re.exec(body)) !== null) {
|
|
87
|
+
const name = match[1] ?? "";
|
|
88
|
+
if (!seen.has(name)) {
|
|
89
|
+
seen.add(name);
|
|
90
|
+
out.push(name);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/skills/template.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebind.d.ts","sourceRoot":"","sources":["../../src/trusted-surface/rebind.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rebind.d.ts","sourceRoot":"","sources":["../../src/trusted-surface/rebind.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAsBxD,OAAO,KAAK,EAGV,YAAY,EACZ,YAAY,EAEb,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IAOb,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAID,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,YAAY,CAAC,CA8FvB;AA8KD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAoBpF"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
1
2
|
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
2
3
|
import { isAbsolute, relative, resolve } from "node:path";
|
|
3
4
|
import { changedFiles, commitDiff, commitMetadata, commitParent, commitStat, currentBranch, diffHash as diffHashFn, gitShowFile, resolveCommit, } from "../git.js";
|
|
4
|
-
import { readQualityGateEvidence } from "../evidence/index.js";
|
|
5
|
+
import { readDockerBuildEvidence, readQualityGateEvidence } from "../evidence/index.js";
|
|
6
|
+
import { compactDiff, effectiveMode, identifyLockfileKind, renderContentStub, } from "../compact/index.js";
|
|
5
7
|
const DEFAULT_DIFF_BUDGET = 1_500_000;
|
|
6
8
|
export async function buildReviewPacket(loaded, options = {}) {
|
|
7
9
|
const { config, repoRoot } = loaded;
|
|
@@ -14,15 +16,44 @@ export async function buildReviewPacket(loaded, options = {}) {
|
|
|
14
16
|
const range = parent ? `${parent}..${sha}` : sha;
|
|
15
17
|
const stat = await commitStat(parent, sha, cwd);
|
|
16
18
|
const fullDiff = await commitDiff(parent, sha, cwd);
|
|
19
|
+
// ADR § 2.1 — diffHash hashes the PRE-TRUNCATION, PRE-COMPACTION
|
|
20
|
+
// fullDiff so cache identity is stable across policy toggles AND
|
|
21
|
+
// budget truncation. This is unchanged from today.
|
|
22
|
+
const hash = diffHashFn(fullDiff);
|
|
23
|
+
// packet.diff retains today's shape: byte-budgeted from fullDiff
|
|
24
|
+
// (back-compat surface for downstream consumers).
|
|
17
25
|
const diff = fullDiff.length > DEFAULT_DIFF_BUDGET
|
|
18
26
|
? `${fullDiff.slice(0, DEFAULT_DIFF_BUDGET)}\n... [diff truncated at ${DEFAULT_DIFF_BUDGET} bytes]\n`
|
|
19
27
|
: fullDiff;
|
|
20
28
|
const diffTruncated = fullDiff.length > DEFAULT_DIFF_BUDGET;
|
|
21
|
-
const hash = diffHashFn(fullDiff);
|
|
22
29
|
const files = await changedFiles(parent, sha, cwd, {
|
|
23
30
|
maxBytes: config.context.maxChangedFileBytes,
|
|
24
31
|
readContent: config.context.includeFullChangedFiles,
|
|
25
32
|
});
|
|
33
|
+
// ADR § 2.1.1 — bounded lockfile strategy. Operates on the
|
|
34
|
+
// UNTRUNCATED fullDiff so source-file hunks that previously
|
|
35
|
+
// overflowed the per-packet budget now fit after lockfile
|
|
36
|
+
// sections collapse to stubs. The result is byte-capped at
|
|
37
|
+
// MAX_COMPACTED_DIFF_BYTES (an EARLIER cap than DEFAULT_DIFF_BUDGET
|
|
38
|
+
// — see ADR § 2.4.1).
|
|
39
|
+
let compactedDiff;
|
|
40
|
+
let parseErrorPaths;
|
|
41
|
+
const policy = config.context.generatedFilePolicy;
|
|
42
|
+
if (policy !== undefined) {
|
|
43
|
+
// Compute effective mode for each changed file path; if any has
|
|
44
|
+
// non-"full" effective mode, run compaction.
|
|
45
|
+
const anyNonFull = files.some((f) => effectiveMode(f.path, policy) !== "full");
|
|
46
|
+
if (anyNonFull) {
|
|
47
|
+
const result = compactDiff(fullDiff, policy);
|
|
48
|
+
compactedDiff = result.compactedDiff;
|
|
49
|
+
const onParseError = policy.onParseError ?? "refuse-and-block";
|
|
50
|
+
if (result.parseErrorPaths.length > 0 && onParseError === "refuse-and-block") {
|
|
51
|
+
parseErrorPaths = result.parseErrorPaths;
|
|
52
|
+
}
|
|
53
|
+
// Update each matched file's compactedContent + clear content.
|
|
54
|
+
await applyContentCompaction(files, policy, sha, cwd);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
26
57
|
const guidanceFiles = options.trustedSurfaceRef !== undefined
|
|
27
58
|
? await readGuidanceFilesFromRef(options.trustedSurfaceRef, config.context.guidanceFiles, cwd)
|
|
28
59
|
: readGuidanceFiles(repoRoot, config.context.guidanceFiles);
|
|
@@ -30,6 +61,18 @@ export async function buildReviewPacket(loaded, options = {}) {
|
|
|
30
61
|
? await readGuidanceFilesFromRef(options.trustedSurfaceRef, config.context.promptFragments, cwd)
|
|
31
62
|
: readGuidanceFiles(repoRoot, config.context.promptFragments);
|
|
32
63
|
const validation = await readValidationEvidence(loaded, sha);
|
|
64
|
+
// DFP #141 — pick up the consumer's `scripts/check-dockerfile.sh`
|
|
65
|
+
// evidence if the shim ran. Field is undefined when the shim hasn't
|
|
66
|
+
// run, which is the status-quo path (no behavior change). Read from
|
|
67
|
+
// the working-tree side; UNLIKE config + guidance files this is NOT
|
|
68
|
+
// a trusted-surface input (it lives under .git/agent-reviews/,
|
|
69
|
+
// outside the tracked tree, so the parent-ref rebind doesn't apply
|
|
70
|
+
// and would also fail — git can't `show ref:_dockerbuild-evidence.json`
|
|
71
|
+
// because the file is never committed). The reader's second arg is
|
|
72
|
+
// the SHA-binding gate: records whose `reviewedSha` doesn't match the
|
|
73
|
+
// commit under review are dropped as stale (mirror of the
|
|
74
|
+
// `readQualityGateEvidence` stale-handling path).
|
|
75
|
+
const dockerBuildEvidence = await readDockerBuildEvidence(loaded, sha);
|
|
33
76
|
return {
|
|
34
77
|
repoRoot,
|
|
35
78
|
branch,
|
|
@@ -43,8 +86,162 @@ export async function buildReviewPacket(loaded, options = {}) {
|
|
|
43
86
|
guidanceFiles,
|
|
44
87
|
promptFragments,
|
|
45
88
|
validation,
|
|
89
|
+
...(compactedDiff !== undefined ? { compactedDiff } : {}),
|
|
90
|
+
...(parseErrorPaths !== undefined ? { parseErrorPaths } : {}),
|
|
91
|
+
...(dockerBuildEvidence !== undefined ? { dockerBuildEvidence } : {}),
|
|
46
92
|
};
|
|
47
93
|
}
|
|
94
|
+
// ADR § 2.1 / § 2.4 — for each path whose effective mode is
|
|
95
|
+
// !== "full", set compactedContent + CLEAR content so the prompt
|
|
96
|
+
// renders only the compacted form. Mutates `files` in place (caller
|
|
97
|
+
// receives the mutated array).
|
|
98
|
+
async function applyContentCompaction(files, policy, sha, cwd) {
|
|
99
|
+
for (const file of files) {
|
|
100
|
+
const mode = effectiveMode(file.path, policy);
|
|
101
|
+
if (mode === "full")
|
|
102
|
+
continue;
|
|
103
|
+
const kind = identifyLockfileKind(file.path);
|
|
104
|
+
if (kind === undefined) {
|
|
105
|
+
// Unknown lockfile kind but explicitly globbed; emit a stub
|
|
106
|
+
// marking the path as omitted by policy. Don't read content.
|
|
107
|
+
file.compactedContent = `[DF-COMPACT v1 unknown-format full-content omitted]\nfiles:\n - path: ${file.path}`;
|
|
108
|
+
file.content = "";
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (file.content === undefined) {
|
|
112
|
+
// includeFullChangedFiles must have been false. Synthesize a
|
|
113
|
+
// minimal stub from path + status alone.
|
|
114
|
+
file.compactedContent = `[DF-COMPACT v1 ${kind} full-content not-read]\nfiles:\n - path: ${file.path}`;
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
if (mode === "omit") {
|
|
118
|
+
file.compactedContent = `[DF-COMPACT v1 ${kind} omitted-by-policy]\nfiles:\n - path: ${file.path}\n - bytes: ${Buffer.byteLength(file.content, "utf8")}`;
|
|
119
|
+
file.content = "";
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
// mode === "compact"
|
|
123
|
+
const packagesAfter = extractPackagesAfter(kind, file.content);
|
|
124
|
+
const contentSha = createHash("sha256").update(file.content).digest("hex");
|
|
125
|
+
const stub = renderContentStub({
|
|
126
|
+
path: file.path,
|
|
127
|
+
lockfileKind: kind,
|
|
128
|
+
bytesBefore: Buffer.byteLength(file.content, "utf8"),
|
|
129
|
+
contentSha256: contentSha,
|
|
130
|
+
packagesAfter,
|
|
131
|
+
});
|
|
132
|
+
file.compactedContent = stub;
|
|
133
|
+
file.content = "";
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Lightweight post-commit-state extractor for the content stub.
|
|
137
|
+
// Walks the same field surfaces as the per-format diff extractors;
|
|
138
|
+
// errors fall back to an empty array (the stub still emits with
|
|
139
|
+
// notes:lockfile-metadata-only equivalent).
|
|
140
|
+
function extractPackagesAfter(kind, content) {
|
|
141
|
+
const out = [];
|
|
142
|
+
if (kind === "npm") {
|
|
143
|
+
const lines = content.split("\n");
|
|
144
|
+
const markerRe = /^\s*"node_modules\/(@?[^"]+)":\s*\{/;
|
|
145
|
+
const versionRe = /^\s*"version":\s*"([^"]+)"/;
|
|
146
|
+
const integrityRe = /^\s*"integrity":\s*"([^"]+)"/;
|
|
147
|
+
let pendingName = null;
|
|
148
|
+
let pendingVersion;
|
|
149
|
+
let pendingIntegrity;
|
|
150
|
+
function flush() {
|
|
151
|
+
if (pendingName && pendingVersion) {
|
|
152
|
+
out.push({
|
|
153
|
+
name: pendingName,
|
|
154
|
+
version: pendingVersion,
|
|
155
|
+
...(pendingIntegrity !== undefined ? { integrity: pendingIntegrity } : {}),
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
pendingName = null;
|
|
159
|
+
pendingVersion = undefined;
|
|
160
|
+
pendingIntegrity = undefined;
|
|
161
|
+
}
|
|
162
|
+
for (const line of lines) {
|
|
163
|
+
const m = markerRe.exec(line);
|
|
164
|
+
if (m) {
|
|
165
|
+
flush();
|
|
166
|
+
let name = m[1] ?? "";
|
|
167
|
+
if (name.includes("/node_modules/")) {
|
|
168
|
+
const parts = name.split("/node_modules/");
|
|
169
|
+
name = parts[parts.length - 1] ?? name;
|
|
170
|
+
}
|
|
171
|
+
pendingName = name;
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
const vm = versionRe.exec(line);
|
|
175
|
+
if (vm && pendingName)
|
|
176
|
+
pendingVersion = vm[1];
|
|
177
|
+
const im = integrityRe.exec(line);
|
|
178
|
+
if (im && pendingName)
|
|
179
|
+
pendingIntegrity = im[1];
|
|
180
|
+
}
|
|
181
|
+
flush();
|
|
182
|
+
return out;
|
|
183
|
+
}
|
|
184
|
+
if (kind === "pnpm") {
|
|
185
|
+
const lines = content.split("\n");
|
|
186
|
+
const specRe = /^\s*\/(@?[^@/]+(?:\/[^@/]+)?)@([^:()]+)(?:\([^)]+\))?:/;
|
|
187
|
+
const integrityRe = /^\s*integrity:\s*(\S+)/;
|
|
188
|
+
let pending = null;
|
|
189
|
+
function flush() {
|
|
190
|
+
if (pending)
|
|
191
|
+
out.push(pending);
|
|
192
|
+
pending = null;
|
|
193
|
+
}
|
|
194
|
+
for (const line of lines) {
|
|
195
|
+
const m = specRe.exec(line);
|
|
196
|
+
if (m) {
|
|
197
|
+
flush();
|
|
198
|
+
pending = { name: m[1] ?? "", version: m[2] ?? "" };
|
|
199
|
+
continue;
|
|
200
|
+
}
|
|
201
|
+
if (pending) {
|
|
202
|
+
const im = integrityRe.exec(line);
|
|
203
|
+
if (im)
|
|
204
|
+
pending.integrity = im[1] ?? "";
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
flush();
|
|
208
|
+
return out;
|
|
209
|
+
}
|
|
210
|
+
// yarn
|
|
211
|
+
const lines = content.split("\n");
|
|
212
|
+
const specRe = /^(@?[^@\s]+)@[^:]+:/;
|
|
213
|
+
const versionRe = /^\s+version\s+"([^"]+)"/;
|
|
214
|
+
const integrityRe = /^\s+integrity\s+(\S+)/;
|
|
215
|
+
let pending = null;
|
|
216
|
+
function flush() {
|
|
217
|
+
if (pending && pending.version) {
|
|
218
|
+
out.push({
|
|
219
|
+
name: pending.name,
|
|
220
|
+
version: pending.version,
|
|
221
|
+
...(pending.integrity !== undefined ? { integrity: pending.integrity } : {}),
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
pending = null;
|
|
225
|
+
}
|
|
226
|
+
for (const line of lines) {
|
|
227
|
+
const m = specRe.exec(line);
|
|
228
|
+
if (m) {
|
|
229
|
+
flush();
|
|
230
|
+
pending = { name: m[1] ?? "" };
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
if (pending) {
|
|
234
|
+
const vm = versionRe.exec(line);
|
|
235
|
+
if (vm)
|
|
236
|
+
pending.version = vm[1] ?? "";
|
|
237
|
+
const im = integrityRe.exec(line);
|
|
238
|
+
if (im)
|
|
239
|
+
pending.integrity = im[1] ?? "";
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
flush();
|
|
243
|
+
return out;
|
|
244
|
+
}
|
|
48
245
|
async function safeParent(sha, cwd) {
|
|
49
246
|
try {
|
|
50
247
|
return await commitParent(sha, cwd);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rebind.js","sourceRoot":"","sources":["../../src/trusted-surface/rebind.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rebind.js","sourceRoot":"","sources":["../../src/trusted-surface/rebind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,IAAI,UAAU,EACtB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EACL,WAAW,EACX,aAAa,EAEb,oBAAoB,EACpB,iBAAiB,GAGlB,MAAM,qBAAqB,CAAC;AAqB7B,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAEtC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAoB,EACpB,UAA8B,EAAE;IAEhC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,QAAQ,CAAC;IACpC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC;IAElC,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAEjD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACpD,iEAAiE;IACjE,iEAAiE;IACjE,mDAAmD;IACnD,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,iEAAiE;IACjE,kDAAkD;IAClD,MAAM,IAAI,GACR,QAAQ,CAAC,MAAM,GAAG,mBAAmB;QACnC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,4BAA4B,mBAAmB,WAAW;QACrG,CAAC,CAAC,QAAQ,CAAC;IACf,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,mBAAmB,CAAC;IAE5D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;QACjD,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,mBAAmB;QAC5C,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,uBAAuB;KACpD,CAAC,CAAC;IAEH,2DAA2D;IAC3D,4DAA4D;IAC5D,0DAA0D;IAC1D,2DAA2D;IAC3D,oEAAoE;IACpE,sBAAsB;IACtB,IAAI,aAAiC,CAAC;IACtC,IAAI,eAAqC,CAAC;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAClD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,gEAAgE;QAChE,6CAA6C;QAC7C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,CAChD,CAAC;QACF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,kBAAkB,CAAC;YAC/D,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,KAAK,kBAAkB,EAAE,CAAC;gBAC7E,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;YAC3C,CAAC;YACD,+DAA+D;YAC/D,MAAM,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,KAAK,SAAS;QAC3D,CAAC,CAAC,MAAM,wBAAwB,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;QAC9F,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,KAAK,SAAS;QAC7D,CAAC,CAAC,MAAM,wBAAwB,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;QAChG,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,kEAAkE;IAClE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,+DAA+D;IAC/D,mEAAmE;IACnE,wEAAwE;IACxE,mEAAmE;IACnE,sEAAsE;IACtE,0DAA0D;IAC1D,kDAAkD;IAClD,MAAM,mBAAmB,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEvE,OAAO;QACL,QAAQ;QACR,MAAM;QACN,MAAM,EAAE,QAAQ;QAChB,KAAK;QACL,QAAQ,EAAE,IAAI;QACd,IAAI;QACJ,IAAI;QACJ,aAAa;QACb,YAAY,EAAE,KAAK;QACnB,aAAa;QACb,eAAe;QACf,UAAU;QACV,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,4DAA4D;AAC5D,iEAAiE;AACjE,oEAAoE;AACpE,+BAA+B;AAC/B,KAAK,UAAU,sBAAsB,CACnC,KAAoB,EACpB,MAA2B,EAC3B,GAAW,EACX,GAAW;IAEX,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QAC9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,4DAA4D;YAC5D,6DAA6D;YAC7D,IAAI,CAAC,gBAAgB,GAAG,0EAA0E,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9G,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,6DAA6D;YAC7D,yCAAyC;YACzC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,IAAI,8CAA8C,IAAI,CAAC,IAAI,EAAE,CAAC;YACxG,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,IAAI,0CAA0C,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3J,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,qBAAqB;QACrB,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,iBAAiB,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC;YACpD,aAAa,EAAE,UAAU;YACzB,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,gEAAgE;AAChE,mEAAmE;AACnE,gEAAgE;AAChE,4CAA4C;AAC5C,SAAS,oBAAoB,CAC3B,IAAkB,EAClB,OAAe;IAEf,MAAM,GAAG,GAA4D,EAAE,CAAC;IACxE,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,qCAAqC,CAAC;QACvD,MAAM,SAAS,GAAG,4BAA4B,CAAC;QAC/C,MAAM,WAAW,GAAG,8BAA8B,CAAC;QACnD,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,cAAkC,CAAC;QACvC,IAAI,gBAAoC,CAAC;QACzC,SAAS,KAAK;YACZ,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,cAAc;oBACvB,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAC,CAAC;YACL,CAAC;YACD,WAAW,GAAG,IAAI,CAAC;YACnB,cAAc,GAAG,SAAS,CAAC;YAC3B,gBAAgB,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,EAAE,CAAC;gBACN,KAAK,EAAE,CAAC;gBACR,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBAC3C,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC;gBACzC,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC;gBACnB,SAAS;YACX,CAAC;YACD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,EAAE,IAAI,WAAW;gBAAE,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,EAAE,IAAI,WAAW;gBAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,wDAAwD,CAAC;QACxE,MAAM,WAAW,GAAG,wBAAwB,CAAC;QAC7C,IAAI,OAAO,GAAiE,IAAI,CAAC;QACjF,SAAS,KAAK;YACZ,IAAI,OAAO;gBAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,EAAE,CAAC;gBACN,KAAK,EAAE,CAAC;gBACR,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpD,SAAS;YACX,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,EAAE;oBAAE,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO;IACP,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC;IACrC,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAC5C,MAAM,WAAW,GAAG,uBAAuB,CAAC;IAC5C,IAAI,OAAO,GAAkE,IAAI,CAAC;IAClF,SAAS,KAAK;QACZ,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC;YACN,KAAK,EAAE,CAAC;YACR,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,EAAE;gBAAE,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,EAAE;gBAAE,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,KAAK,EAAE,CAAC;IACR,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,GAAW;IAChD,IAAI,CAAC;QACH,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB,EAAE,KAAe;IAC1D,OAAO,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC7C,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,+BAA+B;AAC/B,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAe;IAClE,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,mBAAmB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACpC,2EAA2E;QAC3E,uEAAuE;QACvE,gEAAgE;QAChE,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpD,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,sEAAsE,GAAG,MAAM,YAAY,EAAE,CAC9F,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,oEAAoE;AACpE,wEAAwE;AACxE,4EAA4E;AAC5E,4EAA4E;AAC5E,sEAAsE;AACtE,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,qEAAqE;AACrE,uEAAuE;AACvE,sEAAsE;AACtE,KAAK,UAAU,wBAAwB,CACrC,GAAW,EACX,KAAe,EACf,GAAW;IAEX,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,iEAAiE,GAAG,EAAE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,+CAA+C,GAAG,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,IAAI;YAAE,SAAS;QAC/B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,wEAAwE;AACxE,qEAAqE;AACrE,0CAA0C;AAC1C,SAAS,mBAAmB,CAAC,QAAgB,EAAE,GAAW;IACxD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,iEAAiE,GAAG,EAAE,CACvE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,+CAA+C,GAAG,MAAM,QAAQ,EAAE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,MAAoB,EACpB,GAAW;IAEX,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IACpE,MAAM,MAAM,GAA2B;QACrC,oBAAoB,EAAE,QAAQ;QAC9B,oBAAoB,EAAE,QAAQ;QAC9B,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC;QACtB,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,2EAA2E;IAC3E,sEAAsE;IACtE,oEAAoE;IACpE,wEAAwE;IACxE,4EAA4E;IAC5E,+DAA+D;IAC/D,wEAAwE;IACxE,4BAA4B;IAC5B,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IACxC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAC5D,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@momentiq/dark-factory-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Dark Factory OSS CLI — multi-vendor adversarial critic orchestration (Cursor, Codex, Gemini, Grok) with min-complete-quorum aggregation and trusted-surface rebind",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
+
"homepage": "https://momentiq.ai/dark-factory",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/momentiq-ai/dark-factory.git",
|
|
10
|
+
"directory": "packages/cli"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/momentiq-ai/dark-factory/issues"
|
|
14
|
+
},
|
|
15
|
+
"author": "Momentiq AI",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"ai-agents",
|
|
18
|
+
"code-review",
|
|
19
|
+
"github-actions",
|
|
20
|
+
"pr-automation",
|
|
21
|
+
"multi-vendor",
|
|
22
|
+
"agentic-sdlc",
|
|
23
|
+
"claude-code",
|
|
24
|
+
"cursor-sdk",
|
|
25
|
+
"dark-factory",
|
|
26
|
+
"critic",
|
|
27
|
+
"quorum"
|
|
28
|
+
],
|
|
6
29
|
"type": "module",
|
|
7
30
|
"main": "./dist/index.js",
|
|
8
31
|
"types": "./dist/index.d.ts",
|
|
@@ -23,6 +46,10 @@
|
|
|
23
46
|
"types": "./dist/trusted-surface/index.d.ts",
|
|
24
47
|
"import": "./dist/trusted-surface/index.js"
|
|
25
48
|
},
|
|
49
|
+
"./compact": {
|
|
50
|
+
"types": "./dist/compact/index.d.ts",
|
|
51
|
+
"import": "./dist/compact/index.js"
|
|
52
|
+
},
|
|
26
53
|
"./evidence": {
|
|
27
54
|
"types": "./dist/evidence/index.d.ts",
|
|
28
55
|
"import": "./dist/evidence/index.js"
|
|
@@ -38,6 +65,10 @@
|
|
|
38
65
|
"./cycle-tracker-sync": {
|
|
39
66
|
"types": "./dist/cycle-tracker-sync/index.d.ts",
|
|
40
67
|
"import": "./dist/cycle-tracker-sync/index.js"
|
|
68
|
+
},
|
|
69
|
+
"./skills": {
|
|
70
|
+
"types": "./dist/skills/index.d.ts",
|
|
71
|
+
"import": "./dist/skills/index.js"
|
|
41
72
|
}
|
|
42
73
|
},
|
|
43
74
|
"bin": {
|
|
@@ -45,6 +76,7 @@
|
|
|
45
76
|
},
|
|
46
77
|
"files": [
|
|
47
78
|
"dist",
|
|
79
|
+
"skills",
|
|
48
80
|
"README.md",
|
|
49
81
|
"LICENSE"
|
|
50
82
|
],
|
|
@@ -64,8 +96,10 @@
|
|
|
64
96
|
"@cursor/sdk": "^1.0.12",
|
|
65
97
|
"@google/genai": "^2.2.0",
|
|
66
98
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
67
|
-
"@momentiq/dark-factory-schemas": "0.
|
|
99
|
+
"@momentiq/dark-factory-schemas": "0.6.0",
|
|
68
100
|
"@openai/codex-sdk": "^0.130.0",
|
|
101
|
+
"ajv": "^8.20.0",
|
|
102
|
+
"ajv-formats": "^3.0.1",
|
|
69
103
|
"openai": "^6.37.0",
|
|
70
104
|
"yaml": "^2.9.0",
|
|
71
105
|
"zod": "^3.23.0",
|
package/skills/README.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Bundled skills (source of truth)
|
|
2
|
+
|
|
3
|
+
This directory is the source of truth for skills shipped by
|
|
4
|
+
`@momentiq/dark-factory-cli` and installable into any consumer repo via
|
|
5
|
+
`df skills install <name>`.
|
|
6
|
+
|
|
7
|
+
Each subdirectory is one skill:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
skills/
|
|
11
|
+
├── skill-schema.json # JSON schema for skill.json files
|
|
12
|
+
├── chief-engineer-review/
|
|
13
|
+
│ ├── skill.json # manifest (variables, file map)
|
|
14
|
+
│ ├── SKILL.md.tmpl # main skill body (Handlebars-style vars)
|
|
15
|
+
│ ├── templates/
|
|
16
|
+
│ │ ├── code-review-prompt.md.tmpl
|
|
17
|
+
│ │ ├── plan-review-prompt.md.tmpl
|
|
18
|
+
│ │ └── escalation-prompt.md.tmpl
|
|
19
|
+
│ └── references/
|
|
20
|
+
│ └── review-examples.md.tmpl
|
|
21
|
+
└── chief-engineer-blitz/
|
|
22
|
+
├── skill.json
|
|
23
|
+
└── SKILL.md.tmpl
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Authoring rules
|
|
27
|
+
|
|
28
|
+
1. **Every `{{VARIABLE}}` reference in any `.tmpl` file MUST be declared in
|
|
29
|
+
`skill.json#variables`.** The renderer fails closed if a referenced variable
|
|
30
|
+
is undeclared (catches typos and silent drift between template + manifest).
|
|
31
|
+
2. **`{{X}}` is install-time substitution** (rendered by `df skills install`
|
|
32
|
+
from `darkfactory.yaml`). `{X}` (single-brace) is runtime substitution
|
|
33
|
+
(filled later by the agent at skill invocation; not touched by the renderer).
|
|
34
|
+
3. **Header comment in every rendered file.** Every `.tmpl` should start (or
|
|
35
|
+
end its frontmatter with) a `GENERATED by df skills install …` comment so
|
|
36
|
+
consumers know not to hand-edit the rendered copy.
|
|
37
|
+
4. **No consumer-specific literals.** If the skill mentions a Make-target,
|
|
38
|
+
an ADR directory, a manifesto path, or any other repo-shaped string, route
|
|
39
|
+
it through a `{{VAR}}` with a sensible default.
|
|
40
|
+
|
|
41
|
+
## Install-time variable conventions
|
|
42
|
+
|
|
43
|
+
| Variable | Typical default | Source |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `{{REPO_NAME}}` | `this repo` | `darkfactory.yaml: repo.displayName` |
|
|
46
|
+
| `{{REPO_SLUG}}` | (empty) | `repo.slug` > `<repo>` portion of git `origin` remote |
|
|
47
|
+
| `{{MANIFESTO_PATH}}` | `docs/PRINCIPLES.md` | `docs.manifesto` |
|
|
48
|
+
| `{{ADR_DIR}}` | `docs/ADR` | `docs.adrDir` |
|
|
49
|
+
| `{{CYCLE_DOCS_DIR}}` | `docs/roadmap/cycles` | `docs.cycleDocsDir` |
|
|
50
|
+
| `{{RFC_DIR}}` | `docs/rfcs` | `docs.rfcDir` |
|
|
51
|
+
| `{{PRD_DIR}}` | `docs/prds` | `docs.prdDir` |
|
|
52
|
+
| `{{CE_AGENT_PATH}}` | `.claude/agents/chief-engineer.md` | `agents.chiefEngineer` |
|
|
53
|
+
| `{{QUALITY_GATE_TARGETS}}` | `make quality-gates` | `qualityGates` (list) |
|
|
54
|
+
| `{{WORKTREE_ROOT}}` | `.claude/worktrees` | `worktreeRoot` |
|
|
55
|
+
| `{{OWNER_REPO}}` | (empty) | `repo.ownerRepo` > parsed from `git config --get remote.origin.url` |
|
|
56
|
+
| `{{AGENT_COMMITTER_ORG}}` | `momentiq` | `agentCommitterOrg` |
|
|
57
|
+
|
|
58
|
+
`OWNER_REPO` / `REPO_SLUG` precedence at install time: explicit
|
|
59
|
+
`darkfactory.yaml` value wins. When the yaml does not provide it, the
|
|
60
|
+
renderer falls back to parsing the consumer repo's `origin` git remote
|
|
61
|
+
(both SSH `git@github.com:owner/repo.git` and HTTPS
|
|
62
|
+
`https://github.com/owner/repo.git` forms are recognized). If neither
|
|
63
|
+
yields a value, the renderer uses the manifest default (empty by
|
|
64
|
+
convention — the consumer accepts that templated `gh` commands will
|
|
65
|
+
require an explicit `--repo` flag).
|
|
66
|
+
|
|
67
|
+
## Adding a new skill
|
|
68
|
+
|
|
69
|
+
1. Create `skills/<name>/`.
|
|
70
|
+
2. Write `skill.json` declaring all variables your templates use.
|
|
71
|
+
3. Write `SKILL.md.tmpl` (and any sibling templates/, references/).
|
|
72
|
+
4. Add the skill name to `KNOWN_SKILLS` in `src/skills/install.ts`.
|
|
73
|
+
5. Add a vitest case in `tests/skills/install.test.ts` that renders the skill
|
|
74
|
+
against the default config and snapshots the output.
|
|
75
|
+
|
|
76
|
+
## How skills ship in the npm tarball
|
|
77
|
+
|
|
78
|
+
Bundled skills ship via the top-level `files: ["skills"]` array in
|
|
79
|
+
`packages/cli/package.json` — the whole `skills/` directory is copied
|
|
80
|
+
verbatim into the published tarball. There is **no** copy-assets step
|
|
81
|
+
for `.tmpl` / `skill.json` files; `scripts/copy-assets.mjs` only mirrors
|
|
82
|
+
non-TypeScript assets *inside* `src/` (e.g. Python scripts, YAML fixtures)
|
|
83
|
+
into `dist/`. The skills directory sits at the package root, parallel to
|
|
84
|
+
`dist/`, and `resolveSkillsRoot()` finds it relative to the compiled
|
|
85
|
+
module's URL.
|
|
86
|
+
|
|
87
|
+
If you need a new file extension under `skills/` (today: `.md.tmpl`,
|
|
88
|
+
`.json`), nothing in the build needs to change — the `files` array
|
|
89
|
+
already takes the directory as a whole.
|