@momentiq/dark-factory-cli 2.18.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +33 -15
  2. package/dist/adapters/cursor-sdk.d.ts.map +1 -1
  3. package/dist/adapters/cursor-sdk.js +14 -2
  4. package/dist/adapters/cursor-sdk.js.map +1 -1
  5. package/dist/adapters/index.d.ts +1 -0
  6. package/dist/adapters/index.d.ts.map +1 -1
  7. package/dist/adapters/index.js +6 -0
  8. package/dist/adapters/index.js.map +1 -1
  9. package/dist/adapters/mode-scope.d.ts +86 -0
  10. package/dist/adapters/mode-scope.d.ts.map +1 -0
  11. package/dist/adapters/mode-scope.js +456 -0
  12. package/dist/adapters/mode-scope.js.map +1 -0
  13. package/dist/branch-protection/audit_branch_protection.py +152 -26
  14. package/dist/cli.d.ts +5 -0
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +17 -1
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/mode.d.ts.map +1 -1
  19. package/dist/commands/mode.js +135 -10
  20. package/dist/commands/mode.js.map +1 -1
  21. package/dist/commands/objectives.d.ts +27 -3
  22. package/dist/commands/objectives.d.ts.map +1 -1
  23. package/dist/commands/objectives.js +347 -53
  24. package/dist/commands/objectives.js.map +1 -1
  25. package/dist/cycle-doc-validator/validate_cycle_doc.py +128 -11
  26. package/dist/doctor.d.ts.map +1 -1
  27. package/dist/doctor.js +8 -4
  28. package/dist/doctor.js.map +1 -1
  29. package/dist/evidence/index.d.ts +1 -0
  30. package/dist/evidence/index.d.ts.map +1 -1
  31. package/dist/evidence/index.js +5 -0
  32. package/dist/evidence/index.js.map +1 -1
  33. package/dist/evidence/ui-visual/embed.d.ts +65 -0
  34. package/dist/evidence/ui-visual/embed.d.ts.map +1 -0
  35. package/dist/evidence/ui-visual/embed.js +176 -0
  36. package/dist/evidence/ui-visual/embed.js.map +1 -0
  37. package/dist/evidence/ui-visual/index.d.ts +2 -0
  38. package/dist/evidence/ui-visual/index.d.ts.map +1 -0
  39. package/dist/evidence/ui-visual/index.js +6 -0
  40. package/dist/evidence/ui-visual/index.js.map +1 -0
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/mcp/cycle-doc/parser.d.ts +3 -3
  46. package/dist/mcp/cycle-doc/parser.d.ts.map +1 -1
  47. package/dist/mcp/cycle-doc/parser.js +2 -2
  48. package/dist/mcp/cycle-doc/parser.js.map +1 -1
  49. package/dist/mcp/tools/doctor.d.ts +5 -0
  50. package/dist/mcp/tools/doctor.d.ts.map +1 -1
  51. package/dist/mcp/tools/doctor.js +10 -1
  52. package/dist/mcp/tools/doctor.js.map +1 -1
  53. package/dist/mcp/tools/review-bypass.d.ts +5 -0
  54. package/dist/mcp/tools/review-bypass.d.ts.map +1 -1
  55. package/dist/mcp/tools/review-bypass.js +9 -1
  56. package/dist/mcp/tools/review-bypass.js.map +1 -1
  57. package/dist/mode/apply.d.ts +8 -0
  58. package/dist/mode/apply.d.ts.map +1 -0
  59. package/dist/mode/apply.js +118 -0
  60. package/dist/mode/apply.js.map +1 -0
  61. package/dist/mode/context.d.ts +50 -0
  62. package/dist/mode/context.d.ts.map +1 -0
  63. package/dist/mode/context.js +127 -0
  64. package/dist/mode/context.js.map +1 -0
  65. package/dist/mode/critic-registration.d.ts +66 -0
  66. package/dist/mode/critic-registration.d.ts.map +1 -0
  67. package/dist/mode/critic-registration.js +279 -0
  68. package/dist/mode/critic-registration.js.map +1 -0
  69. package/dist/mode/guard.d.ts +15 -0
  70. package/dist/mode/guard.d.ts.map +1 -0
  71. package/dist/mode/guard.js +160 -0
  72. package/dist/mode/guard.js.map +1 -0
  73. package/dist/mode/init.d.ts.map +1 -1
  74. package/dist/mode/init.js +14 -5
  75. package/dist/mode/init.js.map +1 -1
  76. package/dist/mode/loadConfig.d.ts +34 -0
  77. package/dist/mode/loadConfig.d.ts.map +1 -0
  78. package/dist/mode/loadConfig.js +38 -0
  79. package/dist/mode/loadConfig.js.map +1 -0
  80. package/dist/mode/prompts/designer-baseline.md +47 -0
  81. package/dist/mode/resolve.d.ts +1 -1
  82. package/dist/mode/resolve.d.ts.map +1 -1
  83. package/dist/mode/resolve.js +19 -3
  84. package/dist/mode/resolve.js.map +1 -1
  85. package/dist/mode/scope-policy.d.ts +41 -0
  86. package/dist/mode/scope-policy.d.ts.map +1 -0
  87. package/dist/mode/scope-policy.js +97 -0
  88. package/dist/mode/scope-policy.js.map +1 -0
  89. package/dist/mode/status.d.ts.map +1 -1
  90. package/dist/mode/status.js +2 -9
  91. package/dist/mode/status.js.map +1 -1
  92. package/dist/onboard/validate.d.ts +24 -6
  93. package/dist/onboard/validate.d.ts.map +1 -1
  94. package/dist/onboard/validate.js +87 -14
  95. package/dist/onboard/validate.js.map +1 -1
  96. package/dist/skills/config.d.ts +2 -113
  97. package/dist/skills/config.d.ts.map +1 -1
  98. package/dist/skills/config.js +19 -62
  99. package/dist/skills/config.js.map +1 -1
  100. package/dist/skills/index.d.ts +1 -1
  101. package/dist/skills/index.d.ts.map +1 -1
  102. package/dist/skills/index.js +1 -1
  103. package/dist/skills/index.js.map +1 -1
  104. package/dist/skills/install.d.ts.map +1 -1
  105. package/dist/skills/install.js +7 -0
  106. package/dist/skills/install.js.map +1 -1
  107. package/package.json +2 -2
  108. package/skills/designer-brief/SKILL.md.tmpl +74 -0
  109. package/skills/designer-brief/skill.json +17 -0
  110. package/skills/designer-build/SKILL.md.tmpl +63 -0
  111. package/skills/designer-build/skill.json +17 -0
  112. package/skills/designer-handoff/SKILL.md.tmpl +64 -0
  113. package/skills/designer-handoff/skill.json +17 -0
  114. package/skills/designer-ship/SKILL.md.tmpl +77 -0
  115. package/skills/designer-ship/skill.json +17 -0
  116. package/skills/objectives/SKILL.md.tmpl +16 -1
  117. package/skills/verify/producer/ui-visual-surfaces.ts +261 -0
  118. package/skills/verify/producer/ui-visual.config.ts +22 -0
  119. package/skills/verify/producer/ui-visual.producer.spec.ts +137 -0
