chief-clancy 0.3.5 → 0.3.7

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.
package/README.md CHANGED
@@ -4,6 +4,9 @@
4
4
 
5
5
  [![npm](https://img.shields.io/npm/v/chief-clancy?style=for-the-badge&color=cb3837)](https://www.npmjs.com/package/chief-clancy) [![License: MIT](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](./LICENSE) [![Tests](https://img.shields.io/badge/tests-146%20passing-brightgreen?style=for-the-badge)](docs/TESTING.md) [![GitHub Stars](https://img.shields.io/github/stars/Pushedskydiver/clancy?style=for-the-badge)](https://github.com/Pushedskydiver/clancy/stargazers)
6
6
 
7
+ > [!WARNING]
8
+ > Clancy is in early development. Expect bugs, breaking changes, and rough edges. If you hit an issue, please [open a bug report](https://github.com/Pushedskydiver/clancy/issues/new).
9
+
7
10
  ```bash
8
11
  npx chief-clancy
9
12
  ```
@@ -13326,6 +13326,21 @@ function computeTargetBranch(provider, baseBranch, parent) {
13326
13326
 
13327
13327
  // dist/scripts/shared/claude-cli/claude-cli.js
13328
13328
  import { spawnSync } from "node:child_process";
13329
+ function invokeClaudePrint(prompt, model) {
13330
+ const args = ["-p", "--dangerously-skip-permissions"];
13331
+ if (model) {
13332
+ args.push("--model", model);
13333
+ }
13334
+ const result = spawnSync("claude", args, {
13335
+ input: prompt,
13336
+ stdio: ["pipe", "pipe", "pipe"],
13337
+ encoding: "utf8"
13338
+ });
13339
+ return {
13340
+ stdout: result.stdout ?? "",
13341
+ ok: result.status === 0 && !result.error
13342
+ };
13343
+ }
13329
13344
  function invokeClaudeSession(prompt, model) {
13330
13345
  const args = ["--dangerously-skip-permissions"];
13331
13346
  if (model) {
@@ -13396,6 +13411,49 @@ function detectBoard(raw) {
13396
13411
  return "\u2717 No board detected \u2014 set Jira, GitHub, or Linear credentials in .clancy/.env";
13397
13412
  }
13398
13413
 
13414
+ // dist/scripts/shared/feasibility/feasibility.js
13415
+ function buildFeasibilityPrompt(ticket) {
13416
+ return [
13417
+ "You are evaluating whether a ticket can be implemented as pure code changes in a repository.",
13418
+ "",
13419
+ `Ticket: [${ticket.key}] ${ticket.title}`,
13420
+ "Description:",
13421
+ ticket.description,
13422
+ "",
13423
+ "Can this ticket be completed entirely through code changes committed to a git repository?",
13424
+ "",
13425
+ "Answer INFEASIBLE if the ticket requires ANY of:",
13426
+ "- Manual testing or configuration in external tools or admin panels",
13427
+ "- Access to external services, APIs, or platforms not available in the codebase",
13428
+ "- Physical, hardware, or infrastructure changes",
13429
+ "- Design assets that do not yet exist",
13430
+ "- Deployment or infrastructure changes outside the repository",
13431
+ "- Human judgment calls that require stakeholder input",
13432
+ "",
13433
+ "Answer with exactly one line in this format:",
13434
+ "FEASIBLE",
13435
+ "or",
13436
+ "INFEASIBLE: one-line reason",
13437
+ "",
13438
+ "Do not include any other text."
13439
+ ].join("\n");
13440
+ }
13441
+ function parseFeasibilityResponse(stdout) {
13442
+ const line = stdout.trim().split("\n").pop()?.trim() ?? "";
13443
+ if (/^INFEASIBLE/i.test(line)) {
13444
+ const reason = line.replace(/^INFEASIBLE:?\s*/i, "").trim() || void 0;
13445
+ return { feasible: false, reason };
13446
+ }
13447
+ return { feasible: true };
13448
+ }
13449
+ function checkFeasibility(ticket, model) {
13450
+ const prompt = buildFeasibilityPrompt(ticket);
13451
+ const { stdout, ok } = invokeClaudePrint(prompt, model);
13452
+ if (!ok)
13453
+ return { feasible: true };
13454
+ return parseFeasibilityResponse(stdout);
13455
+ }
13456
+
13399
13457
  // dist/scripts/shared/git-ops/git-ops.js
13400
13458
  import { execFileSync } from "node:child_process";
13401
13459
  function git(...args) {
@@ -13764,6 +13822,7 @@ async function transitionToStatus(config2, ticket, statusName) {
13764
13822
  }
13765
13823
  async function run(argv) {
13766
13824
  const dryRun = argv.includes("--dry-run");
13825
+ const skipFeasibility = argv.includes("--skip-feasibility");
13767
13826
  const startTime = Date.now();
13768
13827
  console.log(dim("\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510"));
13769
13828
  console.log(dim("\u2502") + bold(" \u{1F916} Clancy \u2014 once mode ") + dim("\u2502"));
@@ -13816,6 +13875,9 @@ async function run(argv) {
13816
13875
  console.log(` Blockers: ${ticket.blockers}`);
13817
13876
  }
13818
13877
  console.log(` Target branch: ${ticketBranch} \u2192 ${targetBranch}`);
13878
+ if (ticket.description) {
13879
+ console.log(` Description: ${ticket.description}`);
13880
+ }
13819
13881
  console.log(yellow("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
13820
13882
  console.log(dim(" No changes made. Remove --dry-run to run for real."));
13821
13883
  return;
@@ -13828,6 +13890,22 @@ async function run(argv) {
13828
13890
  console.log(yellow(` Blockers: ${ticket.blockers}`));
13829
13891
  }
13830
13892
  console.log("");
13893
+ if (!skipFeasibility) {
13894
+ console.log(dim(" Checking feasibility..."));
13895
+ const feasibility = checkFeasibility({
13896
+ key: ticket.key,
13897
+ title: ticket.title,
13898
+ description: ticket.description
13899
+ }, config2.env.CLANCY_MODEL);
13900
+ if (!feasibility.feasible) {
13901
+ const reason = feasibility.reason ?? "not implementable as code changes";
13902
+ console.log(yellow(`\u23ED\uFE0F Ticket skipped [${ticket.key}]: ${reason}`));
13903
+ appendProgress(process.cwd(), ticket.key, ticket.title, "SKIPPED");
13904
+ return;
13905
+ }
13906
+ console.log(green(" \u2713 Feasibility check passed"));
13907
+ }
13908
+ console.log("");
13831
13909
  originalBranch = currentBranch();
13832
13910
  ensureBranch(targetBranch, baseBranch);
13833
13911
  checkout(targetBranch);
@@ -1 +1 @@
1
- {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../src/scripts/once/once.ts"],"names":[],"mappings":"AAuPA;;;;;;;;;GASG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0NvD"}
1
+ {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../src/scripts/once/once.ts"],"names":[],"mappings":"AAwPA;;;;;;;;;GASG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuPvD"}
@@ -2,8 +2,8 @@
2
2
  * Unified once orchestrator — replaces all three `clancy-once-*.sh` scripts.
3
3
  *
4
4
  * Full lifecycle: preflight → detect board → fetch ticket → compute branches →
5
- * [dry-run gate] → transition In Progress → create branch → invoke Claude
6
- * squash merge → transition Done → log → notify.
5
+ * [dry-run gate] → feasibility check → create branch → transition In Progress
6
+ * invoke Claude → squash merge → transition Done → log → notify.
7
7
  *
8
8
  * All errors exit with code 0 (not 1). This is intentional — the AFK runner
9
9
  * detects stop conditions by parsing stdout, not exit codes.
@@ -16,6 +16,7 @@ import { fetchIssue as fetchLinearIssue, isValidTeamId, pingLinear, transitionIs
16
16
  import { computeTargetBranch, computeTicketBranch, } from '../../scripts/shared/branch/branch.js';
17
17
  import { invokeClaudeSession } from '../../scripts/shared/claude-cli/claude-cli.js';
18
18
  import { detectBoard } from '../../scripts/shared/env-schema/env-schema.js';
19
+ import { checkFeasibility } from '../../scripts/shared/feasibility/feasibility.js';
19
20
  import { checkout, currentBranch, deleteBranch, ensureBranch, squashMerge, } from '../../scripts/shared/git-ops/git-ops.js';
20
21
  import { sendNotification } from '../../scripts/shared/notify/notify.js';
21
22
  import { runPreflight } from '../../scripts/shared/preflight/preflight.js';
@@ -169,6 +170,7 @@ async function transitionToStatus(config, ticket, statusName) {
169
170
  */
170
171
  export async function run(argv) {
171
172
  const dryRun = argv.includes('--dry-run');
173
+ const skipFeasibility = argv.includes('--skip-feasibility');
172
174
  const startTime = Date.now();
173
175
  console.log(dim('┌──────────────────────────────────────┐'));
174
176
  console.log(dim('│') + bold(' 🤖 Clancy — once mode ') + dim('│'));
@@ -228,6 +230,9 @@ export async function run(argv) {
228
230
  console.log(` Blockers: ${ticket.blockers}`);
229
231
  }
230
232
  console.log(` Target branch: ${ticketBranch} → ${targetBranch}`);
233
+ if (ticket.description) {
234
+ console.log(` Description: ${ticket.description}`);
235
+ }
231
236
  console.log(yellow('─────────────────────────────────────────────────'));
232
237
  console.log(dim(' No changes made. Remove --dry-run to run for real.'));
233
238
  return;
@@ -241,17 +246,35 @@ export async function run(argv) {
241
246
  console.log(yellow(` Blockers: ${ticket.blockers}`));
242
247
  }
243
248
  console.log('');
244
- // 9. Git: set up branches
249
+ // 9. Feasibility check (skipped when --skip-feasibility is passed;
250
+ // the workflow handles feasibility evaluation directly in that case)
251
+ if (!skipFeasibility) {
252
+ console.log(dim(' Checking feasibility...'));
253
+ const feasibility = checkFeasibility({
254
+ key: ticket.key,
255
+ title: ticket.title,
256
+ description: ticket.description,
257
+ }, config.env.CLANCY_MODEL);
258
+ if (!feasibility.feasible) {
259
+ const reason = feasibility.reason ?? 'not implementable as code changes';
260
+ console.log(yellow(`⏭️ Ticket skipped [${ticket.key}]: ${reason}`));
261
+ appendProgress(process.cwd(), ticket.key, ticket.title, 'SKIPPED');
262
+ return;
263
+ }
264
+ console.log(green(' ✓ Feasibility check passed'));
265
+ }
266
+ console.log('');
267
+ // 10. Git: set up branches
245
268
  originalBranch = currentBranch();
246
269
  ensureBranch(targetBranch, baseBranch);
247
270
  checkout(targetBranch);
248
271
  checkout(ticketBranch, true);
249
- // 10. Transition to In Progress (best-effort)
272
+ // 11. Transition to In Progress (best-effort)
250
273
  const statusInProgress = config.env.CLANCY_STATUS_IN_PROGRESS;
251
274
  if (statusInProgress) {
252
275
  await transitionToStatus(config, ticket, statusInProgress);
253
276
  }
254
- // 11. Build prompt and invoke Claude
277
+ // 12. Build prompt and invoke Claude
255
278
  const prompt = buildPrompt({
256
279
  provider: config.provider,
257
280
  key: ticket.key,
@@ -265,16 +288,16 @@ export async function run(argv) {
265
288
  console.log(yellow('⚠ Claude session exited with an error. Skipping merge.'));
266
289
  return;
267
290
  }
268
- // 12. Squash merge
291
+ // 13. Squash merge
269
292
  checkout(targetBranch);
270
293
  const commitMsg = `feat(${ticket.key}): ${ticket.title}`;
271
294
  const hadChanges = squashMerge(ticketBranch, commitMsg);
272
295
  if (!hadChanges) {
273
296
  console.log(yellow('⚠ No changes staged after squash merge. Claude may not have committed any work.'));
274
297
  }
275
- // 13. Delete feature branch
298
+ // 14. Delete feature branch
276
299
  deleteBranch(ticketBranch);
277
- // 14. Transition to Done / close issue (best-effort)
300
+ // 15. Transition to Done / close issue (best-effort)
278
301
  const statusDone = config.env.CLANCY_STATUS_DONE;
279
302
  if (config.provider === 'github') {
280
303
  const issueNumber = parseInt(ticket.key.replace('#', ''), 10);
@@ -291,13 +314,13 @@ export async function run(argv) {
291
314
  else if (statusDone) {
292
315
  await transitionToStatus(config, ticket, statusDone);
293
316
  }
294
- // 15. Log progress
317
+ // 16. Log progress
295
318
  appendProgress(process.cwd(), ticket.key, ticket.title, 'DONE');
296
319
  const elapsed = formatDuration(Date.now() - startTime);
297
320
  console.log('');
298
321
  console.log(green(`🏁 ${ticket.key} complete`) + dim(` (${elapsed})`));
299
322
  console.log(dim(' "Bake \'em away, toys."'));
300
- // 16. Send notification (best-effort)
323
+ // 17. Send notification (best-effort)
301
324
  const webhook = config.env.CLANCY_NOTIFY_WEBHOOK;
302
325
  if (webhook) {
303
326
  await sendNotification(webhook, `✓ Clancy completed [${ticket.key}] ${ticket.title}`);
@@ -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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"}
@@ -1,3 +1,17 @@
1
+ /**
2
+ * Invoke Claude in print mode and capture the response.
3
+ *
4
+ * Uses `claude -p` for a single-prompt, non-interactive invocation.
5
+ * Stdout is captured (not streamed) so the caller can parse it.
6
+ *
7
+ * @param prompt - The prompt to send.
8
+ * @param model - Optional model override.
9
+ * @returns The captured stdout and whether the process succeeded.
10
+ */
11
+ export declare function invokeClaudePrint(prompt: string, model?: string): {
12
+ stdout: string;
13
+ ok: boolean;
14
+ };
1
15
  /**
2
16
  * Invoke a Claude Code session with the given prompt.
3
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/claude-cli/claude-cli.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAc3E"}
1
+ {"version":3,"file":"claude-cli.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/claude-cli/claude-cli.ts"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,OAAO,CAAA;CAAE,CAiBjC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAc3E"}
@@ -5,6 +5,31 @@
5
5
  * to stdin. Output streams live to the user's terminal.
6
6
  */
7
7
  import { spawnSync } from 'node:child_process';
8
+ /**
9
+ * Invoke Claude in print mode and capture the response.
10
+ *
11
+ * Uses `claude -p` for a single-prompt, non-interactive invocation.
12
+ * Stdout is captured (not streamed) so the caller can parse it.
13
+ *
14
+ * @param prompt - The prompt to send.
15
+ * @param model - Optional model override.
16
+ * @returns The captured stdout and whether the process succeeded.
17
+ */
18
+ export function invokeClaudePrint(prompt, model) {
19
+ const args = ['-p', '--dangerously-skip-permissions'];
20
+ if (model) {
21
+ args.push('--model', model);
22
+ }
23
+ const result = spawnSync('claude', args, {
24
+ input: prompt,
25
+ stdio: ['pipe', 'pipe', 'pipe'],
26
+ encoding: 'utf8',
27
+ });
28
+ return {
29
+ stdout: result.stdout ?? '',
30
+ ok: result.status === 0 && !result.error,
31
+ };
32
+ }
8
33
  /**
9
34
  * Invoke a Claude Code session with the given prompt.
10
35
  *
@@ -1 +1 @@
1
- {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../../src/scripts/shared/claude-cli/claude-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,KAAc;IAChE,MAAM,IAAI,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;QACrC,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"claude-cli.js","sourceRoot":"","sources":["../../../../src/scripts/shared/claude-cli/claude-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,KAAc;IAEd,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;IAEtD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;KACzC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,KAAc;IAChE,MAAM,IAAI,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAEhD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE;QACvC,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;QACrC,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,30 @@
1
+ export type FeasibilityResult = {
2
+ feasible: boolean;
3
+ reason?: string;
4
+ };
5
+ /**
6
+ * Build the feasibility evaluation prompt.
7
+ */
8
+ export declare function buildFeasibilityPrompt(ticket: {
9
+ key: string;
10
+ title: string;
11
+ description: string;
12
+ }): string;
13
+ /**
14
+ * Parse the raw Claude output into a feasibility result.
15
+ *
16
+ * Fails open — malformed or empty output is treated as feasible.
17
+ */
18
+ export declare function parseFeasibilityResponse(stdout: string): FeasibilityResult;
19
+ /**
20
+ * Run a feasibility check for a ticket.
21
+ *
22
+ * @returns A result indicating whether the ticket is feasible and an
23
+ * optional reason if not.
24
+ */
25
+ export declare function checkFeasibility(ticket: {
26
+ key: string;
27
+ title: string;
28
+ description: string;
29
+ }, model?: string): FeasibilityResult;
30
+ //# sourceMappingURL=feasibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feasibility.d.ts","sourceRoot":"","sources":["../../../../src/scripts/shared/feasibility/feasibility.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAyBT;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAU1E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,CAAC,EAAE,MAAM,GACb,iBAAiB,CAQnB"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Lightweight feasibility check — evaluates whether a ticket can be
3
+ * implemented as pure code changes before creating branches or
4
+ * transitioning board status.
5
+ *
6
+ * Uses `claude -p` (print mode) for a fast, single-prompt evaluation.
7
+ * Fails open: if Claude is unavailable or output is malformed the
8
+ * ticket is assumed feasible so work is never silently blocked.
9
+ */
10
+ import { invokeClaudePrint } from '../../../scripts/shared/claude-cli/claude-cli.js';
11
+ /**
12
+ * Build the feasibility evaluation prompt.
13
+ */
14
+ export function buildFeasibilityPrompt(ticket) {
15
+ return [
16
+ 'You are evaluating whether a ticket can be implemented as pure code changes in a repository.',
17
+ '',
18
+ `Ticket: [${ticket.key}] ${ticket.title}`,
19
+ 'Description:',
20
+ ticket.description,
21
+ '',
22
+ 'Can this ticket be completed entirely through code changes committed to a git repository?',
23
+ '',
24
+ 'Answer INFEASIBLE if the ticket requires ANY of:',
25
+ '- Manual testing or configuration in external tools or admin panels',
26
+ '- Access to external services, APIs, or platforms not available in the codebase',
27
+ '- Physical, hardware, or infrastructure changes',
28
+ '- Design assets that do not yet exist',
29
+ '- Deployment or infrastructure changes outside the repository',
30
+ '- Human judgment calls that require stakeholder input',
31
+ '',
32
+ 'Answer with exactly one line in this format:',
33
+ 'FEASIBLE',
34
+ 'or',
35
+ 'INFEASIBLE: one-line reason',
36
+ '',
37
+ 'Do not include any other text.',
38
+ ].join('\n');
39
+ }
40
+ /**
41
+ * Parse the raw Claude output into a feasibility result.
42
+ *
43
+ * Fails open — malformed or empty output is treated as feasible.
44
+ */
45
+ export function parseFeasibilityResponse(stdout) {
46
+ const line = stdout.trim().split('\n').pop()?.trim() ?? '';
47
+ if (/^INFEASIBLE/i.test(line)) {
48
+ const reason = line.replace(/^INFEASIBLE:?\s*/i, '').trim() || undefined;
49
+ return { feasible: false, reason };
50
+ }
51
+ // Fail open — FEASIBLE, empty, or malformed output all pass
52
+ return { feasible: true };
53
+ }
54
+ /**
55
+ * Run a feasibility check for a ticket.
56
+ *
57
+ * @returns A result indicating whether the ticket is feasible and an
58
+ * optional reason if not.
59
+ */
60
+ export function checkFeasibility(ticket, model) {
61
+ const prompt = buildFeasibilityPrompt(ticket);
62
+ const { stdout, ok } = invokeClaudePrint(prompt, model);
63
+ // Fail open — if Claude failed to run, assume feasible
64
+ if (!ok)
65
+ return { feasible: true };
66
+ return parseFeasibilityResponse(stdout);
67
+ }
68
+ //# sourceMappingURL=feasibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feasibility.js","sourceRoot":"","sources":["../../../../src/scripts/shared/feasibility/feasibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAO9E;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAItC;IACC,OAAO;QACL,8FAA8F;QAC9F,EAAE;QACF,YAAY,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,EAAE;QACzC,cAAc;QACd,MAAM,CAAC,WAAW;QAClB,EAAE;QACF,2FAA2F;QAC3F,EAAE;QACF,kDAAkD;QAClD,qEAAqE;QACrE,iFAAiF;QACjF,iDAAiD;QACjD,uCAAuC;QACvC,+DAA+D;QAC/D,uDAAuD;QACvD,EAAE;QACF,8CAA8C;QAC9C,UAAU;QACV,IAAI;QACJ,6BAA6B;QAC7B,EAAE;QACF,gCAAgC;KACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAE3D,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QACzE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACrC,CAAC;IAED,4DAA4D;IAC5D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAA2D,EAC3D,KAAc;IAEd,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAExD,uDAAuD;IACvD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEnC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chief-clancy",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
4
4
  "description": "Autonomous, board-driven development for Claude Code — scaffolds docs, integrates Kanban boards, runs tickets in a loop.",
5
5
  "keywords": [
6
6
  "claude",
@@ -47,49 +47,89 @@ Pick up exactly one ticket from the Kanban board, implement it, commit, squash-m
47
47
 
48
48
  Check if the user passed `--dry-run` as an argument to the slash command.
49
49
 
50
- **Without `--dry-run`:**
50
+ **With `--dry-run`:**
51
51
 
52
52
  Display:
53
53
  ```
54
- 🚨 Clancy — Once
54
+ 🚨 Clancy — Dry Run
55
55
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
56
56
 
57
- "I'm on the case." — Running for one ticket.
57
+ "Just a routine patrol." — Running in dry-run mode, no changes will be made.
58
58
  ```
59
59
 
60
60
  Execute:
61
61
  ```bash
62
- node .clancy/clancy-once.js
62
+ node .clancy/clancy-once.js --dry-run
63
63
  ```
64
64
 
65
- **With `--dry-run`:**
65
+ Stream output directly — do not buffer or summarise. Stop here (do not continue to Step 3).
66
+
67
+ **Without `--dry-run`:**
66
68
 
67
69
  Display:
68
70
  ```
69
- 🚨 Clancy — Dry Run
71
+ 🚨 Clancy — Once
70
72
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
71
73
 
72
- "Just a routine patrol." — Running in dry-run mode, no changes will be made.
74
+ "I'm on the case." — Running for one ticket.
73
75
  ```
74
76
 
75
- Execute:
77
+ ### 2a. Fetch ticket details
78
+
79
+ Execute a dry-run first to retrieve ticket details:
76
80
  ```bash
77
81
  node .clancy/clancy-once.js --dry-run
78
82
  ```
79
83
 
84
+ Stream output directly. If the output contains `No tickets found` or a preflight error (`✗`), stop — there is nothing to do.
85
+
86
+ ### 2b. Feasibility evaluation
87
+
88
+ Read the ticket title and description from the dry-run output. Evaluate whether this ticket can be implemented entirely as code changes committed to a git repository.
89
+
90
+ The ticket is **infeasible** if it requires ANY of:
91
+ - Manual testing or configuration in external tools or admin panels
92
+ - Access to external services, APIs, or platforms not available in the codebase
93
+ - Physical, hardware, or infrastructure changes
94
+ - Design assets that do not yet exist
95
+ - Deployment or infrastructure changes outside the repository
96
+ - Human judgment calls that require stakeholder input
97
+
98
+ If the ticket is infeasible, display:
99
+ ```
100
+ ⏭️ {TICKET-KEY} skipped — {one-line reason}.
101
+
102
+ "Not on my watch." — The ticket requires work that Clancy can't do as code changes. A human should handle this one.
103
+ ```
104
+ Stop here.
105
+
106
+ ### 2c. Execute
107
+
108
+ If the ticket is feasible, run the full lifecycle (skipping the script's built-in feasibility check since we just evaluated it):
109
+ ```bash
110
+ node .clancy/clancy-once.js --skip-feasibility
111
+ ```
112
+
80
113
  Stream output directly — do not buffer or summarise.
81
114
 
82
115
  ---
83
116
 
84
117
  ## Step 3 — Result
85
118
 
86
- On success, echo the result line from the script output:
119
+ On success (output contains `complete`), echo:
87
120
  ```
88
121
  ✅ {TICKET-KEY} complete.
89
122
 
90
123
  "That's some fine police work there, Lou."
91
124
  ```
92
125
 
126
+ On skip (output contains `Ticket skipped`), echo:
127
+ ```
128
+ ⏭️ {TICKET-KEY} skipped — {reason from output}.
129
+
130
+ "Not on my watch." — The ticket requires work that Clancy can't do as code changes. A human should handle this one.
131
+ ```
132
+
93
133
  On failure:
94
134
  ```
95
135
  ❌ Clancy stopped. See output above for details.