@jakkrichm/create-nexus-devflow 2.14.0 → 2.15.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 (42) hide show
  1. package/dist/lib/branch-context.d.ts +1 -0
  2. package/dist/lib/branch-context.js +8 -3
  3. package/dist/lib/branch-context.js.map +1 -1
  4. package/dist/lib/dashboard-page.d.ts +5 -2
  5. package/dist/lib/dashboard-page.js +7 -388
  6. package/dist/lib/dashboard-page.js.map +1 -1
  7. package/dist/lib/dashboard-snapshot.d.ts +22 -3
  8. package/dist/lib/dashboard-snapshot.js +154 -3
  9. package/dist/lib/dashboard-snapshot.js.map +1 -1
  10. package/dist/lib/delivery-lifecycle-engine.d.ts +1 -1
  11. package/dist/lib/delivery-lifecycle-engine.js +1 -1
  12. package/dist/lib/delivery-lifecycle-engine.js.map +1 -1
  13. package/dist/lib/mcp-server-engine.d.ts +57 -0
  14. package/dist/lib/mcp-server-engine.js +678 -0
  15. package/dist/lib/mcp-server-engine.js.map +1 -0
  16. package/dist/lib/mcp.d.ts +15 -27
  17. package/dist/lib/mcp.js +20 -646
  18. package/dist/lib/mcp.js.map +1 -1
  19. package/dist/lib/project-status-engine.d.ts +110 -0
  20. package/dist/lib/project-status-engine.js +493 -0
  21. package/dist/lib/project-status-engine.js.map +1 -0
  22. package/dist/lib/skill-manager.d.ts +2 -82
  23. package/dist/lib/skill-manager.js +15 -1168
  24. package/dist/lib/skill-manager.js.map +1 -1
  25. package/dist/lib/skill-registry-engine.d.ts +121 -0
  26. package/dist/lib/skill-registry-engine.js +810 -0
  27. package/dist/lib/skill-registry-engine.js.map +1 -0
  28. package/dist/lib/status.d.ts +1 -90
  29. package/dist/lib/status.js +7 -467
  30. package/dist/lib/status.js.map +1 -1
  31. package/dist/lib/studio-view-renderer.d.ts +17 -1
  32. package/dist/lib/studio-view-renderer.js +855 -3
  33. package/dist/lib/studio-view-renderer.js.map +1 -1
  34. package/package.json +1 -1
  35. package/template/.agents/skills/complete/SKILL.md +14 -13
  36. package/template/.agents/skills/debug/SKILL.md +14 -0
  37. package/template/.agents/skills/implement/SKILL.md +36 -2
  38. package/template/.claude/skills/complete/SKILL.md +14 -13
  39. package/template/.claude/skills/debug/SKILL.md +14 -0
  40. package/template/.claude/skills/implement/SKILL.md +36 -2
  41. package/template/devflow/build-plan.md +9 -5
  42. package/template/devflow/context/ai-interaction.md +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-registry-engine.js","sourceRoot":"","sources":["../../lib/skill-registry-engine.ts"],"names":[],"mappings":"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"}
