@jakkrichm/create-nexus-devflow 2.12.4 → 2.14.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.
Files changed (97) hide show
  1. package/README.md +4 -4
  2. package/dist/bin/create-nexus-devflow.d.ts +1 -1
  3. package/dist/bin/create-nexus-devflow.js +4 -3
  4. package/dist/bin/create-nexus-devflow.js.map +1 -1
  5. package/dist/lib/active-context-engine.d.ts +47 -0
  6. package/dist/lib/active-context-engine.js +174 -0
  7. package/dist/lib/active-context-engine.js.map +1 -0
  8. package/dist/lib/branch-context.d.ts +1 -0
  9. package/dist/lib/branch-context.js +1 -0
  10. package/dist/lib/branch-context.js.map +1 -1
  11. package/dist/lib/current-work.js +3 -28
  12. package/dist/lib/current-work.js.map +1 -1
  13. package/dist/lib/dashboard-engine.d.ts +54 -0
  14. package/dist/lib/dashboard-engine.js +109 -0
  15. package/dist/lib/dashboard-engine.js.map +1 -0
  16. package/dist/lib/dashboard-page.d.ts +8 -1
  17. package/dist/lib/dashboard-page.js +10 -1
  18. package/dist/lib/dashboard-page.js.map +1 -1
  19. package/dist/lib/dashboard.d.ts +2 -0
  20. package/dist/lib/dashboard.js +78 -1068
  21. package/dist/lib/dashboard.js.map +1 -1
  22. package/dist/lib/delivery-lifecycle-engine.d.ts +96 -0
  23. package/dist/lib/delivery-lifecycle-engine.js +388 -0
  24. package/dist/lib/delivery-lifecycle-engine.js.map +1 -0
  25. package/dist/lib/gatekeeper-engine.d.ts +65 -0
  26. package/dist/lib/gatekeeper-engine.js +155 -0
  27. package/dist/lib/gatekeeper-engine.js.map +1 -0
  28. package/dist/lib/gatekeeper.d.ts +3 -22
  29. package/dist/lib/gatekeeper.js +4 -67
  30. package/dist/lib/gatekeeper.js.map +1 -1
  31. package/dist/lib/history.d.ts +3 -1
  32. package/dist/lib/history.js +2 -1
  33. package/dist/lib/history.js.map +1 -1
  34. package/dist/lib/skill-manager.js +319 -7
  35. package/dist/lib/skill-manager.js.map +1 -1
  36. package/dist/lib/studio-view-renderer.d.ts +50 -0
  37. package/dist/lib/studio-view-renderer.js +773 -0
  38. package/dist/lib/studio-view-renderer.js.map +1 -0
  39. package/dist/lib/tooling/commands/link-project.d.ts +2 -0
  40. package/dist/lib/tooling/commands/link-project.js +22 -0
  41. package/dist/lib/tooling/commands/link-project.js.map +1 -0
  42. package/dist/lib/tooling/commands/migrate-stage-artifacts.d.ts +2 -0
  43. package/dist/lib/tooling/commands/migrate-stage-artifacts.js +61 -0
  44. package/dist/lib/tooling/commands/migrate-stage-artifacts.js.map +1 -0
  45. package/dist/lib/tooling/commands/render-html.d.ts +2 -0
  46. package/dist/lib/tooling/commands/render-html.js +78 -0
  47. package/dist/lib/tooling/commands/render-html.js.map +1 -0
  48. package/dist/lib/tooling/commands/report-html.d.ts +2 -0
  49. package/dist/lib/tooling/commands/report-html.js +27 -0
  50. package/dist/lib/tooling/commands/report-html.js.map +1 -0
  51. package/dist/lib/tooling/commands/scan-doc-contract.d.ts +2 -0
  52. package/dist/lib/tooling/commands/scan-doc-contract.js +78 -0
  53. package/dist/lib/tooling/commands/scan-doc-contract.js.map +1 -0
  54. package/dist/lib/tooling/commands/scan-security-hygiene.d.ts +2 -0
  55. package/dist/lib/tooling/commands/scan-security-hygiene.js +93 -0
  56. package/dist/lib/tooling/commands/scan-security-hygiene.js.map +1 -0
  57. package/dist/lib/tooling/commands/skill-descriptions.d.ts +2 -0
  58. package/dist/lib/tooling/commands/skill-descriptions.js +50 -0
  59. package/dist/lib/tooling/commands/skill-descriptions.js.map +1 -0
  60. package/dist/lib/tooling/commands/summarize-run-status.d.ts +2 -0
  61. package/dist/lib/tooling/commands/summarize-run-status.js +65 -0
  62. package/dist/lib/tooling/commands/summarize-run-status.js.map +1 -0
  63. package/dist/lib/tooling/commands/switch-artifact-language.d.ts +2 -0
  64. package/dist/lib/tooling/commands/switch-artifact-language.js +87 -0
  65. package/dist/lib/tooling/commands/switch-artifact-language.js.map +1 -0
  66. package/dist/lib/tooling/index.d.ts +4 -0
  67. package/dist/lib/tooling/index.js +23 -0
  68. package/dist/lib/tooling/index.js.map +1 -0
  69. package/dist/lib/tooling/registry.d.ts +6 -0
  70. package/dist/lib/tooling/registry.js +56 -0
  71. package/dist/lib/tooling/registry.js.map +1 -0
  72. package/dist/lib/tooling/types.d.ts +19 -0
  73. package/dist/lib/tooling/types.js +10 -0
  74. package/dist/lib/tooling/types.js.map +1 -0
  75. package/dist/lib/update.js +1 -1
  76. package/dist/lib/update.js.map +1 -1
  77. package/dist/lib/webview-studio.d.ts +5 -0
  78. package/dist/lib/webview-studio.js +11 -577
  79. package/dist/lib/webview-studio.js.map +1 -1
  80. package/package.json +1 -1
  81. package/template/AGENTS.md +1 -1
  82. package/template/devflow/docs/USAGE.md +145 -0
  83. package/template/devflow/docs/diagrams/nexus-devflow-architecture.html +14821 -0
  84. package/template/devflow/docs/diagrams/nexus-devflow-architecture.json +80 -0
  85. package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.html +14860 -0
  86. package/template/devflow/docs/diagrams/nexus-devflow-lifecycle.json +88 -0
  87. package/template/devflow/docs/examples/living-spec/adr.example.md +43 -0
  88. package/template/devflow/docs/examples/living-spec/current-feature.example.md +113 -0
  89. package/template/devflow/docs/examples/living-spec/discovery.example.md +45 -0
  90. package/template/devflow/docs/examples/living-spec/ideas.example.md +22 -0
  91. package/template/devflow/docs/governance-rules.md +39 -0
  92. package/template/devflow/docs/manual-review-workflow-spec.md +116 -0
  93. package/template/devflow/docs/markdown-metadata-contract.md +140 -0
  94. package/template/devflow/docs/quickstart.md +119 -0
  95. package/template/devflow/docs/release-process.md +52 -0
  96. package/template/devflow/docs/skill-selection-policy.md +64 -0
  97. package/template/devflow/docs/workflow-surface-map.md +85 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../lib/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../lib/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ export type HistoryCategory = "feature" | "fix" | "rollback";
