@isaacriehm/cairn-core 0.15.0 → 0.16.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/init/claude-rule.d.ts +50 -0
- package/dist/init/claude-rule.js +101 -0
- package/dist/init/claude-rule.js.map +1 -0
- package/dist/init/index.d.ts +2 -0
- package/dist/init/index.js +1 -0
- package/dist/init/index.js.map +1 -1
- package/dist/init/multi-dev/install.js +31 -0
- package/dist/init/multi-dev/install.js.map +1 -1
- package/dist/mcp/schemas.d.ts +29 -0
- package/dist/mcp/schemas.js +28 -0
- package/dist/mcp/schemas.js.map +1 -1
- package/dist/mcp/tools/index.js +2 -0
- package/dist/mcp/tools/index.js.map +1 -1
- package/dist/mcp/tools/mission-get.js +18 -2
- package/dist/mcp/tools/mission-get.js.map +1 -1
- package/dist/mcp/tools/mission-plan-phase.d.ts +19 -0
- package/dist/mcp/tools/mission-plan-phase.js +91 -0
- package/dist/mcp/tools/mission-plan-phase.js.map +1 -0
- package/dist/mcp/tools/mission-resume.js +31 -1
- package/dist/mcp/tools/mission-resume.js.map +1 -1
- package/package.json +2 -2
- package/templates/.claude/rules/cairn.md +18 -12
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin-absent onboarding wiring.
|
|
3
|
+
*
|
|
4
|
+
* The Cairn surface (SessionStart banner, MCP tools, scoped rule
|
|
5
|
+
* injection) is delivered by the Claude Code plugin, which is installed
|
|
6
|
+
* per-machine — cloning an adopted repo does NOT install it. The only
|
|
7
|
+
* repo-committed, plugin-independent fallback is
|
|
8
|
+
* `.claude/rules/cairn.md`, which tells a plugin-less agent to install
|
|
9
|
+
* the plugin.
|
|
10
|
+
*
|
|
11
|
+
* But Claude Code does not auto-load `.claude/rules/*.md` on its own —
|
|
12
|
+
* something has to import it. The one file Claude Code always loads with
|
|
13
|
+
* zero plugin is the root memory file (`CLAUDE.md`). So the fallback rule
|
|
14
|
+
* is only effective if that memory file `@`-imports it. Writing the rule
|
|
15
|
+
* without wiring the import (the prior behavior) left it orphaned: a
|
|
16
|
+
* teammate who cloned an adopted repo without the plugin saw nothing.
|
|
17
|
+
*
|
|
18
|
+
* `ensureCairnRuleImport` wires the import idempotently;
|
|
19
|
+
* `installCairnRuleAndImport` writes the rule template AND wires the
|
|
20
|
+
* import, for the adoption path.
|
|
21
|
+
*/
|
|
22
|
+
/** The repo-root-relative @import line Claude Code resolves. */
|
|
23
|
+
export declare const CAIRN_RULE_IMPORT = "@.claude/rules/cairn.md";
|
|
24
|
+
export interface EnsureImportResult {
|
|
25
|
+
/** True when the import line was added (false = already present). */
|
|
26
|
+
changed: boolean;
|
|
27
|
+
/** Repo-relative memory file that carries the import. */
|
|
28
|
+
file: string;
|
|
29
|
+
/** True when the memory file had to be created. */
|
|
30
|
+
created: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Ensure the project's auto-loaded memory file `@`-imports
|
|
34
|
+
* `.claude/rules/cairn.md`. Targets `CLAUDE.md` (the file Claude Code
|
|
35
|
+
* always auto-loads); falls back to `AGENTS.md` only when `CLAUDE.md` is
|
|
36
|
+
* absent but `AGENTS.md` exists. Creates `CLAUDE.md` if neither exists.
|
|
37
|
+
* Idempotent.
|
|
38
|
+
*/
|
|
39
|
+
export declare function ensureCairnRuleImport(repoRoot: string): EnsureImportResult;
|
|
40
|
+
export interface InstallRuleResult extends EnsureImportResult {
|
|
41
|
+
/** True when the rule file was written/updated. */
|
|
42
|
+
ruleWritten: boolean;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Adoption-side: write `.claude/rules/cairn.md` from the bundled template
|
|
46
|
+
* (if missing or stale) and wire the `@`-import so plugin-less clones see
|
|
47
|
+
* the install notice. Best-effort — a missing template is logged and the
|
|
48
|
+
* import is still ensured.
|
|
49
|
+
*/
|
|
50
|
+
export declare function installCairnRuleAndImport(repoRoot: string): InstallRuleResult;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin-absent onboarding wiring.
|
|
3
|
+
*
|
|
4
|
+
* The Cairn surface (SessionStart banner, MCP tools, scoped rule
|
|
5
|
+
* injection) is delivered by the Claude Code plugin, which is installed
|
|
6
|
+
* per-machine — cloning an adopted repo does NOT install it. The only
|
|
7
|
+
* repo-committed, plugin-independent fallback is
|
|
8
|
+
* `.claude/rules/cairn.md`, which tells a plugin-less agent to install
|
|
9
|
+
* the plugin.
|
|
10
|
+
*
|
|
11
|
+
* But Claude Code does not auto-load `.claude/rules/*.md` on its own —
|
|
12
|
+
* something has to import it. The one file Claude Code always loads with
|
|
13
|
+
* zero plugin is the root memory file (`CLAUDE.md`). So the fallback rule
|
|
14
|
+
* is only effective if that memory file `@`-imports it. Writing the rule
|
|
15
|
+
* without wiring the import (the prior behavior) left it orphaned: a
|
|
16
|
+
* teammate who cloned an adopted repo without the plugin saw nothing.
|
|
17
|
+
*
|
|
18
|
+
* `ensureCairnRuleImport` wires the import idempotently;
|
|
19
|
+
* `installCairnRuleAndImport` writes the rule template AND wires the
|
|
20
|
+
* import, for the adoption path.
|
|
21
|
+
*/
|
|
22
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
23
|
+
import { fileURLToPath } from "node:url";
|
|
24
|
+
import { basename, dirname, join } from "node:path";
|
|
25
|
+
import { getLogger } from "@isaacriehm/cairn-state";
|
|
26
|
+
const log = getLogger();
|
|
27
|
+
/** The repo-root-relative @import line Claude Code resolves. */
|
|
28
|
+
export const CAIRN_RULE_IMPORT = "@.claude/rules/cairn.md";
|
|
29
|
+
const IMPORT_MARKER = "<!-- cairn: plugin-absent onboarding — loads the install notice for clones without the Cairn plugin -->";
|
|
30
|
+
/**
|
|
31
|
+
* Ensure the project's auto-loaded memory file `@`-imports
|
|
32
|
+
* `.claude/rules/cairn.md`. Targets `CLAUDE.md` (the file Claude Code
|
|
33
|
+
* always auto-loads); falls back to `AGENTS.md` only when `CLAUDE.md` is
|
|
34
|
+
* absent but `AGENTS.md` exists. Creates `CLAUDE.md` if neither exists.
|
|
35
|
+
* Idempotent.
|
|
36
|
+
*/
|
|
37
|
+
export function ensureCairnRuleImport(repoRoot) {
|
|
38
|
+
const claudeAbs = join(repoRoot, "CLAUDE.md");
|
|
39
|
+
const agentsAbs = join(repoRoot, "AGENTS.md");
|
|
40
|
+
let targetAbs = claudeAbs;
|
|
41
|
+
let rel = "CLAUDE.md";
|
|
42
|
+
if (!existsSync(claudeAbs) && existsSync(agentsAbs)) {
|
|
43
|
+
targetAbs = agentsAbs;
|
|
44
|
+
rel = "AGENTS.md";
|
|
45
|
+
}
|
|
46
|
+
const existed = existsSync(targetAbs);
|
|
47
|
+
const content = existed ? readFileSync(targetAbs, "utf8") : "";
|
|
48
|
+
if (content.includes(CAIRN_RULE_IMPORT)) {
|
|
49
|
+
return { changed: false, file: rel, created: false };
|
|
50
|
+
}
|
|
51
|
+
const importBlock = `${IMPORT_MARKER}\n${CAIRN_RULE_IMPORT}\n`;
|
|
52
|
+
const next = existed
|
|
53
|
+
? `${content.replace(/\s*$/, "")}\n\n${importBlock}`
|
|
54
|
+
: `# ${basename(repoRoot)}\n\n${importBlock}`;
|
|
55
|
+
writeFileSync(targetAbs, next, "utf8");
|
|
56
|
+
log.debug({ repoRoot, file: rel, created: !existed }, "wired cairn rule import");
|
|
57
|
+
return { changed: true, file: rel, created: !existed };
|
|
58
|
+
}
|
|
59
|
+
/* -------------------------------------------------------------------------- */
|
|
60
|
+
/* Template install (adoption path) */
|
|
61
|
+
/* -------------------------------------------------------------------------- */
|
|
62
|
+
const RULE_REL = join(".claude", "rules", "cairn.md");
|
|
63
|
+
/** Locate the bundled `.claude/rules/cairn.md` template. */
|
|
64
|
+
function findRuleTemplate() {
|
|
65
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
66
|
+
const candidates = [
|
|
67
|
+
// dist/init/ → cairn-core/templates
|
|
68
|
+
join(here, "..", "..", "templates", ".claude", "rules", "cairn.md"),
|
|
69
|
+
// src/init/ → cairn-core/templates (dev / ts-node)
|
|
70
|
+
join(here, "..", "..", "..", "templates", ".claude", "rules", "cairn.md"),
|
|
71
|
+
// plugin bundle mirror: here/templates
|
|
72
|
+
join(here, "templates", ".claude", "rules", "cairn.md"),
|
|
73
|
+
];
|
|
74
|
+
return candidates.find((p) => existsSync(p)) ?? null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Adoption-side: write `.claude/rules/cairn.md` from the bundled template
|
|
78
|
+
* (if missing or stale) and wire the `@`-import so plugin-less clones see
|
|
79
|
+
* the install notice. Best-effort — a missing template is logged and the
|
|
80
|
+
* import is still ensured.
|
|
81
|
+
*/
|
|
82
|
+
export function installCairnRuleAndImport(repoRoot) {
|
|
83
|
+
let ruleWritten = false;
|
|
84
|
+
const targetAbs = join(repoRoot, RULE_REL);
|
|
85
|
+
const template = findRuleTemplate();
|
|
86
|
+
if (template !== null) {
|
|
87
|
+
const desired = readFileSync(template, "utf8");
|
|
88
|
+
const current = existsSync(targetAbs) ? readFileSync(targetAbs, "utf8") : null;
|
|
89
|
+
if (current !== desired) {
|
|
90
|
+
mkdirSync(dirname(targetAbs), { recursive: true });
|
|
91
|
+
writeFileSync(targetAbs, desired, "utf8");
|
|
92
|
+
ruleWritten = true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
log.warn({ repoRoot }, "cairn rule template not found; wiring import only");
|
|
97
|
+
}
|
|
98
|
+
const imp = ensureCairnRuleImport(repoRoot);
|
|
99
|
+
return { ...imp, ruleWritten };
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=claude-rule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-rule.js","sourceRoot":"","sources":["../../src/init/claude-rule.ts"],"names":[],"mappings":"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"}
|
package/dist/init/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { detectAll, detectAvailableSensors, detectEnvironment, detectHookCapability, detectOriginUrl, detectProjectSlug, detectStackSignatures, detectStartCommand, } from "./detect.js";
|
|
2
2
|
export { installInitCancelHandlers, startProgress, startSpinner, withSpinner, } from "./visual.js";
|
|
3
3
|
export { applyBrandAnswers, runBrandSetup } from "./brand-setup.js";
|
|
4
|
+
export { ensureCairnRuleImport, installCairnRuleAndImport, CAIRN_RULE_IMPORT, } from "./claude-rule.js";
|
|
5
|
+
export type { EnsureImportResult, InstallRuleResult } from "./claude-rule.js";
|
|
4
6
|
export type { BrandAnswers, RunBrandSetupOptions, } from "./brand-setup.js";
|
|
5
7
|
export { deriveBrandFromProject, derivedToBrandAnswers, } from "./brand-derive.js";
|
|
6
8
|
export { defaultBaselineLanguages, findLatestBaselineAudit, runBaselineAudit, } from "./baseline-audit.js";
|
package/dist/init/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { detectAll, detectAvailableSensors, detectEnvironment, detectHookCapability, detectOriginUrl, detectProjectSlug, detectStackSignatures, detectStartCommand, } from "./detect.js";
|
|
2
2
|
export { installInitCancelHandlers, startProgress, startSpinner, withSpinner, } from "./visual.js";
|
|
3
3
|
export { applyBrandAnswers, runBrandSetup } from "./brand-setup.js";
|
|
4
|
+
export { ensureCairnRuleImport, installCairnRuleAndImport, CAIRN_RULE_IMPORT, } from "./claude-rule.js";
|
|
4
5
|
export { deriveBrandFromProject, derivedToBrandAnswers, } from "./brand-derive.js";
|
|
5
6
|
export { defaultBaselineLanguages, findLatestBaselineAudit, runBaselineAudit, } from "./baseline-audit.js";
|
|
6
7
|
export { discoverDocs, runDocsIngestion, runStage1FileFilter, } from "./ingest-docs.js";
|
package/dist/init/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
17
17
|
import { join } from "node:path";
|
|
18
|
+
import { installCairnRuleAndImport } from "../claude-rule.js";
|
|
18
19
|
const PREPARE_SCRIPT_FRAGMENT = "cairn join || true";
|
|
19
20
|
export function installMultiDev(args) {
|
|
20
21
|
const repoRoot = args.repoRoot;
|
|
@@ -56,6 +57,36 @@ export function installMultiDev(args) {
|
|
|
56
57
|
status: "ok",
|
|
57
58
|
detail: `detected ${hostKinds.join(", ")}`,
|
|
58
59
|
});
|
|
60
|
+
// Plugin-absent onboarding. Write `.claude/rules/cairn.md` and wire the
|
|
61
|
+
// `@`-import into the auto-loaded memory file (CLAUDE.md) so teammates
|
|
62
|
+
// who clone this repo WITHOUT the Cairn plugin still see the install
|
|
63
|
+
// notice on their first turn. Without the import the rule is orphaned —
|
|
64
|
+
// Claude Code does not auto-load `.claude/rules/*` on its own, so the
|
|
65
|
+
// fallback never fires (the failure that motivated this).
|
|
66
|
+
if (args.dryRun === true) {
|
|
67
|
+
steps.push({
|
|
68
|
+
step: "wire-cairn-rule-import",
|
|
69
|
+
status: "skipped",
|
|
70
|
+
detail: "dry-run",
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
try {
|
|
75
|
+
const res = installCairnRuleAndImport(repoRoot);
|
|
76
|
+
steps.push({
|
|
77
|
+
step: "wire-cairn-rule-import",
|
|
78
|
+
status: "ok",
|
|
79
|
+
detail: `rule ${res.ruleWritten ? "written" : "current"}; import ${res.changed ? `added to ${res.file}` : "already present"}`,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
steps.push({
|
|
84
|
+
step: "wire-cairn-rule-import",
|
|
85
|
+
status: "error",
|
|
86
|
+
detail: `failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
59
90
|
return { hostKinds, preparePatched: false, manualHints, steps };
|
|
60
91
|
}
|
|
61
92
|
export function patchPackageJsonPrepare(pkgPath, dryRun) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/init/multi-dev/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/init/multi-dev/install.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/schemas.d.ts
CHANGED
|
@@ -229,6 +229,35 @@ export declare const missionGetInput: {
|
|
|
229
229
|
/** Mission id; omit to read the active mission. */
|
|
230
230
|
mission_id: z.ZodOptional<z.ZodString>;
|
|
231
231
|
};
|
|
232
|
+
/**
|
|
233
|
+
* `cairn_mission_plan_phase` — write the just-in-time tightening brief
|
|
234
|
+
* for one phase. `phase_id` defaults to the cursor's active phase.
|
|
235
|
+
* `decisions` captures the forks resolved during tightening;
|
|
236
|
+
* `constraints`/`acceptance` are inherited by every task created in the
|
|
237
|
+
* phase; `cite_decisions`/`cite_invariants` record the ground-state
|
|
238
|
+
* entries that pre-answered the rest. `status=accepted` (default) locks
|
|
239
|
+
* the brief so tasks may inherit it; `drafted` parks it for review.
|
|
240
|
+
* `autonomous: true` marks a brief the model self-resolved without an
|
|
241
|
+
* operator prompt (exit_gate=auto path).
|
|
242
|
+
*/
|
|
243
|
+
export declare const missionPlanPhaseInput: {
|
|
244
|
+
phase_id: z.ZodOptional<z.ZodString>;
|
|
245
|
+
decisions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
246
|
+
question: z.ZodString;
|
|
247
|
+
choice: z.ZodString;
|
|
248
|
+
rationale: z.ZodOptional<z.ZodString>;
|
|
249
|
+
}, z.core.$strip>>>;
|
|
250
|
+
constraints: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
251
|
+
acceptance: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
252
|
+
cite_decisions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
253
|
+
cite_invariants: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
254
|
+
status: z.ZodOptional<z.ZodEnum<{
|
|
255
|
+
accepted: "accepted";
|
|
256
|
+
drafted: "drafted";
|
|
257
|
+
}>>;
|
|
258
|
+
autonomous: z.ZodOptional<z.ZodBoolean>;
|
|
259
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
260
|
+
};
|
|
232
261
|
/**
|
|
233
262
|
* `cairn_mission_advance` — operator picked a phase-exit choice.
|
|
234
263
|
* `phase_id` is the phase being exited. choice=exit advances cursor;
|
package/dist/mcp/schemas.js
CHANGED
|
@@ -284,6 +284,34 @@ export const missionGetInput = {
|
|
|
284
284
|
/** Mission id; omit to read the active mission. */
|
|
285
285
|
mission_id: missionIdField.optional(),
|
|
286
286
|
};
|
|
287
|
+
/**
|
|
288
|
+
* `cairn_mission_plan_phase` — write the just-in-time tightening brief
|
|
289
|
+
* for one phase. `phase_id` defaults to the cursor's active phase.
|
|
290
|
+
* `decisions` captures the forks resolved during tightening;
|
|
291
|
+
* `constraints`/`acceptance` are inherited by every task created in the
|
|
292
|
+
* phase; `cite_decisions`/`cite_invariants` record the ground-state
|
|
293
|
+
* entries that pre-answered the rest. `status=accepted` (default) locks
|
|
294
|
+
* the brief so tasks may inherit it; `drafted` parks it for review.
|
|
295
|
+
* `autonomous: true` marks a brief the model self-resolved without an
|
|
296
|
+
* operator prompt (exit_gate=auto path).
|
|
297
|
+
*/
|
|
298
|
+
export const missionPlanPhaseInput = {
|
|
299
|
+
phase_id: missionPhaseIdField.optional(),
|
|
300
|
+
decisions: z
|
|
301
|
+
.array(z.object({
|
|
302
|
+
question: z.string().min(1),
|
|
303
|
+
choice: z.string().min(1),
|
|
304
|
+
rationale: z.string().optional(),
|
|
305
|
+
}))
|
|
306
|
+
.optional(),
|
|
307
|
+
constraints: z.array(z.string()).optional(),
|
|
308
|
+
acceptance: z.array(z.string()).optional(),
|
|
309
|
+
cite_decisions: z.array(z.string()).optional(),
|
|
310
|
+
cite_invariants: z.array(z.string()).optional(),
|
|
311
|
+
status: z.enum(["drafted", "accepted"]).optional(),
|
|
312
|
+
autonomous: z.boolean().optional(),
|
|
313
|
+
notes: z.string().optional(),
|
|
314
|
+
};
|
|
287
315
|
/**
|
|
288
316
|
* `cairn_mission_advance` — operator picked a phase-exit choice.
|
|
289
317
|
* `phase_id` is the phase being exited. choice=exit advances cursor;
|
package/dist/mcp/schemas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import { initResumeTool, initRunTool, } from "./init-phases.js";
|
|
|
10
10
|
import { missionStartTool } from "./mission-start.js";
|
|
11
11
|
import { missionAcceptDraftTool } from "./mission-accept-draft.js";
|
|
12
12
|
import { missionGetTool } from "./mission-get.js";
|
|
13
|
+
import { missionPlanPhaseTool } from "./mission-plan-phase.js";
|
|
13
14
|
import { missionAdvanceTool } from "./mission-advance.js";
|
|
14
15
|
import { missionResumeTool } from "./mission-resume.js";
|
|
15
16
|
import { missionResyncTool } from "./mission-resync.js";
|
|
@@ -59,6 +60,7 @@ export const allTools = [
|
|
|
59
60
|
missionStartTool,
|
|
60
61
|
missionAcceptDraftTool,
|
|
61
62
|
missionGetTool,
|
|
63
|
+
missionPlanPhaseTool,
|
|
62
64
|
missionAdvanceTool,
|
|
63
65
|
missionResumeTool,
|
|
64
66
|
missionResyncTool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,yBAAyB;IACzB,eAAe;IACf,qBAAqB;IACrB,gBAAgB;IAChB,WAAW;IACX,4BAA4B;IAC5B,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,sBAAsB;IACtB,UAAU;IACV,qCAAqC;IACrC,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,2EAA2E;IAC3E,kBAAkB;IAClB,yDAAyD;IACzD,cAAc;IACd,WAAW;IACX,oCAAoC;IACpC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAqB;IACxC,yBAAyB;IACzB,eAAe;IACf,qBAAqB;IACrB,gBAAgB;IAChB,WAAW;IACX,4BAA4B;IAC5B,UAAU;IACV,QAAQ;IACR,kBAAkB;IAClB,2CAA2C;IAC3C,kBAAkB;IAClB,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,qBAAqB;IACrB,sBAAsB;IACtB,UAAU;IACV,qCAAqC;IACrC,oBAAoB;IACpB,uBAAuB;IACvB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,2EAA2E;IAC3E,kBAAkB;IAClB,yDAAyD;IACzD,cAAc;IACd,WAAW;IACX,oCAAoC;IACpC,gBAAgB;IAChB,sBAAsB;IACtB,cAAc;IACd,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,uBAAuB;IACvB,sBAAsB;CACvB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { countDonePhases, detectRoadmapDrift, findActiveMission, locateMission, readMissionState, readRoadmap, } from "@isaacriehm/cairn-state";
|
|
1
|
+
import { countDonePhases, detectRoadmapDrift, findActiveMission, locateMission, readMissionState, readPhaseBrief, readRoadmap, } from "@isaacriehm/cairn-state";
|
|
2
2
|
import { requireBootstrap } from "../bootstrap-guard.js";
|
|
3
3
|
import { mcpError } from "../errors.js";
|
|
4
4
|
import { missionGetInput } from "../schemas.js";
|
|
@@ -32,6 +32,20 @@ async function handler(ctx, input) {
|
|
|
32
32
|
const cursorPhase = cursorPhaseId === null
|
|
33
33
|
? null
|
|
34
34
|
: roadmap.frontmatter.phases.find((p) => p.id === cursorPhaseId) ?? null;
|
|
35
|
+
// Per-phase brief surface — the skill reads `brief_status` to decide
|
|
36
|
+
// whether the cursor phase still needs just-in-time tightening before
|
|
37
|
+
// tasks are created against it. `null` brief_status = brief-pending.
|
|
38
|
+
// The committed brief FILE is canonical (multi-dev: a teammate who
|
|
39
|
+
// pulled the brief but has no local per-clone flag still sees its
|
|
40
|
+
// accepted status); fall back to the per-clone flag only when no file
|
|
41
|
+
// exists yet.
|
|
42
|
+
const cursorBrief = cursorPhaseId === null
|
|
43
|
+
? null
|
|
44
|
+
: readPhaseBrief(ctx.repoRoot, missionId, cursorPhaseId);
|
|
45
|
+
const cursorBriefStatus = cursorBrief?.status ??
|
|
46
|
+
(cursorPhaseId === null
|
|
47
|
+
? null
|
|
48
|
+
: state.phase_progress[cursorPhaseId]?.brief_status ?? null);
|
|
35
49
|
return {
|
|
36
50
|
ok: true,
|
|
37
51
|
active: true,
|
|
@@ -45,6 +59,8 @@ async function handler(ctx, input) {
|
|
|
45
59
|
active_phase_title: cursorPhase?.title ?? null,
|
|
46
60
|
active_phase_exit_criteria: cursorPhase?.exit_criteria ?? null,
|
|
47
61
|
active_phase_exit_gate: cursorPhase?.exit_gate ?? roadmap.frontmatter.exit_gate,
|
|
62
|
+
active_phase_brief_status: cursorBriefStatus,
|
|
63
|
+
active_phase_brief: cursorBrief,
|
|
48
64
|
},
|
|
49
65
|
progress: {
|
|
50
66
|
done: countDonePhases(state),
|
|
@@ -57,7 +73,7 @@ async function handler(ctx, input) {
|
|
|
57
73
|
}
|
|
58
74
|
export const missionGetTool = {
|
|
59
75
|
name: "cairn_mission_get",
|
|
60
|
-
description: "Return the active mission's state — title, spec_path, exit_gate, cursor (active_phase + exit_criteria), N/M phase progress, full phase_progress map, the ordered phase array, and any drift_phase_ids that no longer appear in roadmap.md (operator removed them mid-mission). Returns `{ active: false }` when no active mission exists.",
|
|
76
|
+
description: "Return the active mission's state — title, spec_path, exit_gate, cursor (active_phase + exit_criteria + `active_phase_brief_status` + `active_phase_brief`), N/M phase progress, full phase_progress map, the ordered phase array, and any drift_phase_ids that no longer appear in roadmap.md (operator removed them mid-mission). `active_phase_brief_status: null` means the cursor phase still needs just-in-time tightening — call `cairn_mission_plan_phase` before creating tasks. Returns `{ active: false }` when no active mission exists.",
|
|
61
77
|
inputSchema: missionGetInput,
|
|
62
78
|
handler,
|
|
63
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mission-get.js","sourceRoot":"","sources":["../../../src/mcp/tools/mission-get.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAOhD,KAAK,UAAU,OAAO,CAAC,GAAe,EAAE,KAAY;IAClD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAEjC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,mBAAmB,EAAE,WAAW,SAAS,mCAAmC,CAAC,CAAC;IAChG,CAAC;IACD,sEAAsE;IACtE,qEAAqE;IACrE,sEAAsE;IACtE,qEAAqE;IACrE,WAAW;IACX,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC,mBAAmB,EAAE,WAAW,SAAS,oDAAoD,CAAC,CAAC;IACjH,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxD,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,mBAAmB,EAAE,WAAW,SAAS,8BAA8B,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;IAChD,MAAM,WAAW,GACf,aAAa,KAAK,IAAI;QACpB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC;IAE7E,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,SAAS;QACrB,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;QAChC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;QACxC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;QACxC,MAAM,EAAE;YACN,YAAY,EAAE,aAAa;YAC3B,uBAAuB,EAAE,KAAK,CAAC,MAAM,CAAC,uBAAuB;YAC7D,kBAAkB,EAAE,WAAW,EAAE,KAAK,IAAI,IAAI;YAC9C,0BAA0B,EAAE,WAAW,EAAE,aAAa,IAAI,IAAI;YAC9D,sBAAsB,EAAE,WAAW,EAAE,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"mission-get.js","sourceRoot":"","sources":["../../../src/mcp/tools/mission-get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ToolDef } from "./types.js";
|
|
2
|
+
interface InputDecision {
|
|
3
|
+
question: string;
|
|
4
|
+
choice: string;
|
|
5
|
+
rationale?: string;
|
|
6
|
+
}
|
|
7
|
+
interface Input {
|
|
8
|
+
phase_id?: string;
|
|
9
|
+
decisions?: InputDecision[];
|
|
10
|
+
constraints?: string[];
|
|
11
|
+
acceptance?: string[];
|
|
12
|
+
cite_decisions?: string[];
|
|
13
|
+
cite_invariants?: string[];
|
|
14
|
+
status?: "drafted" | "accepted";
|
|
15
|
+
autonomous?: boolean;
|
|
16
|
+
notes?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const missionPlanPhaseTool: ToolDef<Input>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { appendMissionJournal, findActiveMission, readMissionState, readRoadmap, writePhaseBrief, writeMissionState, } from "@isaacriehm/cairn-state";
|
|
2
|
+
import { requireBootstrap } from "../bootstrap-guard.js";
|
|
3
|
+
import { mcpError } from "../errors.js";
|
|
4
|
+
import { missionPlanPhaseInput } from "../schemas.js";
|
|
5
|
+
/**
|
|
6
|
+
* Persist the just-in-time per-phase tightening brief. The brief is the
|
|
7
|
+
* phase-scoped analog of a tightened task spec: the forks the operator
|
|
8
|
+
* (or, in autonomous mode, the model) resolved, the constraints every
|
|
9
|
+
* task in the phase inherits, the phase acceptance bar, and the cites
|
|
10
|
+
* that pre-answered the rest. Writes a committed markdown file under
|
|
11
|
+
* `.cairn/ground/missions/<id>/briefs/<phase>.md` and stamps
|
|
12
|
+
* `phase_progress[phase].brief_status` so the cursor knows the phase is
|
|
13
|
+
* briefed.
|
|
14
|
+
*/
|
|
15
|
+
async function handler(ctx, input) {
|
|
16
|
+
const block = requireBootstrap(ctx.repoRoot);
|
|
17
|
+
if (block !== null)
|
|
18
|
+
return block;
|
|
19
|
+
const missionId = findActiveMission(ctx.repoRoot);
|
|
20
|
+
if (missionId === null) {
|
|
21
|
+
return mcpError("MISSION_NOT_FOUND", "No active mission");
|
|
22
|
+
}
|
|
23
|
+
const roadmap = readRoadmap(ctx.repoRoot, missionId);
|
|
24
|
+
const state = readMissionState(ctx.repoRoot, missionId);
|
|
25
|
+
if (roadmap === null || state === null) {
|
|
26
|
+
return mcpError("MISSION_NOT_FOUND", `Mission ${missionId} state or roadmap unreadable`);
|
|
27
|
+
}
|
|
28
|
+
const phaseId = input.phase_id ?? state.cursor.active_phase;
|
|
29
|
+
if (phaseId === null) {
|
|
30
|
+
return mcpError("VALIDATION_FAILED", "No phase_id given and the mission cursor is not on a phase (mission may be complete).");
|
|
31
|
+
}
|
|
32
|
+
if (!roadmap.frontmatter.phases.some((p) => p.id === phaseId)) {
|
|
33
|
+
return mcpError("MISSION_PHASE_NOT_FOUND", `phase ${phaseId} not in roadmap`);
|
|
34
|
+
}
|
|
35
|
+
const status = input.status ?? "accepted";
|
|
36
|
+
const now = new Date().toISOString();
|
|
37
|
+
const brief = {
|
|
38
|
+
phase_id: phaseId,
|
|
39
|
+
drafted_at: now,
|
|
40
|
+
status,
|
|
41
|
+
...(input.autonomous === true ? { autonomous: true } : {}),
|
|
42
|
+
decisions: input.decisions ?? [],
|
|
43
|
+
constraints: input.constraints ?? [],
|
|
44
|
+
acceptance: input.acceptance ?? [],
|
|
45
|
+
cite_decisions: input.cite_decisions ?? [],
|
|
46
|
+
cite_invariants: input.cite_invariants ?? [],
|
|
47
|
+
};
|
|
48
|
+
writePhaseBrief(ctx.repoRoot, missionId, brief, input.notes ?? "");
|
|
49
|
+
// Stamp the per-clone fast-path flag. The committed brief file is the
|
|
50
|
+
// canonical status source (multi-dev: a teammate who pulls the brief
|
|
51
|
+
// but has no local flag still reads `accepted` off the file); this
|
|
52
|
+
// flag just lets the phase_progress map reflect briefed phases without
|
|
53
|
+
// re-reading every file. Default to `pending` when the phase was never
|
|
54
|
+
// seeded — never silently flip a pending phase to in_progress.
|
|
55
|
+
const progress = state.phase_progress[phaseId] ?? {
|
|
56
|
+
state: "pending",
|
|
57
|
+
task_ids: [],
|
|
58
|
+
};
|
|
59
|
+
state.phase_progress[phaseId] = { ...progress, brief_status: status };
|
|
60
|
+
writeMissionState(ctx.repoRoot, missionId, state);
|
|
61
|
+
appendMissionJournal(ctx.repoRoot, missionId, {
|
|
62
|
+
ts: now,
|
|
63
|
+
kind: "phase-brief-set",
|
|
64
|
+
phase_id: phaseId,
|
|
65
|
+
detail: `${status}` +
|
|
66
|
+
(input.autonomous === true ? " (autonomous)" : "") +
|
|
67
|
+
` — ${brief.decisions.length} decision(s), ${brief.constraints.length} constraint(s)`,
|
|
68
|
+
});
|
|
69
|
+
return {
|
|
70
|
+
ok: true,
|
|
71
|
+
mission_id: missionId,
|
|
72
|
+
phase_id: phaseId,
|
|
73
|
+
brief_status: status,
|
|
74
|
+
brief_path: `.cairn/ground/missions/${missionId}/briefs/${phaseId}.md`,
|
|
75
|
+
decisions: brief.decisions.length,
|
|
76
|
+
constraints: brief.constraints.length,
|
|
77
|
+
acceptance: brief.acceptance.length,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export const missionPlanPhaseTool = {
|
|
81
|
+
name: "cairn_mission_plan_phase",
|
|
82
|
+
description: "Write the just-in-time tightening brief for one mission phase (defaults to the cursor phase). " +
|
|
83
|
+
"Call this when the cursor lands on a phase whose `brief_status` is unset, BEFORE creating phase-anchored tasks. " +
|
|
84
|
+
"`decisions` = the forks you resolved (question + choice [+ rationale]); `constraints` = rules every task in the phase inherits (cite a DEC/§INV per bullet); `acceptance` = the phase's verifiable exit bar; `cite_decisions`/`cite_invariants` = the in-scope ground state that pre-answered everything else. " +
|
|
85
|
+
"Default `status=accepted` locks the brief so `cairn_task_create` calls can inherit its constraints/acceptance. " +
|
|
86
|
+
"Smart gate: when the phase has NO unresolved forks (ground state already covers it), call with empty `decisions` and `status=accepted` to mark it briefed silently. " +
|
|
87
|
+
"Autonomous mode (mission `exit_gate=auto`): resolve the forks yourself from ground state + best judgement, pass `autonomous: true`, do NOT prompt the operator.",
|
|
88
|
+
inputSchema: missionPlanPhaseInput,
|
|
89
|
+
handler,
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=mission-plan-phase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mission-plan-phase.js","sourceRoot":"","sources":["../../../src/mcp/tools/mission-plan-phase.ts"],"names":[],"mappings":"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"}
|