@jakkrichm/create-nexus-devflow 2.0.15 → 2.0.18

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 (82) hide show
  1. package/dist/bin/create-nexus-devflow.d.ts +15 -1
  2. package/dist/bin/create-nexus-devflow.js +125 -9
  3. package/dist/bin/create-nexus-devflow.js.map +1 -1
  4. package/dist/lib/current-work.d.ts +29 -0
  5. package/dist/lib/current-work.js +235 -0
  6. package/dist/lib/current-work.js.map +1 -0
  7. package/dist/lib/findings.d.ts +26 -0
  8. package/dist/lib/findings.js +110 -0
  9. package/dist/lib/findings.js.map +1 -0
  10. package/dist/lib/git-status.d.ts +13 -0
  11. package/dist/lib/git-status.js +98 -0
  12. package/dist/lib/git-status.js.map +1 -0
  13. package/dist/lib/project-metadata.d.ts +22 -0
  14. package/dist/lib/project-metadata.js +84 -0
  15. package/dist/lib/project-metadata.js.map +1 -0
  16. package/dist/lib/project-root.d.ts +3 -0
  17. package/dist/lib/project-root.js +76 -0
  18. package/dist/lib/project-root.js.map +1 -0
  19. package/dist/lib/status.d.ts +62 -0
  20. package/dist/lib/status.js +273 -0
  21. package/dist/lib/status.js.map +1 -0
  22. package/dist/lib/uninstall.d.ts +20 -0
  23. package/dist/lib/uninstall.js +129 -0
  24. package/dist/lib/uninstall.js.map +1 -0
  25. package/dist/scripts/prepare-template.js +120 -10
  26. package/dist/scripts/prepare-template.js.map +1 -1
  27. package/package.json +4 -3
  28. package/template/.agents/skills/00-discover/SKILL.md +2 -2
  29. package/template/.agents/skills/10-define/SKILL.md +24 -140
  30. package/template/.agents/skills/20-spec/SKILL.md +2 -2
  31. package/template/.agents/skills/30-plan/SKILL.md +2 -2
  32. package/template/.agents/skills/50-verify/SKILL.md +2 -2
  33. package/template/.agents/skills/60-report/SKILL.md +1 -1
  34. package/template/.agents/skills/70-release/SKILL.md +19 -143
  35. package/template/.agents/skills/check/SKILL.md +10 -10
  36. package/template/.agents/skills/ci/SKILL.md +1 -1
  37. package/template/.agents/skills/complete/SKILL.md +49 -28
  38. package/template/.agents/skills/deploy/SKILL.md +1 -1
  39. package/template/.agents/skills/devflow/SKILL.md +5 -5
  40. package/template/.agents/skills/feature/SKILL.md +25 -20
  41. package/template/.agents/skills/fix/SKILL.md +25 -19
  42. package/template/.agents/skills/implement/SKILL.md +10 -10
  43. package/template/.agents/skills/insight/SKILL.md +1 -1
  44. package/template/.agents/skills/overview/SKILL.md +3 -3
  45. package/template/.agents/skills/report-html/SKILL.md +3 -3
  46. package/template/.agents/skills/security-review/SKILL.md +1 -1
  47. package/template/.agents/skills/spec/SKILL.md +7 -6
  48. package/template/.agents/skills/spec-driven-development/SKILL.md +2 -2
  49. package/template/.agents/skills/test/SKILL.md +1 -1
  50. package/template/.claude/skills/00-discover/SKILL.md +2 -2
  51. package/template/.claude/skills/10-define/SKILL.md +24 -140
  52. package/template/.claude/skills/20-spec/SKILL.md +2 -2
  53. package/template/.claude/skills/30-plan/SKILL.md +2 -2
  54. package/template/.claude/skills/50-verify/SKILL.md +2 -2
  55. package/template/.claude/skills/60-report/SKILL.md +1 -1
  56. package/template/.claude/skills/70-release/SKILL.md +19 -143
  57. package/template/.claude/skills/check/SKILL.md +10 -10
  58. package/template/.claude/skills/ci/SKILL.md +1 -1
  59. package/template/.claude/skills/complete/SKILL.md +49 -28
  60. package/template/.claude/skills/deploy/SKILL.md +1 -1
  61. package/template/.claude/skills/devflow/SKILL.md +5 -5
  62. package/template/.claude/skills/feature/SKILL.md +25 -20
  63. package/template/.claude/skills/fix/SKILL.md +25 -19
  64. package/template/.claude/skills/implement/SKILL.md +10 -10
  65. package/template/.claude/skills/insight/SKILL.md +1 -1
  66. package/template/.claude/skills/overview/SKILL.md +3 -3
  67. package/template/.claude/skills/report-html/SKILL.md +3 -3
  68. package/template/.claude/skills/security-review/SKILL.md +1 -1
  69. package/template/.claude/skills/spec/SKILL.md +7 -6
  70. package/template/.claude/skills/spec-driven-development/SKILL.md +2 -2
  71. package/template/.claude/skills/test/SKILL.md +1 -1
  72. package/template/AGENTS.md +15 -59
  73. package/template/devflow/context/ai-interaction.md +110 -23
  74. package/template/devflow/context/coding-standards.md +123 -32
  75. package/template/devflow/context/current-feature.md +3 -0
  76. package/template/devflow/context/current-stage.md +6 -6
  77. package/template/devflow/context/findings.md +10 -10
  78. package/template/devflow/context/project-overview.md +18 -32
  79. package/template/devflow/history/HISTORY.md +10 -24
  80. package/template/devflow/ideas.md +9 -5
  81. package/template/devflow/reference/running-id-contract.md +39 -39
  82. package/template/devflow/runs/.gitkeep +0 -0
