chief-clancy 0.5.12 → 0.7.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 (102) hide show
  1. package/README.md +15 -8
  2. package/dist/bundle/clancy-afk.js +6 -2
  3. package/dist/bundle/clancy-once.js +71 -48
  4. package/dist/installer/hook-installer/hook-installer.d.ts +2 -0
  5. package/dist/installer/hook-installer/hook-installer.d.ts.map +1 -1
  6. package/dist/installer/hook-installer/hook-installer.js +36 -1
  7. package/dist/installer/hook-installer/hook-installer.js.map +1 -1
  8. package/dist/installer/install.js +16 -1
  9. package/dist/installer/install.js.map +1 -1
  10. package/dist/schemas/env.d.ts +36 -0
  11. package/dist/schemas/env.d.ts.map +1 -1
  12. package/dist/schemas/env.js +11 -0
  13. package/dist/schemas/env.js.map +1 -1
  14. package/dist/schemas/github-issues.d.ts +6 -0
  15. package/dist/schemas/github-issues.d.ts.map +1 -1
  16. package/dist/schemas/github-issues.js +3 -0
  17. package/dist/schemas/github-issues.js.map +1 -1
  18. package/dist/schemas/jira.d.ts +21 -0
  19. package/dist/schemas/jira.d.ts.map +1 -1
  20. package/dist/schemas/jira.js +18 -0
  21. package/dist/schemas/jira.js.map +1 -1
  22. package/dist/schemas/linear.d.ts +41 -0
  23. package/dist/schemas/linear.d.ts.map +1 -1
  24. package/dist/schemas/linear.js +34 -0
  25. package/dist/schemas/linear.js.map +1 -1
  26. package/dist/scripts/afk/afk.d.ts.map +1 -1
  27. package/dist/scripts/afk/afk.js +28 -0
  28. package/dist/scripts/afk/afk.js.map +1 -1
  29. package/dist/scripts/afk/report/report.d.ts +47 -0
  30. package/dist/scripts/afk/report/report.d.ts.map +1 -0
  31. package/dist/scripts/afk/report/report.js +194 -0
  32. package/dist/scripts/afk/report/report.js.map +1 -0
  33. package/dist/scripts/board/github/github.d.ts +33 -3
  34. package/dist/scripts/board/github/github.d.ts.map +1 -1
  35. package/dist/scripts/board/github/github.js +112 -27
  36. package/dist/scripts/board/github/github.js.map +1 -1
  37. package/dist/scripts/board/jira/jira.d.ts +36 -4
  38. package/dist/scripts/board/jira/jira.d.ts.map +1 -1
  39. package/dist/scripts/board/jira/jira.js +138 -65
  40. package/dist/scripts/board/jira/jira.js.map +1 -1
  41. package/dist/scripts/board/linear/linear.d.ts +32 -5
  42. package/dist/scripts/board/linear/linear.d.ts.map +1 -1
  43. package/dist/scripts/board/linear/linear.js +135 -17
  44. package/dist/scripts/board/linear/linear.js.map +1 -1
  45. package/dist/scripts/once/board-ops/board-ops.d.ts.map +1 -1
  46. package/dist/scripts/once/board-ops/board-ops.js +1 -1
  47. package/dist/scripts/once/board-ops/board-ops.js.map +1 -1
  48. package/dist/scripts/once/cost/cost.d.ts +10 -0
  49. package/dist/scripts/once/cost/cost.d.ts.map +1 -0
  50. package/dist/scripts/once/cost/cost.js +23 -0
  51. package/dist/scripts/once/cost/cost.js.map +1 -0
  52. package/dist/scripts/once/deliver/deliver.d.ts.map +1 -1
  53. package/dist/scripts/once/deliver/deliver.js +18 -1
  54. package/dist/scripts/once/deliver/deliver.js.map +1 -1
  55. package/dist/scripts/once/fetch-ticket/fetch-ticket.d.ts +19 -1
  56. package/dist/scripts/once/fetch-ticket/fetch-ticket.d.ts.map +1 -1
  57. package/dist/scripts/once/fetch-ticket/fetch-ticket.js +93 -29
  58. package/dist/scripts/once/fetch-ticket/fetch-ticket.js.map +1 -1
  59. package/dist/scripts/once/lock/lock.d.ts +17 -0
  60. package/dist/scripts/once/lock/lock.d.ts.map +1 -0
  61. package/dist/scripts/once/lock/lock.js +70 -0
  62. package/dist/scripts/once/lock/lock.js.map +1 -0
  63. package/dist/scripts/once/once.d.ts.map +1 -1
  64. package/dist/scripts/once/once.js +100 -4
  65. package/dist/scripts/once/once.js.map +1 -1
  66. package/dist/scripts/once/resume/resume.d.ts +24 -0
  67. package/dist/scripts/once/resume/resume.d.ts.map +1 -0
  68. package/dist/scripts/once/resume/resume.js +159 -0
  69. package/dist/scripts/once/resume/resume.js.map +1 -0
  70. package/dist/scripts/shared/format/format.d.ts.map +1 -1
  71. package/dist/scripts/shared/format/format.js +6 -1
  72. package/dist/scripts/shared/format/format.js.map +1 -1
  73. package/dist/scripts/shared/progress/progress.d.ts +18 -2
  74. package/dist/scripts/shared/progress/progress.d.ts.map +1 -1
  75. package/dist/scripts/shared/progress/progress.js +31 -4
  76. package/dist/scripts/shared/progress/progress.js.map +1 -1
  77. package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts +2 -1
  78. package/dist/scripts/shared/pull-request/pr-body/pr-body.d.ts.map +1 -1
  79. package/dist/scripts/shared/pull-request/pr-body/pr-body.js +10 -1
  80. package/dist/scripts/shared/pull-request/pr-body/pr-body.js.map +1 -1
  81. package/dist/types/remote.d.ts +1 -1
  82. package/dist/types/remote.d.ts.map +1 -1
  83. package/hooks/clancy-branch-guard.js +129 -0
  84. package/hooks/clancy-check-update.js +43 -0
  85. package/hooks/clancy-context-monitor.js +134 -46
  86. package/hooks/clancy-post-compact.js +53 -0
  87. package/hooks/package.json +3 -0
  88. package/package.json +3 -2
  89. package/src/agents/devils-advocate.md +53 -0
  90. package/src/agents/verification-gate.md +128 -0
  91. package/src/roles/planner/workflows/approve-plan.md +2 -2
  92. package/src/roles/reviewer/workflows/logs.md +9 -6
  93. package/src/roles/setup/commands/help.md +7 -0
  94. package/src/roles/setup/workflows/init.md +111 -6
  95. package/src/roles/setup/workflows/scaffold.md +57 -0
  96. package/src/roles/setup/workflows/settings.md +145 -0
  97. package/src/roles/setup/workflows/update.md +18 -0
  98. package/src/roles/strategist/commands/approve-brief.md +20 -0
  99. package/src/roles/strategist/commands/brief.md +27 -0
  100. package/src/roles/strategist/workflows/approve-brief.md +763 -0
  101. package/src/roles/strategist/workflows/brief.md +732 -0
  102. package/src/templates/CLAUDE.md +8 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Unified once orchestrator — replaces all three `clancy-once-*.sh` scripts.