@@ -3,16 +3,17 @@
3
3
  //
4
4
  // Subcommands:
5
5
  // hash — print the canonical sha256 of a criterion text (for manifest authoring)
6
- // derive — generate a .darkfactory/objectives.yaml from cycle-doc exit criteria (Task 5)
6
+ // derive — generate a .darkfactory/objectives.yaml from cycle-doc exit criteria
7
+ // (--cycle) or a designer brief's Done-when checkboxes (--brief, #312)
7
8
  // check — verify text-hash bindings in an existing manifest (Task 6)
8
9
  //
9
10
  // Exit codes: 0 success / 1 semantic failure / 2 usage error.
10
11
  import { createHash } from "node:crypto";
11
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
12
- import { dirname, join, resolve } from "node:path";
12
+ import { existsSync, mkdirSync, readFileSync, realpathSync, writeFileSync } from "node:fs";
13
+ import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
13
14
  import { canonicalizeCriterion, parseObjectivesManifest, SOURCE_LOCATOR_RE, } from "@momentiq/dark-factory-schemas";
14
15
  import { parse as yamlParse, stringify as yamlStringify } from "yaml";
15
- import { readCycleDoc, cycleDocsDir } from "../mcp/cycle-doc/parser.js";
16
+ import { readCycleDoc, cycleDocsDir, splitFrontmatter, splitSections, } from "../mcp/cycle-doc/parser.js";
16
17
  export function parseObjectivesArgs(rest) {
17
18
  const sub = rest[0];
18
19
  const subRest = rest.slice(1);
@@ -68,6 +69,7 @@ function parseHashArgs(rest) {
68
69
  }
69
70
  function parseDeriveArgs(rest) {
70
71
  let cycle;
72
+ let brief;
71
73
  let apply = false;
72
74
  let json = false;
73
75
  let cwd = process.cwd();
@@ -86,6 +88,19 @@ function parseDeriveArgs(rest) {
86
88
  cycle = a.slice("--cycle=".length);
87
89
  continue;
88
90
  }
91
+ if (a === "--brief") {
92
+ const next = rest[i + 1];
93
+ if (next === undefined || next.startsWith("--")) {
94
+ return { error: "--brief requires a value (path to a brief .md file)." };
95
+ }
96
+ brief = next;
97
+ i++;
98
+ continue;
99
+ }
100
+ if (a.startsWith("--brief=")) {
101
+ brief = a.slice("--brief=".length);
102
+ continue;
103
+ }
89
104
  if (a === "--cwd") {
90
105
  const next = rest[i + 1];
91
106
  if (next === undefined || next.startsWith("--")) {
@@ -109,17 +124,25 @@ function parseDeriveArgs(rest) {
109
124
  }
110
125
  return { error: `unknown flag or positional arg: ${a}` };
111
126
  }
112
- if (cycle === undefined || cycle === "") {
113
- return { error: "--cycle is required (e.g. --cycle 23)." };
127
+ const hasCycle = cycle !== undefined && cycle !== "";
128
+ const hasBrief = brief !== undefined && brief !== "";
129
+ if (hasCycle && hasBrief) {
130
+ return { error: "--cycle and --brief are mutually exclusive — pass exactly one." };
114
131
  }
115
- // Normalize a `cycle23` / `cycle 23` style value down to the bare number the
116
- // id + source.ref use (`cycle<N>#ec<k>`, `{kind:"cycle", ref:"<N>"}`). The
117
- // cycle-doc parser keys on the `cycle<N>` id form, so we rebuild that below.
118
- const ref = cycle.replace(/^cycle/i, "").trim();
119
- if (ref === "" || !/^\d+(?:\.\d+)*$/.test(ref)) {
120
- return { error: `--cycle must be a cycle number (e.g. 23 or cycle23), got ${JSON.stringify(cycle)}.` };
132
+ if (!hasCycle && !hasBrief) {
133
+ return { error: "one of --cycle <N> or --brief <path> is required." };
121
134
  }
122
- return { subcommand: "derive", cycle: ref, apply, json, cwd };
135
+ if (hasCycle) {
136
+ // Normalize a `cycle23` / `cycle 23` style value down to the bare number the
137
+ // id + source.ref use (`cycle<N>#ec<k>`, `{kind:"cycle", ref:"<N>"}`). The
138
+ // cycle-doc parser keys on the `cycle<N>` id form, so we rebuild that below.
139
+ const ref = cycle.replace(/^cycle/i, "").trim();
140
+ if (ref === "" || !/^\d+(?:\.\d+)*$/.test(ref)) {
141
+ return { error: `--cycle must be a cycle number (e.g. 23 or cycle23), got ${JSON.stringify(cycle)}.` };
142
+ }
143
+ return { subcommand: "derive", source: { kind: "cycle", cycle: ref }, apply, json, cwd };
144
+ }
145
+ return { subcommand: "derive", source: { kind: "brief", briefPath: brief }, apply, json, cwd };
123
146
  }
124
147
  function parseCheckArgs(rest) {
125
148
  let json = false;
@@ -232,6 +255,114 @@ export function extractExitCriteria(sectionBody) {
232
255
  }
233
256
  return out;
234
257
  }
258
+ // ---------------------------------------------------------------------------
259
+ // Brief criteria extraction — the `--brief` sibling input source (cycle 27
260
+ // Designer Mode Phase C, #312).
261
+ //
262
+ // A designer brief is a markdown file with a `## Done-when` section of GitHub
263
+ // task-list checkboxes; each checkbox is one acceptance criterion. Unlike a
264
+ // cycle doc's exit criteria (free-form list items resolved positionally OR by an
265
+ // explicit `EC<k>` label), brief criteria are ALWAYS positional (`ac<k>`, the
266
+ // k-th checkbox) — a designer writing intent has no id-label convention.
267
+ //
268
+ // Hash unit: the criterion text WITH THE CHECKBOX MARKER STRIPPED. Toggling a
269
+ // box (`[ ]` → `[x]`) marks progress and MUST NOT move the text-hash, so the
270
+ // `[ ]`/`[x]` token is excluded from the canonical input. This is the one place
271
+ // brief hashing differs from cycle hashing; the shared `canonicalizeCriterion`
272
+ // is left untouched (it does not strip checkbox tokens), so cycle bindings are
273
+ // unaffected.
274
+ // ---------------------------------------------------------------------------
275
+ // The brief section whose checkboxes become objectives. `## Done-when`
276
+ // snake-cases to `done_when` via the cycle-doc parser's section slugger.
277
+ const BRIEF_AC_SECTION_SLUG = "done_when";
278
+ // A `## Done-when` task-list checkbox: a `-`/`*`/`+` marker, `[ ]` or `[x]`
279
+ // (case-insensitive), then the criterion text. Group 1 is the checkbox state,
280
+ // group 2 the criterion text (trailing whitespace trimmed by the caller).
281
+ const BRIEF_CHECKBOX_RE = /^\s*[-*+]\s+\[([ xX])\]\s+(.+?)\s*$/;
282
+ // Slugify a brief filename into the `<slug>` used in `brief-<slug>#ac<k>` ids
283
+ // and the `.darkfactory/briefs/<slug>.md` resolution path. Drops the `.md`
284
+ // extension, lowercases, folds every non-`[a-z0-9]` run to a single hyphen, and
285
+ // trims leading/trailing hyphens — yielding a slug that satisfies OBJECTIVE_ID_RE
286
+ // (`[a-z0-9]+(?:-[a-z0-9]+)*`) and cannot contain a path separator.
287
+ function slugifyBriefName(filename) {
288
+ return filename
289
+ .normalize("NFC")
290
+ .replace(/\.md$/i, "")
291
+ .toLowerCase()
292
+ .replace(/[^a-z0-9]+/g, "-")
293
+ .replace(/^-+|-+$/g, "");
294
+ }
295
+ // Display-text derivation for a brief criterion: strip residual markdown
296
+ // emphasis / code ticks and fold whitespace. The checkbox marker is already
297
+ // removed by BRIEF_CHECKBOX_RE. Human-facing `text` only — NOT the hash input.
298
+ function briefCriterionDisplayText(criterionText) {
299
+ return criterionText.normalize("NFC").replace(/[*`]/g, "").replace(/\s+/g, " ").trim();
300
+ }
301
+ /**
302
+ * Enumerate a brief `## Done-when` section body's checkboxes into criteria,
303
+ * assigning each a positional `ac<k>` id. Mirrors `extractExitCriteria`'s
304
+ * continuation-line collection so the single-line-atomic-criterion guard applies
305
+ * to briefs too. `raw` is the checkbox-stripped criterion text (the canonical
306
+ * hash input); NON-checkbox list items and prose in the section are ignored (one
307
+ * objective per Done-when checkbox).
308
+ */
309
+ export function extractBriefCriteria(sectionBody) {
310
+ const out = [];
311
+ const lines = sectionBody.split(/\r?\n/);
312
+ let itemIndex = 0;
313
+ for (let i = 0; i < lines.length; i++) {
314
+ const line = lines[i] ?? "";
315
+ const m = BRIEF_CHECKBOX_RE.exec(line);
316
+ if (!m)
317
+ continue;
318
+ const criterionText = (m[2] ?? "").trim();
319
+ itemIndex++;
320
+ const id = `ac${itemIndex}`;
321
+ // Continuation lines: subsequent non-blank, non-list-item lines (mirrors
322
+ // extractExitCriteria). A blank line or the next list item terminates the
323
+ // checkbox; anything else is a continuation → tripped by the multi-line
324
+ // guard in the brief builder (single-line atomic criteria, design §4.3).
325
+ const continuationLines = [];
326
+ for (let j = i + 1; j < lines.length; j++) {
327
+ const next = lines[j] ?? "";
328
+ if (next.trim() === "")
329
+ break;
330
+ if (ITEM_RE.test(next))
331
+ break;
332
+ continuationLines.push(next);
333
+ }
334
+ out.push({ id, text: briefCriterionDisplayText(criterionText), raw: criterionText, continuationLines });
335
+ }
336
+ return out;
337
+ }
338
+ /**
339
+ * Resolve a brief's committed location — `.darkfactory/briefs/<slug>.md` under
340
+ * `cwd` — for `df objectives check` (and the parity contract with the
341
+ * cycle-doc-validation gate). Returns the absolute path, or `null` when it is
342
+ * absent or escapes the repo. The slug regex already blocks path separators and
343
+ * `..`; the realpath check additionally rejects a symlink at that path pointing
344
+ * outside the repo (defense-in-depth, matching the cycle-doc parser's posture).
345
+ */
346
+ function resolveBriefFile(cwd, slug) {
347
+ const root = resolve(cwd);
348
+ const candidate = resolve(root, ".darkfactory", "briefs", `${slug}.md`);
349
+ const rel = relative(root, candidate);
350
+ if (rel.startsWith("..") || isAbsolute(rel))
351
+ return null;
352
+ if (!existsSync(candidate))
353
+ return null;
354
+ try {
355
+ const realCandidate = realpathSync(candidate);
356
+ const realRoot = realpathSync(root);
357
+ const realRel = relative(realRoot, realCandidate);
358
+ if (realRel.startsWith("..") || isAbsolute(realRel))
359
+ return null;
360
+ }
361
+ catch {
362
+ return null;
363
+ }
364
+ return candidate;
365
+ }
235
366
  function sha256Hex(s) {
236
367
  return createHash("sha256").update(s, "utf8").digest("hex");
237
368
  }
@@ -244,14 +375,16 @@ const HELP = [
244
375
  "",
245
376
  "Subcommands:",
246
377
  " hash Print the canonical sha256 of a criterion text.",
247
- " derive Generate .darkfactory/objectives.yaml from cycle-doc exit criteria.",
378
+ " derive Generate .darkfactory/objectives.yaml from a cycle doc or a designer brief.",
248
379
  " check Verify text-hash bindings in an existing manifest.",
249
380
  "",
250
381
  "Flags (hash):",
251
382
  " --text <criterion> Criterion text to hash (required).",
252
383
  "",
253
- "Flags (derive):",
254
- " --cycle <N> Cycle number whose Exit criteria to derive from (required).",
384
+ "Flags (derive) — pass exactly one input source (--cycle or --brief):",
385
+ " --cycle <N> Cycle number whose '## Exit criteria' items to derive from.",
386
+ " --brief <path> Designer brief whose '## Done-when' checkboxes to derive from",
387
+ " (id form brief-<slug>#ac<k>; slug from the brief filename).",
255
388
  " --apply Write .darkfactory/objectives.yaml (default: print to stdout).",
256
389
  " --cwd <path> Repository root to operate in (default: process cwd).",
257
390
  " --json Emit the manifest object as JSON instead of YAML.",
@@ -298,8 +431,49 @@ export async function cmdObjectives(rest, io, deps = {}) {
298
431
  return 2;
299
432
  }
300
433
  async function cmdDerive(opts, io, deps) {
434
+ // Build the base objectives from the selected input source, then run the
435
+ // shared tail (preserve bindings → self-validate → emit). A builder returns a
436
+ // numeric exit code (having already written the diagnostic) on failure.
437
+ const built = opts.source.kind === "cycle"
438
+ ? await buildCycleObjectives(opts, opts.source.cycle, io, deps)
439
+ : buildBriefObjectives(opts, opts.source.briefPath, io);
440
+ if (typeof built === "number")
441
+ return built;
442
+ return finalizeAndEmit(built, opts, io);
443
+ }
444
+ // Multi-line-criterion guard (fail-loud), shared by both input sources. The
445
+ // hash unit is the single `raw` criterion, so any continuation line is content
446
+ // SILENTLY excluded from the source binding: editing it would not change the
447
+ // sha256, yet `df objectives check` and the dashboard `source-bound` rung would
448
+ // still pass — an unsound binding. The design intends SINGLE-LINE atomic
449
+ // criteria (spec §4.3), so REFUSE to mis-bind rather than dropping the
450
+ // continuation silently. Catches only NON-marker continuations; a marker-led
451
+ // nested sub-bullet is enumerated as its own item (the distinct phantom-objective
452
+ // case, tracked at dark-factory#248). Returns true (and writes the diagnostic)
453
+ // when the guard trips.
454
+ function multiLineCriterionGuard(criteria, idPrefix, sourceDesc, sectionDesc, io) {
455
+ const multiLine = criteria.filter((c) => c.continuationLines.length > 0);
456
+ if (multiLine.length === 0)
457
+ return false;
458
+ const detail = multiLine
459
+ .map((c) => ` - ${idPrefix}${c.id}: ${JSON.stringify(c.raw.trim())} ` +
460
+ `has ${c.continuationLines.length} continuation line` +
461
+ `${c.continuationLines.length === 1 ? "" : "s"} (first: ` +
462
+ `${JSON.stringify((c.continuationLines[0] ?? "").trim())})`)
463
+ .join("\n");
464
+ io.stderr(`df objectives derive: ${sourceDesc} ${sectionDesc} has multi-line ` +
465
+ `criterion/criteria — refusing to mis-bind.\n${detail}\n` +
466
+ `Each criterion must be a SINGLE line: only that line is hashed into ` +
467
+ `the source binding, so a continuation line would be silently excluded ` +
468
+ `(editing it would not change the binding). Rewrite each offending ` +
469
+ `criterion as one line (or split it into multiple single-line criteria), ` +
470
+ `then re-run. See the derive-from-source design §4.3 (single-line atomic ` +
471
+ `criteria).\n`);
472
+ return true;
473
+ }
474
+ async function buildCycleObjectives(opts, cycle, io, deps) {
301
475
  const read = deps.readCycleDoc ?? readCycleDoc;
302
- const cycleDocId = `cycle${opts.cycle}`;
476
+ const cycleDocId = `cycle${cycle}`;
303
477
  const doc = await read(opts.cwd, cycleDocId);
304
478
  if (doc === null) {
305
479
  io.stderr(`df objectives derive: cycle doc ${cycleDocId} not found under ` +
@@ -318,32 +492,7 @@ async function cmdDerive(opts, io, deps) {
318
492
  "list items — nothing to derive.\n");
319
493
  return 1;
320
494
  }
321
- // Multi-line-criterion guard (fail-loud). The hash unit is the single `raw`
322
- // item line, so any continuation line is content SILENTLY excluded from the
323
- // source binding: editing it would not change the sha256, yet `df objectives
324
- // check` and the dashboard `source-bound` rung would still pass — an unsound
325
- // binding. The design intends SINGLE-LINE atomic exit criteria (spec §4.3),
326
- // so REFUSE to mis-bind rather than dropping the continuation silently. The
327
- // author must make the criterion a single line (or split it into multiple
328
- // single-line criteria). This catches only NON-marker continuations; a
329
- // marker-led nested sub-bullet is enumerated as its own item (the distinct
330
- // phantom-objective case, tracked at dark-factory#248).
331
- const multiLine = criteria.filter((c) => c.continuationLines.length > 0);
332
- if (multiLine.length > 0) {
333
- const detail = multiLine
334
- .map((c) => ` - ${cycleDocId}#${c.id}: ${JSON.stringify(c.raw.trim())} ` +
335
- `has ${c.continuationLines.length} continuation line` +
336
- `${c.continuationLines.length === 1 ? "" : "s"} (first: ` +
337
- `${JSON.stringify((c.continuationLines[0] ?? "").trim())})`)
338
- .join("\n");
339
- io.stderr(`df objectives derive: ${cycleDocId} '## Exit criteria' has multi-line ` +
340
- `criterion/criteria — refusing to mis-bind.\n${detail}\n` +
341
- `Each exit criterion must be a SINGLE line: only that line is hashed into ` +
342
- `the source binding, so a continuation line would be silently excluded ` +
343
- `(editing it would not change the binding). Rewrite each offending ` +
344
- `criterion as one line (or split it into multiple single-line criteria), ` +
345
- `then re-run. See the derive-from-source design §4.3 (single-line atomic ` +
346
- `criteria).\n`);
495
+ if (multiLineCriterionGuard(criteria, `${cycleDocId}#`, `cycle doc ${cycleDocId}`, "'## Exit criteria'", io)) {
347
496
  return 1;
348
497
  }
349
498
  // Duplicate-id guard: a cycle doc with two identically-labeled EC items
@@ -366,12 +515,7 @@ async function cmdDerive(opts, io, deps) {
366
515
  `unique — fix the cycle doc to use distinct labels, then re-run.\n`);
367
516
  return 1;
368
517
  }
369
- // Idempotence: preserve hand-edited `attestedBy` bindings from an existing
370
- // manifest by objective id. Re-running refreshes text/hash + reconciles
371
- // added/removed criteria, but never clobbers bindings the agent authored.
372
- const manifestPath = resolve(opts.cwd, MANIFEST_RELATIVE_PATH);
373
- const preservedBindings = loadPreservedBindings(manifestPath, io);
374
- const objectives = criteria.map((c) => {
518
+ return criteria.map((c) => {
375
519
  const id = `${cycleDocId}#${c.id}`;
376
520
  const locator = `exit_criteria#${c.id}`;
377
521
  // Defensive: the locator is built from `exit_criteria` + an `ec<k>` id, both
@@ -383,16 +527,105 @@ async function cmdDerive(opts, io, deps) {
383
527
  const sha256 = sha256Hex(canonicalizeCriterion(c.raw));
384
528
  return {
385
529
  id,
386
- source: { kind: "cycle", ref: opts.cycle },
530
+ source: { kind: "cycle", ref: cycle },
387
531
  text: c.text,
388
- attestedBy: preservedBindings.get(id) ?? [],
532
+ // Cycle proof varies per criterion → default empty; the operator binds
533
+ // routes/tests/critics. Preserved across re-derive by finalizeAndEmit.
534
+ attestedBy: [],
389
535
  enforced: false,
390
536
  sourceCriterion: { kind: "text-hash", locator, sha256 },
391
537
  };
392
538
  });
539
+ }
540
+ function buildBriefObjectives(opts, briefPath, io) {
541
+ // Resolve a relative --brief path against opts.cwd (the repo root to operate
542
+ // in), consistent with how --cwd governs cycle-doc resolution, the
543
+ // resolveBriefFile convention check, and the manifest write. Without this,
544
+ // `--brief rel.md --cwd /repo` would read rel.md from the PROCESS cwd, breaking
545
+ // --cwd-isolated MCP/CI invocations.
546
+ const resolvedBriefPath = isAbsolute(briefPath) ? briefPath : resolve(opts.cwd, briefPath);
547
+ if (!existsSync(resolvedBriefPath)) {
548
+ io.stderr(`df objectives derive: brief file not found: ${briefPath}\n`);
549
+ return 1;
550
+ }
551
+ let source;
552
+ try {
553
+ source = readFileSync(resolvedBriefPath, "utf8");
554
+ }
555
+ catch (err) {
556
+ io.stderr(`df objectives derive: could not read brief ${briefPath}: ${err instanceof Error ? err.message : String(err)}\n`);
557
+ return 1;
558
+ }
559
+ const slug = slugifyBriefName(basename(resolvedBriefPath));
560
+ if (slug === "") {
561
+ io.stderr(`df objectives derive: could not derive a slug from brief filename ` +
562
+ `${JSON.stringify(basename(briefPath))} — rename it to contain alphanumerics ` +
563
+ `(the slug forms the objective id "brief-<slug>#ac<k>").\n`);
564
+ return 1;
565
+ }
566
+ const sections = splitSections(splitFrontmatter(source).body);
567
+ const section = sections[BRIEF_AC_SECTION_SLUG];
568
+ if (section === undefined || section.trim() === "") {
569
+ const found = Object.keys(sections);
570
+ io.stderr(`df objectives derive: brief ${briefPath} has no '## Done-when' section ` +
571
+ `(found: ${found.length > 0 ? found.join(", ") : "no sections"}) — nothing to derive.\n`);
572
+ return 1;
573
+ }
574
+ const criteria = extractBriefCriteria(section);
575
+ if (criteria.length === 0) {
576
+ io.stderr(`df objectives derive: brief ${briefPath} '## Done-when' section has no checkbox ` +
577
+ `items (e.g. "- [ ] ...") — nothing to derive.\n`);
578
+ return 1;
579
+ }
580
+ if (multiLineCriterionGuard(criteria, `brief-${slug}#`, `brief ${briefPath}`, "'## Done-when'", io)) {
581
+ return 1;
582
+ }
583
+ // Verification-locality note (non-fatal): `df objectives check` and the
584
+ // cycle-doc-validation gate resolve the brief at `.darkfactory/briefs/<slug>.md`.
585
+ // If the brief isn't committed there, the manifest is still produced but its
586
+ // objectives cannot be re-verified — warn so the operator commits it home.
587
+ if (resolveBriefFile(opts.cwd, slug) === null) {
588
+ io.stderr(`df objectives derive: note — 'df objectives check' resolves this brief at ` +
589
+ `${join(".darkfactory", "briefs", `${slug}.md`)}; commit the brief there so its ` +
590
+ `objectives stay verifiable.\n`);
591
+ }
592
+ return criteria.map((c) => {
593
+ const id = `brief-${slug}#${c.id}`;
594
+ const locator = `${BRIEF_AC_SECTION_SLUG}#${c.id}`;
595
+ if (!SOURCE_LOCATOR_RE.test(locator)) {
596
+ throw new Error(`internal: derived locator ${JSON.stringify(locator)} is malformed`);
597
+ }
598
+ const sha256 = sha256Hex(canonicalizeCriterion(c.raw));
599
+ return {
600
+ id,
601
+ source: { kind: "brief", ref: slug },
602
+ text: c.text,
603
+ // Seed an EMPTY `attestedBy`, exactly like `--cycle`: derive produces a
604
+ // text-hash-SOURCE-bound objective whose proof binding is added post-hoc
605
+ // (a visual/UI `route`, or a `test`) and preserved across re-derive by
606
+ // finalizeAndEmit. Seeding a concrete route here would make the default
607
+ // manifest fail cycle-doc-validation until that route is registered in
608
+ // `.agent-review/config.json`; the route→`df prove` join is a downstream
609
+ // integration concern, not a derive-time default.
610
+ attestedBy: [],
611
+ enforced: false,
612
+ sourceCriterion: { kind: "text-hash", locator, sha256 },
613
+ };
614
+ });
615
+ }
616
+ // Shared derive tail: preserve hand-edited `attestedBy` bindings from an existing
617
+ // manifest (idempotence), self-validate against the schema parser (a manifest
618
+ // that can't round-trip is a bug surfaced here, not at gate time), then emit —
619
+ // to stdout (YAML/JSON) or `.darkfactory/objectives.yaml` under `--apply`.
620
+ function finalizeAndEmit(objectives, opts, io) {
621
+ const manifestPath = resolve(opts.cwd, MANIFEST_RELATIVE_PATH);
622
+ const preservedBindings = loadPreservedBindings(manifestPath, io);
623
+ for (const o of objectives) {
624
+ const preserved = preservedBindings.get(o.id);
625
+ if (preserved)
626
+ o.attestedBy = preserved;
627
+ }
393
628
  const manifest = { schemaVersion: 1, objectives };
394
- // Validate our own output against the schema parser — a derived manifest that
395
- // can't round-trip is a bug, surfaced loudly here rather than at gate time.
396
629
  try {
397
630
  parseObjectivesManifest(manifest);
398
631
  }
@@ -470,6 +703,67 @@ async function cmdCheck(opts, io, deps) {
470
703
  }
471
704
  const sectionSlug = hashMatch[1];
472
705
  const criterionId = hashMatch[2];
706
+ // Brief-sourced objective: resolve the in-repo brief at
707
+ // `.darkfactory/briefs/<slug>.md` (slug = source.ref, NOT re-parsed from the
708
+ // id) and verify the Done-when checkbox text-hash. This is the local
709
+ // author-time verification that makes gate-side recompute safely deferrable
710
+ // (cycle 27 Designer Mode Phase C, #312).
711
+ if (obj.source?.kind === "brief") {
712
+ if (sectionSlug !== BRIEF_AC_SECTION_SLUG) {
713
+ results.push({
714
+ id: obj.id,
715
+ status: "fail",
716
+ message: `unsupported section in brief locator: ${sectionSlug} (only ${BRIEF_AC_SECTION_SLUG} is supported).`,
717
+ });
718
+ anyFail = true;
719
+ continue;
720
+ }
721
+ const briefFile = resolveBriefFile(opts.cwd, obj.source.ref);
722
+ if (briefFile === null) {
723
+ results.push({
724
+ id: obj.id,
725
+ status: "fail",
726
+ message: `brief ${obj.source.ref} not found at ${join(".darkfactory", "briefs", `${obj.source.ref}.md`)}.`,
727
+ });
728
+ anyFail = true;
729
+ continue;
730
+ }
731
+ const briefSection = splitSections(splitFrontmatter(readFileSync(briefFile, "utf8")).body)[BRIEF_AC_SECTION_SLUG];
732
+ if (briefSection === undefined || briefSection.trim() === "") {
733
+ results.push({
734
+ id: obj.id,
735
+ status: "fail",
736
+ message: `brief ${obj.source.ref} has no '## Done-when' section.`,
737
+ });
738
+ anyFail = true;
739
+ continue;
740
+ }
741
+ const briefCriteria = extractBriefCriteria(briefSection);
742
+ const briefCriterion = briefCriteria.find((c) => c.id === criterionId);
743
+ if (briefCriterion === undefined) {
744
+ results.push({
745
+ id: obj.id,
746
+ status: "fail",
747
+ message: `criterion ${criterionId} not found in brief ${obj.source.ref} '## Done-when' (${briefCriteria.length} checkbox item(s) found).`,
748
+ });
749
+ anyFail = true;
750
+ continue;
751
+ }
752
+ const actualBriefSha = sha256Hex(canonicalizeCriterion(briefCriterion.raw));
753
+ if (actualBriefSha !== sc.sha256) {
754
+ results.push({
755
+ id: obj.id,
756
+ status: "fail",
757
+ message: `text-hash mismatch for ${criterionId} in brief ${obj.source.ref}: ` +
758
+ `declared ${sc.sha256.slice(0, 12)}… ≠ actual ${actualBriefSha.slice(0, 12)}… ` +
759
+ "(brief text may have changed — re-run `df objectives derive --brief` to refresh).",
760
+ });
761
+ anyFail = true;
762
+ continue;
763
+ }
764
+ results.push({ id: obj.id, status: "ok", message: `text-hash verified (${sc.sha256.slice(0, 12)}…).` });
765
+ continue;
766
+ }
473
767
  // Only `exit_criteria` is currently resolvable.
474
768
  if (sectionSlug !== "exit_criteria") {
475
769
  results.push({
@@ -1 +1 @@
1
- {"version":3,"file":"objectives.js","sourceRoot":"","sources":["../../src/commands/objectives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"objectives.js","sourceRoot":"","sources":["../../src/commands/objectives.ts"],"names":[],"mappings":"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"}