2
+ export interface HistoryLedgerEntry {
3
+ completedDate: string;
4
+ runId: string;
5
+ category: HistoryCategory;
6
+ title: string;
7
+ gitCommit: string;
8
+ status: string;
9
+ archiveLink: string;
10
+ }
11
+ export interface ArchiveTaskOptions {
12
+ gitCommit?: string;
13
+ category?: HistoryCategory;
14
+ buildPlanPath?: string;
15
+ historyLedgerPath?: string;
16
+ runStatePath?: string;
17
+ }
18
+ export interface ArchiveTaskResult {
19
+ taskId: string;
20
+ title: string;
21
+ category: HistoryCategory;
22
+ archivePath: string;
23
+ fullArchivePath: string;
24
+ ledgerEntry: HistoryLedgerEntry;
25
+ buildPlanUpdated: boolean;
26
+ contextCleaned: boolean;
27
+ }
28
+ export interface DeliveryCommitPlan {
29
+ commitMessage: string;
30
+ stagedPaths: string[];
31
+ branchHint: string;
32
+ recommendedDeliveryOption: "Option 1: Team MR/PR" | "Option 2: Direct Squash-Merge";
33
+ }
34
+ /**
35
+ * In-memory model and deterministic serializer for devflow/history/HISTORY.md.
36
+ */
37
+ export declare class HistoryLedger {
38
+ entries: HistoryLedgerEntry[];
39
+ preamble: string;
40
+ constructor(entries?: HistoryLedgerEntry[], preamble?: string);
41
+ /**
42
+ * Parses markdown content of HISTORY.md into a HistoryLedger instance.
43
+ */
44
+ static parse(markdown: string): HistoryLedger;
45
+ /**
46
+ * Prepends a new delivery run entry to the beginning of the ledger.
47
+ */
48
+ prepend(entry: HistoryLedgerEntry): void;
49
+ /**
50
+ * Finds an entry by run ID (case-insensitive).
51
+ */
52
+ find(runId: string): HistoryLedgerEntry | undefined;
53
+ /**
54
+ * Updates an entry by run ID.
55
+ */
56
+ update(runId: string, patch: Partial<HistoryLedgerEntry>): boolean;
57
+ /**
58
+ * Deletes an entry by run ID.
59
+ */
60
+ delete(runId: string): boolean;
61
+ /**
62
+ * Serializes the ledger to deterministic 7-column Markdown table.
63
+ */
64
+ serialize(): string;
65
+ }
66
+ /**
67
+ * The deep transactional engine that orchestrates the 4-stage task delivery boundary,
68
+ * atomic archiving of living specs into historical categories, bidirectional build-plan synchronization,
69
+ * and history ledger recording behind a unified seam.
70
+ */
71
+ export declare class DeliveryLifecycleEngine {
72
+ projectRoot: string;
73
+ constructor(projectRoot?: string);
74
+ /**
75
+ * Detects whether a task is a feature, fix, or rollback from its living spec and optional slug.
76
+ */
77
+ detectTaskCategory(specMarkdown: string, taskSlug?: string): HistoryCategory;
78
+ /**
79
+ * Consolidates living spec, resolved findings, and independent review receipt into an immutable archive markdown.
80
+ */
81
+ consolidateArchiveContent(specMarkdown: string, findingsMarkdown?: string | null, reviewMarkdown?: string | null): string;
82
+ /**
83
+ * Extracts a readable title from living spec markdown or task ID.
84
+ */
85
+ extractTaskTitle(specMarkdown: string, taskId: string): string;
86
+ /**
87
+ * Atomically archives an active task living spec into devflow/history/{features|fixes|rollbacks}/,
88
+ * updates devflow/history/HISTORY.md, synchronizes devflow/build-plan.md, cleans up active context directory,
89
+ * and records completed run state, with transactional rollback on error.
90
+ */
91
+ archiveTask(taskId: string, options?: ArchiveTaskOptions): Promise<ArchiveTaskResult>;
92
+ /**
93
+ * Generates a conventional delivery commit plan and staged paths for user delivery gate review.
94
+ */
95
+ generateCommitPlan(taskResult: ArchiveTaskResult): DeliveryCommitPlan;
96
+ }
@@ -0,0 +1,388 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ function stripCode(value) {
4
+ return value.replace(/^`|`$/g, "").trim();
5
+ }
6
+ function normalizeCategory(value) {
7
+ const normalized = value?.toLowerCase().trim();
8
+ if (normalized === "fix")
9
+ return "fix";
10
+ if (normalized === "rollback")
11
+ return "rollback";
12
+ return "feature";
13
+ }
14
+ /**
15
+ * In-memory model and deterministic serializer for devflow/history/HISTORY.md.
16
+ */
17
+ export class HistoryLedger {
18
+ entries;
19
+ preamble;
20
+ constructor(entries = [], preamble = "") {
21
+ this.entries = entries;
22
+ this.preamble = preamble;
23
+ }
24
+ /**
25
+ * Parses markdown content of HISTORY.md into a HistoryLedger instance.
26
+ */
27
+ static parse(markdown) {
28
+ const lines = markdown.split(/\r?\n/);
29
+ const preambleLines = [];
30
+ const entries = [];
31
+ let tableFound = false;
32
+ for (const line of lines) {
33
+ if (!tableFound) {
34
+ if (/^\|\s*Completed Date\s*\|/i.test(line)) {
35
+ tableFound = true;
36
+ continue;
37
+ }
38
+ preambleLines.push(line);
39
+ continue;
40
+ }
41
+ if (/^\|\s*[-:]+\s*\|/.test(line)) {
42
+ continue; // delimiter row
43
+ }
44
+ if (/^\|\s*\d{4}-\d{2}-\d{2}\s*\|/.test(line)) {
45
+ const cells = line.split("|").slice(1, -1).map((c) => c.trim());
46
+ if (cells.length >= 7) {
47
+ const completedDate = cells[0];
48
+ const runId = stripCode(cells[1]);
49
+ const category = normalizeCategory(cells[2]);
50
+ const title = cells[3];
51
+ const gitCommit = stripCode(cells[4]);
52
+ const status = stripCode(cells[5]);
53
+ const linkMatch = cells[6]?.match(/\(([^)]+)\)/);
54
+ const archiveLink = linkMatch ? linkMatch[1] : cells[6];
55
+ entries.push({
56
+ completedDate,
57
+ runId,
58
+ category,
59
+ title,
60
+ gitCommit,
61
+ status,
62
+ archiveLink,
63
+ });
64
+ }
65
+ }
66
+ }
67
+ const preamble = preambleLines.join("\n").trim();
68
+ return new HistoryLedger(entries, preamble);
69
+ }
70
+ /**
71
+ * Prepends a new delivery run entry to the beginning of the ledger.
72
+ */
73
+ prepend(entry) {
74
+ this.entries.unshift(entry);
75
+ }
76
+ /**
77
+ * Finds an entry by run ID (case-insensitive).
78
+ */
79
+ find(runId) {
80
+ const target = runId.toLowerCase();
81
+ return this.entries.find((e) => e.runId.toLowerCase() === target);
82
+ }
83
+ /**
84
+ * Updates an entry by run ID.
85
+ */
86
+ update(runId, patch) {
87
+ const index = this.entries.findIndex((e) => e.runId.toLowerCase() === runId.toLowerCase());
88
+ if (index === -1)
89
+ return false;
90
+ this.entries[index] = { ...this.entries[index], ...patch };
91
+ return true;
92
+ }
93
+ /**
94
+ * Deletes an entry by run ID.
95
+ */
96
+ delete(runId) {
97
+ const index = this.entries.findIndex((e) => e.runId.toLowerCase() === runId.toLowerCase());
98
+ if (index === -1)
99
+ return false;
100
+ this.entries.splice(index, 1);
101
+ return true;
102
+ }
103
+ /**
104
+ * Serializes the ledger to deterministic 7-column Markdown table.
105
+ */
106
+ serialize() {
107
+ const lines = [];
108
+ if (this.preamble) {
109
+ lines.push(this.preamble);
110
+ lines.push("");
111
+ }
112
+ else {
113
+ lines.push("# Release History");
114
+ lines.push("");
115
+ lines.push("Master delivery ledger tracking all released features, fixes, and rollbacks.");
116
+ lines.push("");
117
+ }
118
+ lines.push("| Completed Date | Run ID | Category | Title | Git Commit | Status | Archive Link |");
119
+ lines.push("| --- | --- | --- | --- | --- | --- | --- |");
120
+ for (const e of this.entries) {
121
+ const commitStr = e.gitCommit ? `\`${e.gitCommit}\`` : "-";
122
+ const statusStr = e.status || "completed";
123
+ const linkBase = path.basename(e.archiveLink || `${e.runId}.md`);
124
+ const linkStr = e.archiveLink ? `[${linkBase}](${e.archiveLink})` : "-";
125
+ lines.push(`| ${e.completedDate} | \`${e.runId}\` | ${e.category} | ${e.title} | ${commitStr} | ${statusStr} | ${linkStr} |`);
126
+ }
127
+ lines.push("");
128
+ return lines.join("\n");
129
+ }
130
+ }
131
+ /**
132
+ * The deep transactional engine that orchestrates the 4-stage task delivery boundary,
133
+ * atomic archiving of living specs into historical categories, bidirectional build-plan synchronization,
134
+ * and history ledger recording behind a unified seam.
135
+ */
136
+ export class DeliveryLifecycleEngine {
137
+ projectRoot;
138
+ constructor(projectRoot = process.cwd()) {
139
+ this.projectRoot = projectRoot;
140
+ }
141
+ /**
142
+ * Detects whether a task is a feature, fix, or rollback from its living spec and optional slug.
143
+ */
144
+ detectTaskCategory(specMarkdown, taskSlug) {
145
+ const slug = (taskSlug || "").toLowerCase();
146
+ if (slug.startsWith("fix-") || slug.startsWith("fix/"))
147
+ return "fix";
148
+ if (slug.startsWith("rollback-") || slug.startsWith("rollback/"))
149
+ return "rollback";
150
+ const lines = specMarkdown.split(/\r?\n/).slice(0, 30);
151
+ for (const line of lines) {
152
+ if (/^#\s*fix:\s*/i.test(line) || /\[fix\]/i.test(line) || /category:\s*fix\b/i.test(line)) {
153
+ return "fix";
154
+ }
155
+ if (/^#\s*rollback:\s*/i.test(line) || /\[rollback\]/i.test(line) || /category:\s*rollback\b/i.test(line)) {
156
+ return "rollback";
157
+ }
158
+ if (/^#\s*(feature|spec):\s*/i.test(line) || /category:\s*feature\b/i.test(line)) {
159
+ return "feature";
160
+ }
161
+ }
162
+ return "feature";
163
+ }
164
+ /**
165
+ * Consolidates living spec, resolved findings, and independent review receipt into an immutable archive markdown.
166
+ */
167
+ consolidateArchiveContent(specMarkdown, findingsMarkdown, reviewMarkdown) {
168
+ const sections = [specMarkdown.trim()];
169
+ const hasFindings = Boolean(findingsMarkdown && findingsMarkdown.trim().length > 0);
170
+ const hasReview = Boolean(reviewMarkdown && reviewMarkdown.trim().length > 0);
171
+ if (hasFindings || hasReview) {
172
+ sections.push("\n---\n");
173
+ sections.push("## 📋 Audit Trail & Verification Receipts\n");
174
+ if (hasFindings) {
175
+ sections.push("### Resolved Findings\n");
176
+ sections.push(findingsMarkdown.trim());
177
+ sections.push("\n");
178
+ }
179
+ if (hasReview) {
180
+ sections.push("### Independent Review Receipt\n");
181
+ sections.push(reviewMarkdown.trim());
182
+ sections.push("\n");
183
+ }
184
+ }
185
+ return sections.join("\n").trimEnd() + "\n";
186
+ }
187
+ /**
188
+ * Extracts a readable title from living spec markdown or task ID.
189
+ */
190
+ extractTaskTitle(specMarkdown, taskId) {
191
+ const firstHeading = specMarkdown.split(/\r?\n/).find((l) => /^#\s+/.test(l));
192
+ if (firstHeading) {
193
+ const clean = firstHeading
194
+ .replace(/^#\s*/, "")
195
+ .replace(/^📐\s*/, "")
196
+ .replace(/^\[[0-9a-zA-Z-]+\]\s*/, "")
197
+ .replace(/^(Feature|Fix|Rollback|Spec):\s*/i, "")
198
+ .trim();
199
+ if (clean)
200
+ return clean;
201
+ }
202
+ const basename = taskId.replace(/^\d+[a-z]?-/, "");
203
+ return basename
204
+ .split("-")
205
+ .filter(Boolean)
206
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
207
+ .join(" ");
208
+ }
209
+ /**
210
+ * Atomically archives an active task living spec into devflow/history/{features|fixes|rollbacks}/,
211
+ * updates devflow/history/HISTORY.md, synchronizes devflow/build-plan.md, cleans up active context directory,
212
+ * and records completed run state, with transactional rollback on error.
213
+ */
214
+ async archiveTask(taskId, options = {}) {
215
+ const contextRoot = path.join(this.projectRoot, "devflow", "context");
216
+ let taskDir = path.join(contextRoot, taskId);
217
+ let specPath = path.join(taskDir, "spec.md");
218
+ try {
219
+ await fs.access(specPath);
220
+ }
221
+ catch {
222
+ // Look for task workspace matching prefix or slug
223
+ const entries = await fs.readdir(contextRoot, { withFileTypes: true }).catch(() => []);
224
+ const match = entries.find((e) => e.isDirectory() &&
225
+ (e.name === taskId || e.name.startsWith(taskId + "-") || e.name.endsWith("-" + taskId)));
226
+ if (match) {
227
+ taskDir = path.join(contextRoot, match.name);
228
+ specPath = path.join(taskDir, "spec.md");
229
+ taskId = match.name;
230
+ }
231
+ else {
232
+ throw new Error(`Task workspace not found for ID: ${taskId}`);
233
+ }
234
+ }
235
+ const specMarkdown = await fs.readFile(specPath, "utf8");
236
+ const findingsPath = path.join(taskDir, "findings.md");
237
+ const reviewPath = path.join(taskDir, "review.md");
238
+ const findingsMarkdown = await fs.readFile(findingsPath, "utf8").catch(() => null);
239
+ const reviewMarkdown = await fs.readFile(reviewPath, "utf8").catch(() => null);
240
+ const category = options.category || this.detectTaskCategory(specMarkdown, taskId);
241
+ const title = this.extractTaskTitle(specMarkdown, taskId);
242
+ const categoryFolder = category === "fix" ? "fixes" : category === "rollback" ? "rollbacks" : "features";
243
+ const historyRoot = path.join(this.projectRoot, "devflow", "history");
244
+ const categoryDir = path.join(historyRoot, categoryFolder);
245
+ const archiveFileName = `${taskId}.md`;
246
+ const fullArchivePath = path.join(categoryDir, archiveFileName);
247
+ const relativeArchivePath = `${categoryFolder}/${archiveFileName}`;
248
+ const consolidatedContent = this.consolidateArchiveContent(specMarkdown, findingsMarkdown, reviewMarkdown);
249
+ const rollbackActions = [];
250
+ try {
251
+ // 1. Write archive file
252
+ const archiveAlreadyExisted = await fs.access(fullArchivePath).then(() => true).catch(() => false);
253
+ const originalArchiveContent = archiveAlreadyExisted ? await fs.readFile(fullArchivePath, "utf8") : null;
254
+ rollbackActions.push(async () => {
255
+ if (archiveAlreadyExisted && originalArchiveContent !== null) {
256
+ await fs.writeFile(fullArchivePath, originalArchiveContent, "utf8");
257
+ }
258
+ else {
259
+ await fs.rm(fullArchivePath, { force: true });
260
+ }
261
+ });
262
+ await fs.mkdir(categoryDir, { recursive: true });
263
+ await fs.writeFile(fullArchivePath, consolidatedContent, "utf8");
264
+ // 2. Update HISTORY.md ledger
265
+ const ledgerPath = options.historyLedgerPath || path.join(historyRoot, "HISTORY.md");
266
+ const originalLedger = await fs.readFile(ledgerPath, "utf8").catch(() => null);
267
+ rollbackActions.push(async () => {
268
+ if (originalLedger !== null) {
269
+ await fs.writeFile(ledgerPath, originalLedger, "utf8");
270
+ }
271
+ else {
272
+ await fs.rm(ledgerPath, { force: true });
273
+ }
274
+ });
275
+ const ledger = originalLedger !== null ? HistoryLedger.parse(originalLedger) : new HistoryLedger();
276
+ const ledgerEntry = {
277
+ completedDate: new Date().toISOString().split("T")[0],
278
+ runId: taskId,
279
+ category,
280
+ title,
281
+ gitCommit: options.gitCommit || "-",
282
+ status: "completed",
283
+ archiveLink: relativeArchivePath,
284
+ };
285
+ ledger.prepend(ledgerEntry);
286
+ await fs.mkdir(path.dirname(ledgerPath), { recursive: true });
287
+ await fs.writeFile(ledgerPath, ledger.serialize(), "utf8");
288
+ // 3. Update build-plan.md
289
+ let buildPlanUpdated = false;
290
+ const buildPlanPath = options.buildPlanPath || path.join(this.projectRoot, "devflow", "build-plan.md");
291
+ const originalBuildPlan = await fs.readFile(buildPlanPath, "utf8").catch(() => null);
292
+ if (originalBuildPlan !== null) {
293
+ rollbackActions.push(async () => {
294
+ await fs.writeFile(buildPlanPath, originalBuildPlan, "utf8");
295
+ });
296
+ let updatedPlan = originalBuildPlan;
297
+ const idRegex = new RegExp(`(-\\s*\\[)[ xX](\\]\\s*.*\\b${taskId}\\b.*)`, "i");
298
+ if (idRegex.test(updatedPlan)) {
299
+ const replacement = category === "rollback" ? "$1 $2" : "$1x$2";
300
+ updatedPlan = updatedPlan.replace(idRegex, replacement);
301
+ buildPlanUpdated = true;
302
+ }
303
+ else {
304
+ const titleWord = title.split(" ")[0];
305
+ if (titleWord && titleWord.length > 3) {
306
+ const titleRegex = new RegExp(`(-\\s*\\[)[ xX](\\]\\s*.*\\b${titleWord}\\b.*)`, "i");
307
+ if (titleRegex.test(updatedPlan)) {
308
+ const replacement = category === "rollback" ? "$1 $2" : "$1x$2";
309
+ updatedPlan = updatedPlan.replace(titleRegex, replacement);
310
+ buildPlanUpdated = true;
311
+ }
312
+ }
313
+ }
314
+ if (buildPlanUpdated) {
315
+ await fs.writeFile(buildPlanPath, updatedPlan, "utf8");
316
+ }
317
+ }
318
+ // 4. Update run.json if it exists
319
+ const runStatePath = options.runStatePath || path.join(this.projectRoot, "devflow", ".state", "run.json");
320
+ const originalRunState = await fs.readFile(runStatePath, "utf8").catch(() => null);
321
+ if (originalRunState !== null) {
322
+ rollbackActions.push(async () => {
323
+ await fs.writeFile(runStatePath, originalRunState, "utf8");
324
+ });
325
+ try {
326
+ const runData = JSON.parse(originalRunState);
327
+ runData.status = "completed";
328
+ runData.updatedAt = new Date().toISOString();
329
+ await fs.writeFile(runStatePath, JSON.stringify(runData, null, 2), "utf8");
330
+ }
331
+ catch {
332
+ // Ignore malformed json
333
+ }
334
+ }
335
+ // 5. Clean up task context workspace directory
336
+ await fs.rm(taskDir, { recursive: true, force: true });
337
+ return {
338
+ taskId,
339
+ title,
340
+ category,
341
+ archivePath: relativeArchivePath,
342
+ fullArchivePath,
343
+ ledgerEntry,
344
+ buildPlanUpdated,
345
+ contextCleaned: true,
346
+ };
347
+ }
348
+ catch (error) {
349
+ // Execute rollbacks in reverse order
350
+ for (const rollback of rollbackActions.reverse()) {
351
+ try {
352
+ await rollback();
353
+ }
354
+ catch {
355
+ // Ignore secondary rollback failures
356
+ }
357
+ }
358
+ throw error;
359
+ }
360
+ }
361
+ /**
362
+ * Generates a conventional delivery commit plan and staged paths for user delivery gate review.
363
+ */
364
+ generateCommitPlan(taskResult) {
365
+ let prefix = "feat:";
366
+ if (taskResult.category === "fix") {
367
+ prefix = "fix:";
368
+ }
369
+ else if (taskResult.category === "rollback") {
370
+ prefix = "revert: rollback";
371
+ }
372
+ const commitMessage = `${prefix} ${taskResult.title} (#${taskResult.taskId})`;
373
+ const stagedPaths = [
374
+ `devflow/history/${taskResult.archivePath}`,
375
+ "devflow/history/HISTORY.md",
376
+ ];
377
+ if (taskResult.buildPlanUpdated) {
378
+ stagedPaths.push("devflow/build-plan.md");
379
+ }
380
+ return {
381
+ commitMessage,
382
+ stagedPaths,
383
+ branchHint: `git checkout main && git merge --squash feature/${taskResult.taskId}`,
384
+ recommendedDeliveryOption: "Option 1: Team MR/PR",
385
+ };
386
+ }
387
+ }
388
+ //# sourceMappingURL=delivery-lifecycle-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-lifecycle-engine.js","sourceRoot":"","sources":["../../lib/delivery-lifecycle-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { type ProjectStatus } from "./status.js";
2
+ import { type FindingsSummary } from "./findings.js";
3
+ import { type ProjectConfig } from "./project-config.js";
4
+ import { type GitDriftReport, type ReconcileResult } from "./drift-reconciler.js";
5
+ export interface GatekeeperEngineOptions {
6
+ config?: ProjectConfig;
7
+ }
8
+ export interface GateEvaluateOptions {
9
+ strict?: boolean;
10
+ allowUnverified?: boolean;
11
+ status?: ProjectStatus;
12
+ drift?: GitDriftReport;
13
+ workflow?: "regular" | "continuous";
14
+ }
15
+ export interface GateReport {
16
+ passed: boolean;
17
+ exitCode: 0 | 1;
18
+ strict: boolean;
19
+ completionState: string;
20
+ violations: string[];
21
+ warnings: string[];
22
+ findingsBlockers: number;
23
+ remainingTasks: number;
24
+ twoStage: {
25
+ stage1SpecFidelity: boolean;
26
+ stage2CodeQuality: boolean;
27
+ };
28
+ summary: string;
29
+ }
30
+ export interface ReconcileOptions {
31
+ autoAddUndocumented?: boolean;
32
+ healStage?: boolean;
33
+ }
34
+ import { ActiveContextEngine, type ActiveTaskContext } from "./active-context-engine.js";
35
+ export declare class GatekeeperEngine {
36
+ readonly projectRoot: string;
37
+ private readonly options;
38
+ private cachedConfig;
39
+ readonly context: ActiveContextEngine;
40
+ constructor(projectRoot?: string, options?: GatekeeperEngineOptions);
41
+ /**
42
+ * Retrieves active task context through composed ActiveContextEngine.
43
+ */
44
+ getActiveContext(): Promise<ActiveTaskContext>;
45
+ /**
46
+ * Resolves project configuration from devflow/config.json or defaults.
47
+ */
48
+ getConfig(): Promise<ProjectConfig>;
49
+ /**
50
+ * Retrieves parsed findings ledger summary and active blockers.
51
+ */
52
+ getFindings(): Promise<FindingsSummary>;
53
+ /**
54
+ * Evaluates Git drift between modified repository files and active living spec.
55
+ */
56
+ getDrift(branch?: string): Promise<GitDriftReport>;
57
+ /**
58
+ * Automatically reconciles undocumented modified files and heals stage drift.
59
+ */
60
+ reconcile(options?: ReconcileOptions): Promise<ReconcileResult>;
61
+ /**
62
+ * Evaluates Two-Stage quality criteria (Stage 1 Spec Fidelity, Stage 2 Code Quality).
63
+ */
64
+ evaluate(options?: GateEvaluateOptions): Promise<GateReport>;
65
+ }