@@ -1,93 +1,4 @@
1
- import type { ActiveRunSummary } from "./branch-context.js";
2
- import type { CurrentWorkSummary, CurrentWorkType } from "./current-work.js";
3
- import type { Finding, FindingStatus } from "./findings.js";
4
- import type { GitStatusSummary } from "./git-status.js";
5
- import type { ProjectAdapter } from "./project-metadata.js";
6
- import type { IdeasSummary } from "./ideas.js";
7
- import type { ProjectConfig, ProjectConfigState } from "./project-config.js";
8
- import type { RunStateSummary } from "./run-state.js";
9
- import type { ReviewCheckResult, ReviewFreshness, ReviewState } from "./review.js";
10
- type CompletionState = "blocked" | "idle" | "needs_verification" | "ready";
11
- interface StatusWarning {
12
- code: string;
13
- message: string;
14
- }
15
- interface StatusConfiguration {
16
- path: string;
17
- state: ProjectConfigState;
18
- values: ProjectConfig;
19
- }
20
- type StatusActivity = Omit<RunStateSummary, "warnings">;
21
- interface StatusCurrentWork {
22
- state: CurrentWorkSummary["state"];
23
- type: CurrentWorkType | null;
24
- title: string | null;
25
- status: string | null;
26
- runId: string | null;
27
- completed: number;
28
- remaining: number;
29
- total: number;
30
- nextStep: {
31
- title: string;
32
- } | null;
33
- }
34
- interface StatusFindings {
35
- total: number;
36
- byStatus: Record<FindingStatus, number>;
37
- active: Array<Pick<Finding, "id" | "severity" | "status" | "title">>;
38
- blockers: Array<Pick<Finding, "id" | "severity" | "status" | "title">>;
39
- }
40
- interface StatusReview {
41
- state: ReviewState;
42
- freshness: ReviewFreshness;
43
- verdict: "changes-requested" | "passed" | null;
44
- checkResult: ReviewCheckResult | null;
45
- targetCommit: string | null;
46
- requestedReviewer: string | null;
47
- requestedModel: string | null;
48
- requestedExecution: string | null;
49
- reviewerAdapter: string | null;
50
- reviewerModel: string | null;
51
- actualExecution: string | null;
52
- warnings: StatusWarning[];
53
- }
54
- interface StatusActiveRun extends ActiveRunSummary {
55
- review: StatusReview;
56
- }
57
- interface StatusNextAction {
58
- command: string | null;
59
- reason: string;
60
- }
61
- interface StatusCompletion {
62
- state: CompletionState;
63
- blockers: string[];
64
- }
65
- interface HumanStatusOptions {
66
- color?: boolean;
67
- }
68
- interface ProjectStatus {
69
- schemaVersion: number;
70
- health: "ok" | "warning";
71
- project: {
72
- name: string;
73
- root: string;
74
- };
75
- devflow: {
76
- version: string | null;
77
- adapters: ProjectAdapter[];
78
- };
79
- configuration: StatusConfiguration;
80
- activity: StatusActivity;
81
- currentWork: StatusCurrentWork;
82
- activeRuns: StatusActiveRun[];
83
- findings: StatusFindings;
84
- review: StatusReview;
85
- ideas: IdeasSummary;
86
- git: GitStatusSummary;
87
- completion: StatusCompletion;
88
- nextAction: StatusNextAction;
89
- warnings: StatusWarning[];
90
- }
1
+ import { type CompletionState, type HumanStatusOptions, type ProjectStatus, type StatusActivity, type StatusActiveRun, type StatusCompletion, type StatusCurrentWork, type StatusFindings, type StatusNextAction, type StatusWarning } from "./project-status-engine.js";
91
2
  declare function readProjectStatus(startPath?: string): Promise<ProjectStatus>;
92
3
  declare function formatHumanStatus(status: ProjectStatus, options?: HumanStatusOptions): string;
93
4
  declare function shouldUseColor(isTTY?: boolean | undefined, environment?: NodeJS.ProcessEnv): boolean;