@@ -1,2 +1,16 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ interface CliOptions {
3
+ command: "install" | "status" | "update" | "uninstall" | "eject";
4
+ target: string | null;
5
+ adapter: string;
6
+ force: boolean;
7
+ dryRun: boolean;
8
+ help: boolean;
9
+ json: boolean;
10
+ version: boolean;
11
+ yes: boolean;
12
+ keepHistory: boolean;
13
+ }
14
+ declare function main(args?: readonly string[]): Promise<void>;
15
+ declare function parseArgs(args: readonly string[]): CliOptions;
16
+ export { main, parseArgs };
@@ -3,13 +3,15 @@ import fsSync from "node:fs";
3
3
  import path from "node:path";
4
4
  import readline from "node:readline/promises";
5
5
  import { fileURLToPath } from "node:url";
6
+ import { formatHumanStatus, readProjectStatus, shouldUseColor } from "../lib/status.js";
6
7
  import { applyPreparedUpdate, prepareUpdate } from "../lib/update.js";
8
+ import { applyUninstall, prepareUninstall } from "../lib/uninstall.js";
7
9
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
10
  const packageRoot = path.resolve(__dirname, "..", "..");
9
11
  const templateRoot = path.join(packageRoot, "template");
10
12
  const adapterChoices = new Set(["codex", "antigravity", "claude", "both", "all"]);
