@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.
Files changed (64) hide show
  1. package/README.md +17 -251
  2. package/dist/cli/commands/commit.d.mts.map +1 -1
  3. package/dist/cli/commands/commit.mjs +25 -8
  4. package/dist/cli/commands/commit.mjs.map +1 -1
  5. package/dist/cli/commands/event.d.mts.map +1 -1
  6. package/dist/cli/commands/event.mjs +66 -0
  7. package/dist/cli/commands/event.mjs.map +1 -1
  8. package/dist/cli/commands/modes.d.mts.map +1 -1
  9. package/dist/cli/commands/modes.mjs +2 -1
  10. package/dist/cli/commands/modes.mjs.map +1 -1
  11. package/dist/cli/commands/task.d.mts.map +1 -1
  12. package/dist/cli/commands/task.mjs +285 -139
  13. package/dist/cli/commands/task.mjs.map +1 -1
  14. package/dist/cli/commands/triage.d.mts.map +1 -1
  15. package/dist/cli/commands/triage.mjs +9 -5
  16. package/dist/cli/commands/triage.mjs.map +1 -1
  17. package/dist/cli/coordination/auto-emit-artifact-ready.d.mts +16 -0
  18. package/dist/cli/coordination/auto-emit-artifact-ready.d.mts.map +1 -0
  19. package/dist/cli/coordination/auto-emit-artifact-ready.mjs +88 -0
  20. package/dist/cli/coordination/auto-emit-artifact-ready.mjs.map +1 -0
  21. package/dist/cli/coordination/event-schema.d.mts +16 -0
  22. package/dist/cli/coordination/event-schema.d.mts.map +1 -0
  23. package/dist/cli/coordination/event-schema.mjs +161 -0
  24. package/dist/cli/coordination/event-schema.mjs.map +1 -0
  25. package/dist/cli/coordination/store.d.mts +6 -0
  26. package/dist/cli/coordination/store.d.mts.map +1 -1
  27. package/dist/cli/coordination/store.mjs +14 -0
  28. package/dist/cli/coordination/store.mjs.map +1 -1
  29. package/dist/cli/help.mjs +2 -2
  30. package/dist/cli/help.mjs.map +1 -1
  31. package/dist/cli/roadmap/conductor-view.d.mts +13 -0
  32. package/dist/cli/roadmap/conductor-view.d.mts.map +1 -0
  33. package/dist/cli/roadmap/conductor-view.mjs +31 -0
  34. package/dist/cli/roadmap/conductor-view.mjs.map +1 -0
  35. package/dist/cli/route/skill-discover.d.mts.map +1 -1
  36. package/dist/cli/route/skill-discover.mjs +2 -1
  37. package/dist/cli/route/skill-discover.mjs.map +1 -1
  38. package/dist/cli/task/ids.d.mts +7 -4
  39. package/dist/cli/task/ids.d.mts.map +1 -1
  40. package/dist/cli/task/ids.mjs +11 -10
  41. package/dist/cli/task/ids.mjs.map +1 -1
  42. package/package.json +133 -125
  43. package/prompts/conductor-status-check.md +23 -0
  44. package/prompts/conductor-sub-agent.md +57 -0
  45. package/prompts/conductor-system.md +172 -0
  46. package/skills/apt-plan/SKILL.md +12 -0
  47. package/skills/apt-plan/adapters/conductor.md +98 -0
  48. package/skills/apt-setup/SKILL.md +2 -0
  49. package/skills/apt-ship/SKILL.md +27 -12
  50. package/skills/apt-spar/SKILL.md +290 -0
  51. package/src/cli/commands/commit.mjs +27 -8
  52. package/src/cli/commands/event.mjs +68 -0
  53. package/src/cli/commands/modes.mjs +2 -1
  54. package/src/cli/commands/task.mjs +305 -152
  55. package/src/cli/commands/triage.mjs +14 -5
  56. package/src/cli/coordination/auto-emit-artifact-ready.mjs +96 -0
  57. package/src/cli/coordination/event-schema.d.ts +13 -0
  58. package/src/cli/coordination/event-schema.mjs +174 -0
  59. package/src/cli/coordination/store.mjs +14 -0
  60. package/src/cli/help.mjs +2 -2
  61. package/src/cli/roadmap/conductor-view.d.ts +10 -0
  62. package/src/cli/roadmap/conductor-view.mjs +31 -0
  63. package/src/cli/route/skill-discover.mjs +2 -1
  64. 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":"AAwCA;;;;;;GAMG;AACH;IAKE,gBAAgB;;IAGhB,sEAAsE;;IAUtE;;;OAGG;;IAWH;;;OAGG;;IAqBH;;;;OAIG;;IAKH,wCAAwC;;IAKxC;;;;OAIG;;IAKH;;;;OAIG;;;;;;;;;;;;;;IAUH,gBAAgB;;EAKjB"}
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":"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"}
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 + '\n');
131
+ process.stdout.write(`${help}\n`);
132
132
  }