@@ -1,475 +1,15 @@
1
- import fs from "node:fs/promises";
2
- import { listActiveRunContexts, resolveActiveContextPaths } from "./branch-context.js";
3
- import { readCurrentWork } from "./current-work.js";
4
- import { readFindings } from "./findings.js";
5
- import { readGitStatus } from "./git-status.js";
6
- import { readProjectMetadata } from "./project-metadata.js";
7
- import { readIdeas } from "./ideas.js";
8
- import { readProjectConfig } from "./project-config.js";
9
- import { readRunState } from "./run-state.js";
10
- import { readIndependentReview } from "./review.js";
1
+ import { ProjectStatusEngine } from "./project-status-engine.js";
11
2
  async function readProjectStatus(startPath = process.cwd()) {
12
- const metadata = await readProjectMetadata(startPath);
13
- const [contextPaths, config, currentWork, activeRuns, findings, git, ideas, runState] = await Promise.all([
14
- resolveActiveContextPaths(metadata.project.root),
15
- readProjectConfig(metadata.project.root),
16
- readCurrentWork(metadata.project.root),
17
- listActiveRunContexts(metadata.project.root),
18
- readFindings(metadata.project.root),
19
- readGitStatus(metadata.project.root),
20
- readIdeas(metadata.project.root),
21
- readRunState(metadata.project.root)
22
- ]);
23
- const primaryRunId = currentWork.runId || (activeRuns.length === 1 ? activeRuns[0]?.runId : undefined);
24
- const [review, activeRunReviews] = await Promise.all([
25
- readIndependentReview(metadata.project.root, primaryRunId || undefined),
26
- Promise.all(activeRuns.map((run) => readIndependentReview(metadata.project.root, run.runId)))
27
- ]);
28
- const statusReview = formatReview(review);
29
- const statusActiveRuns = activeRuns.map((run, index) => ({
30
- ...run,
31
- review: formatReview(activeRunReviews[index] || review)
32
- }));
33
- let stageMarkdown = "";
34
- try {
35
- stageMarkdown = await fs.readFile(contextPaths.stagePath, "utf8");
36
- }
37
- catch { }
38
- const warnings = [
39
- ...metadata.warnings,
40
- ...config.warnings,
41
- ...currentWork.warnings,
42
- ...findings.warnings,
43
- ...runState.warnings,
44
- ...review.warnings,
45
- ...findDrift(currentWork, git)
46
- ];
47
- const completion = selectCompletion(currentWork, findings, git, stageMarkdown, review, config.values);
48
- const nextAction = selectNextAction(currentWork, findings, stageMarkdown);
49
- return {
50
- schemaVersion: metadata.schemaVersion,
51
- health: warnings.length > 0 || findings.blockers.length > 0
52
- ? "warning"
53
- : "ok",
54
- project: metadata.project,
55
- devflow: metadata.devflow,
56
- configuration: {
57
- path: config.path,
58
- state: config.state,
59
- values: config.values
60
- },
61
- activity: {
62
- state: runState.state,
63
- mode: runState.mode,
64
- command: runState.command,
65
- status: runState.status,
66
- freshness: runState.freshness,
67
- summary: runState.summary,
68
- detail: runState.detail,
69
- boundary: runState.boundary,
70
- startedAt: runState.startedAt,
71
- updatedAt: runState.updatedAt,
72
- resumeCommand: runState.resumeCommand,
73
- progress: runState.progress,
74
- feature: runState.feature
75
- },
76
- currentWork: formatCurrentWork(currentWork),
77
- activeRuns: statusActiveRuns,
78
- findings: formatFindings(findings),
79
- review: statusReview,
80
- ideas,
81
- git,
82
- completion,
83
- nextAction,
84
- warnings
85
- };
3
+ const engine = new ProjectStatusEngine(startPath);
4
+ return engine.getStatus();
86
5
  }