11
- async function main() {
12
- const options = parseArgs(process.argv.slice(2));
13
+ async function main(args = process.argv.slice(2)) {
14
+ const options = parseArgs(args);
13
15
  if (options.help) {
14
16
  printHelp();
15
17
  return;
@@ -18,10 +20,50 @@ async function main() {
18
20
  console.log(readPackageVersion());
19
21
  return;
20
22
  }
23
+ const targetDir = path.resolve(process.cwd(), options.target || ".");
24
+ if (options.command === "status") {
25
+ const status = await readProjectStatus(targetDir);
26
+ console.log(options.json
27
+ ? JSON.stringify(status, null, 2)
28
+ : formatHumanStatus(status, { color: shouldUseColor() }));
29
+ return;
30
+ }
31
+ if (options.command === "uninstall" || options.command === "eject") {
32
+ const prepared = await prepareUninstall({
33
+ targetDir,
34
+ keepHistory: options.keepHistory
35
+ });
36
+ if (options.json) {
37
+ if (options.dryRun) {
38
+ console.log(JSON.stringify({ dryRun: true, ...prepared }, null, 2));
39
+ }
40
+ else {
41
+ const result = await applyUninstall(prepared);
42
+ console.log(JSON.stringify(result, null, 2));
43
+ }
44
+ return;
45
+ }
46
+ printUninstallPlan(prepared);
47
+ if (prepared.itemsToDelete.length === 0) {
48
+ console.log("\nNo DevFlow files or directories found in target project.");
49
+ return;
50
+ }
51
+ if (options.dryRun) {
52
+ console.log("\n[Dry-run] No files were removed.");
53
+ return;
54
+ }
55
+ const proceed = options.yes || options.force || (await confirmUninstall(prepared, options));
56
+ if (!proceed) {
57
+ console.log("Uninstall cancelled.");
58
+ return;
59
+ }
60
+ const result = await applyUninstall(prepared);
61
+ printUninstallSuccess(result);
62
+ return;
63
+ }
21
64
  if (!fsSync.existsSync(templateRoot)) {
22
65
  throw new Error("Installer template is missing. Run `npm run prepare-template` before local testing.");
23
66
  }
24
- const targetDir = path.resolve(process.cwd(), options.target || ".");
25
67
  const version = readPackageVersion();
26
68
  if (options.command === "update") {
27
69
  const prepared = await prepareUpdate({
@@ -68,8 +110,10 @@ function parseArgs(args) {
68
110
  let force = false;
69
111
  let dryRun = false;
70
112
  let help = false;
113
+ let json = false;
71
114
  let version = false;
72
115
  let yes = false;
116
+ let keepHistory = false;
73
117
  const positional = [];
74
118
  for (let i = 0; i < args.length; i++) {
75
119
  const arg = args[i];
@@ -81,6 +125,10 @@ function parseArgs(args) {
81
125
  version = true;
82
126
  continue;
83
127
  }
128
+ if (arg === "--json") {
129
+ json = true;
130
+ continue;
131
+ }
84
132
  if (arg === "--force" || arg === "-f") {
85
133
  force = true;
86
134
  continue;
@@ -93,6 +141,22 @@ function parseArgs(args) {
93
141
  yes = true;
94
142
  continue;
95
143
  }
144
+ if (arg === "--keep-history") {
145
+ keepHistory = true;
146
+ continue;
147
+ }
148
+ if (arg === "--target" || arg === "-t") {
149
+ const next = args[++i];
150
+ if (!next) {
151
+ throw new Error(`${arg} requires a path`);
152
+ }
153
+ target = next;
154
+ continue;
155
+ }
156
+ if (arg.startsWith("--target=")) {
157
+ target = arg.slice("--target=".length);
158
+ continue;
159
+ }
96
160
  if (arg === "--adapter") {
97
161
  const value = args[++i];
98
162
  if (!value || !adapterChoices.has(value.toLowerCase())) {
@@ -115,9 +179,21 @@ function parseArgs(args) {
115
179
  positional.push(arg);
116
180
  }
117
181
  if (positional.length > 0) {
118
- if (positional[0] === "update") {
182
+ if (positional[0] === "status") {
183
+ command = "status";
184
+ target = positional[1] || target || ".";
185
+ }
186
+ else if (positional[0] === "update") {
119
187
  command = "update";
120
- target = positional[1] || ".";
188
+ target = positional[1] || target || ".";
189
+ }
190
+ else if (positional[0] === "uninstall") {
191
+ command = "uninstall";
192
+ target = positional[1] || target || ".";
193
+ }
194
+ else if (positional[0] === "eject") {
195
+ command = "eject";
196
+ target = positional[1] || target || ".";
121
197
  }
122
198
  else {
123
199
  target = positional[0];
@@ -130,8 +206,10 @@ function parseArgs(args) {
130
206
  force,
131
207
  dryRun,
132
208
  help,
209
+ json,
133
210
  version,
134
- yes
211
+ yes,
212
+ keepHistory
135
213
  };
136
214
  }
137
215
  function readPackageVersion() {
@@ -141,15 +219,26 @@ function readPackageVersion() {
141
219
  }
142
220
  function printHelp() {
143
221
  console.log(`
144
- Nexus-DevFlow Installer v${readPackageVersion()}
222
+ Nexus-DevFlow CLI v${readPackageVersion()}
145
223
 
146
224
  Usage:
147
225
  npx @jakkrichm/create-nexus-devflow [target-dir] [options]
148
- npx @jakkrichm/create-nexus-devflow update [target-dir] [options]
226
+ nexus-devflow status [target-dir] [options]
227
+ nexus-devflow update [target-dir] [options]
228
+ nexus-devflow uninstall [target-dir] [options]
229
+ nexus-devflow eject [target-dir] [options]
230
+
231
+ Commands:
232
+ status Show project overview, progress, findings, git status, and next action
233
+ update Update existing DevFlow installation without overwriting user changes
234
+ uninstall, eject Completely remove DevFlow workflow files and adapters from project
149
235
 
150
236
  Options:
151
237
  --adapter <name> Tool adapters to install: codex, antigravity, claude, both (default: both)
152
- --force, -f Overwrite conflicting files without prompting
238
+ --keep-history Keep devflow/history/ directory during uninstall
239
+ --json Print output as structured JSON object
240
+ --target, -t Target project directory
241
+ --force, -f Overwrite conflicting files / force uninstall without prompting
153
242
  --dry-run Preview changes without modifying disk
154
243
  -y, --yes Automatically confirm interactive prompts
155
244
  --version, -v Show version number
@@ -179,6 +268,17 @@ function printUpdatePlan(prepared) {
179
268
  console.log(`Orphaned files : ${prepared.orphanedFiles.length}`);
180
269
  console.log(`Conflicts found : ${prepared.conflictList.length}`);
181
270
  }
271
+ function printUninstallPlan(prepared) {
272
+ console.log(`\nNexus-DevFlow Clean Eject / Uninstall (v${readPackageVersion()})`);
273
+ console.log(`Target Directory: ${prepared.targetDir}\n`);
274
+ console.log(`Items to delete : ${prepared.itemsToDelete.length} (${prepared.totalFiles} files, ${prepared.totalDirectories} directories)`);
275
+ if (prepared.itemsToDelete.length > 0) {
276
+ console.log("DevFlow Footprint:");
277
+ for (const item of prepared.itemsToDelete) {
278
+ console.log(` - ${item}`);
279
+ }
280
+ }
281
+ }
182
282
  async function confirmInstallConflicts(prepared, options) {
183
283
  if (options.yes)
184
284
  return true;
@@ -201,6 +301,17 @@ async function confirmUpdateConflicts(prepared, options) {
201
301
  rl.close();
202
302
  return answer.trim().toLowerCase() === "y";
203
303
  }
304
+ async function confirmUninstall(prepared, options) {
305
+ if (options.yes)
306
+ return true;
307
+ const rl = readline.createInterface({
308
+ input: process.stdin,
309
+ output: process.stdout
310
+ });
311
+ const answer = await rl.question(`\nAre you sure you want to completely remove DevFlow from this project? [y/N] `);
312
+ rl.close();
313
+ return answer.trim().toLowerCase() === "y";
314
+ }
204
315
  function printNextSteps() {
205
316
  console.log("\nNext steps in your AI IDE (Antigravity, Claude Code, Codex, etc.):");
206
317
  console.log(" 1. Project Setup & Baseline:");
@@ -223,6 +334,10 @@ function printUpdateSuccess(prepared, result) {
223
334
  console.log(`Applied ${result.appliedCount} file(s), removed ${result.removedCount} orphaned file(s).`);
224
335
  printNextSteps();
225
336
  }
337
+ function printUninstallSuccess(result) {
338
+ console.log("\nNexus-DevFlow has been completely removed from the project.");
339
+ console.log(`Deleted ${result.deletedCount} item(s). No DevFlow traces remain.`);
340
+ }
226
341
  if (process.argv[1] &&
227
342
  fsSync.realpathSync(process.argv[1]) === fsSync.realpathSync(fileURLToPath(import.meta.url))) {
228
343
  main().catch((err) => {
@@ -230,4 +345,5 @@ if (process.argv[1] &&
230
345
  process.exit(1);
231
346
  });
232
347
  }
348
+ export { main, parseArgs };
233
349
  //# sourceMappingURL=create-nexus-devflow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-nexus-devflow.js","sourceRoot":"","sources":["../../bin/create-nexus-devflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-nexus-devflow.js","sourceRoot":"","sources":["../../bin/create-nexus-devflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ type CurrentWorkState = "active" | "idle" | "malformed";
2
+ type CurrentWorkType = "feature" | "fix" | "rollback" | "stage";
3
+ interface CurrentWorkStep {
4
+ checked: boolean;
5
+ line: number;
6
+ title: string;
7
+ }
8
+ type CurrentWorkWarningCode = "empty_current_work" | "invalid_current_work_path" | "malformed_current_work" | "missing_current_work" | "unsafe_current_work_path";
9
+ interface CurrentWorkWarning {
10
+ code: CurrentWorkWarningCode;
11
+ message: string;
12
+ }
13
+ interface CurrentWorkSummary {
14
+ state: CurrentWorkState;
15
+ type: CurrentWorkType | null;
16
+ title: string | null;
17
+ status: string | null;
18
+ runId: string | null;
19
+ steps: CurrentWorkStep[];
20
+ completed: number;
21
+ remaining: number;
22
+ total: number;
23
+ nextStep: CurrentWorkStep | null;
24
+ warnings: CurrentWorkWarning[];
25
+ }
26
+ declare function readCurrentWork(projectRoot: string): Promise<CurrentWorkSummary>;
27
+ declare function parseCurrentWork(markdown: string): CurrentWorkSummary;
28
+ export { readCurrentWork, parseCurrentWork };
29
+ export type { CurrentWorkSummary, CurrentWorkStep, CurrentWorkWarning, CurrentWorkState, CurrentWorkType };
@@ -0,0 +1,235 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ const DEVFLOW_CURRENT_FEATURE_PATH = path.join("devflow", "context", "current-feature.md");
4
+ const DEVFLOW_CURRENT_RUN_DIR = path.join("devflow", "context", "current-run");
5
+ const CURRENT_STAGE_PATH = path.join("devflow", "context", "current-stage.md");
6
+ const LEGACY_FEATURE_PATH = path.join("blueprint", "context", "current-feature.md");
7
+ const RESET_MARKER = "_Nothing in progress.";
8
+ const CHECKBOX_PATTERN = /^\s*-\s+\[([ xX])\]\s+(.+?)\s*$/;
9
+ async function readCurrentWork(projectRoot) {
10
+ // 1. Primary: Check devflow/context/current-feature.md
11
+ const devflowFeatureFile = path.join(projectRoot, DEVFLOW_CURRENT_FEATURE_PATH);
12
+ try {
13
+ const featStats = await fs.lstat(devflowFeatureFile).catch(() => null);
14
+ if (featStats?.isFile()) {
15
+ const featContent = await fs.readFile(devflowFeatureFile, "utf8");
16
+ if (featContent.trim() !== "" && !featContent.includes(RESET_MARKER)) {
17
+ const parsed = parseCurrentWork(featContent);
18
+ if (parsed.state === "active") {
19
+ return parsed;
20
+ }
21
+ }
22
+ }
23
+ }
24
+ catch {
25
+ // Continue to next checks
26
+ }
27
+ // 2. Check devflow/context/current-run/ (Deep-Track active run)
28
+ const currentRunDir = path.join(projectRoot, DEVFLOW_CURRENT_RUN_DIR);
29
+ try {
30
+ const runStats = await fs.lstat(currentRunDir).catch(() => null);
31
+ if (runStats?.isDirectory()) {
32
+ const featurePath = path.join(currentRunDir, "current-feature.md");
33
+ const specPath = path.join(currentRunDir, "20-spec.md");
34
+ const checklistPath = path.join(currentRunDir, "checklists", "implementation-checklist.md");
35
+ const specFile = (await fs.lstat(featurePath).catch(() => null))?.isFile()
36
+ ? featurePath
37
+ : (await fs.lstat(specPath).catch(() => null))?.isFile()
38
+ ? specPath
39
+ : null;
40
+ if (specFile) {
41
+ const specContent = await fs.readFile(specFile, "utf8");
42
+ const parsed = parseCurrentWork(specContent);
43
+ if (parsed.state === "active") {
44
+ return parsed;
45
+ }
46
+ }
47
+ const checkStats = await fs.lstat(checklistPath).catch(() => null);
48
+ if (checkStats?.isFile()) {
49
+ const checklistContent = await fs.readFile(checklistPath, "utf8");
50
+ return parseChecklistWork(checklistContent, "current-run");
51
+ }
52
+ }
53
+ }
54
+ catch {
55
+ // Continue
56
+ }
57
+ // 3. Check devflow/context/current-stage.md
58
+ const currentStageFile = path.join(projectRoot, CURRENT_STAGE_PATH);
59
+ try {
60
+ const stageStats = await fs.lstat(currentStageFile).catch(() => null);
61
+ if (stageStats?.isFile()) {
62
+ const stageContent = await fs.readFile(currentStageFile, "utf8");
63
+ const activeRunningIdMatch = stageContent.match(/-\s+\*\*Active Running ID\*\*:\s*`?([A-Za-z0-9-_]+|None)`?/i);
64
+ const activeRunningId = activeRunningIdMatch ? activeRunningIdMatch[1].trim() : null;
65
+ const stageMatch = stageContent.match(/-\s+\*\*Current Stage\*\*:\s*([^\r\n]+)/i);
66
+ const stageName = stageMatch ? stageMatch[1].trim() : "";
67
+ if (!activeRunningId ||
68
+ activeRunningId.toLowerCase() === "none" ||
69
+ stageName.toLowerCase().startsWith("idle")) {
70
+ return idleSummary();
71
+ }
72
+ // Check legacy active run directory under devflow/runs/
73
+ const activeRunDir = path.join(projectRoot, "devflow", "runs", activeRunningId);
74
+ const featurePath = path.join(activeRunDir, "current-feature.md");
75
+ const legacySpecPath = path.join(activeRunDir, "spec.md");
76
+ const stage20Path = path.join(activeRunDir, "20-spec.md");
77
+ const specPath = (await fs.lstat(featurePath).catch(() => null))?.isFile()
78
+ ? featurePath
79
+ : (await fs.lstat(stage20Path).catch(() => null))?.isFile()
80
+ ? stage20Path
81
+ : legacySpecPath;
82
+ const specStats = await fs.lstat(specPath).catch(() => null);
83
+ if (specStats?.isFile()) {
84
+ const specContent = await fs.readFile(specPath, "utf8");
85
+ const parsed = parseCurrentWork(specContent);
86
+ parsed.runId = activeRunningId;
87
+ return parsed;
88
+ }
89
+ const checklistPath = path.join(activeRunDir, "checklists", "implementation-checklist.md");
90
+ const checklistStats = await fs.lstat(checklistPath).catch(() => null);
91
+ if (checklistStats?.isFile()) {
92
+ const checklistContent = await fs.readFile(checklistPath, "utf8");
93
+ return parseChecklistWork(checklistContent, activeRunningId);
94
+ }
95
+ return idleSummary();
96
+ }
97
+ }
98
+ catch {
99
+ // Fall back to legacy
100
+ }
101
+ // 4. Fallback to legacy blueprint/context/current-feature.md
102
+ const legacyPath = path.join(projectRoot, LEGACY_FEATURE_PATH);
103
+ try {
104
+ const stats = await fs.lstat(legacyPath);
105
+ if (stats.isFile()) {
106
+ const content = await fs.readFile(legacyPath, "utf8");
107
+ return parseCurrentWork(content);
108
+ }
109
+ }
110
+ catch {
111
+ // Return idle
112
+ }
113
+ return idleSummary();
114
+ }
115
+ function parseCurrentWork(markdown) {
116
+ if (markdown.trim() === "") {
117
+ return malformedSummary({
118
+ code: "empty_current_work",
119
+ message: "Current work file is empty."
120
+ });
121
+ }
122
+ if (markdown.includes(RESET_MARKER)) {
123
+ return idleSummary();
124
+ }
125
+ const heading = markdown.match(/^#\s+(.+)$/m)?.[1]?.trim() || null;
126
+ const headingIdentity = heading?.match(/^(Feature|Fix|Rollback|Stage|Spec):\s*(.+)$/i);
127
+ const explicitType = markdown.match(/^\*\*Type:\*\*\s*(Feature|Fix|Rollback|Stage|Spec)\s*$/im)?.[1];
128
+ const typeLabel = explicitType || headingIdentity?.[1] || null;
129
+ const type = normalizeWorkType(typeLabel);
130
+ const title = headingIdentity?.[2]?.trim() || heading;
131
+ const status = markdown.match(/^\*\*Status:\*\*\s*(.+)$/im)?.[1]?.trim() || null;
132
+ const runId = markdown.match(/^\*\*Running ID:\*\*\s*`?([A-Za-z0-9-_]+)`?/im)?.[1] || null;
133
+ const steps = parseChecklistSteps(markdown);
134
+ const warnings = [];
135
+ if (!title) {
136
+ warnings.push({
137
+ code: "malformed_current_work",
138
+ message: "Current work does not contain a recognizable title."
139
+ });
140
+ }
141
+ const normalizedSteps = steps || [];
142
+ const completed = normalizedSteps.filter((step) => step.checked).length;
143
+ return {
144
+ state: warnings.length > 0 ? "malformed" : "active",
145
+ type: type || "feature",
146
+ title,
147
+ status,
148
+ runId,
149
+ steps: normalizedSteps,
150
+ completed,
151
+ remaining: normalizedSteps.length - completed,
152
+ total: normalizedSteps.length,
153
+ nextStep: normalizedSteps.find((step) => !step.checked) || null,
154
+ warnings
155
+ };
156
+ }
157
+ function parseChecklistWork(markdown, runId) {
158
+ const steps = parseChecklistSteps(markdown) || [];
159
+ const completed = steps.filter((step) => step.checked).length;
160
+ const heading = markdown.match(/^#\s+(.+)$/m)?.[1]?.trim() || "Implementation";
161
+ return {
162
+ state: "active",
163
+ type: "stage",
164
+ title: heading,
165
+ status: "in_progress",
166
+ runId,
167
+ steps,
168
+ completed,
169
+ remaining: steps.length - completed,
170
+ total: steps.length,
171
+ nextStep: steps.find((step) => !step.checked) || null,
172
+ warnings: []
173
+ };
174
+ }
175
+ function parseChecklistSteps(markdown) {
176
+ const lines = markdown.split(/\r?\n/);
177
+ const steps = [];
178
+ for (let index = 0; index < lines.length; index += 1) {
179
+ const match = lines[index].match(CHECKBOX_PATTERN);
180
+ if (match) {
181
+ steps.push({
182
+ checked: match[1].toLowerCase() === "x",
183
+ line: index + 1,
184
+ title: match[2].trim()
185
+ });
186
+ }
187
+ }
188
+ return steps;
189
+ }
190
+ function normalizeWorkType(label) {
191
+ if (!label)
192
+ return null;
193
+ const normalized = label.toLowerCase();
194
+ if (normalized === "feature")
195
+ return "feature";
196
+ if (normalized === "fix")
197
+ return "fix";
198
+ if (normalized === "rollback")
199
+ return "rollback";
200
+ if (normalized === "stage" || normalized === "spec")
201
+ return "stage";
202
+ return null;
203
+ }
204
+ function idleSummary() {
205
+ return {
206
+ state: "idle",
207
+ type: null,
208
+ title: null,
209
+ status: null,
210
+ runId: null,
211
+ steps: [],
212
+ completed: 0,
213
+ remaining: 0,
214
+ total: 0,
215
+ nextStep: null,
216
+ warnings: []
217
+ };
218
+ }
219
+ function malformedSummary(warning) {
220
+ return {
221
+ state: "malformed",
222
+ type: null,
223
+ title: null,
224
+ status: null,
225
+ runId: null,
226
+ steps: [],
227
+ completed: 0,
228
+ remaining: 0,
229
+ total: 0,
230
+ nextStep: null,
231
+ warnings: [warning]
232
+ };
233
+ }
234
+ export { readCurrentWork, parseCurrentWork };
235
+ //# sourceMappingURL=current-work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"current-work.js","sourceRoot":"","sources":["../../lib/current-work.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ type FindingSeverity = "P0" | "P1" | "P2" | "P3";
2
+ type FindingStatus = "unverified" | "open" | "fixed" | "closed" | "accepted" | "invalid";
3
+ interface Finding {
4
+ id: string;
5
+ severity: FindingSeverity;
6
+ status: FindingStatus;
7
+ title: string;
8
+ line: number;
9
+ }
10
+ type FindingsWarningCode = "invalid_findings_path" | "malformed_findings" | "unsafe_findings_path";
11
+ interface FindingsWarning {
12
+ code: FindingsWarningCode;
13
+ message: string;
14
+ }
15
+ interface FindingsSummary {
16
+ items: Finding[];
17
+ total: number;
18
+ byStatus: Record<FindingStatus, number>;
19
+ blockers: Finding[];
20
+ warnings: FindingsWarning[];
21
+ }
22
+ declare const DEVFLOW_FINDINGS_PATH: string;
23
+ declare function readFindings(projectRoot: string): Promise<FindingsSummary>;
24
+ declare function parseFindings(markdown: string): FindingsSummary;
25
+ export { DEVFLOW_FINDINGS_PATH, parseFindings, readFindings };
26
+ export type { Finding, FindingSeverity, FindingsSummary, FindingStatus, FindingsWarning, FindingsWarningCode };