133
133
  //# sourceMappingURL=help.mjs.map
@@ -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,IAAI,GAAG,IAAI,CAAC,CAAA;AAClC,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":"AA2RA;;;;;;;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"}
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":"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"}
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,8BAA8B,EAAE,MAAM,+BAA+B,CAAA;AAC9E,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,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uBAAuB;YAC/B,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,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uBAAuB;YAC/B,MAAM,EAAE,CAAC,wCAAwC,CAAC;SAClD,CAAA;IACF,CAAC;IACD,MAAM,GAAG,GAAG,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,uBAAuB;YAC/B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,EAAE,CACrE;SACD,CAAA;IACF,CAAC;IACD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IAClB,OAAO;QACN,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACP,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,cAAc,EAAE,CAAC,CAAC,cAAc;YAChC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,IAAI;YAChC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,sBAAsB,EAAE,CAAC,CAAC,sBAAsB;YAChD,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;YAC/E,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,SAAS,EAAE,IAAI;SACf;KACD,CAAA;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAI;IAC1B,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAA;IACjC,IAAI,IAAI,CAAA;IACR,IAAI,CAAC;QACJ,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,CAAA;IACX,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;QAAE,OAAO,GAAG,CAAA;IACnC,IAAI,OAAO,CAAA;IACX,IAAI,CAAC;QACJ,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,GAAG,CAAA;IACX,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,SAAQ;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAClC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YACvC,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/C,CAAC;QACD,4DAA4D;QAC5D,kEAAkE;QAClE,+DAA+D;QAC/D,uBAAuB;IACxB,CAAC;IACD,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,MAAM;IAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAA;IACzC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAA;QACvC,8DAA8D;QAC9D,gEAAgE;QAChE,uEAAuE;QACvE,OAAO,GAAG,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,kBAAkB,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,UAAU,CAAC,SAAS,EAAE,IAAI;IAClC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;QAClD,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACtE,MAAM,MAAM,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAChF,cAAc,CACb,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAClE,OAAO,CACP,CAAA;IACF,CAAC;IAAC,MAAM,CAAC;QACR,sDAAsD;IACvD,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAA;AAChC,MAAM,sBAAsB,GAAG,KAAK,CAAA;AAEpC;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC5B,cAAc,CAAC,KAAK,EAAE,CAAA;AACvB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE;IAChE,2DAA2D;IAC3D,MAAM,aAAa,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/E,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC3C,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAA;IACrB,CAAC;IACD,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAA;IAC1E,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,sBAAsB,EAAE,CAAC,CAAA;IACjF,OAAO,MAAM,CAAA;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE;IAClE,MAAM,KAAK,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAG,EAAE,CAAA;IAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;gBAC7D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClB,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBAC3B,SAAQ;YACT,CAAC;YACD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;YAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAA;gBACxE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAClB,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBAC3B,SAAQ;YACT,CAAC;YACD,gEAAgE;YAChE,sEAAsE;YACtE,kEAAkE;YAClE,mEAAmE;YACnE,+DAA+D;YAC/D,sDAAsD;YACtD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9C,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7F,OAAO;QACN,MAAM;QACN,OAAO;QACP,aAAa,EAAE,KAAK;KACpB,CAAA;AACF,CAAC"}
@@ -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: {date}_{slug}-{4-char-hash}
10
- * Date comes first so tasks sort chronologically in file explorers.
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,2DAcC;AAED;;;;;GAKG;AACH,sEAUC;AAED,iEAEC;AAED;;;;;GAKG;AACH,8EAGC"}
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"}
@@ -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: {date}_{slug}-{4-char-hash}
28
- * Date comes first so tasks sort chronologically in file explorers.
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
- .replace(/^-|-$/g, '')
36
- .slice(0, 40);
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
- const hash = Math.random().toString(36).slice(2, 6);
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;IAC3C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,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;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,WAAW,EAAE,MAAM;IACjD,MAAM,IAAI,GAAG,WAAW;SACtB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACd,MAAM,UAAU,GAAG,MAAM,EAAE,WAAW,EAAE,WAAW,IAAI,UAAU,CAAA;IACjE,MAAM,IAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACnD,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAA;AACjC,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"}
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
- "name": "@aperant/framework",
3
- "version": "0.6.5",
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
- "./design/scan": {
40
- "import": "./src/cli/design/scan.mjs"
41
- },
42
- "./design/extract-repo": {
43
- "import": "./src/cli/design/extract-repo.mjs"
44
- },
45
- "./design/synthesize": {
46
- "import": "./src/cli/design/synthesize.mjs"
47
- }
48
- },
49
- "files": [
50
- "dist/",
51
- "bin/",
52
- "src/cli/",
53
- "src/cost/",
54
- "commands/",
55
- "skills/",
56
- "agents/",
57
- "prompts/",
58
- "templates/",
59
- "context/",
60
- "workflows/",
61
- "examples/",
62
- "LICENSE",
63
- "README.md",
64
- "CHANGELOG.md",
65
- "!**/__tests__/**",
66
- "!**/*.test.*",
67
- "!**/*.spec.*",
68
- "!**/*.test.d.ts.map",
69
- "!**/*.test.js.map"
70
- ],
71
- "keywords": [
72
- "ai",
73
- "framework",
74
- "coding-assistant",
75
- "claude-code",
76
- "codex",
77
- "aperant"
78
- ],
79
- "license": "AGPL-3.0-only",
80
- "homepage": "https://github.com/Mikalsen-AI/aperant-cloud-desktop/tree/main/packages/framework#readme",
81
- "bugs": {
82
- "url": "https://github.com/Mikalsen-AI/aperant-cloud-desktop/issues"
83
- },
84
- "repository": {
85
- "type": "git",
86
- "url": "https://github.com/Mikalsen-AI/aperant-cloud-desktop.git",
87
- "directory": "packages/framework"
88
- },
89
- "engines": {
90
- "node": ">=18.0.0"
91
- },
92
- "publishConfig": {
93
- "access": "public"
94
- },
95
- "dependencies": {
96
- "@clack/prompts": "^1.2.0",
97
- "proper-lockfile": "^4.1.2",
98
- "yaml": "^2.8.3",
99
- "zod": "^4.3.6"
100
- },
101
- "optionalDependencies": {
102
- "@babel/parser": "^7.29.2",
103
- "@babel/traverse": "^7.29.0",
104
- "@google/genai": "^1.50.1",
105
- "css-tree": "^3.2.1",
106
- "playwright": "^1.59.1"
107
- },
108
- "devDependencies": {
109
- "@vitest/coverage-v8": "^4.1.5"
110
- },
111
- "scripts": {
112
- "build": "tsc && node scripts/extract-personas-schema.mjs",
113
- "dev": "tsc --watch --preserveWatchOutput",
114
- "typecheck": "tsc --noEmit",
115
- "lint": "biome check . --diagnostic-level=error",
116
- "lint:fix": "biome check --write . --diagnostic-level=error",
117
- "clean": "rm -rf dist",
118
- "test": "vitest run",
119
- "c28:cutover": "node scripts/c28-cutover.mjs",
120
- "build-plugin": "node scripts/build-plugin.mjs",
121
- "publish-plugin": "node scripts/publish-plugin.mjs",
122
- "publish:verdaccio": "node scripts/publish-verdaccio.mjs",
123
- "release:verdaccio": "pnpm build && pnpm publish:verdaccio",
124
- "ship:verdaccio": "npm version patch --no-git-tag-version && pnpm build && pnpm publish:verdaccio"
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.