87
6
  function formatHumanStatus(status, options = {}) {
88
- const style = createTextStyle(options.color === true);
89
- const adapters = status.devflow.adapters.length > 0
90
- ? status.devflow.adapters.join(", ")
91
- : "none detected";
92
- const lines = [
93
- `${style.bold(style.cyan("Nexus-DevFlow Status"))} ${style.bold(status.project.name)}`,
94
- "",
95
- formatSection("Project", style),
96
- formatRow("Path", status.project.root, style),
97
- formatRow("Version", status.devflow.version || "unknown", style),
98
- formatRow("Adapters", adapters, style),
99
- formatRow("Config", formatConfigValue(status.configuration.state), style),
100
- formatRow("Review exec.", status.configuration.values.review.independentExecution, style),
101
- formatRow("Quality gates", formatQualityGates(status.configuration.values.qualityGates.regular), style),
102
- "",
103
- formatSection("Progress", style),
104
- formatRow("Progress", formatWorkValue(status.currentWork, style), style)
105
- ];
106
- if (status.activity && status.activity.state === "recorded" && status.activity.command) {
107
- lines.push(formatRow("Activity", formatActivityValue(status.activity, style), style));
108
- }
109
- if (status.currentWork.state === "active") {
110
- lines.push(formatRow("Steps", `${status.currentWork.completed}/${status.currentWork.total} complete`, style));
111
- if (status.currentWork.nextStep) {
112
- lines.push(formatRow("Next step", status.currentWork.nextStep.title, style));
113
- }
114
- }
115
- if (status.activeRuns && status.activeRuns.length > 0) {
116
- lines.push(formatRow("Spec Queue", `${status.activeRuns.length} active (${status.activeRuns.map((r) => r.runId).join(", ")})`, style));
117
- }
118
- lines.push(formatRow("Findings", formatFindingsValue(status.findings, style), style));
119
- if (status.review && status.review.state !== "none") {
120
- lines.push(formatRow("Review", formatReviewValue(status.review, style), style));
121
- }
122
- lines.push(formatRow("Completion", formatCompletionValue(status.completion, style), style), "", formatSection("Git", style));
123
- appendGitLines(lines, status.git, style);
124
- if (status.warnings.length > 0) {
125
- lines.push("", formatSection("Attention", style));
126
- for (const warning of status.warnings) {
127
- lines.push(` ${style.yellow("!")} ${style.yellow(warning.message)}`);
128
- }
129
- }
130
- lines.push("", formatSection("Next action", style));
131
- if (status.nextAction.command) {
132
- lines.push(` ${style.bold(style.brightCyan(status.nextAction.command))}`);
133
- }
134
- lines.push(` ${status.nextAction.reason}`);
135
- return lines.join("\n");
136
- }
137
- function formatConfigValue(state) {
138
- if (state === "project") {
139
- return "project settings";
140
- }
141
- if (state === "invalid") {
142
- return "invalid, using defaults";
143
- }
144
- return "built-in defaults";
145
- }
146
- function formatQualityGates(gates) {
147
- return `audit ${gates.audit}, review ${gates.independentReview}, check ${gates.check}, try guide ${gates.tryGuide}`;
7
+ const engine = new ProjectStatusEngine(status.project?.root || process.cwd());
8
+ return engine.formatHuman(status, options);
148
9
  }
