@momentiq/dark-factory-cli 2.17.0 → 2.18.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/dist/adapters/codex-sdk.d.ts +30 -5
- package/dist/adapters/codex-sdk.d.ts.map +1 -1
- package/dist/adapters/codex-sdk.js +50 -15
- package/dist/adapters/codex-sdk.js.map +1 -1
- package/dist/branch-protection/audit_branch_protection.py +80 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/mode.d.ts +2 -0
- package/dist/commands/mode.d.ts.map +1 -0
- package/dist/commands/mode.js +110 -0
- package/dist/commands/mode.js.map +1 -0
- package/dist/commands/onboard.d.ts.map +1 -1
- package/dist/commands/onboard.js +3 -1
- package/dist/commands/onboard.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +10 -6
- package/dist/doctor.js.map +1 -1
- package/dist/mode/init.d.ts +17 -0
- package/dist/mode/init.d.ts.map +1 -0
- package/dist/mode/init.js +138 -0
- package/dist/mode/init.js.map +1 -0
- package/dist/mode/resolve.d.ts +24 -0
- package/dist/mode/resolve.d.ts.map +1 -0
- package/dist/mode/resolve.js +49 -0
- package/dist/mode/resolve.js.map +1 -0
- package/dist/mode/status.d.ts +14 -0
- package/dist/mode/status.d.ts.map +1 -0
- package/dist/mode/status.js +20 -0
- package/dist/mode/status.js.map +1 -0
- package/dist/onboard/seeders/design-md.d.ts +3 -0
- package/dist/onboard/seeders/design-md.d.ts.map +1 -0
- package/dist/onboard/seeders/design-md.js +138 -0
- package/dist/onboard/seeders/design-md.js.map +1 -0
- package/dist/onboard/seeders/index.d.ts +8 -0
- package/dist/onboard/seeders/index.d.ts.map +1 -1
- package/dist/onboard/seeders/index.js +3 -0
- package/dist/onboard/seeders/index.js.map +1 -1
- package/dist/onboard/validate.d.ts +17 -0
- package/dist/onboard/validate.d.ts.map +1 -1
- package/dist/onboard/validate.js +63 -42
- package/dist/onboard/validate.js.map +1 -1
- package/dist/skills/config.d.ts +3 -0
- package/dist/skills/config.d.ts.map +1 -1
- package/dist/skills/config.js +5 -0
- package/dist/skills/config.js.map +1 -1
- package/package.json +3 -3
- package/skills/objectives/SKILL.md.tmpl +19 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/onboard/seeders/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/onboard/seeders/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAuChD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,KAAkB,EAClB,OAA0B;IAE1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,CAAC,CAAC,IAAI,YAAY,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CACtF,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IACF,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAsB;IACpD,SAAS;IACT,qBAAqB;IACrB,aAAa;IACb,uBAAuB;IACvB,cAAc;CACf,CAAC"}
|
|
@@ -16,4 +16,21 @@ export interface CheckAgentContextSetOptions {
|
|
|
16
16
|
guidanceFiles: readonly string[] | undefined;
|
|
17
17
|
}
|
|
18
18
|
export declare function checkAgentContextSet(opts: CheckAgentContextSetOptions): Promise<DoctorCheck[]>;
|
|
19
|
+
export interface CheckDesignMdOptions {
|
|
20
|
+
repoRoot: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Cycle 27 Phase A — `agent_context.design_md`.
|
|
24
|
+
*
|
|
25
|
+
* DESIGN.md (Google Labs open spec) is the design-side sibling of AGENTS.md.
|
|
26
|
+
* Advisory for repos without a designer mode: a missing file PASSES with a
|
|
27
|
+
* recommendation. REQUIRED once `darkfactory.yaml` declares `modes.designer`:
|
|
28
|
+
* the Designer Mode persona and design-lens critics bind to this file, so its
|
|
29
|
+
* absence is a real gap and FAILS with remediation.
|
|
30
|
+
*
|
|
31
|
+
* Config read is deliberately tolerant (raw YAML key probe, not the strict
|
|
32
|
+
* canonical parser): a malformed darkfactory.yaml must surface through its
|
|
33
|
+
* own checks, not turn this one into a crash.
|
|
34
|
+
*/
|
|
35
|
+
export declare function checkDesignMd(opts: CheckDesignMdOptions): Promise<DoctorCheck>;
|
|
19
36
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/onboard/validate.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAC9C;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/onboard/validate.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAC9C;AAmCD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,2BAA2B,GAChC,OAAO,CAAC,WAAW,EAAE,CAAC,CA6DxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,WAAW,CAAC,CAkCtB"}
|
package/dist/onboard/validate.js
CHANGED
|
@@ -1,51 +1,37 @@
|
|
|
1
1
|
// Cycle 15 Phase C — `checkAgentContextSet()` for `df doctor`.
|
|
2
2
|
//
|
|
3
|
-
// Walks the
|
|
4
|
-
// .claude/settings.json,
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
// to a real file under `repoRoot`.
|
|
3
|
+
// Walks the universal Dark-Factory required-files floor (CLAUDE.md, AGENTS.md,
|
|
4
|
+
// .claude/settings.json, .agent-review/config.json) UNCONDITIONALLY, then
|
|
5
|
+
// optionally validates each path in `context.guidanceFiles` (from the loaded
|
|
6
|
+
// AgentReviewConfig) resolves to a real file under `repoRoot`.
|
|
8
7
|
//
|
|
9
8
|
// Per Decision #7 (round-1 revision): the required-files walk runs regardless
|
|
10
|
-
// of whether `context.guidanceFiles` is configured — the
|
|
11
|
-
// The guidance-file walk is opt-in: when `guidanceFiles` is
|
|
12
|
-
// a single `agent_context.guidance_not_configured`
|
|
13
|
-
// emitted (passed: true, optional: true) so operators
|
|
14
|
-
// skipped rather than silently absent.
|
|
9
|
+
// of whether `context.guidanceFiles` is configured — the universal floor is
|
|
10
|
+
// not opt-in. The guidance-file walk is opt-in: when `guidanceFiles` is
|
|
11
|
+
// undefined OR `[]`, a single `agent_context.guidance_not_configured`
|
|
12
|
+
// informational marker is emitted (passed: true, optional: true) so operators
|
|
13
|
+
// see the field was skipped rather than silently absent.
|
|
15
14
|
//
|
|
16
15
|
// Cycle 15 exit-criterion lines 297–303: "the post-apply check fails loudly
|
|
17
|
-
// when any of [
|
|
18
|
-
// point at real files). All current repos must pass `df doctor` after
|
|
19
|
-
// lands."
|
|
20
|
-
import { access,
|
|
16
|
+
// when any of [the universal floor] are missing or unwired (`context.guidanceFiles`
|
|
17
|
+
// does not point at real files). All current repos must pass `df doctor` after
|
|
18
|
+
// this lands."
|
|
19
|
+
import { access, readFile } from "node:fs/promises";
|
|
21
20
|
import { constants } from "node:fs";
|
|
22
21
|
import { resolve } from "node:path";
|
|
22
|
+
import { parse as parseYaml } from "yaml";
|
|
23
23
|
const REQUIRED_FILES = [
|
|
24
|
-
{ key: "claude_md", name: "CLAUDE.md", path: "CLAUDE.md"
|
|
25
|
-
{ key: "agents_md", name: "AGENTS.md", path: "AGENTS.md"
|
|
24
|
+
{ key: "claude_md", name: "CLAUDE.md", path: "CLAUDE.md" },
|
|
25
|
+
{ key: "agents_md", name: "AGENTS.md", path: "AGENTS.md" },
|
|
26
26
|
{
|
|
27
27
|
key: "claude_settings",
|
|
28
28
|
name: ".claude/settings.json",
|
|
29
29
|
path: ".claude/settings.json",
|
|
30
|
-
isGlob: false,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
key: "principles",
|
|
34
|
-
name: "docs/PRINCIPLES.md",
|
|
35
|
-
path: "docs/PRINCIPLES.md",
|
|
36
|
-
isGlob: false,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
key: "cycle1_bootstrap",
|
|
40
|
-
name: "docs/roadmap/cycles/cycle1-*.md",
|
|
41
|
-
path: "docs/roadmap/cycles",
|
|
42
|
-
isGlob: true,
|
|
43
30
|
},
|
|
44
31
|
{
|
|
45
32
|
key: "config",
|
|
46
33
|
name: ".agent-review/config.json",
|
|
47
34
|
path: ".agent-review/config.json",
|
|
48
|
-
isGlob: false,
|
|
49
35
|
},
|
|
50
36
|
];
|
|
51
37
|
async function fileExists(path) {
|
|
@@ -57,15 +43,6 @@ async function fileExists(path) {
|
|
|
57
43
|
return false;
|
|
58
44
|
}
|
|
59
45
|
}
|
|
60
|
-
async function cycle1GlobMatches(dir) {
|
|
61
|
-
try {
|
|
62
|
-
const entries = await readdir(dir);
|
|
63
|
-
return entries.some((name) => /^cycle1-.*\.md$/.test(name));
|
|
64
|
-
}
|
|
65
|
-
catch {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
46
|
const REMEDIATION = "run `df onboard --apply` to generate the missing agent-context files, or restore the file from version control";
|
|
70
47
|
export async function checkAgentContextSet(opts) {
|
|
71
48
|
const out = [];
|
|
@@ -76,9 +53,7 @@ export async function checkAgentContextSet(opts) {
|
|
|
76
53
|
// fail when CLAUDE.md is missing.
|
|
77
54
|
for (const req of REQUIRED_FILES) {
|
|
78
55
|
const fullPath = resolve(opts.repoRoot, req.path);
|
|
79
|
-
const exists =
|
|
80
|
-
? await cycle1GlobMatches(fullPath)
|
|
81
|
-
: await fileExists(fullPath);
|
|
56
|
+
const exists = await fileExists(fullPath);
|
|
82
57
|
out.push(exists
|
|
83
58
|
? {
|
|
84
59
|
name: `agent_context.${req.key}`,
|
|
@@ -124,4 +99,50 @@ export async function checkAgentContextSet(opts) {
|
|
|
124
99
|
}
|
|
125
100
|
return out;
|
|
126
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Cycle 27 Phase A — `agent_context.design_md`.
|
|
104
|
+
*
|
|
105
|
+
* DESIGN.md (Google Labs open spec) is the design-side sibling of AGENTS.md.
|
|
106
|
+
* Advisory for repos without a designer mode: a missing file PASSES with a
|
|
107
|
+
* recommendation. REQUIRED once `darkfactory.yaml` declares `modes.designer`:
|
|
108
|
+
* the Designer Mode persona and design-lens critics bind to this file, so its
|
|
109
|
+
* absence is a real gap and FAILS with remediation.
|
|
110
|
+
*
|
|
111
|
+
* Config read is deliberately tolerant (raw YAML key probe, not the strict
|
|
112
|
+
* canonical parser): a malformed darkfactory.yaml must surface through its
|
|
113
|
+
* own checks, not turn this one into a crash.
|
|
114
|
+
*/
|
|
115
|
+
export async function checkDesignMd(opts) {
|
|
116
|
+
const designPath = resolve(opts.repoRoot, "DESIGN.md");
|
|
117
|
+
const exists = await fileExists(designPath);
|
|
118
|
+
if (exists) {
|
|
119
|
+
return {
|
|
120
|
+
name: "agent_context.design_md",
|
|
121
|
+
passed: true,
|
|
122
|
+
detail: `DESIGN.md present at ${designPath}`,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
let designerConfigured = false;
|
|
126
|
+
try {
|
|
127
|
+
const raw = await readFile(resolve(opts.repoRoot, "darkfactory.yaml"), "utf8");
|
|
128
|
+
const parsed = parseYaml(raw);
|
|
129
|
+
designerConfigured = parsed?.modes?.["designer"] !== undefined;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Missing or unreadable darkfactory.yaml → no designer mode configured.
|
|
133
|
+
}
|
|
134
|
+
if (designerConfigured) {
|
|
135
|
+
return {
|
|
136
|
+
name: "agent_context.design_md",
|
|
137
|
+
passed: false,
|
|
138
|
+
detail: `DESIGN.md missing at ${designPath} — required: darkfactory.yaml declares modes.designer, whose persona and design-lens critics bind to it`,
|
|
139
|
+
remediation: "run `df onboard --apply` to seed a DESIGN.md skeleton (Google Labs spec), or author one at the repo root",
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
name: "agent_context.design_md",
|
|
144
|
+
passed: true,
|
|
145
|
+
detail: `DESIGN.md not present at ${designPath} (advisory — recommended agent-context file; becomes required once a designer mode is configured)`,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
127
148
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/onboard/validate.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/onboard/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/skills/config.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export declare const DarkFactoryConfigSchema: z.ZodObject<{
|
|
|
57
57
|
}, {
|
|
58
58
|
enabled?: boolean | undefined;
|
|
59
59
|
}>>>;
|
|
60
|
+
modes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
60
61
|
}, "strict", z.ZodTypeAny, {
|
|
61
62
|
repo?: {
|
|
62
63
|
displayName?: string | undefined;
|
|
@@ -82,6 +83,7 @@ export declare const DarkFactoryConfigSchema: z.ZodObject<{
|
|
|
82
83
|
skills?: Record<string, {
|
|
83
84
|
enabled?: boolean | undefined;
|
|
84
85
|
}> | undefined;
|
|
86
|
+
modes?: Record<string, unknown> | undefined;
|
|
85
87
|
}, {
|
|
86
88
|
repo?: {
|
|
87
89
|
displayName?: string | undefined;
|
|
@@ -107,6 +109,7 @@ export declare const DarkFactoryConfigSchema: z.ZodObject<{
|
|
|
107
109
|
skills?: Record<string, {
|
|
108
110
|
enabled?: boolean | undefined;
|
|
109
111
|
}> | undefined;
|
|
112
|
+
modes?: Record<string, unknown> | undefined;
|
|
110
113
|
}>;
|
|
111
114
|
export type DarkFactoryConfig = z.infer<typeof DarkFactoryConfigSchema>;
|
|
112
115
|
export interface LoadedDarkFactoryConfig {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/skills/config.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAmClD,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/skills/config.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAmClD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBzB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GACf,uBAAuB,CA+BzB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWxE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAavE;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CA0DnC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAKrE"}
|
package/dist/skills/config.js
CHANGED
|
@@ -85,6 +85,11 @@ export const DarkFactoryConfigSchema = z
|
|
|
85
85
|
worktreeRoot: z.string().optional(),
|
|
86
86
|
agentCommitterOrg: z.string().optional(),
|
|
87
87
|
skills: z.record(skillEntrySchema).optional(),
|
|
88
|
+
// Cycle 27 — `modes` operator catalog. Tolerated here; the canonical deep
|
|
89
|
+
// validation lives in @momentiq/dark-factory-schemas `parseDarkFactoryConfig`
|
|
90
|
+
// (mode consumers parse through that), so the skills loader must not
|
|
91
|
+
// fail closed on a valid consumer config that declares modes.
|
|
92
|
+
modes: z.record(z.unknown()).optional(),
|
|
88
93
|
})
|
|
89
94
|
.strict();
|
|
90
95
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/skills/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/skills/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@momentiq/dark-factory-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.18.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
6
|
"homepage": "https://momentiq.ai/dark-factory",
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
"@google/genai": "^2.2.0",
|
|
99
99
|
"@iarna/toml": "2.2.5",
|
|
100
100
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
101
|
-
"@momentiq/dark-factory-schemas": "0.
|
|
102
|
-
"@openai/codex-sdk": "
|
|
101
|
+
"@momentiq/dark-factory-schemas": "0.14.0",
|
|
102
|
+
"@openai/codex-sdk": ">=0.142.5 <1.0.0",
|
|
103
103
|
"@yarnpkg/lockfile": "1.1.0",
|
|
104
104
|
"ajv": "^8.20.0",
|
|
105
105
|
"ajv-formats": "^3.0.1",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: objectives
|
|
3
|
-
description: Use at PLAN TIME for any PR that implements a cycle
|
|
3
|
+
description: Use at PLAN TIME for any PR that implements a cycle's acceptance criteria — author the verifiable objectives contract before writing code. Run `df objectives derive --cycle <N> --apply` to generate .darkfactory/objectives.yaml from the linked cycle doc's Exit criteria, bind each objective's attestedBy to a real route or test, surface the manifest in your plan for agreement, then declare victory at closeout with `df prove` (not free-text "done").
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /objectives — plan-time verifiable objectives authoring
|
|
@@ -13,9 +13,9 @@ prove — and how to close the loop at PR completion.
|
|
|
13
13
|
## When this runs
|
|
14
14
|
|
|
15
15
|
At **plan time** — before writing implementation code — for any PR that
|
|
16
|
-
implements a cycle
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
implements a cycle's acceptance criteria. Objectives are the explicit,
|
|
17
|
+
agreed contract of the work; they belong in the plan, not appended after
|
|
18
|
+
the fact at PR close.
|
|
19
19
|
|
|
20
20
|
The full flow:
|
|
21
21
|
|
|
@@ -37,8 +37,21 @@ the linked cycle doc's `## Exit criteria` section. Each criterion becomes one
|
|
|
37
37
|
df objectives derive --cycle <N> --apply
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
The command reads `docs/roadmap/cycles/cycle<N>-*.md
|
|
41
|
-
|
|
40
|
+
The command reads `docs/roadmap/cycles/cycle<N>-*.md`. It recognizes each
|
|
41
|
+
item under the heading whose slug is `exit_criteria` and creates one objective
|
|
42
|
+
per item. The parser normalizes H2 titles (lowercase, non-alphanumerics → `_`),
|
|
43
|
+
so `## Exit criteria`, `## Exit Criteria`, and `## exit-criteria` all match;
|
|
44
|
+
only headings whose slug differs (e.g. `## Exit criteria for Cycle N`) are not
|
|
45
|
+
recognized. Accepted item forms:
|
|
46
|
+
|
|
47
|
+
- `- [x] EC1: …` (checkbox, checked or unchecked)
|
|
48
|
+
- `` - `EC1`: … `` (backtick id)
|
|
49
|
+
- `- EC1: …` (plain id)
|
|
50
|
+
|
|
51
|
+
Each criterion must be **one physical line**. Multi-line criteria are
|
|
52
|
+
rejected because only that single line is hashed into the source binding.
|
|
53
|
+
|
|
54
|
+
The emitted manifest looks like:
|
|
42
55
|
|
|
43
56
|
```yaml
|
|
44
57
|
schemaVersion: 1
|