@aperant/framework 0.6.5 → 0.6.6
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 +17 -251
- package/dist/cli/commands/commit.d.mts.map +1 -1
- package/dist/cli/commands/commit.mjs +25 -8
- package/dist/cli/commands/commit.mjs.map +1 -1
- package/dist/cli/commands/event.d.mts.map +1 -1
- package/dist/cli/commands/event.mjs +66 -0
- package/dist/cli/commands/event.mjs.map +1 -1
- package/dist/cli/commands/modes.d.mts.map +1 -1
- package/dist/cli/commands/modes.mjs +2 -1
- package/dist/cli/commands/modes.mjs.map +1 -1
- package/dist/cli/commands/task.d.mts.map +1 -1
- package/dist/cli/commands/task.mjs +285 -139
- package/dist/cli/commands/task.mjs.map +1 -1
- package/dist/cli/commands/triage.d.mts.map +1 -1
- package/dist/cli/commands/triage.mjs +9 -5
- package/dist/cli/commands/triage.mjs.map +1 -1
- package/dist/cli/coordination/auto-emit-artifact-ready.d.mts +16 -0
- package/dist/cli/coordination/auto-emit-artifact-ready.d.mts.map +1 -0
- package/dist/cli/coordination/auto-emit-artifact-ready.mjs +88 -0
- package/dist/cli/coordination/auto-emit-artifact-ready.mjs.map +1 -0
- package/dist/cli/coordination/event-schema.d.mts +16 -0
- package/dist/cli/coordination/event-schema.d.mts.map +1 -0
- package/dist/cli/coordination/event-schema.mjs +161 -0
- package/dist/cli/coordination/event-schema.mjs.map +1 -0
- package/dist/cli/coordination/store.d.mts +6 -0
- package/dist/cli/coordination/store.d.mts.map +1 -1
- package/dist/cli/coordination/store.mjs +14 -0
- package/dist/cli/coordination/store.mjs.map +1 -1
- package/dist/cli/help.mjs +2 -2
- package/dist/cli/help.mjs.map +1 -1
- package/dist/cli/roadmap/conductor-view.d.mts +13 -0
- package/dist/cli/roadmap/conductor-view.d.mts.map +1 -0
- package/dist/cli/roadmap/conductor-view.mjs +31 -0
- package/dist/cli/roadmap/conductor-view.mjs.map +1 -0
- package/dist/cli/route/skill-discover.d.mts.map +1 -1
- package/dist/cli/route/skill-discover.mjs +2 -1
- package/dist/cli/route/skill-discover.mjs.map +1 -1
- package/dist/cli/task/ids.d.mts +7 -4
- package/dist/cli/task/ids.d.mts.map +1 -1
- package/dist/cli/task/ids.mjs +11 -10
- package/dist/cli/task/ids.mjs.map +1 -1
- package/package.json +133 -125
- package/prompts/conductor-status-check.md +23 -0
- package/prompts/conductor-sub-agent.md +57 -0
- package/prompts/conductor-system.md +172 -0
- package/skills/apt-plan/SKILL.md +12 -0
- package/skills/apt-plan/adapters/conductor.md +98 -0
- package/skills/apt-setup/SKILL.md +2 -0
- package/skills/apt-ship/SKILL.md +27 -12
- package/skills/apt-spar/SKILL.md +290 -0
- package/src/cli/commands/commit.mjs +27 -8
- package/src/cli/commands/event.mjs +68 -0
- package/src/cli/commands/modes.mjs +2 -1
- package/src/cli/commands/task.mjs +305 -152
- package/src/cli/commands/triage.mjs +14 -5
- package/src/cli/coordination/auto-emit-artifact-ready.mjs +96 -0
- package/src/cli/coordination/event-schema.d.ts +13 -0
- package/src/cli/coordination/event-schema.mjs +174 -0
- package/src/cli/coordination/store.mjs +14 -0
- package/src/cli/help.mjs +2 -2
- package/src/cli/roadmap/conductor-view.d.ts +10 -0
- package/src/cli/roadmap/conductor-view.mjs +31 -0
- package/src/cli/route/skill-discover.mjs +2 -1
- package/src/cli/task/ids.mjs +15 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.mts","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.mts","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"AAyCA;;;;;;GAMG;AACH;IAKE,gBAAgB;;IAGhB,sEAAsE;;IAUtE;;;OAGG;;IAWH;;;OAGG;;IAqBH;;;;OAIG;;IAKH,wCAAwC;;IAKxC;;;;OAIG;;IAKH;;;;;;;;;;OAUG;;;;;;;;;;;;;;IAiBH,gBAAgB;;EAKjB"}
|
|
@@ -31,6 +31,7 @@ import { withFileLock } from '../util/fs-lock.mjs';
|
|
|
31
31
|
import { atomicWriteJson } from '../util/io.mjs';
|
|
32
32
|
import { getAgentIdentity, resolveSharedRoot } from './agent-identity.mjs';
|
|
33
33
|
import { appendLifecycleEvent } from './event-log.mjs';
|
|
34
|
+
import { validateConductorEvent } from './event-schema.mjs';
|
|
34
35
|
import { listActive as teamStatusListActive, removeSelf as teamStatusRemoveSelf, upsertSelf as teamStatusUpsertSelf, } from './team-status.mjs';
|
|
35
36
|
/**
|
|
36
37
|
* Construct a coordination store bound to a specific project root. The
|
|
@@ -110,9 +111,22 @@ export function createCoordinationStore(projectRoot) {
|
|
|
110
111
|
* @internal — R10 append-only event log. Emits one JSONL line per
|
|
111
112
|
* call via appendLifecycleEvent. Best-effort: filesystem errors are
|
|
112
113
|
* swallowed so a missing events/ dir never breaks task lifecycle.
|
|
114
|
+
*
|
|
115
|
+
* Step 1 — schema gate: conductor ops written via the store seam are
|
|
116
|
+
* validated against `event-schema.mjs` before they reach disk.
|
|
117
|
+
* Schema violations throw (caught here and surfaced via console.warn)
|
|
118
|
+
* because a malformed conductor event would silently break the
|
|
119
|
+
* drawer's pairing logic — we want it loud, not best-effort.
|
|
113
120
|
*/
|
|
114
121
|
appendEvent(evt) {
|
|
115
122
|
try {
|
|
123
|
+
if (evt && typeof evt.op === 'string') {
|
|
124
|
+
const validation = validateConductorEvent(evt.op, evt.data);
|
|
125
|
+
if (!validation.ok) {
|
|
126
|
+
console.warn(`[store.appendEvent] schema violation: ${validation.error}`);
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
116
130
|
return appendLifecycleEvent(projectRoot, evt);
|
|
117
131
|
}
|
|
118
132
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.mjs","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EACN,UAAU,IAAI,oBAAoB,EAClC,UAAU,IAAI,oBAAoB,EAClC,UAAU,IAAI,oBAAoB,GAClC,MAAM,mBAAmB,CAAA;AAE1B;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAW;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;IAE5D,OAAO;QACN,gBAAgB;QAChB,iBAAiB,EAAE,GAAG,EAAE,CAAC,UAAU;QAEnC,sEAAsE;QACtE,SAAS;YACR,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAA;YACvC,IAAI,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;YACpD,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,IAAI,CAAA;YACZ,CAAC;QACF,CAAC;QAED;;;WAGG;QACH,UAAU,CAAC,KAAK;YACf,YAAY,CACX,SAAS,EACT,GAAG,EAAE;gBACJ,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;YAClC,CAAC,EACD,EAAE,WAAW,EAAE,UAAU,EAAE,CAC3B,CAAA;QACF,CAAC;QAED;;;WAGG;QACH,WAAW,CAAC,OAAO;YAClB,OAAO,YAAY,CAClB,SAAS,EACT,GAAG,EAAE;gBACJ,IAAI,KAAK,GAAG,IAAI,CAAA;gBAChB,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACJ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;oBACrD,CAAC;oBAAC,MAAM,CAAC;wBACR,KAAK,GAAG,IAAI,CAAA;oBACb,CAAC;gBACF,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;gBAC7B,IAAI,MAAM,KAAK,SAAS;oBAAE,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBAC5D,OAAO,MAAM,CAAA;YACd,CAAC,EACD,EAAE,WAAW,EAAE,UAAU,EAAE,CAC3B,CAAA;QACF,CAAC;QAED;;;;WAIG;QACH,gBAAgB,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE;YACjC,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;QAED,wCAAwC;QACxC,gBAAgB,CAAC,MAAM;YACtB,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;QAC1C,CAAC;QAED;;;;WAIG;QACH,cAAc,CAAC,IAAI,GAAG,EAAE;YACvB,OAAO,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;QAC/C,CAAC;QAED
|
|
1
|
+
{"version":3,"file":"store.mjs","sourceRoot":"","sources":["../../../src/cli/coordination/store.mjs"],"names":[],"mappings":"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"}
|
package/dist/cli/help.mjs
CHANGED
|
@@ -26,7 +26,7 @@ Commands:
|
|
|
26
26
|
task create <dir> --description <text> [--scope <s>] [--milestone <id>] [--phase <id>] [--roadmap-ref-url <url>] [--depends-on <refs>] [--track <T>] [--autonomy <N>] Create isolated task
|
|
27
27
|
task list <dir> [--scope <s>] [--blocked-by <id>] List active tasks (optionally filtered)
|
|
28
28
|
task get <dir> --id <task-id> Get task details and artifacts
|
|
29
|
-
task update <dir> --id <id> [--lifecycle-phase <p>] [--subtasks-total <N>] [--depends-on <refs>] Update non-linkage task state
|
|
29
|
+
task update <dir> --id <id> [--lifecycle-phase <p>] [--pr-url <url>] [--subtasks-total <N>] [--depends-on <refs>] Update non-linkage task state; --pr-url may arm ci-watch per ci_watch.after_ship
|
|
30
30
|
task move <dir> --id <id> [--to-scope <s>] [--to-milestone <id>] [--to-phase <id>] [--to-roadmap-ref-url <url>] [--reason <text>] [--force] Reassign scope/milestone/phase with history
|
|
31
31
|
task close <dir> --id <task-id> [--verdict <v>] Close task and move to completed
|
|
32
32
|
task narration-drain <dir> --task <task-id> Remove a row from state.pending_narration[] under withFileLock (called by /apt:close-task --narrate-only after a successful narrator spawn)
|
|
@@ -128,6 +128,6 @@ Flags:
|
|
|
128
128
|
--help Print usage and exit
|
|
129
129
|
|
|
130
130
|
All output is JSON.`;
|
|
131
|
-
process.stdout.write(help
|
|
131
|
+
process.stdout.write(`${help}\n`);
|
|
132
132
|
}
|
|
133
133
|
//# sourceMappingURL=help.mjs.map
|
package/dist/cli/help.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.mjs","sourceRoot":"","sources":["../../src/cli/help.mjs"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,UAAU,SAAS;IACxB,MAAM,IAAI,GAAG,GAAG,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4HT,CAAA;IAEnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"help.mjs","sourceRoot":"","sources":["../../src/cli/help.mjs"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,MAAM,UAAU,SAAS;IACxB,MAAM,IAAI,GAAG,GAAG,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4HT,CAAA;IAEnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a flat per-scope roadmap snapshot for the Conductor.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} projectRoot
|
|
5
|
+
* @returns {{ scopes: Array<{ scope: string, roadmap: unknown }> }}
|
|
6
|
+
*/
|
|
7
|
+
export function buildConductorRoadmapView(projectRoot: string): {
|
|
8
|
+
scopes: Array<{
|
|
9
|
+
scope: string;
|
|
10
|
+
roadmap: unknown;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=conductor-view.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conductor-view.d.mts","sourceRoot":"","sources":["../../../src/cli/roadmap/conductor-view.mjs"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,uDAHW,MAAM,GACJ;IAAE,MAAM,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAAE,CAUlE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* conductor-view.mjs — read-only roadmap surface for the Aperant
|
|
3
|
+
* Conductor's `getRoadmap` tool.
|
|
4
|
+
*
|
|
5
|
+
* Wraps `loadRoadmapForScope` + `listRoadmapScopes` so the Conductor sees
|
|
6
|
+
* the same overlay-aware view every framework command sees. Direct reads
|
|
7
|
+
* of `.aperant/roadmap/*\/phases/*.json` or `milestones.json` would miss
|
|
8
|
+
* the dual-write overlay (seed_id from legacy blob, etc.) — Codex
|
|
9
|
+
* roundtable correction #3.
|
|
10
|
+
*
|
|
11
|
+
* Step 5 of Conductor v2 ship order.
|
|
12
|
+
*/
|
|
13
|
+
import { loadRoadmapForScope } from './io.mjs';
|
|
14
|
+
import { listRoadmapScopes } from './paths.mjs';
|
|
15
|
+
/**
|
|
16
|
+
* Build a flat per-scope roadmap snapshot for the Conductor.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} projectRoot
|
|
19
|
+
* @returns {{ scopes: Array<{ scope: string, roadmap: unknown }> }}
|
|
20
|
+
*/
|
|
21
|
+
export function buildConductorRoadmapView(projectRoot) {
|
|
22
|
+
const scopes = listRoadmapScopes(projectRoot);
|
|
23
|
+
const out = [];
|
|
24
|
+
for (const scope of scopes) {
|
|
25
|
+
const roadmap = loadRoadmapForScope(projectRoot, scope);
|
|
26
|
+
if (roadmap !== null)
|
|
27
|
+
out.push({ scope, roadmap });
|
|
28
|
+
}
|
|
29
|
+
return { scopes: out };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=conductor-view.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conductor-view.mjs","sourceRoot":"","sources":["../../../src/cli/roadmap/conductor-view.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAW;IACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;IAC7C,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACvD,IAAI,OAAO,KAAK,IAAI;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;IACnD,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AACvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discover.d.mts","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-discover.d.mts","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"AA4RA;;;;;;;GAOG;AACH,sCAEC;AAED;;;;;;;;;;;;;GAaG;AACH,mEAJG;IAAqB,SAAS,EAAtB,MAAM;IACS,mBAAmB,EAAlC,MAAM,EAAE;CAChB,GAAU,cAAc,CAc1B;;UA5Ra,MAAM;iBACN,MAAM;WACN,MAAM;YACN,MAAM;iBACN,MAAM;oBACN,OAAO;cACP,OAAO;kBACP,OAAO;gBACP,MAAM,GAAC,IAAI;WACX,MAAM,EAAE;4BACR,MAAM;qBACN,MAAM,EAAE;kBACR,YAAY,GAAC,kBAAkB,GAAC,cAAc,GAAC,MAAM;mBACrD,CAAC,OAAO,GAAC,UAAU,GAAC,MAAM,GAAC,OAAO,CAAC,GAAC,SAAS;;;;eAC7C,MAAM;;;eAKN,MAAM;YACN,mBAAmB,GAAC,qBAAqB,GAAC,uBAAuB,GAAC,YAAY;;;;YAM9E,eAAe,EAAE;aACjB,cAAc,EAAE;mBAChB,MAAM,EAAE"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import { appendFileSync, existsSync, mkdirSync, readdirSync, readFileSync, realpathSync, statSync, } from 'node:fs';
|
|
21
21
|
import { isAbsolute, join, relative, resolve } from 'node:path';
|
|
22
22
|
import { parse as parseYaml } from 'yaml';
|
|
23
|
+
import { sanitizeAptVersionForYamlParse } from '../install/version-header.mjs';
|
|
23
24
|
import { SkillFrontmatterSchema } from '../skill-author/contract.mjs';
|
|
24
25
|
const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n/;
|
|
25
26
|
/**
|
|
@@ -115,7 +116,7 @@ function readSkill(file) {
|
|
|
115
116
|
}
|
|
116
117
|
let parsed;
|
|
117
118
|
try {
|
|
118
|
-
parsed = parseYaml(m[1]);
|
|
119
|
+
parsed = parseYaml(sanitizeAptVersionForYamlParse(m[1]));
|
|
119
120
|
}
|
|
120
121
|
catch (err) {
|
|
121
122
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discover.mjs","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACN,cAAc,EACd,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,QAAQ,GACR,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAErE,MAAM,cAAc,GAAG,yBAAyB,CAAA;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;GAKG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;GAcG;AACH,SAAS,iBAAiB,CAAC,IAAI,EAAE,KAAK;IACrC,IAAI,QAAQ,CAAA;IACZ,IAAI,CAAC;QACJ,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACvC,CAAC;IAAC,MAAM,CAAC;QACR,2EAA2E;QAC3E,OAAO,KAAK,CAAA;IACb,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,QAAQ,CAAA;QACZ,IAAI,CAAC;YACJ,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACR,SAAQ;QACT,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;QACxC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IAC3E,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAI;IACtB,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACJ,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC/E,CAAA;IACF,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IACpC,IAAI,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,0BAA0B,CAAC,EAAE,CAAA;IAC1F,CAAC;IACD,IAAI,MAAM,CAAA;IACV,IAAI,CAAC;QACJ,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"skill-discover.mjs","sourceRoot":"","sources":["../../../src/cli/route/skill-discover.mjs"],"names":[],"mappings":"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"}
|
package/dist/cli/task/ids.d.mts
CHANGED
|
@@ -3,14 +3,17 @@
|
|
|
3
3
|
* Supported formats: YY-MM-DD (default, sorts chronologically), DD-MM-YY, MM-DD-YY
|
|
4
4
|
* Uses hyphens as separators for filesystem safety.
|
|
5
5
|
*/
|
|
6
|
-
export function formatDateForTask(dateFormat: any): string;
|
|
6
|
+
export function formatDateForTask(dateFormat: any, now?: Date): string;
|
|
7
7
|
/**
|
|
8
8
|
* Generate a short task ID from description + timestamp.
|
|
9
|
-
* Format: {
|
|
10
|
-
*
|
|
9
|
+
* Format: {slug}_{date}
|
|
10
|
+
* Slug comes first so task lists scan by verb instead of by date.
|
|
11
11
|
* Date format is configurable via preferences.date_format in config.
|
|
12
|
+
* Same-day same-slug collisions are disambiguated by the caller
|
|
13
|
+
* (see commands/task.mjs) via a numeric -2, -3, … suffix; this
|
|
14
|
+
* generator never emits a counter or a random hash.
|
|
12
15
|
*/
|
|
13
|
-
export function generateTaskId(description: any, config: any): string;
|
|
16
|
+
export function generateTaskId(description: any, config: any, now?: Date): string;
|
|
14
17
|
export function getTaskDir(projectDir: any, taskId: any): string;
|
|
15
18
|
/**
|
|
16
19
|
* C28 — scope-aware proof directory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.mts","sourceRoot":"","sources":["../../../src/cli/task/ids.mjs"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"ids.d.mts","sourceRoot":"","sources":["../../../src/cli/task/ids.mjs"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,uEAaC;AAED;;;;;;;;GAQG;AACH,kFAUC;AAED,iEAEC;AAED;;;;;GAKG;AACH,8EAGC"}
|
package/dist/cli/task/ids.mjs
CHANGED
|
@@ -7,8 +7,7 @@ import { join, resolve } from 'node:path';
|
|
|
7
7
|
* Supported formats: YY-MM-DD (default, sorts chronologically), DD-MM-YY, MM-DD-YY
|
|
8
8
|
* Uses hyphens as separators for filesystem safety.
|
|
9
9
|
*/
|
|
10
|
-
export function formatDateForTask(dateFormat) {
|
|
11
|
-
const now = new Date();
|
|
10
|
+
export function formatDateForTask(dateFormat, now = new Date()) {
|
|
12
11
|
const yy = String(now.getFullYear()).slice(2);
|
|
13
12
|
const mm = String(now.getMonth() + 1).padStart(2, '0');
|
|
14
13
|
const dd = String(now.getDate()).padStart(2, '0');
|
|
@@ -24,20 +23,22 @@ export function formatDateForTask(dateFormat) {
|
|
|
24
23
|
}
|
|
25
24
|
/**
|
|
26
25
|
* Generate a short task ID from description + timestamp.
|
|
27
|
-
* Format: {
|
|
28
|
-
*
|
|
26
|
+
* Format: {slug}_{date}
|
|
27
|
+
* Slug comes first so task lists scan by verb instead of by date.
|
|
29
28
|
* Date format is configurable via preferences.date_format in config.
|
|
29
|
+
* Same-day same-slug collisions are disambiguated by the caller
|
|
30
|
+
* (see commands/task.mjs) via a numeric -2, -3, … suffix; this
|
|
31
|
+
* generator never emits a counter or a random hash.
|
|
30
32
|
*/
|
|
31
|
-
export function generateTaskId(description, config) {
|
|
33
|
+
export function generateTaskId(description, config, now = new Date()) {
|
|
32
34
|
const slug = description
|
|
33
35
|
.toLowerCase()
|
|
34
36
|
.replace(/[^a-z0-9]+/g, '-')
|
|
35
|
-
.
|
|
36
|
-
.
|
|
37
|
+
.slice(0, 40)
|
|
38
|
+
.replace(/^-|-$/g, '') || 'task';
|
|
37
39
|
const dateFormat = config?.preferences?.date_format || 'YY-MM-DD';
|
|
38
|
-
const date = formatDateForTask(dateFormat);
|
|
39
|
-
|
|
40
|
-
return `${date}_${slug}-${hash}`;
|
|
40
|
+
const date = formatDateForTask(dateFormat, now);
|
|
41
|
+
return `${slug}_${date}`;
|
|
41
42
|
}
|
|
42
43
|
export function getTaskDir(projectDir, taskId) {
|
|
43
44
|
return join(resolve(projectDir), '.aperant', 'tasks', taskId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.mjs","sourceRoot":"","sources":["../../../src/cli/task/ids.mjs"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAU
|
|
1
|
+
{"version":3,"file":"ids.mjs","sourceRoot":"","sources":["../../../src/cli/task/ids.mjs"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAU,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IAC7D,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7C,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACjD,QAAQ,UAAU,EAAE,CAAC;QACpB,KAAK,UAAU;YACd,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAA;QAC3B,KAAK,UAAU;YACd,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAA;QAC3B,KAAK,UAAU,CAAC;QAChB;YACC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAA;IAC5B,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE;IACnE,MAAM,IAAI,GACT,WAAW;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SACZ,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,MAAM,CAAA;IAClC,MAAM,UAAU,GAAG,MAAM,EAAE,WAAW,EAAE,WAAW,IAAI,UAAU,CAAA;IACjE,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;IAC/C,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,UAAU,EAAE,MAAM;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAC9D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM;IACpD,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAA;IAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;AAC7E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,126 +1,134 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
2
|
+
"name": "@aperant/framework",
|
|
3
|
+
"version": "0.6.6",
|
|
4
|
+
"description": "AI coding framework — composable skills for planning, executing, verifying, and reviewing code with any LLM provider. Works as Claude Code commands, Codex tasks, or programmatically.",
|
|
5
|
+
"author": "Mikalsen AI <hello@mikalsen.ai>",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"framework": "./bin/apt-tools.mjs",
|
|
11
|
+
"apt-tools": "./bin/apt-tools.mjs",
|
|
12
|
+
"apt-proof-video": "./bin/apt-proof-video.mjs"
|
|
13
|
+
},
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./types": {
|
|
20
|
+
"types": "./dist/types/index.d.ts",
|
|
21
|
+
"import": "./dist/types/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./cost": {
|
|
24
|
+
"types": "./dist/cost/index.d.ts",
|
|
25
|
+
"import": "./dist/cost/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./mappers": {
|
|
28
|
+
"types": "./dist/mappers/index.d.ts",
|
|
29
|
+
"import": "./dist/mappers/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./schemas": {
|
|
32
|
+
"types": "./dist/schemas/index.d.ts",
|
|
33
|
+
"import": "./dist/schemas/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./standalone": {
|
|
36
|
+
"types": "./dist/standalone/index.d.ts",
|
|
37
|
+
"import": "./dist/standalone/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./coordination/event-schema": {
|
|
40
|
+
"types": "./src/cli/coordination/event-schema.d.ts",
|
|
41
|
+
"import": "./src/cli/coordination/event-schema.mjs"
|
|
42
|
+
},
|
|
43
|
+
"./roadmap/conductor-view": {
|
|
44
|
+
"types": "./src/cli/roadmap/conductor-view.d.ts",
|
|
45
|
+
"import": "./src/cli/roadmap/conductor-view.mjs"
|
|
46
|
+
},
|
|
47
|
+
"./design/scan": {
|
|
48
|
+
"import": "./src/cli/design/scan.mjs"
|
|
49
|
+
},
|
|
50
|
+
"./design/extract-repo": {
|
|
51
|
+
"import": "./src/cli/design/extract-repo.mjs"
|
|
52
|
+
},
|
|
53
|
+
"./design/synthesize": {
|
|
54
|
+
"import": "./src/cli/design/synthesize.mjs"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsc && node scripts/extract-personas-schema.mjs",
|
|
59
|
+
"dev": "tsc --watch --preserveWatchOutput",
|
|
60
|
+
"typecheck": "tsc --noEmit",
|
|
61
|
+
"lint": "biome check . --diagnostic-level=error",
|
|
62
|
+
"lint:fix": "biome check --write . --diagnostic-level=error",
|
|
63
|
+
"clean": "rm -rf dist",
|
|
64
|
+
"test": "vitest run",
|
|
65
|
+
"c28:cutover": "node scripts/c28-cutover.mjs",
|
|
66
|
+
"build-plugin": "node scripts/build-plugin.mjs",
|
|
67
|
+
"publish-plugin": "node scripts/publish-plugin.mjs",
|
|
68
|
+
"publish:verdaccio": "node scripts/publish-verdaccio.mjs",
|
|
69
|
+
"release:verdaccio": "pnpm build && pnpm publish:verdaccio",
|
|
70
|
+
"ship:verdaccio": "npm version patch --no-git-tag-version && pnpm build && pnpm publish:verdaccio"
|
|
71
|
+
},
|
|
72
|
+
"files": [
|
|
73
|
+
"dist/",
|
|
74
|
+
"bin/",
|
|
75
|
+
"src/cli/",
|
|
76
|
+
"src/cost/",
|
|
77
|
+
"commands/",
|
|
78
|
+
"skills/",
|
|
79
|
+
"agents/",
|
|
80
|
+
"prompts/",
|
|
81
|
+
"templates/",
|
|
82
|
+
"context/",
|
|
83
|
+
"workflows/",
|
|
84
|
+
"examples/",
|
|
85
|
+
"LICENSE",
|
|
86
|
+
"README.md",
|
|
87
|
+
"CHANGELOG.md",
|
|
88
|
+
"!**/__tests__/**",
|
|
89
|
+
"!**/*.test.*",
|
|
90
|
+
"!**/*.spec.*",
|
|
91
|
+
"!**/*.test.d.ts.map",
|
|
92
|
+
"!**/*.test.js.map"
|
|
93
|
+
],
|
|
94
|
+
"keywords": [
|
|
95
|
+
"ai",
|
|
96
|
+
"framework",
|
|
97
|
+
"coding-assistant",
|
|
98
|
+
"claude-code",
|
|
99
|
+
"codex",
|
|
100
|
+
"aperant"
|
|
101
|
+
],
|
|
102
|
+
"license": "AGPL-3.0-only",
|
|
103
|
+
"homepage": "https://github.com/Mikalsen-AI/aperant-cloud-desktop/tree/main/packages/framework#readme",
|
|
104
|
+
"bugs": {
|
|
105
|
+
"url": "https://github.com/Mikalsen-AI/aperant-cloud-desktop/issues"
|
|
106
|
+
},
|
|
107
|
+
"repository": {
|
|
108
|
+
"type": "git",
|
|
109
|
+
"url": "https://github.com/Mikalsen-AI/aperant-cloud-desktop.git",
|
|
110
|
+
"directory": "packages/framework"
|
|
111
|
+
},
|
|
112
|
+
"engines": {
|
|
113
|
+
"node": ">=18.0.0"
|
|
114
|
+
},
|
|
115
|
+
"publishConfig": {
|
|
116
|
+
"access": "public"
|
|
117
|
+
},
|
|
118
|
+
"dependencies": {
|
|
119
|
+
"@clack/prompts": "^1.2.0",
|
|
120
|
+
"proper-lockfile": "^4.1.2",
|
|
121
|
+
"yaml": "^2.8.3",
|
|
122
|
+
"zod": "^4.3.6"
|
|
123
|
+
},
|
|
124
|
+
"optionalDependencies": {
|
|
125
|
+
"@babel/parser": "^7.29.2",
|
|
126
|
+
"@babel/traverse": "^7.29.0",
|
|
127
|
+
"@google/genai": "^1.50.1",
|
|
128
|
+
"css-tree": "^3.2.1",
|
|
129
|
+
"playwright": "^1.59.1"
|
|
130
|
+
},
|
|
131
|
+
"devDependencies": {
|
|
132
|
+
"@vitest/coverage-v8": "^4.1.5"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Conductor — Tap-on-Shoulder Status Check Template
|
|
2
|
+
|
|
3
|
+
> NOTE: Phase 1 does not inject this prompt. It is the canonical template that Phase 3's tap-on-shoulder protocol will consume. The `{request_id}` substitution is the only dynamic value.
|
|
4
|
+
|
|
5
|
+
## Template
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Status check (request_id={request_id}):
|
|
9
|
+
|
|
10
|
+
Reply tagged [status:{request_id}] with:
|
|
11
|
+
1. One-line summary of what you just did.
|
|
12
|
+
2. One-line summary of what you intend to do next.
|
|
13
|
+
3. Anything you are blocked on or need from the user.
|
|
14
|
+
|
|
15
|
+
Keep your reply under 100 tokens. Do not paste transcripts.
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Guardrails (Phase 3 consumer contract)
|
|
19
|
+
|
|
20
|
+
- Inject only after a quiescence check ("no pending tool prompt", "no pending permission ask") — see `claude-code/quiescence.ts`.
|
|
21
|
+
- Apply a timeout window (default 60s); ignore ambiguous / untagged replies.
|
|
22
|
+
- The reply is **informational only** — never executed as a command without a separate cross-check (R7).
|
|
23
|
+
- Bound the captured reply to ~100-300 tokens. Never capture transcripts.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Conductor Sub-Agent — Reviewer System Prompt
|
|
2
|
+
|
|
3
|
+
You are a **conductor sub-agent reviewer**: a single-pass parallel reviewer spawned by the Conductor's sub-agent queue (via the sparring engine) to evaluate a fleet event and recommend whether the Conductor should log an intent.
|
|
4
|
+
|
|
5
|
+
## Identity
|
|
6
|
+
|
|
7
|
+
- You run on a **frontier model** (Anthropic Opus 4.7 1M, OpenAI GPT-5.4/5.5 frontier, Google Gemini latest frontier). Cheap-model fallback is forbidden.
|
|
8
|
+
- You have **no project filesystem access**. You do not call Read, Glob, or Grep. You see only the event payload, the prior context the Conductor handed you, and the cross-check tool.
|
|
9
|
+
- You return a structured `findings` blob (severity / title / body / ref) — the same shape the sparring engine's lens reviewers return.
|
|
10
|
+
|
|
11
|
+
## Your one tool: `crossCheck`
|
|
12
|
+
|
|
13
|
+
You can demand ground truth via the deterministic cross-check primitive:
|
|
14
|
+
|
|
15
|
+
- `crossCheckFileClaim(file, sinceRef)` → did `git diff --name-only sinceRef -- file` produce output?
|
|
16
|
+
- `crossCheckPhaseComplete(taskDir)` → is the last commit touching `taskDir` recent?
|
|
17
|
+
- `crossCheckPRClaim(prUrl)` → does `gh pr view prUrl --json state` return a live PR?
|
|
18
|
+
|
|
19
|
+
If your evaluation depends on an agent's self-reported claim ("I finished the spec", "the PR is open", "I edited file X"), call `crossCheck` before recommending action. **You can be confidently wrong about completion claims because you only see text.** The cross-check is the floor under hallucination.
|
|
20
|
+
|
|
21
|
+
## What to evaluate
|
|
22
|
+
|
|
23
|
+
The Conductor hands you:
|
|
24
|
+
|
|
25
|
+
- The triggering event (e.g. `phase.changed{ to: 'idle' }`, `artifact.ready`, `budget.exceeded`).
|
|
26
|
+
- The enrolled terminal's tier (A / B / C) and current autonomy setting.
|
|
27
|
+
- Relevant prior intents from this terminal in the recent window.
|
|
28
|
+
|
|
29
|
+
Recommend one of:
|
|
30
|
+
|
|
31
|
+
1. **No-op** — the event is routine; no intent needed. (severity: `low`, title: `routine event`)
|
|
32
|
+
2. **Suggest** — the Conductor should log an intent suggesting a follow-up action. Include the action and reasoning. (severity: `medium`, title: `<suggested action>`)
|
|
33
|
+
3. **Escalate** — the event signals an error / blocked state / security concern. The Conductor should surface this prominently. (severity: `high`, title: `<concern>`)
|
|
34
|
+
4. **Cross-check failed** — you called `crossCheck` and the claim did not verify. (severity: `high`, title: `cross-check failed: <claim>`)
|
|
35
|
+
|
|
36
|
+
## Output shape
|
|
37
|
+
|
|
38
|
+
Return a JSON object with a `findings` array:
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"findings": [
|
|
43
|
+
{
|
|
44
|
+
"severity": "low" | "medium" | "high",
|
|
45
|
+
"title": "short title",
|
|
46
|
+
"body": "1-3 sentence reasoning",
|
|
47
|
+
"ref": "<optional event_id or file path>"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The sparring engine parses this with the same `FindingsBlobSchema` it uses for lens reviewers. One finding per recommendation. Multiple findings are allowed when an event triggers multiple recommendations.
|
|
54
|
+
|
|
55
|
+
## Style
|
|
56
|
+
|
|
57
|
+
Be terse. Quote the cross-check evidence verbatim when it disagrees with the agent's claim. Do not author code. Do not propose diffs.
|