149
10
  function shouldUseColor(isTTY = process.stdout.isTTY, environment = process.env) {
150
- return isTTY === true && !Object.hasOwn(environment, "NO_COLOR");
151
- }
152
- function formatSection(label, style) {
153
- return style.bold(label);
154
- }
155
- function formatRow(label, value, style) {
156
- return ` ${style.cyan(label.padEnd(14))}${value}`;
157
- }
158
- function formatReviewValue(review, style) {
159
- const reviewer = review.reviewerAdapter || review.requestedReviewer;
160
- const model = review.reviewerModel || review.requestedModel;
161
- const execution = review.actualExecution || review.requestedExecution;
162
- const reviewerLabel = reviewer && model ? `${reviewer}/${model}` : reviewer || model;
163
- const parts = [review.state];
164
- if (review.verdict) {
165
- parts.push(`verdict ${review.verdict}`);
166
- }
167
- if (review.checkResult) {
168
- parts.push(`check ${review.checkResult}`);
169
- }
170
- parts.push(`freshness ${review.freshness}`);
171
- if (reviewerLabel) {
172
- parts.push(execution ? `(${reviewerLabel}, ${execution})` : `(${reviewerLabel})`);
173
- }
174
- else if (execution) {
175
- parts.push(`(${execution})`);
176
- }
177
- return review.freshness === "stale"
178
- ? style.yellow(parts.join(", "))
179
- : parts.join(", ");
180
- }
181
- function formatReview(review) {
182
- return {
183
- state: review.state,
184
- freshness: review.freshness,
185
- verdict: review.verdict,
186
- checkResult: review.checkResult,
187
- targetCommit: review.targetCommit,
188
- requestedReviewer: review.requestedReviewer,
189
- requestedModel: review.requestedModel,
190
- requestedExecution: review.requestedExecution,
191
- reviewerAdapter: review.reviewerAdapter,
192
- reviewerModel: review.reviewerModel,
193
- actualExecution: review.actualExecution,
194
- warnings: review.warnings.map((warning) => ({
195
- code: warning.code,
196
- message: warning.message
197
- }))
198
- };
199
- }
200
- function formatActivityValue(activity, style) {
201
- if (activity.state !== "recorded" || !activity.command) {
202
- return style.dim("none");
203
- }
204
- const parts = [`/${activity.command}`];
205
- if (activity.status) {
206
- parts.push(activity.status === "running"
207
- ? style.brightCyan(activity.status)
208
- : activity.status === "ready"
209
- ? style.green(activity.status)
210
- : activity.status === "blocked"
211
- ? style.red(activity.status)
212
- : activity.status);
213
- }
214
- if (activity.progress) {
215
- parts.push(`${activity.progress.current}/${activity.progress.total} ${activity.progress.label}`);
216
- }
217
- if (activity.boundary) {
218
- parts.push(`(${activity.boundary})`);
219
- }
220
- if (activity.freshness === "stale") {
221
- parts.push(style.yellow("[stale]"));
222
- }
223
- return parts.join(" ");
224
- }
225
- function formatWorkValue(work, style) {
226
- if (work.state === "idle") {
227
- return style.dim("none");
228
- }
229
- if (work.state === "malformed") {
230
- return style.red("present but malformed");
231
- }
232
- const type = work.type || "work";
233
- const identity = work.runId
234
- ? `${work.runId} - ${work.title || "untitled"}`
235
- : work.title || "untitled";
236
- return style.brightCyan(`${type} ${identity}`);
237
- }
238
- function formatFindingsValue(findings, style) {
239
- if (findings.total === 0) {
240
- return style.green("none");
241
- }
242
- const activeGroups = new Map();
243
- for (const finding of findings.active) {
244
- const key = `${finding.status} ${finding.severity}`;
245
- activeGroups.set(key, [...(activeGroups.get(key) || []), finding.id]);
246
- }
247
- const activeCounts = [...activeGroups.entries()].map(([label, ids]) => `${ids.length} ${label} (${ids.join(", ")})`);
248
- const resolvedCounts = ["closed", "accepted", "invalid"]
249
- .map((status) => {
250
- const count = findings.byStatus[status] || 0;
251
- return count > 0 ? `${count} ${status}` : null;
252
- })
253
- .filter(Boolean);
254
- const parts = [...activeCounts, ...resolvedCounts];
255
- return parts.join(", ");
256
- }
257
- function formatCompletionValue(completion, style) {
258
- if (completion.state === "idle") {
259
- return style.dim("idle");
260
- }
261
- if (completion.state === "ready") {
262
- return style.green("ready to complete");
263
- }
264
- if (completion.state === "needs_verification") {
265
- return style.yellow(`needs verification (${completion.blockers.join("; ")})`);
266
- }
267
- return style.red(`blocked (${completion.blockers.join("; ")})`);
268
- }
269
- function appendGitLines(lines, git, style) {
270
- if (!git.available) {
271
- lines.push(formatRow("Status", style.red("not a Git repository"), style));
272
- return;
273
- }
274
- const workingTree = git.clean
275
- ? style.green("clean")
276
- : style.yellow(`${git.changedFiles} changed ${git.changedFiles === 1 ? "file" : "files"}`);
277
- const remote = git.upstream
278
- ? `${git.upstream} (${git.ahead || 0} ahead, ${git.behind || 0} behind)`
279
- : "not configured";
280
- const coloredRemote = git.upstream && git.ahead === 0 && git.behind === 0
281
- ? style.green(remote)
282
- : style.yellow(remote);
283
- lines.push(formatRow("Branch", git.branch || "unknown", style), formatRow("Working tree", workingTree, style), formatRow("Remote", coloredRemote, style));
284
- if (git.lastCommit) {
285
- lines.push(` ${style.cyan("Last commit")}`, ` ${git.lastCommit}`);
286
- }
287
- }
288
- function createTextStyle(enabled) {
289
- const paint = (code, value) => enabled ? `\u001b[${code}m${value}\u001b[0m` : value;
290
- return {
291
- bold: (value) => paint(1, value),
292
- brightCyan: (value) => paint(96, value),
293
- cyan: (value) => paint(36, value),
294
- dim: (value) => paint(2, value),
295
- green: (value) => paint(32, value),
296
- red: (value) => paint(31, value),
297
- yellow: (value) => paint(33, value)
298
- };
299
- }
300
- function formatCurrentWork(currentWork) {
301
- return {
302
- state: currentWork.state,
303
- type: currentWork.type,
304
- title: currentWork.title,
305
- status: currentWork.status,
306
- runId: currentWork.runId,
307
- completed: currentWork.completed,
308
- remaining: currentWork.remaining,
309
- total: currentWork.total,
310
- nextStep: currentWork.nextStep
311
- ? { title: currentWork.nextStep.title }
312
- : null
313
- };
314
- }
315
- function formatFindings(findings) {
316
- const selectFinding = (finding) => ({
317
- id: finding.id,
318
- severity: finding.severity,
319
- status: finding.status,
320
- title: finding.title
321
- });
322
- return {
323
- total: findings.total,
324
- byStatus: findings.byStatus,
325
- active: findings.items
326
- .filter((finding) => finding.status === "unverified" ||
327
- finding.status === "open" ||
328
- finding.status === "fixed")
329
- .map(selectFinding),
330
- blockers: findings.blockers.map(selectFinding)
331
- };
332
- }
333
- function selectCompletion(currentWork, findings, git, stageMarkdown, review, config) {
334
- if (currentWork.state === "idle") {
335
- return { state: "idle", blockers: [] };
336
- }
337
- if (currentWork.state === "malformed") {
338
- return {
339
- state: "blocked",
340
- blockers: ["current work contract is malformed"]
341
- };
342
- }
343
- const blockers = [];
344
- if (currentWork.remaining > 0) {
345
- blockers.push(`${currentWork.remaining} checklist steps remain`);
346
- }
347
- if (findings.blockers.length > 0) {
348
- blockers.push(`blocking findings ${findings.blockers.map((finding) => finding.id).join(", ")}`);
349
- }
350
- if (!git.available) {
351
- blockers.push("Git repository is unavailable");
352
- }
353
- if (review && config) {
354
- const isGateActive = config.qualityGates.regular.independentReview !== "manual";
355
- if (review.state === "malformed") {
356
- blockers.push("independent review record is malformed");
357
- }
358
- else if (review.state === "changes-requested") {
359
- blockers.push("independent review requested changes");
360
- }
361
- else if (review.state === "pending") {
362
- blockers.push("independent review is pending");
363
- }
364
- else if (isGateActive && review.state === "none") {
365
- blockers.push("independent review is required");
366
- }
367
- else if (review.state === "passed" && review.freshness !== "current") {
368
- blockers.push("independent review receipt is stale");
369
- }
370
- }
371
- if (blockers.length > 0) {
372
- return { state: "blocked", blockers };
373
- }
374
- const isVerified = Boolean(stageMarkdown &&
375
- (/ready\s+for\s+\/complete|Passed\s+->\s+Ready|\/complete/i.test(stageMarkdown) ||
376
- /Current Stage:\s*check\s*\(Passed/i.test(stageMarkdown)));
377
- if (isVerified ||
378
- currentWork.status?.toLowerCase().includes("verified") ||
379
- currentWork.status?.toLowerCase().includes("ready")) {
380
- return {
381
- state: "ready",
382
- blockers: []
383
- };
384
- }
385
- return {
386
- state: "needs_verification",
387
- blockers: ["verification evidence is not persisted"]
388
- };
389
- }
390
- function selectNextAction(currentWork, findings, stageMarkdown) {
391
- if (currentWork.state === "malformed") {
392
- return {
393
- command: "/doctor",
394
- reason: "Repair the stage or spec contract before continuing."
395
- };
396
- }
397
- // 1. Authoritative Next Action from current-stage.md
398
- if (stageMarkdown) {
399
- const stageNextActionMatch = stageMarkdown.match(/^-\s+(?:\*\*)?Next Action(?:\*\*)?:\s*`?(\/[^\r\n`]+)`?/im);
400
- const stageNextAction = stageNextActionMatch?.[1]?.trim();
401
- const rawStage = stageMarkdown.match(/^-\s+(?:\*\*)?Current Stage(?:\*\*)?:\s*`?([^\r\n`]+)`?/im)?.[1]?.trim();
402
- if (stageNextAction &&
403
- !stageNextAction.toLowerCase().includes("none") &&
404
- !stageNextAction.toLowerCase().startsWith("/idle")) {
405
- const isReadyForComplete = stageNextAction.startsWith("/complete") ||
406
- /ready\s+for\s+\/complete/i.test(rawStage || "");
407
- const reason = isReadyForComplete
408
- ? "Verification passed. Ready to complete, archive, and merge."
409
- : `Continue active stage at ${rawStage || stageNextAction}.`;
410
- return {
411
- command: stageNextAction,
412
- reason
413
- };
414
- }
415
- }
416
- if (currentWork.state === "active") {
417
- if (currentWork.nextStep) {
418
- const runSuffix = currentWork.runId ? ` ${currentWork.runId}` : "";
419
- return {
420
- command: `/implement${runSuffix}`,
421
- reason: `Resume active work with ${currentWork.nextStep.title}.`
422
- };
423
- }
424
- const openBlocker = findings.blockers.find((finding) => finding.status === "open");
425
- if (openBlocker) {
426
- return {
427
- command: "/implement",
428
- reason: `Repair blocking finding ${openBlocker.id}.`
429
- };
430
- }
431
- const fixedBlocker = findings.blockers.find((finding) => finding.status === "fixed");
432
- if (fixedBlocker) {
433
- return {
434
- command: "/check",
435
- reason: `Re-verify fixed finding ${fixedBlocker.id}.`
436
- };
437
- }
438
- return {
439
- command: "/check",
440
- reason: "All checklist steps are completed; run QA verification."
441
- };
442
- }
443
- const openBlocker = findings.blockers.find((finding) => finding.status === "open");
444
- if (openBlocker) {
445
- return {
446
- command: `/fix ${openBlocker.id}`,
447
- reason: "Start a tracked repair for the blocking finding."
448
- };
449
- }
450
- return {
451
- command: "/feature",
452
- reason: "Workspace is idle. Ready to spec or discover a new feature."
453
- };
454
- }
455
- function findDrift(currentWork, git) {
456
- if (currentWork.state !== "active") {
457
- return [];
458
- }
459
- const warnings = [];
460
- if (git.available && (git.branch === "main" || git.branch === "master")) {
461
- warnings.push({
462
- code: "active_work_on_default_branch",
463
- message: `Active ${currentWork.type || "work"} is running on the default branch.`
464
- });
465
- }
466
- if (currentWork.total > 0 && currentWork.remaining === 0) {
467
- warnings.push({
468
- code: "completed_steps_not_released",
469
- message: "All checklist steps are checked, but run has not been completed or verified."
470
- });
471
- }
472
- return warnings;
11
+ const engine = new ProjectStatusEngine();
12
+ return engine.shouldUseColor(isTTY, environment);
473
13
  }
474
14
  export { formatHumanStatus, readProjectStatus, shouldUseColor };
475
15
  //# sourceMappingURL=status.js.map