catherd-cli 0.2.0 → 0.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catherd-cli",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Herds coding agents: autopilot builds from your own Claude Code session.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catherd",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Herds coding agents: Claude plans and verifies, Codex and opencode workers write the code, and Jev picks the model and effort for each piece.",
5
5
  "author": {
6
6
  "name": "47vigen",
package/plugin/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "catherd": {
4
4
  "command": "bunx",
5
- "args": ["catherd-cli@0.2.0", "mcp"]
5
+ "args": ["catherd-cli@0.2.1", "mcp"]
6
6
  }
7
7
  }
8
8
  }
@@ -223,7 +223,7 @@ The brief is the `brief` text you pass to `dispatch` (catherd writes it to `R/ro
223
223
  4. For a worker:
224
224
  - "Read `<R>/lanes/Mx.Ly.md`": decisions, signatures, data shapes;
225
225
  - its fast check, to run until it passes;
226
- - "Run the full suite only if this brief says so", and "Wrap any full build or full test suite in `bunx catherd-cli lock -- <command>`": other lanes share the machine.
226
+ - "Run the full suite only if this brief says so", and "Wrap any full build or full test suite in `bunx catherd-cli@0.2.1 lock -- <command>`": other lanes share the machine.
227
227
  5. For a reviewer: the A-lines and the changed files, with new files read in full. It reports every finding as `BLOCKER|BUG|NIT file:line — problem — fix`, covering:
228
228
  - unmet A-lines and edge cases;
229
229
  - code or abstractions nobody needs;
@@ -2,7 +2,7 @@ import { existsSync, readdirSync, readFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
4
  import { z } from "zod";
5
- import { fastCheckOf } from "../core/lanes.ts";
5
+ import { fastCheckOf, ownedFilesOf } from "../core/lanes.ts";
6
6
  import { acquire, resolveSlots } from "../core/lock.ts";
7
7
  import { json } from "./out.ts";
8
8
  import { findRun } from "./runs.ts";
@@ -13,6 +13,7 @@ interface PreflightResult {
13
13
  lane: string;
14
14
  check: string;
15
15
  pass: boolean;
16
+ skipped?: boolean;
16
17
  tail: string[];
17
18
  }
18
19
 
@@ -57,6 +58,20 @@ export function registerPreflight(server: McpServer): void {
57
58
  results.push({ lane, check: "", pass: false, tail: [`lanes/${f} has no "Fast check:" line`] });
58
59
  continue;
59
60
  }
61
+ // A check on a file the lane itself creates cannot run on the base tree; that is expected.
62
+ const unborn = ownedFilesOf(text).filter(
63
+ (p) => check.includes(p) && !existsSync(join(run.meta.repo, p)),
64
+ );
65
+ if (unborn.length > 0) {
66
+ results.push({
67
+ lane,
68
+ check,
69
+ pass: true,
70
+ skipped: true,
71
+ tail: [`skipped: ${unborn.join(", ")} does not exist yet; the lane creates it`],
72
+ });
73
+ continue;
74
+ }
60
75
  const r = await runCheck(run.meta.repo, check);
61
76
  results.push({ lane, check, ...r });
62
77
  }
@@ -1,4 +1,5 @@
1
1
  import type { Role } from "../types.ts";
2
+ import { VERSION } from "../version.ts";
2
3
 
3
4
  const READ_ONLY = ["Write", "Edit", "NotebookEdit", "Agent"];
4
5
  const WRITES = ["Agent"];
@@ -66,7 +67,7 @@ const worker = [
66
67
  "",
67
68
  `Read your lane file first. ${RUN_FILES} If the project has a CLAUDE.md or AGENTS.md, follow it.`,
68
69
  "",
69
- "Change only the files you own. Run your fast check until it passes. Run the full suite only if the brief says so, and wrap any full build or full test suite in: bunx catherd-cli lock -- <command>. Other lanes share this machine.",
70
+ `Change only the files you own. Run your fast check until it passes. Run the full suite only if the brief says so, and wrap any full build or full test suite in: bunx catherd-cli@${VERSION} lock -- <command>. Other lanes share this machine.`,
70
71
  "",
71
72
  REPLY,
72
73
  ].join("\n");