3
3
  *
4
- * Full lifecycle: preflight → detect board → [epic completion check] →
4
+ * Full lifecycle: lock check → preflight → detect board → [epic completion check] →
5
5
  * fetch ticket → compute branches → [dry-run gate] → feasibility check →
6
- * create branch → transition In Progress → invoke Claude → push + PR →
7
- * log → notify.
6
+ * create branch → write lock → transition In Progress → invoke Claude → push + PR →
7
+ * cost log → delete lock → notify.
8
8
  *
9
9
  * All errors exit with code 0 (not 1). This is intentional — the AFK runner
10
10
  * detects stop conditions by parsing stdout, not exit codes.
@@ -23,8 +23,11 @@ import { appendProgress, countReworkCycles, findEntriesWithStatus, } from '../..
23
23
  import { buildPrompt, buildReworkPrompt, } from '../../scripts/shared/prompt/prompt.js';
24
24
  import { bold, dim, green, red, yellow } from '../../utils/ansi/ansi.js';
25
25
  import { fetchEpicChildrenStatus, pingBoard, sharedEnv, transitionToStatus, validateInputs, } from './board-ops/board-ops.js';
26
+ import { appendCostEntry } from './cost/cost.js';
26
27
  import { deliverEpicToBase, deliverViaPullRequest, ensureEpicBranch, } from './deliver/deliver.js';
27
28
  import { fetchTicket } from './fetch-ticket/fetch-ticket.js';
29
+ import { deleteLock, deleteVerifyAttempt, isLockStale, readLock, writeLock, } from './lock/lock.js';
30
+ import { detectResume, executeResume } from './resume/resume.js';
28
31
  import { fetchReworkFromPrReview, postReworkActions } from './rework/rework.js';
29
32
  // ─── Main orchestrator ───────────────────────────────────────────────────────
30
33
  /**
@@ -46,6 +49,55 @@ export async function run(argv) {
46
49
  console.log(dim('│') + dim(' "Let\'s roll." ') + dim('│'));
47
50
  console.log(dim('└──────────────────────────────────────┘'));
48
51
  console.log('');
52
+ // ── 0. Startup lock check ──────────────────────────────────────────────
53
+ // If a lock file exists from a previous run, check if it's still active
54
+ // or stale (crashed session). Only proceed if we can claim the lock.
55
+ let lockOwner = false;
56
+ const existingLock = readLock(process.cwd());
57
+ if (existingLock) {
58
+ if (!isLockStale(existingLock)) {
59
+ // Another active session — abort
60
+ console.log(yellow(`⚠ Another Clancy session is running (PID ${existingLock.pid}, ticket ${existingLock.ticketKey}). Aborting.`));
61
+ return;
62
+ }
63
+ // Stale lock — clean up and check for resume
64
+ console.log(dim(` Stale lock found (PID ${existingLock.pid}, ticket ${existingLock.ticketKey}). Cleaning up...`));
65
+ deleteLock(process.cwd());
66
+ deleteVerifyAttempt(process.cwd());
67
+ // Resume detection — check if the ticket branch has recoverable work
68
+ try {
69
+ const resumeInfo = detectResume(existingLock);
70
+ if (resumeInfo) {
71
+ const isAfk = process.env.CLANCY_AFK_MODE === '1';
72
+ if (isAfk) {
73
+ console.log(yellow(` ↻ Resuming crashed session: ${existingLock.ticketKey} on ${resumeInfo.branch}`));
74
+ // Need board config for PR creation — run preflight + detect board
75
+ const preflight = runPreflight(process.cwd());
76
+ if (preflight.ok) {
77
+ const boardResult = detectBoard(preflight.env);
78
+ if (typeof boardResult !== 'string') {
79
+ const resumed = await executeResume(boardResult, existingLock, resumeInfo);
80
+ if (resumed) {
81
+ console.log(green(` ✓ Resumed ${existingLock.ticketKey}`));
82
+ // Return after resume — one ticket per invocation.
83
+ // The AFK runner will start the next iteration for a fresh ticket.
84
+ return;
85
+ }
86
+ }
87
+ }
88
+ }
89
+ else {
90
+ console.log(yellow(` Found in-progress work on ${resumeInfo.branch}.` +
91
+ (resumeInfo.hasUncommitted ? ' Has uncommitted changes.' : '') +
92
+ (resumeInfo.hasUnpushed ? ' Has unpushed commits.' : '')));
93
+ console.log(dim(' Run in AFK mode (CLANCY_AFK_MODE=1) to auto-resume, or handle manually.'));
94
+ }
95
+ }
96
+ }
97
+ catch {
98
+ // Best-effort — resume detection failure shouldn't block the run
99
+ }
100
+ }
49
101
  let originalBranch;
50
102
  try {
51
103
  // 1. Preflight
@@ -262,6 +314,24 @@ export async function run(argv) {
262
314
  checkout(baseBranch);
263
315
  checkout(ticketBranch, true);
264
316
  }
317
+ // 10a. Write lock file — branch is now known
318
+ try {
319
+ writeLock(process.cwd(), {
320
+ pid: process.pid,
321
+ ticketKey: ticket.key,
322
+ ticketTitle: ticket.title,
323
+ ticketBranch: ticketBranch,
324
+ targetBranch: effectiveTarget,
325
+ parentKey: ticket.parentInfo,
326
+ description: (ticket.description ?? '').slice(0, 2000),
327
+ startedAt: new Date().toISOString(),
328
+ });
329
+ lockOwner = true;
330
+ }
331
+ catch {
332
+ // Best-effort — continue without crash protection
333
+ console.log(dim(' (warning: could not write lock file — crash recovery disabled)'));
334
+ }
265
335
  // 11. Transition to In Progress (best-effort)
266
336
  const statusInProgress = config.env.CLANCY_STATUS_IN_PROGRESS;
267
337
  if (statusInProgress) {
@@ -292,7 +362,15 @@ export async function run(argv) {
292
362
  tdd,
293
363
  });
294
364
  }
295
- const claudeOk = invokeClaudeSession(prompt, config.env.CLANCY_MODEL);
365
+ // Set CLANCY_ONCE_ACTIVE for hooks (verification gate, etc.)
366
+ process.env.CLANCY_ONCE_ACTIVE = '1';
367
+ let claudeOk;
368
+ try {
369
+ claudeOk = invokeClaudeSession(prompt, config.env.CLANCY_MODEL);
370
+ }
371
+ finally {
372
+ delete process.env.CLANCY_ONCE_ACTIVE;
373
+ }
296
374
  if (!claudeOk) {
297
375
  console.log(yellow('⚠ Claude session exited with an error. Skipping merge.'));
298
376
  return;
@@ -319,6 +397,17 @@ export async function run(argv) {
319
397
  if (!delivered)
320
398
  return;
321
399
  }
400
+ // 13a. Cost logging — record duration + estimated tokens
401
+ try {
402
+ const lock = readLock(process.cwd());
403
+ if (lock) {
404
+ const tokenRate = Number(config.env.CLANCY_TOKEN_RATE ?? '6600');
405
+ appendCostEntry(process.cwd(), ticket.key, lock.startedAt, Number.isFinite(tokenRate) && tokenRate > 0 ? tokenRate : 6600);
406
+ }
407
+ }
408
+ catch {
409
+ // Best-effort — cost logging failure shouldn't block completion
410
+ }
322
411
  const elapsed = formatDuration(Date.now() - startTime);
323
412
  console.log('');
324
413
  console.log(green(`🏁 ${ticket.key} complete`) + dim(` (${elapsed})`));
@@ -347,6 +436,13 @@ export async function run(argv) {
347
436
  }
348
437
  }
349
438
  }
439
+ finally {
440
+ // Clean up lock + verify-attempt in ALL exit paths (only if we created them)
441
+ if (lockOwner) {
442
+ deleteLock(process.cwd());
443
+ deleteVerifyAttempt(process.cwd());
444
+ }
445
+ }
350
446
  }
351
447
  // Main guard — self-execute when run directly (e.g. node .clancy/clancy-once.js)
352
448
  if (process.argv[1] &&
@@ -1 +1 @@
1
- {"version":3,"file":"once.js","sourceRoot":"","sources":["../../../src/scripts/once/once.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"once.js","sourceRoot":"","sources":["../../../src/scripts/once/once.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { BoardConfig } from '../../../scripts/shared/env-schema/env-schema.js';
2
+ import type { LockData } from '../lock/lock.js';
3
+ export type ResumeInfo = {
4
+ branch: string;
5
+ hasUncommitted: boolean;
6
+ hasUnpushed: boolean;
7
+ };
8
+ /**
9
+ * Check if the ticket branch from a stale lock has recoverable work.
10
+ *
11
+ * @param lock - The stale lock data.
12
+ * @returns Resume info if the branch has work to recover, undefined otherwise.
13
+ */
14
+ export declare function detectResume(lock: LockData): ResumeInfo | undefined;
15
+ /**
16
+ * Resume a crashed session: commit uncommitted changes, push, and create a PR.
17
+ *
18
+ * @param config - Board configuration.
19
+ * @param lock - The stale lock data.
20
+ * @param resumeInfo - The resume detection result.
21
+ * @returns `true` if resume succeeded.
22
+ */
23
+ export declare function executeResume(config: BoardConfig, lock: LockData, resumeInfo: ResumeInfo): Promise<boolean>;
24
+ //# sourceMappingURL=resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../../src/scripts/once/resume/resume.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAa7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAKhD,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAsEnE;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,OAAO,CAAC,CAuHlB"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Resume detection and execution for crash recovery.
3
+ *
4
+ * After a stale lock is cleaned up, checks if the ticket branch exists
5
+ * locally with uncommitted or unpushed work. If so, offers to resume
6
+ * (automatic in AFK mode, interactive otherwise).
7
+ */
8
+ import { execFileSync } from 'node:child_process';
9
+ import { branchExists, checkout, hasUncommittedChanges, pushBranch, } from '../../../scripts/shared/git-ops/git-ops.js';
10
+ import { appendProgress } from '../../../scripts/shared/progress/progress.js';
11
+ import { buildPrBody } from '../../../scripts/shared/pull-request/pr-body/pr-body.js';
12
+ import { detectRemote } from '../../../scripts/shared/remote/remote.js';
13
+ import { dim, green, yellow } from '../../../utils/ansi/ansi.js';
14
+ import { sharedEnv } from '../board-ops/board-ops.js';
15
+ import { attemptPrCreation } from '../pr-creation/pr-creation.js';
16
+ // ─── Detection ───────────────────────────────────────────────────────────────
17
+ /**
18
+ * Check if the ticket branch from a stale lock has recoverable work.
19
+ *
20
+ * @param lock - The stale lock data.
21
+ * @returns Resume info if the branch has work to recover, undefined otherwise.
22
+ */
23
+ export function detectResume(lock) {
24
+ const branch = lock.ticketBranch;
25
+ if (!branchExists(branch)) {
26
+ return undefined;
27
+ }
28
+ // Save current branch, switch to the ticket branch to inspect it
29
+ let previousBranch;
30
+ try {
31
+ previousBranch = execFileSync('git', ['rev-parse', '--abbrev-ref', 'HEAD'], {
32
+ encoding: 'utf8',
33
+ }).trim();
34
+ }
35
+ catch {
36
+ return undefined;
37
+ }
38
+ try {
39
+ checkout(branch);
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ let uncommitted = false;
45
+ let unpushed = false;
46
+ try {
47
+ uncommitted = hasUncommittedChanges();
48
+ }
49
+ catch {
50
+ // Ignore — treat as no uncommitted changes
51
+ }
52
+ try {
53
+ // Check for unpushed commits (commits on branch not on remote)
54
+ const log = execFileSync('git', ['log', `origin/${branch}..${branch}`, '--oneline'], { encoding: 'utf8' }).trim();
55
+ unpushed = log.length > 0;
56
+ }
57
+ catch {
58
+ // Remote branch may not exist — check if there are any commits ahead of target
59
+ try {
60
+ const log = execFileSync('git', ['log', `origin/${lock.targetBranch}..${branch}`, '--oneline'], { encoding: 'utf8' }).trim();
61
+ unpushed = log.length > 0;
62
+ }
63
+ catch {
64
+ // Ignore — treat as no unpushed commits
65
+ }
66
+ }
67
+ // Restore original branch
68
+ try {
69
+ checkout(previousBranch);
70
+ }
71
+ catch {
72
+ // Best-effort
73
+ }
74
+ if (!uncommitted && !unpushed) {
75
+ return undefined;
76
+ }
77
+ return { branch, hasUncommitted: uncommitted, hasUnpushed: unpushed };
78
+ }
79
+ // ─── Execution ───────────────────────────────────────────────────────────────
80
+ /**
81
+ * Resume a crashed session: commit uncommitted changes, push, and create a PR.
82
+ *
83
+ * @param config - Board configuration.
84
+ * @param lock - The stale lock data.
85
+ * @param resumeInfo - The resume detection result.
86
+ * @returns `true` if resume succeeded.
87
+ */
88
+ export async function executeResume(config, lock, resumeInfo) {
89
+ try {
90
+ checkout(resumeInfo.branch);
91
+ // Commit uncommitted changes
92
+ // Note: git add -A stages everything. The credential guard hook doesn't
93
+ // run here (direct git, not via Claude). Acceptable for crash recovery —
94
+ // the branch was already in-flight from a Claude session.
95
+ if (resumeInfo.hasUncommitted) {
96
+ try {
97
+ execFileSync('git', ['add', '-A'], { encoding: 'utf8' });
98
+ execFileSync('git', ['commit', '-m', `fix(${lock.ticketKey}): resume after crash`], { encoding: 'utf8' });
99
+ console.log(green(` ✓ Committed in-progress work for ${lock.ticketKey}`));
100
+ }
101
+ catch {
102
+ console.log(yellow(` ⚠ Could not commit changes on ${resumeInfo.branch}`));
103
+ return false;
104
+ }
105
+ }
106
+ // Push
107
+ const pushed = pushBranch(resumeInfo.branch);
108
+ if (!pushed) {
109
+ console.log(yellow(` ⚠ Could not push ${resumeInfo.branch} to origin`));
110
+ return false;
111
+ }
112
+ console.log(green(` ✓ Pushed ${resumeInfo.branch}`));
113
+ // Attempt PR creation
114
+ const platformOverride = sharedEnv(config).CLANCY_GIT_PLATFORM;
115
+ const remote = detectRemote(platformOverride);
116
+ const prTitle = `feat(${lock.ticketKey}): ${lock.ticketTitle}`;
117
+ const prBody = buildPrBody(config, {
118
+ key: lock.ticketKey,
119
+ title: lock.ticketTitle,
120
+ description: '',
121
+ provider: config.provider,
122
+ }, lock.targetBranch);
123
+ if (remote.host !== 'none' &&
124
+ remote.host !== 'unknown' &&
125
+ remote.host !== 'azure') {
126
+ const pr = await attemptPrCreation(config, remote, resumeInfo.branch, lock.targetBranch, prTitle, prBody);
127
+ if (pr?.ok) {
128
+ console.log(green(` ✓ PR created: ${pr.url}`));
129
+ appendProgress(process.cwd(), lock.ticketKey, lock.ticketTitle, 'RESUMED', pr.number, lock.parentKey && lock.parentKey !== 'none'
130
+ ? lock.parentKey
131
+ : undefined);
132
+ }
133
+ else {
134
+ console.log(dim(' Branch pushed — create a PR manually.'));
135
+ appendProgress(process.cwd(), lock.ticketKey, lock.ticketTitle, 'RESUMED', undefined, lock.parentKey && lock.parentKey !== 'none'
136
+ ? lock.parentKey
137
+ : undefined);
138
+ }
139
+ }
140
+ else {
141
+ appendProgress(process.cwd(), lock.ticketKey, lock.ticketTitle, 'RESUMED', undefined, lock.parentKey && lock.parentKey !== 'none'
142
+ ? lock.parentKey
143
+ : undefined);
144
+ }
145
+ // Switch back to target branch
146
+ try {
147
+ checkout(lock.targetBranch);
148
+ }
149
+ catch {
150
+ // Best-effort
151
+ }
152
+ return true;
153
+ }
154
+ catch (err) {
155
+ console.log(yellow(` ⚠ Resume failed: ${err instanceof Error ? err.message : String(err)}`));
156
+ return false;
157
+ }
158
+ }
159
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/scripts/once/resume/resume.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/format/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMjD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/format/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAejD"}
@@ -13,6 +13,11 @@ export function formatDuration(ms) {
13
13
  return `${secs}s`;
14
14
  const mins = Math.floor(secs / 60);
15
15
  const remSecs = secs % 60;
16
- return remSecs > 0 ? `${mins}m ${remSecs}s` : `${mins}m`;
16
+ if (mins < 60) {
17
+ return remSecs > 0 ? `${mins}m ${remSecs}s` : `${mins}m`;
18
+ }
19
+ const hours = Math.floor(mins / 60);
20
+ const remMins = mins % 60;
21
+ return remMins > 0 ? `${hours}h ${remMins}m` : `${hours}h`;
17
22
  }
18
23
  //# sourceMappingURL=format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/scripts/shared/format/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,GAAG,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAC1B,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/scripts/shared/format/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,EAAE;QAAE,OAAO,GAAG,IAAI,GAAG,CAAC;IAEjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAE1B,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QACd,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IAC3D,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;IAE1B,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;AAC7D,CAAC"}
@@ -21,8 +21,8 @@ export declare function formatTimestamp(date: Date): string;
21
21
  * Creates the file and parent directories if they don't exist.
22
22
  *
23
23
  * @param projectRoot - The root directory of the project.
24
- * @param key - The ticket key (e.g., `'PROJ-123'`, `'#42'`).
25
- * @param summary - The ticket summary/title.
24
+ * @param key - The ticket key (e.g., `'PROJ-123'`, `'#42'`) or brief slug (e.g., `'add-dark-mode'`) for BRIEF/APPROVE_BRIEF statuses.
25
+ * @param summary - The ticket summary/title, or detail text for brief entries (e.g., `'4 proposed tickets'`).
26
26
  * @param status - The completion status.
27
27
  *
28
28
  * @example
@@ -32,9 +32,25 @@ export declare function formatTimestamp(date: Date): string;
32
32
  *
33
33
  * appendProgress('/path/to/project', 'PROJ-101', 'Add login', 'PR_CREATED', 42, 'PROJ-100');
34
34
  * // Appends: "2024-01-15 14:30 | PROJ-101 | Add login | PR_CREATED | pr:42 | parent:PROJ-100"
35
+ *
36
+ * appendProgress('/path/to/project', 'add-dark-mode', '4 proposed tickets', 'BRIEF');
37
+ * // Appends: "2024-01-15 14:30 | BRIEF | add-dark-mode | 4 proposed tickets"
35
38
  * ```
36
39
  */
37
40
  export declare function appendProgress(projectRoot: string, key: string, summary: string, status: ProgressStatus, prNumber?: number, parent?: string): void;
41
+ /**
42
+ * Parse a progress file into an array of entries.
43
+ *
44
+ * Each line is expected to follow the format:
45
+ * `YYYY-MM-DD HH:MM | KEY | summary | STATUS [| pr:N] [| parent:KEY]`
46
+ *
47
+ * The `pr:` and `parent:` suffixes can appear in any order after the status.
48
+ * Uses named-prefix matching to identify these fields rather than positional
49
+ * indexing, ensuring backward compatibility with entries that lack them.
50
+ *
51
+ * Lines that don't match the minimum format are silently skipped.
52
+ */
53
+ export declare function parseProgressFile(projectRoot: string): ProgressEntry[];
38
54
  /**
39
55
  * Find the last progress entry for a given ticket key.
40
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/progress/progress.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQlD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAWN;AAgFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,SAAS,CAY3B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,aAAa,EAAE,CASjB"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/progress/progress.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQlD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAoBN;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE,CAoFtE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,SAAS,CAY3B;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,cAAc,GACrB,aAAa,EAAE,CASjB"}
@@ -26,8 +26,8 @@ export function formatTimestamp(date) {
26
26
  * Creates the file and parent directories if they don't exist.
27
27
  *
28
28
  * @param projectRoot - The root directory of the project.
29
- * @param key - The ticket key (e.g., `'PROJ-123'`, `'#42'`).
30
- * @param summary - The ticket summary/title.
29
+ * @param key - The ticket key (e.g., `'PROJ-123'`, `'#42'`) or brief slug (e.g., `'add-dark-mode'`) for BRIEF/APPROVE_BRIEF statuses.
30
+ * @param summary - The ticket summary/title, or detail text for brief entries (e.g., `'4 proposed tickets'`).
31
31
  * @param status - The completion status.
32
32
  *
33
33
  * @example
@@ -37,12 +37,22 @@ export function formatTimestamp(date) {
37
37
  *
38
38
  * appendProgress('/path/to/project', 'PROJ-101', 'Add login', 'PR_CREATED', 42, 'PROJ-100');
39
39
  * // Appends: "2024-01-15 14:30 | PROJ-101 | Add login | PR_CREATED | pr:42 | parent:PROJ-100"
40
+ *
41
+ * appendProgress('/path/to/project', 'add-dark-mode', '4 proposed tickets', 'BRIEF');
42
+ * // Appends: "2024-01-15 14:30 | BRIEF | add-dark-mode | 4 proposed tickets"
40
43
  * ```
41
44
  */
42
45
  export function appendProgress(projectRoot, key, summary, status, prNumber, parent) {
43
46
  const filePath = join(projectRoot, '.clancy', 'progress.txt');
44
47
  mkdirSync(dirname(filePath), { recursive: true });
45
48
  const timestamp = formatTimestamp(new Date());
49
+ // BRIEF/APPROVE_BRIEF use slug-based format: timestamp | STATUS | slug | detail
50
+ if (status === 'BRIEF' || status === 'APPROVE_BRIEF') {
51
+ const line = `${timestamp} | ${status} | ${key} | ${summary}\n`;
52
+ appendFileSync(filePath, line, 'utf8');
53
+ return;
54
+ }
55
+ // Standard format: timestamp | key | summary | STATUS [| pr:N] [| parent:KEY]
46
56
  const prSuffix = prNumber != null ? ` | pr:${prNumber}` : '';
47
57
  const parentSuffix = parent ? ` | parent:${parent}` : '';
48
58
  const line = `${timestamp} | ${key} | ${summary} | ${status}${prSuffix}${parentSuffix}\n`;
@@ -60,7 +70,7 @@ export function appendProgress(projectRoot, key, summary, status, prNumber, pare
60
70
  *
61
71
  * Lines that don't match the minimum format are silently skipped.
62
72
  */
63
- function parseProgressFile(projectRoot) {
73
+ export function parseProgressFile(projectRoot) {
64
74
  const filePath = join(projectRoot, '.clancy', 'progress.txt');
65
75
  let content;
66
76
  try {
@@ -77,8 +87,21 @@ function parseProgressFile(projectRoot) {
77
87
  const parts = trimmed.split(' | ');
78
88
  if (parts.length < 4)
79
89
  continue;
80
- // Fixed positions: timestamp, key, then everything else
90
+ // Fixed position: timestamp is always first
81
91
  const timestamp = parts[0];
92
+ // BRIEF / APPROVE_BRIEF entries use a slug-based format:
93
+ // timestamp | STATUS | slug | detail
94
+ // Standard entries use:
95
+ // timestamp | key | summary | STATUS [| pr:N] [| parent:KEY]
96
+ if (parts[1] === 'BRIEF' || parts[1] === 'APPROVE_BRIEF') {
97
+ entries.push({
98
+ timestamp,
99
+ key: parts[2],
100
+ summary: parts.slice(3).join(' | '),
101
+ status: parts[1],
102
+ });
103
+ continue;
104
+ }
82
105
  const key = parts[1];
83
106
  // Scan remaining segments for named prefixes and status
84
107
  let status;
@@ -108,6 +131,10 @@ function parseProgressFile(projectRoot) {
108
131
  }
109
132
  if (!status)
110
133
  continue;
134
+ // Backward compat: old progress.txt entries may use 'APPROVE' (renamed to APPROVE_PLAN in v0.6.0)
135
+ if (status === 'APPROVE') {
136
+ status = 'APPROVE_PLAN';
137
+ }
111
138
  entries.push({
112
139
  timestamp,
113
140
  key,
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../src/scripts/shared/progress/progress.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAc1C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzD,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAC5B,WAAmB,EACnB,GAAW,EACX,OAAe,EACf,MAAsB,EACtB,QAAiB,EACjB,MAAe;IAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAE9D,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,SAAS,MAAM,GAAG,MAAM,OAAO,MAAM,MAAM,GAAG,QAAQ,GAAG,YAAY,IAAI,CAAC;IAE1F,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAE9D,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAoB,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAE/B,wDAAwD;QACxD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAEtB,wDAAwD;QACxD,IAAI,MAAkC,CAAC;QACvC,IAAI,QAA4B,CAAC;QACjC,IAAI,MAA0B,CAAC;QAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAEnD,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,WAAW,EAAE,CAAC;gBACvB,MAAM,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;YAC3B,CAAC;iBAAM,IACL,CAAC,IAAI,CAAC;gBACN,CAAC,MAAM;gBACP,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE;gBACjC,OAAO,CAAC,MAAM,GAAG,CAAC,EAClB,CAAC;gBACD,gEAAgE;gBAChE,MAAM,GAAG,OAAyB,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,OAAO,CAAC,IAAI,CAAC;YACX,SAAS;YACT,GAAG;YACH,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YACjC,MAAM;YACN,GAAG,CAAC,QAAQ,IAAI,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,WAAmB,EACnB,GAAW;IAEX,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAEjC,IAAI,IAA+B,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YACvC,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB,EAAE,GAAW;IAChE,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAEjC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACpE,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,WAAmB,EACnB,MAAsB;IAEtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAyB,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../../../src/scripts/shared/progress/progress.ts"],"names":[],"mappings":"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"}
@@ -23,9 +23,10 @@ export declare function isEpicBranch(targetBranch: string): boolean;
23
23
  * @param config - The board configuration.
24
24
  * @param ticket - The ticket being implemented.
25
25
  * @param targetBranch - The branch the PR targets (used to determine `Closes` vs `Part of`).
26
+ * @param verificationWarning - Optional warning text when verification checks failed after max retries. Included as a `## Verification Warning` section before the footer.
26
27
  * @returns The PR body as a markdown string.
27
28
  */
28
- export declare function buildPrBody(config: BoardConfig, ticket: Ticket, targetBranch?: string): string;
29
+ export declare function buildPrBody(config: BoardConfig, ticket: Ticket, targetBranch?: string, verificationWarning?: string): string;
29
30
  /**
30
31
  * Build the PR body for the final epic PR (epic branch → base branch).
31
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pr-body.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/pr-body/pr-body.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAmDR;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,aAAa,EAAE,GAC5B,MAAM,CAkBR"}
1
+ {"version":3,"file":"pr-body.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/shared/pull-request/pr-body/pr-body.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,EACrB,mBAAmB,CAAC,EAAE,MAAM,GAC3B,MAAM,CA4DR;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,aAAa,EAAE,GAC5B,MAAM,CAkBR"}