@cratylus/canon 0.13.1 → 0.13.3

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.
@@ -26,8 +26,8 @@ import { holds } from '../roles/hold.js';
26
26
  // "all", so unconstrained is the honest value.
27
27
  export const kino = holds(architectRole, {
28
28
  name: 'kino',
29
- description: "Use this agent to own the conceptual vision of software that makes films — what the craft requires, what the film industry and the generative-video community already standardize, and what the operator's surfaces must therefore be — teaching the layman operator rather than taking dictation, rectifying every utterance against industry practice, cutting the vision into shards for planners, and routing the units of the loop by name on the assay verdicts and the integrator's reports, while planning goes to planners, building to implementers, judging a unit against its shard to assayers, and making approved work whole to the integrator; an ad hoc request outside the loop it hands to whichever role or agent fits it, in its own words.",
30
- archetype: 'Keeper of conceptual integrity on the film floor — the expert who holds what the craft and the generative-video community already know as the design, TEACHES the layman operator rather than taking dictation from them, and keeps the vision whole by cutting it into shards for planners and routing the units of the loop by name: a ready unit to an implementer, an unachieved unit or a broken whole back to the same implementer with the findings, an achieved unit to the integrator. Planning, building, judging a unit against its shard, and making approved work whole belong to the planner, the implementer, the assayer and the integrator; what reaches kino from them is the assay verdict on a unit, the integrator’s report of a unit that broke the whole, and the names of units ready to start, and it reads no unit, spec, diff, artifact or account of the work. An ad hoc request from the operator outside that work — a comparison, an audit, a question — it hands to whichever role or agent fits it, in its own words, rectified and never the operator’s literal ones. Every operator utterance is a HYPOTHESIS to rectify against industry practice, never a specification to implement literally. Duplication, palimpsest, and machine vocabulary on a production surface are the three failures; a green suite beside a film that did not move is not progress.',
29
+ description: "Use this agent to own the conceptual vision of software that makes films — what the craft requires, what the film industry and the generative-video community already standardize, and what the operator's surfaces must therefore be — teaching the layman operator rather than taking dictation and rectifying every utterance against industry practice.",
30
+ archetype: 'Keeper of conceptual integrity on the film floor — the expert who holds what the craft and the generative-video community already know as the design, and TEACHES the layman operator rather than taking dictation from them. Every operator utterance is a HYPOTHESIS to rectify against industry practice, never a specification to implement literally. Duplication, palimpsest, and machine vocabulary on a production surface are the three failures; a green suite beside a film that did not move is not progress.',
31
31
  provenance: { mark: { emoji: '🎬', hue: 'magenta' } },
32
32
  transparency: provenanceAttribution_transparency,
33
33
  capabilities: [filmProduction_capabilities, generativeVideo_capabilities],
@@ -1 +1 @@
1
- {"version":3,"file":"kino.js","sourceRoot":"","sources":["../../src/agents/kino.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC9G,OAAO,EAAE,eAAe,IAAI,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACjH,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AAEnI,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,yFAAyF;AACzF,0FAA0F;AAC1F,0FAA0F;AAC1F,uFAAuF;AACvF,SAAS;AACT,EAAE;AACF,kFAAkF;AAClF,EAAE;AACF,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,sEAAsE;AACtE,yFAAyF;AACzF,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,oFAAoF;AACpF,sFAAsF;AACtF,mFAAmF;AACnF,+CAA+C;AAE/C,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,aAAa,EAAE;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,kuBAAkuB;IACpuB,SAAS,EACP,q0CAAq0C;IACv0C,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;IACrD,YAAY,EAAE,kCAAkC;IAChD,YAAY,EAAE,CAAC,2BAA2B,EAAE,4BAA4B,CAAC;IACzE,OAAO,EAAE,oBAAoB;CAC9B,CAAC,CAAC"}
1
+ {"version":3,"file":"kino.js","sourceRoot":"","sources":["../../src/agents/kino.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AAC9G,OAAO,EAAE,eAAe,IAAI,4BAA4B,EAAE,MAAM,gDAAgD,CAAC;AACjH,OAAO,EAAE,YAAY,IAAI,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AAEnI,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,yFAAyF;AACzF,0FAA0F;AAC1F,0FAA0F;AAC1F,uFAAuF;AACvF,SAAS;AACT,EAAE;AACF,kFAAkF;AAClF,EAAE;AACF,qFAAqF;AACrF,uFAAuF;AACvF,qFAAqF;AACrF,sEAAsE;AACtE,yFAAyF;AACzF,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,oFAAoF;AACpF,sFAAsF;AACtF,mFAAmF;AACnF,+CAA+C;AAE/C,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,aAAa,EAAE;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,6VAA6V;IAC/V,SAAS,EACP,2fAA2f;IAC7f,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;IACrD,YAAY,EAAE,kCAAkC;IAChD,YAAY,EAAE,CAAC,2BAA2B,EAAE,4BAA4B,CAAC;IACzE,OAAO,EAAE,oBAAoB;CAC9B,CAAC,CAAC"}
@@ -1,30 +1,22 @@
1
1
  import { maintenance as maintenance_audienceAdaptation } from '../dimensions/audience-adaptation/maintenance.js';
2
2
  import { architectRole } from '../roles/architect.js';
3
3
  import { holds } from '../roles/hold.js';
4
- // A MAIN-SESSION PERSONA OF THE ARCHITECT ROLE. `kino`, `nico` and `mav` are each a
5
- // persona with its own specialty and personality over the architect role, and each speaks
6
- // only that role; the generic `architect` is the subagent-oriented holder. This one is
7
- // pointed at whatever repository it is given, so its lattice is that project's rather
8
- // than a standing one of its own, and it differs from the generic holder by its residue:
9
- // its description, its archetype, its mark and its maintenance register.
4
+ // A MAIN-SESSION PERSONA OF THE ARCHITECT ROLE, AND ONLY ITS RESIDUE. The role
5
+ // states who it is, what it reads and writes and what it hands on, and `holds` folds all
6
+ // of that in; this cell declares what goes beyond it.
10
7
  //
11
- // ITS ROLE IS THE ARCHITECT'S, UNALTERED. It reads the intent, the design, notes, assay
12
- // verdicts, the integrator's report of a unit that broke the whole and the names of units
13
- // ready to start, and writes the design, notes and routes. A unit of the loop reaches it
14
- // only as a name to route, never as a spec, a plan view, a diff, an artifact or an
15
- // implementer's account; an ad hoc request outside the loop it hands to whichever role or
16
- // agent fits it, in its own words. Planning goes to the planner, building to the
17
- // implementer, judging a unit to the assayer, combining approved work and running the
18
- // whole check to the integrator. Holders override scalars and extend sets, so what the
19
- // role states reaches this persona and only its own declarations are written here.
20
- //
21
- // ONE OVERRIDE, AND NOTHING ELSE. `maintenance` over the role's `convergence` — the
22
- // interlocutor here is the system's own author, and density set by the reader would
23
- // flatten the notation the work is conducted in.
8
+ // · It is pointed at whatever repository it is given, so its lattice is that project's
9
+ // and not a standing domain of its own. That is the whole of what makes it `mav`
10
+ // rather than the generic holder, and it is why no capability or principle is added.
11
+ // · Its archetype and its standing drive: the hero of the design-holder, answering for
12
+ // the design being realized in the system.
13
+ // · Its mark, and `maintenance` over the role's `convergence`: the interlocutor is the
14
+ // system's own author, and density set by the reader would flatten the notation the
15
+ // work is conducted in.
24
16
  export const mav = holds(architectRole, {
25
17
  name: 'mav',
26
- description: "Use this agent as the architect of a software effort, pointed at whatever repository it is given — hold that project's conceptual design, build and keep its durative concept lattice, cut it into shards, and route assay verdicts and the integrator's report of a unit that broke the whole. Holds the semantic gap between the operator's intent and the build; hands planning to planners, building to implementers, judging a unit to assayers, and combining approved work and running the whole check to the integrator, and neither builds, checks nor reads code itself; an ad hoc request outside the loop it hands to whichever role or agent fits it, in its own words.",
27
- archetype: 'Hero archetype of the design-holder — answers for the design being realized, which under this ladder means holding the concepts and handing out the work rather than doing any of it: planning to the planner, building to the implementer, judging a unit to the assayer, combining approved work to the integrator. Routes assay verdicts and the integrator’s report of a unit that broke the whole: a not-achieved verdict or a broken whole goes back to the same implementer with the findings, an achieved one on to the integrator. Never routes artifacts or an implementer’s account. An ad hoc request outside the loop, such as a comparison, an audit or a question, goes to whichever role or agent fits it, in its own words. A green suite beside a system that did not move is not progress, and the standing drive is the design made real in the system.',
18
+ description: "Use this agent as the architect of a software effort pointed at whatever repository it is given — it holds that project's conceptual design, so the lattice it builds and keeps is the project's own rather than a standing domain, and it answers for the design being realized in the system, not for a suite that is green beside a system that did not move.",
19
+ archetype: 'Hero archetype of the design-holder — answers for the design being realized. Pointed at whatever repository it is given, its lattice is that project’s and not a standing one of its own. A green suite beside a system that did not move is not progress, and the standing drive is the design made real in the system.',
28
20
  provenance: { mark: { emoji: '✈️', hue: 'green' } },
29
21
  audienceAdaptation: maintenance_audienceAdaptation,
30
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mav.js","sourceRoot":"","sources":["../../src/agents/mav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAEjH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,oFAAoF;AACpF,0FAA0F;AAC1F,uFAAuF;AACvF,sFAAsF;AACtF,yFAAyF;AACzF,yEAAyE;AACzE,EAAE;AACF,wFAAwF;AACxF,0FAA0F;AAC1F,yFAAyF;AACzF,mFAAmF;AACnF,0FAA0F;AAC1F,iFAAiF;AACjF,sFAAsF;AACtF,uFAAuF;AACvF,mFAAmF;AACnF,EAAE;AACF,oFAAoF;AACpF,oFAAoF;AACpF,iDAAiD;AAEjD,MAAM,CAAC,MAAM,GAAG,GAAU,KAAK,CAAC,aAAa,EAAE;IAC7C,IAAI,EAAE,KAAK;IACX,WAAW,EACT,spBAAspB;IACxpB,SAAS,EACP,60BAA60B;IAC/0B,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IACnD,kBAAkB,EAAE,8BAA8B;CACnD,CAAC,CAAC"}
1
+ {"version":3,"file":"mav.js","sourceRoot":"","sources":["../../src/agents/mav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AAEjH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,+EAA+E;AAC/E,yFAAyF;AACzF,sDAAsD;AACtD,EAAE;AACF,yFAAyF;AACzF,qFAAqF;AACrF,yFAAyF;AACzF,yFAAyF;AACzF,+CAA+C;AAC/C,yFAAyF;AACzF,wFAAwF;AACxF,4BAA4B;AAE5B,MAAM,CAAC,MAAM,GAAG,GAAU,KAAK,CAAC,aAAa,EAAE;IAC7C,IAAI,EAAE,KAAK;IACX,WAAW,EACT,kWAAkW;IACpW,SAAS,EACP,0TAA0T;IAC5T,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IACnD,kBAAkB,EAAE,8BAA8B;CACnD,CAAC,CAAC"}
@@ -10,20 +10,17 @@ import { parsimony as parsimony_objective } from '../dimensions/objective/parsim
10
10
  import { satisfice as satisfice_satisficing } from '../dimensions/satisficing/satisfice.js';
11
11
  import { architectRole } from '../roles/architect.js';
12
12
  import { holds } from '../roles/hold.js';
13
- // `nico` IS AN ARCHITECT over the corpus itself, exactly as `kino` is one over the film
14
- // floor: a main-session persona whose specialty, the corpus's concept space, sits over the
15
- // architect role and speaks only the architect role. It declared `build` before this,
16
- // the same token `mav` declared, and the two shared almost nothing else, which is what a
17
- // role with no contract costs: the word could not tell its holders apart.
18
- //
19
- // Canon cells are `.ts` files of this repository, so writing one is building. This agent
20
- // canonizes the sign in the design and hands the cell that carries it to the planner and
21
- // the implementer, like every other build; it declares no action, output format or
22
- // self-evaluation of its own, because the role's hold.
13
+ // A MAIN-SESSION PERSONA OF THE ARCHITECT ROLE, AND ONLY ITS RESIDUE. `nico` is an
14
+ // architect over the corpus itself, exactly as `kino` is one over the film floor: its
15
+ // specialty is the corpus's concept space. The role states who it is, what it reads and
16
+ // writes and what it hands on, and `holds` folds all of that in; this cell declares what
17
+ // goes beyond it. It declared `build` before this, the same token `mav` declared, and the
18
+ // two shared almost nothing else, which is what a role with no contract costs: the word
19
+ // could not tell its holders apart.
23
20
  export const nico = holds(architectRole, {
24
21
  name: 'nico',
25
- description: 'Use this agent for the project seen whole — its conceptual architecture and canon: dimension catalogs, agent/skill composites, repo-wide naming, and whole-system structure — to mint, rename, or restructure the canonical concepts and designs the model already holds. Holds the design; hands out the cells and the engine that carry it.',
26
- archetype: "empirical ontologist of a foundation model's concept-space — treat the model not as a language model to instruct but as a semantic space to address: from outside, uncover the stable structures of intelligibility it already holds (discover, never invent), canonize the σ* signs that address them across many models, and compose those primitives in the design into the agents and skills that carry them, handing the cells that write them down to the planner and implementer. Realism made empirical.",
22
+ description: 'Use this agent for the project seen whole — its conceptual architecture and canon: dimension catalogs, agent/skill composites, repo-wide naming, and whole-system structure — to mint, rename, or restructure the canonical concepts and designs the model already holds.',
23
+ archetype: "empirical ontologist of a foundation model's concept-space — treat the model not as a language model to instruct but as a semantic space to address: from outside, uncover the stable structures of intelligibility it already holds (discover, never invent), canonize the σ* signs that address them across many models, and compose those primitives in the design into the agents and skills that carry them. Realism made empirical.",
27
24
  provenance: { mark: { emoji: '📐', hue: 'cyan' } },
28
25
  // `maintenance` over the role's `convergence`: this agent's interlocutor is the
29
26
  // corpus's own author, and density set by the reader would flatten the notation the
@@ -1 +1 @@
1
- {"version":3,"file":"nico.js","sourceRoot":"","sources":["../../src/agents/nico.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACjH,OAAO,EAAE,gBAAgB,IAAI,sCAAsC,EAAE,MAAM,4DAA4D,CAAC;AACxI,OAAO,EAAE,kBAAkB,IAAI,wCAAwC,EAAE,MAAM,8DAA8D,CAAC;AAC9I,OAAO,EAAE,SAAS,IAAI,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAClH,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,aAAa,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACvG,OAAO,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC1G,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,wFAAwF;AACxF,2FAA2F;AAC3F,sFAAsF;AACtF,yFAAyF;AACzF,0EAA0E;AAC1E,EAAE;AACF,yFAAyF;AACzF,yFAAyF;AACzF,mFAAmF;AACnF,uDAAuD;AAEvD,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,aAAa,EAAE;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,+UAA+U;IACjV,SAAS,EACP,kfAAkf;IACpf,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAClD,gFAAgF;IAChF,oFAAoF;IACpF,wBAAwB;IACxB,kBAAkB,EAAE,8BAA8B;IAClD,oFAAoF;IACpF,wFAAwF;IACxF,kCAAkC;IAClC,SAAS,EAAE,mBAAmB;IAC9B,qBAAqB,EAAE;QACrB,sCAAsC;QACtC,wCAAwC;QACxC,+BAA+B;KAChC;IACD,UAAU,EAAE;QACV,wBAAwB;QACxB,sBAAsB;QACtB,yBAAyB;KAC1B;IACD,OAAO,EAAE,kBAAkB;IAC3B,WAAW,EAAE,qBAAqB;CACnC,CAAC,CAAC"}
1
+ {"version":3,"file":"nico.js","sourceRoot":"","sources":["../../src/agents/nico.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACjH,OAAO,EAAE,gBAAgB,IAAI,sCAAsC,EAAE,MAAM,4DAA4D,CAAC;AACxI,OAAO,EAAE,kBAAkB,IAAI,wCAAwC,EAAE,MAAM,8DAA8D,CAAC;AAC9I,OAAO,EAAE,SAAS,IAAI,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAClH,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,aAAa,IAAI,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AACvG,OAAO,EAAE,WAAW,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAChG,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC1G,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,mFAAmF;AACnF,sFAAsF;AACtF,wFAAwF;AACxF,yFAAyF;AACzF,0FAA0F;AAC1F,wFAAwF;AACxF,oCAAoC;AAEpC,MAAM,CAAC,MAAM,IAAI,GAAU,KAAK,CAAC,aAAa,EAAE;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,2QAA2Q;IAC7Q,SAAS,EACP,2aAA2a;IAC7a,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAClD,gFAAgF;IAChF,oFAAoF;IACpF,wBAAwB;IACxB,kBAAkB,EAAE,8BAA8B;IAClD,oFAAoF;IACpF,wFAAwF;IACxF,kCAAkC;IAClC,SAAS,EAAE,mBAAmB;IAC9B,qBAAqB,EAAE;QACrB,sCAAsC;QACtC,wCAAwC;QACxC,+BAA+B;KAChC;IACD,UAAU,EAAE;QACV,wBAAwB;QACxB,sBAAsB;QACtB,yBAAyB;KAC1B;IACD,OAAO,EAAE,kBAAkB;IAC3B,WAAW,EAAE,qBAAqB;CACnC,CAAC,CAAC"}
@@ -11,11 +11,11 @@
11
11
  // The absence of `software-engineering` from `capabilities` used to carry this load
12
12
  // alone. An omission is not scoreable — no rubric can quote it, no gate can cite it, and
13
13
  // no reader of the projected Target can tell a deliberate absence from a forgotten one.
14
- export const architect = `architect ≜ reads⟨intent · C · note · verdict · broke-the-whole · ready-names⟩ → writes⟨C · note · route⟩
14
+ export const architect = `architect ≜ reads⟨intent · C · note · verdict · broke-the-whole · route-names · plan-closed⟩ → writes⟨C · note · route⟩
15
15
  stratum ≜ intent ≺ C ≺ spec ≺ artifact ⟨≺ ≜ more-abstract-than · C ≜ durative-concept-lattice⟩
16
- unit ≜ name ⟨address ¬ read⟩ · verdict ≜ assay-verdict ⟨achieved ∨ ¬achieved⟩ · broke-the-whole ≜ red ⟨integrator ↦ unit ∧ failing-check⟩ · ready-names ≜ units-ready-to-start ⟨planner⟩
16
+ unit ≜ name ⟨address ¬ read⟩ · verdict ≜ assay-verdict ⟨achieved ∨ ¬achieved⟩ · broke-the-whole ≜ red ⟨integrator ↦ unit ∧ failing-check⟩ · route-names ≜ units-ready-to-start ∨ units-waiting-on-route ⟨planner · read ↾ unit-ledger ¬ memory ⇒ lost-session resumes ↾ ledger⟩ · plan-closed ≜ plan-has-closed ⟨planner⟩
17
17
  loop ≜ realizing(C) ⟨shard → plan → whole⟩ · route-by-name ↾ unit-of-loop ⟨unit ↦ name ¬ spec(dispatcher-written)⟩ · ad-hoc ≜ operator-request ∉ loop ⟨comparison · audit · question⟩ ↦ dispatch ⟨any-fitting-role ∨ any-fitting-agent · own-words ⟨rectified ¬ operator-literal⟩⟩
18
- reserves ⟨author(C) · amend(C) ⟨change ↾ shard realized-by bound-plan ↦ decision-note ⟨amended ≻ plan-closes⟩ · change ↾ shard unrealized ↦ amended-immediately⟩ · rectify(input) ⟨operator-input included · hypothesis ¬ order ↾ expertise ∧ industry-practice⟩ · cut(C) ⟨shards ≜ one concept ∧ closure ⟨states what ∧ why ¬ how⟩ ↦ planner⟩ · route(name ↾ unit-of-loop) ⟨¬achieved ∨ broke-the-whole ↦ same implementer ∧ findings · achieved ↦ integrator · ready ↦ implementer⟩ · stop(plan) ⟨plan ⊨ wrong-shard⟩ · dispatch ⟨unit-of-loop ↦ name · ad-hoc ↦ any-fitting-role ∨ any-fitting-agent ⟨own-words⟩⟩⟩
18
+ reserves ⟨author(C) · amend(C) ⟨change ↾ shard realized-by bound-plan ↦ decision-note ⟨amended ≻ plan-closes⟩ · change ↾ shard unrealized ↦ amended-immediately⟩ · rectify(input) ⟨operator-input included · hypothesis ¬ order ↾ expertise ∧ industry-practice⟩ · cut(C) ⟨shards ≜ one concept ∧ closure ⟨states what ∧ why ¬ how⟩ ↦ planner⟩ · route(name ↾ unit-of-loop) ⟨¬achieved ∨ broke-the-whole ↦ same implementer ∧ findings · achieved ↦ integrator · ready ↦ implementer · plan-closed ↦ integrator ⟨line made whole ∧ release asked ↾ operator⟩⟩ · stop(plan) ⟨plan ⊨ wrong-shard⟩ · dispatch ⟨unit-of-loop ↦ name · ad-hoc ↦ any-fitting-role ∨ any-fitting-agent ⟨own-words⟩⟩⟩
19
19
  ∄ read⟨spec(unit) · plan-state · diff · artifact · implementer-account⟩ ∧ ∄ run⟨check⟩ ∧ ∄ commit ∨ merge ⟨ONE judge(unit) ≜ assayer · verdict ¬ reading⟩
20
20
  ∀ act ⟨dom(act) ∉ reads ∨ cod(act) ≠ writes⟩ ⇒ DELEGATED ⟨DERIVED ¬ enumerated ∴ unanticipated-act SELF-CLASSIFIES⟩
21
21
  ⟨C → spec⟩ ↦ planner ⟨planner writes state-record ⟨bind(plan) · active(unit) · completed(unit) · close(plan)⟩⟩ · ⟨spec → artifact⟩ ↦ implementer · ⟨artifact → C⟩ ↦ assayer · ⟨combine · gate ⟨whole⟩ · commit ⟨merge · record⟩⟩ ↦ integrator
@@ -26,7 +26,7 @@ stratum ≜ intent ≺ C ≺ spec ≺ artifact ⟨≺ ≜ more-abstract-than ·
26
26
  plan-records ≜ ⟨unit · dependency · state · plan-state⟩ ⟨bound plan ↦ written @ plan-line ∀ checkout · committed ∈ integrator ¬ planner⟩
27
27
  reserves ⟨census ⟨extant · references · resolved-by-use ¬ by-declaration⟩ · decompose ⟨shards ↦ MECE-units · unit ⇀ ONE shard · deps FIRST · effort(unit) ≤ capacity · how-per-harness ⟨plan-owned ¬ shard-owned⟩⟩ · realizes ⟨unit ⇀ anchor⟩ · sequence ⟨waves ⊨ disjoint-outputs⟩ · bind ⟨@ ratification ∧ ∄ plan-bound · cuts line ¬ main⟩ · record ⟨ready-unit ↦ active @ name-handed-out · unit ↦ completed @ whole⟩ · close ⟨∀ unit completed⟩ · rectify ∨ rebuild ⟨plan @ stop⟩ · reconcile ⟨plans ∧ units⟩⟩
28
28
  accept(unit) ↾ what-unit-changes ¬ beyond ⟨proof ≻ change ⇒ defect @ plan ¬ diligence⟩
29
- returns ⟨plan-name ∧ ready-unit-names⟩ ∧ ¬ spec ∨ plan-view ⟨name ≜ address · architect ¬ reads behind⟩
29
+ returns ⟨plan-name ∧ route-names ⟨units-ready-to-start ∨ units-waiting-on-route · read ↾ unit-ledger⟩ ∧ close(P) ↦ plan-closed(P)⟩ ∧ ¬ spec ∨ plan-view ⟨name ≜ address · architect ¬ reads behind⟩
30
30
  state(unit) ∨ state(plan) moves ⊨ planner ⟨bind ∨ close ∨ advance · ∄ move @ implementer ∨ architect⟩
31
31
  writes ≠ C ⇒ shard GIVEN ⟨shard ¬ plannable ⇒ SURFACED ¬ redrawn · wrong-shard ⇒ plan re-planned ¬ design changed⟩
32
32
  writes ≠ artifact ⇒ ∄ build @ planner ⟨unit ≜ spec · implementer builds⟩`;
@@ -18,6 +18,7 @@
18
18
  // exist before any adapter was chosen — so every cell spelled out a claude path.
19
19
  // The lift is the projector's, per adapter, from `HarnessAdapter.hookCommand`.
20
20
  import { deployDriftNotice } from './hooks/deploy-drift-notice.js';
21
+ import { lineWorktree } from './hooks/line-worktree.js';
21
22
  import { stanceGuardrailPre } from './hooks/stance-guardrail-pre.js';
22
23
  import { stanceGuardrail } from './hooks/stance-guardrail.js';
23
24
  /** The harness-substrate hook cells forge projects into settings.json + hooks/<id>/. */
@@ -25,5 +26,6 @@ export const harnessHookCells = [
25
26
  stanceGuardrail,
26
27
  stanceGuardrailPre,
27
28
  deployDriftNotice,
29
+ lineWorktree,
28
30
  ];
29
31
  //# sourceMappingURL=hook-cells.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook-cells.js","sourceRoot":"","sources":["../src/hook-cells.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,kFAAkF;AAClF,mFAAmF;AACnF,4EAA4E;AAC5E,kDAAkD;AAClD,kFAAkF;AAClF,gFAAgF;AAChF,kFAAkF;AAClF,oFAAoF;AACpF,oFAAoF;AACpF,oFAAoF;AACpF,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,iFAAiF;AACjF,oFAAoF;AACpF,iFAAiF;AACjF,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,eAAe;IACf,kBAAkB;IAClB,iBAAiB;CAClB,CAAC"}
1
+ {"version":3,"file":"hook-cells.js","sourceRoot":"","sources":["../src/hook-cells.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2EAA2E;AAC3E,kFAAkF;AAClF,mFAAmF;AACnF,4EAA4E;AAC5E,kDAAkD;AAClD,kFAAkF;AAClF,gFAAgF;AAChF,kFAAkF;AAClF,oFAAoF;AACpF,oFAAoF;AACpF,oFAAoF;AACpF,qEAAqE;AACrE,EAAE;AACF,0EAA0E;AAC1E,iFAAiF;AACjF,oFAAoF;AACpF,iFAAiF;AACjF,+EAA+E;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,wFAAwF;AACxF,MAAM,CAAC,MAAM,gBAAgB,GAAwB;IACnD,eAAe;IACf,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;CACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { HookCell } from '../manifest.js';
2
+ export declare const lineWorktree: HookCell;
@@ -0,0 +1,251 @@
1
+ // line-worktree — the creation of the implementer's worktree, cut from the tip of the
2
+ // bound plan's line.
3
+ //
4
+ // THE GAP IT CLOSES. The implementer declares that it runs in a worktree of its own
5
+ // (`Agent.isolation`), and Claude Code honours that by making one. But Claude Code cuts
6
+ // that worktree from origin's default branch, or from the HEAD of the session that
7
+ // dispatched it — and the dispatcher runs in the main checkout on main. So the
8
+ // implementer started in a worktree that was isolated and was nowhere near the plan's
9
+ // line: its first commit ran from main, and moving it onto the line was left to
10
+ // whatever care the agent had. A rule that depends on the agent remembering to follow it
11
+ // is the rule that was broken in the first place. The agent definition has no base ref
12
+ // to give, and a worktree's base is not the agent's to choose: it is the creation's.
13
+ //
14
+ // THE HOOK PERFORMS THE CREATION. `WorktreeCreate` is not a notification. Claude Code
15
+ // hands the hook the new worktree's `name`, takes the absolute path the hook prints, and
16
+ // uses that directory as the agent's working copy; a hook that prints none fails the
17
+ // creation. So the cell is where the worktree's base can be decided, and this is the one
18
+ // place it is decided: for the implementer's worktree, while a plan is bound, the
19
+ // worktree is cut on a new branch from the tip of that plan's line, and the agent's
20
+ // first commit already runs from the line.
21
+ //
22
+ // IT ACTS FOR THE IMPLEMENTER'S WORKTREE AND FOR NO OTHER. The plan places a unit's
23
+ // worktree off its plan's line and says nothing about any other worktree, yet the hook is
24
+ // registered on the host and Claude Code fires `WorktreeCreate` for every worktree it
25
+ // makes there: a `claude --worktree` session, a background session isolated in a worktree
26
+ // (`bridge-<id>`), and every subagent that declares `isolation: worktree`. Cutting an
27
+ // architect's background session from a plan's line, or failing a session's creation
28
+ // because `cratylus` is not installed, is the cell reaching past what the plan placed.
29
+ // The input names no subagent — its `agent_type` is the dispatcher's — so the worker tells
30
+ // the implementer's worktree by the name Claude Code gives a subagent's: `agent-a` and
31
+ // 7 or 16 hex digits. In this corpus only the implementer declares `isolation: worktree`,
32
+ // so that name is the implementer's; a worktree whose name is not that one is not the
33
+ // implementer's, and where the worker cannot tell it passes through.
34
+ //
35
+ // WHICH PLAN, AND WHERE ITS LINE IS, IS THE RUNTIME'S TO SAY. The cell does not know
36
+ // that plans exist, what a line is called or where it lives: it asks the host's
37
+ // `cratylus plan show`, the way `deploy-drift-notice` asks `deploy --check`, and takes
38
+ // from the answer the one fact it needs — the commit the bound plan's line stands at. It
39
+ // spells no plan name, no branch and no path the runtime does not give it, so a rename of
40
+ // the line's branch, or of the plan lifecycle's states, leaves it untouched.
41
+ //
42
+ // EVERYTHING ELSE IS LEFT AS THE HARNESS WOULD DO IT. For every worktree that is not the
43
+ // implementer's, and for the implementer's when there is no line to cut from — no plan
44
+ // bound, `cratylus` missing, a `plan show` answer the worker does not recognise
45
+ // (`with nothing committed yet`) — the worker creates what Claude Code's own creation
46
+ // would: a worktree at `<project>/.<harness>/worktrees/<name>` on a branch
47
+ // `worktree-<name>`, cut from origin's default branch, or from the session's HEAD where
48
+ // the host's `worktree.baseRef` is `head` or where there is no origin, and prints its
49
+ // path. The hook has replaced that creation for every worktree on the host, so it owes
50
+ // the same behaviour for every one it is not cutting from a line, and it never fails one
51
+ // for want of a line. It says on stderr when the implementer's was made without one.
52
+ //
53
+ // `jq` IS NOT WHAT THE LINE NEEDS. It reads the request and the host's `baseRef`, and
54
+ // where it is not installed the worker reads the one flat string each holds with `sed`;
55
+ // finding the line's tip asks the runtime and uses no `jq`, so a host without `jq` still
56
+ // has the implementer's worktree cut from the line.
57
+ //
58
+ // WHAT IT STILL REFUSES is a creation Claude Code's would refuse as well: a request that
59
+ // names no readable `cwd` or an unusable `name`, a `cwd` inside no repository, a path that
60
+ // is taken, a `git worktree add` that fails. There is no creation to pass through to, and
61
+ // answering with the checkout the session is already in is a worktree that isolates
62
+ // nothing and reads as one. That failure is a message on stderr, a non-zero exit, no path
63
+ // on stdout and no worktree on disk.
64
+ //
65
+ // REMOVAL IS NOT BOUND, AND THAT IS THE CHOICE. With a `WorktreeCreate` hook and no
66
+ // `WorktreeRemove` hook Claude Code keeps the worktree when the agent is done and says so.
67
+ // The worktree holds the unit's commits, and a removal hook would have to decide whether
68
+ // they are safe to discard; the unit's work is landed by recording its commit, and the
69
+ // worktree outliving the agent is what keeps that commit reachable until it is. A
70
+ // removal binding that deleted exactly what this cell created would be a second
71
+ // mechanism owning a judgement the operator's `git worktree remove` already makes.
72
+ //
73
+ // THE WORKER SPEAKS NOTHING. Its stdout is the path and nothing else — Claude Code takes
74
+ // the whole of it as the path — so everything it has to say goes to stderr.
75
+ //
76
+ // `workers[].content` is the TEMPLATE the committed worker at `targetPath` regenerates
77
+ // from, byte-locked by `test/hook-rule-boundary.test.ts`. EDIT THE CELL AND REGENERATE
78
+ // (`pnpm canon:project:targets`) — never the committed `.sh` alone.
79
+ export const lineWorktree = {
80
+ id: 'line-worktree',
81
+ residue: 'creation-moment ↦ WorktreeCreate ⟨hook PERFORMS the creation ¬ observes it · prints path ∧ nothing else⟩ · acts ↾ implementer-copy ⟨name ≜ agent-a⟨hex⁷ ∨ hex¹⁶⟩ ¬ agent_type ∵ input names the dispatcher⟩ ∧ plan bound ⇒ cut(copy, tip(plan-integration)) ⟨new branch ∉ ⟨main · integration⟩ · tip ↦ runtime-answer ¬ spelled · ∄ plan-name ∧ ∄ branch-name ∧ ∄ path ∉ runtime⟩ · ∀ other copy ∨ ∀ failure ⟨∄ plan bound · runtime missing · answer unknown⟩ ⇒ create as host would ⟨origin-default ∨ HEAD ↾ baseRef · <project>/.<harness>/worktrees/<name> · ¬ fail⟩ · creation impossible ⟨¬ cwd · ¬ name · ¬ repository · path taken · git refuses⟩ ⇒ FAIL LOUD ⟨stderr ∧ non-zero ∧ ∅ path ∧ ∅ copy⟩ ⟨¬ fall back to main checkout ∵ isolates nothing ∧ reads as isolation⟩ · removal ≜ kept ⟨∄ WorktreeRemove ∵ copy holds the unit’s commits⟩ · ∄ speech',
82
+ substrate: 'harness',
83
+ events: ['worktree.create'],
84
+ entry: 'line-worktree.sh',
85
+ timeout: 60,
86
+ refs: [],
87
+ workers: [
88
+ {
89
+ filename: 'line-worktree.sh',
90
+ targetPath: 'packages/canon/targets/guardrail/line-worktree.sh',
91
+ executable: true,
92
+ content: `#!/usr/bin/env sh
93
+ # line-worktree — creates the worktree an agent runs in, and prints its path.
94
+ #
95
+ # This hook REPLACES the harness's own worktree creation for every worktree the harness
96
+ # makes on the host: the harness gives it the worktree's name, takes the one path it
97
+ # prints on stdout, and uses that directory as the agent's working copy. A hook that
98
+ # prints none fails the creation.
99
+ #
100
+ # CONTRACT:
101
+ # - THE IMPLEMENTER'S WORKTREE, WITH A PLAN BOUND: the worktree is cut, on a new
102
+ # branch, from the commit the bound plan's line stands at, so the
103
+ # agent's first commit runs from it. The implementer's is the one the
104
+ # harness names agent-a<7 or 16 hex digits>; the input names no
105
+ # subagent, so the name is what there is to tell it by.
106
+ # - EVERY OTHER WORKTREE, AND THE IMPLEMENTER'S WHEN THERE IS NO LINE TO CUT FROM
107
+ # (no plan bound, cratylus missing, a plan show answer this does not
108
+ # know): the worktree is made as the harness would have made it,
109
+ # at <project>/.<harness>/worktrees/<name> from the origin's default
110
+ # branch, or from HEAD where the host's worktree.baseRef is "head", or
111
+ # where there is no origin. This never fails one for want of a line.
112
+ # - NEVER THE MAIN CHECKOUT. A worktree the harness's own creation could not make
113
+ # either (no usable cwd or name, no repository, a path that is taken,
114
+ # a git refusal) is a failure: a message on stderr, a non-zero exit,
115
+ # no path on stdout, nothing on disk.
116
+ # - STDOUT IS THE PATH AND NOTHING ELSE. Every other word goes to stderr.
117
+ # - NOT REMOVED. No removal hook is bound, so the harness keeps the worktree when the
118
+ # agent is done: it holds the unit's commits until they are landed.
119
+ #
120
+ # WHICH PLAN IS BOUND, AND WHERE ITS LINE STANDS, IS THE RUNTIME'S ANSWER. This names no
121
+ # plan, no branch and no path the runtime does not give it.
122
+ #
123
+ # INPUT : WorktreeCreate hook JSON on stdin (cwd, name, session_id, ...).
124
+ # OUTPUT : the new worktree's absolute path, on stdout, and nothing else.
125
+
126
+ set -eu
127
+
128
+ die() {
129
+ printf 'line-worktree: %s\\n' "$*" >&2
130
+ exit 1
131
+ }
132
+
133
+ note() {
134
+ printf 'line-worktree: %s\\n' "$*" >&2
135
+ }
136
+
137
+ # ── WHAT PROJECTION TOLD US ────────────────────────────────────────────────────
138
+ RUNTIME={{fact:runtime-bin}}
139
+ HARNESS={{fact:harness-name}}
140
+ HARNESS_SETTINGS={{fact:harness-hooks-file}}
141
+
142
+ command -v git >/dev/null 2>&1 || die "git is required to create a worktree, and is not installed"
143
+
144
+ have_jq=no
145
+ if command -v jq >/dev/null 2>&1; then
146
+ have_jq=yes
147
+ fi
148
+
149
+ # jstr KEY — the string KEY holds in the JSON on stdin, empty where it holds none. jq
150
+ # reads it where jq is installed; without jq, the one flat string a request or a settings
151
+ # file states plainly (a value with an escape in it is not read, and reads as empty).
152
+ jstr() {
153
+ if [ "$have_jq" = yes ]; then
154
+ jq -r --arg k "$1" '[.. | objects | select(has($k)) | .[$k] | strings] | first // ""'
155
+ else
156
+ sed -n "s/.*\\"$1\\"[[:space:]]*:[[:space:]]*\\"\\([^\\"\\\\]*\\)\\".*/\\1/p" | sed -n 1p
157
+ fi
158
+ }
159
+
160
+ # ── THE REQUEST ────────────────────────────────────────────────────────────────
161
+ input="$(cat)"
162
+ cwd="$(printf '%s' "$input" | jstr cwd 2>/dev/null)" || die "the worktree request is not JSON"
163
+ name="$(printf '%s' "$input" | jstr name 2>/dev/null)" || die "the worktree request is not JSON"
164
+
165
+ [ -n "$cwd" ] && [ -d "$cwd" ] || die "the worktree request names no existing cwd (got '$cwd')"
166
+ # THE NAME BECOMES A PATH AND A BRANCH, so it is examined before it is used: plain
167
+ # path segments only, none empty, none leading with a dash, none climbing out.
168
+ case "$name" in
169
+ '' | -* | /* | */ | *//* | *[!A-Za-z0-9._/-]* | *..*)
170
+ die "refusing the worktree name '$name': it must be plain path segments, none empty or climbing out"
171
+ ;;
172
+ esac
173
+
174
+ top="$(git -C "$cwd" rev-parse --show-toplevel 2>/dev/null)" || die "'$cwd' is not inside a git repository"
175
+ path="$top/.$HARNESS/worktrees/$name"
176
+ branch="worktree-$name"
177
+ [ ! -e "$path" ] || die "'$path' already exists"
178
+
179
+ # ── IS IT THE IMPLEMENTER'S? the name the harness gives a subagent's worktree ─────
180
+ h='[0-9a-f]'
181
+ implementer=no
182
+ case "$name" in
183
+ agent-a$h$h$h$h$h$h$h | agent-a$h$h$h$h$h$h$h$h$h$h$h$h$h$h$h$h) implementer=yes ;;
184
+ esac
185
+
186
+ # line_tip — the commit the bound plan's line stands at, or nothing and a non-zero status
187
+ # where the runtime cannot say: it is not installed, it fails, no plan is bound, or its
188
+ # answer is in a shape this does not know.
189
+ line_tip() {
190
+ command -v "$RUNTIME" >/dev/null 2>&1 || return 1
191
+ answer="$(cd "$top" && "$RUNTIME" plan show 2>/dev/null)" || return 1
192
+ first="$(printf '%s\\n' "$answer" | sed -n 1p)"
193
+ case "$first" in
194
+ 'plan '*' at '*:*)
195
+ # "plan <name> (<state>) at <commit>: <counts>". More than one plan reads "plans".
196
+ commit="$(printf '%s\\n' "$first" | sed -n 's/^plan .* at \\([0-9a-f][0-9a-f]*\\): .*$/\\1/p')"
197
+ [ -n "$commit" ] || return 1
198
+ git -C "$top" rev-parse --verify --quiet "$commit^{commit}"
199
+ ;;
200
+ *) return 1 ;;
201
+ esac
202
+ }
203
+
204
+ # harness_start — what the harness cuts a worktree from: origin's default branch, where
205
+ # there is one, or HEAD where the host's worktree.baseRef is "head".
206
+ harness_start() {
207
+ base="fresh"
208
+ for f in \\
209
+ "$top/.$HARNESS/\${HARNESS_SETTINGS%.json}.local.json" \\
210
+ "$top/.$HARNESS/$HARNESS_SETTINGS" \\
211
+ "\${HOME:-/nonexistent}/.$HARNESS/$HARNESS_SETTINGS"; do
212
+ [ -f "$f" ] || continue
213
+ set_to="$(jstr baseRef <"$f" 2>/dev/null || true)"
214
+ if [ -n "$set_to" ]; then
215
+ base="$set_to"
216
+ break
217
+ fi
218
+ done
219
+ if [ "$base" != "head" ]; then
220
+ if remote="$(git -C "$top" symbolic-ref --quiet --short refs/remotes/origin/HEAD 2>/dev/null)"; then
221
+ printf '%s\\n' "$remote"
222
+ return 0
223
+ fi
224
+ fi
225
+ printf 'HEAD\\n'
226
+ }
227
+
228
+ # ── WHERE FROM? the line, for the implementer's, if the runtime says there is one ──
229
+ start=""
230
+ if [ "$implementer" = yes ]; then
231
+ if start="$(line_tip)" && [ -n "$start" ]; then
232
+ :
233
+ else
234
+ start=""
235
+ note "no plan's line to cut the implementer's worktree from: it is made as the harness would make it"
236
+ fi
237
+ fi
238
+ if [ -z "$start" ]; then
239
+ start="$(harness_start)"
240
+ fi
241
+
242
+ # ── THE WORKTREE ───────────────────────────────────────────────────────────────
243
+ mkdir -p "\${path%/*}" || die "cannot create the directory for '$path'"
244
+ git -C "$top" worktree add -q -b "$branch" "$path" "$start" >&2 || die "git could not create the worktree '$path' on branch '$branch' from '$start'"
245
+
246
+ printf '%s\\n' "$path"
247
+ `,
248
+ },
249
+ ],
250
+ };
251
+ //# sourceMappingURL=line-worktree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"line-worktree.js","sourceRoot":"","sources":["../../src/hooks/line-worktree.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,qBAAqB;AACrB,EAAE;AACF,oFAAoF;AACpF,wFAAwF;AACxF,mFAAmF;AACnF,+EAA+E;AAC/E,sFAAsF;AACtF,gFAAgF;AAChF,yFAAyF;AACzF,uFAAuF;AACvF,qFAAqF;AACrF,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,qFAAqF;AACrF,yFAAyF;AACzF,kFAAkF;AAClF,oFAAoF;AACpF,2CAA2C;AAC3C,EAAE;AACF,oFAAoF;AACpF,0FAA0F;AAC1F,sFAAsF;AACtF,0FAA0F;AAC1F,sFAAsF;AACtF,qFAAqF;AACrF,uFAAuF;AACvF,2FAA2F;AAC3F,uFAAuF;AACvF,0FAA0F;AAC1F,sFAAsF;AACtF,qEAAqE;AACrE,EAAE;AACF,qFAAqF;AACrF,gFAAgF;AAChF,uFAAuF;AACvF,yFAAyF;AACzF,0FAA0F;AAC1F,6EAA6E;AAC7E,EAAE;AACF,yFAAyF;AACzF,uFAAuF;AACvF,gFAAgF;AAChF,sFAAsF;AACtF,2EAA2E;AAC3E,wFAAwF;AACxF,sFAAsF;AACtF,uFAAuF;AACvF,yFAAyF;AACzF,qFAAqF;AACrF,EAAE;AACF,sFAAsF;AACtF,wFAAwF;AACxF,yFAAyF;AACzF,oDAAoD;AACpD,EAAE;AACF,yFAAyF;AACzF,2FAA2F;AAC3F,0FAA0F;AAC1F,oFAAoF;AACpF,0FAA0F;AAC1F,qCAAqC;AACrC,EAAE;AACF,oFAAoF;AACpF,2FAA2F;AAC3F,yFAAyF;AACzF,uFAAuF;AACvF,kFAAkF;AAClF,gFAAgF;AAChF,mFAAmF;AACnF,EAAE;AACF,yFAAyF;AACzF,4EAA4E;AAC5E,EAAE;AACF,uFAAuF;AACvF,uFAAuF;AACvF,oEAAoE;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,EAAE,EAAE,eAAe;IACnB,OAAO,EACL,m0BAAm0B;IACr0B,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,CAAC,iBAAiB,CAAC;IAC3B,KAAK,EAAE,kBAAkB;IACzB,OAAO,EAAE,EAAE;IACX,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP;YACE,QAAQ,EAAE,kBAAkB;YAC5B,UAAU,EAAE,mDAAmD;YAC/D,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Jd;SACI;KACF;CACF,CAAC"}
@@ -184,7 +184,7 @@ export type RuntimeCapability = (typeof RUNTIME_CAPABILITIES)[number];
184
184
  /** This corpus's `Skill`: schema's shape, narrowed to the capabilities above. */
185
185
  export type Skill = SkillOf<RuntimeCapability>;
186
186
  export type { SkillExpression };
187
- export declare const CANONICAL_EVENTS: readonly ["session.start", "session.resume", "session.end", "prompt.submit", "turn.end", "turn.fail", "agent.idle", "model.request.pre", "model.response.post", "tool.use.pre", "tool.use.post", "tool.use.fail", "file.edit.post", "file.read.pre", "file.change.external", "shell.exec.pre", "shell.exec.post", "mcp.exec.pre", "mcp.exec.post", "subagent.dispatch.pre", "subagent.start", "subagent.end", "operator.consult.pre", "permission.request", "permission.deny", "notification", "context.compact.pre", "context.compact.post", "config.changed", "instructions.loaded", "vcs.commit.post"];
187
+ export declare const CANONICAL_EVENTS: readonly ["session.start", "session.resume", "session.end", "prompt.submit", "turn.end", "turn.fail", "agent.idle", "model.request.pre", "model.response.post", "tool.use.pre", "tool.use.post", "tool.use.fail", "file.edit.post", "file.read.pre", "file.change.external", "shell.exec.pre", "shell.exec.post", "mcp.exec.pre", "mcp.exec.post", "subagent.dispatch.pre", "subagent.start", "subagent.end", "worktree.create", "operator.consult.pre", "permission.request", "permission.deny", "notification", "context.compact.pre", "context.compact.post", "config.changed", "instructions.loaded", "vcs.commit.post"];
188
188
  /** One moment this corpus has a name for — the pivot every adapter maps FROM. */
189
189
  export type CanonicalEvent = (typeof CANONICAL_EVENTS)[number];
190
190
  /** This corpus's `HookCell`: schema's shape, narrowed to the events above and to
package/dist/manifest.js CHANGED
@@ -193,6 +193,13 @@ export const RUNTIME_CAPABILITIES = [
193
193
  // and `substrate` is a declared axis (`Substrate = 'harness' | 'git'`) that already
194
194
  // routes it. With an open `EventName` the union has nothing to widen, so it
195
195
  // dissolved on its own.
196
+ //
197
+ // `worktree.create` NAMES THE MOMENT A WORKTREE IS MADE FOR AN AGENT, and a hook bound to
198
+ // it does not observe the moment, it PERFORMS it: the harness asks the hook to create the
199
+ // worktree and take the path it answers with. Claude Code fires it as WorktreeCreate,
200
+ // replacing its own creation; omp has no per-agent worktree and fires nothing here, so the
201
+ // moment is absent from its map and projection declares the loss. There is no `.pre` or
202
+ // `.post` in the name because there is no before and after: the hook IS the creation.
196
203
  export const CANONICAL_EVENTS = [
197
204
  // harness substrate — a session's shape
198
205
  'session.start',
@@ -221,6 +228,8 @@ export const CANONICAL_EVENTS = [
221
228
  'subagent.dispatch.pre',
222
229
  'subagent.start',
223
230
  'subagent.end',
231
+ // harness substrate — the working copy an agent is given
232
+ 'worktree.create',
224
233
  // harness substrate — what the operator is asked and told
225
234
  'operator.consult.pre',
226
235
  'permission.request',
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
package/dist/practices.js CHANGED
@@ -13,7 +13,11 @@
13
13
  // lists those four beside it. It lists SKILLS only where no agent carries them: a
14
14
  // skill an agent is given travels with the agent, and whatever a skill composes
15
15
  // travels with it. A guard (a hook cell that binds a composition) is listed nowhere:
16
- // it is registered exactly when a rendered agent composes what it binds.
16
+ // it is registered exactly when a rendered agent composes what it binds. A hook cell
17
+ // that binds no composition but serves what an agent DECLARES is listed by the
18
+ // practices that place that agent: the worktree the implementer is started in is cut
19
+ // from the plan's line by `line-worktree`, so every practice that places the
20
+ // implementer lists it.
17
21
  //
18
22
  // The practice names are signs of THIS corpus's own making; the consumer-facing
19
23
  // description is the one line an install shows beside each.
@@ -21,17 +25,22 @@
21
25
  /** The architect role's dispatch, as agent names: what a practice that places an
22
26
  * architect-holder must also place. */
23
27
  const WRITERS = ['planner', 'implementer', 'assayer', 'integrator'];
28
+ /** The hook cells every practice placing the `WRITERS` lists: the implementer declares
29
+ * that it runs in a worktree of its own, and this cell makes that worktree off the line. */
30
+ const WRITER_HOOKS = ['line-worktree'];
24
31
  export const PRACTICES = [
25
32
  {
26
33
  name: 'cdd',
27
34
  description: 'Concept-driven development: an architect holds the design and hands it out, a planner cuts it into units, an implementer builds each one, an assayer judges it against the design, and an integrator makes the approved work whole.',
28
35
  agents: ['mav', 'architect', ...WRITERS],
36
+ hooks: WRITER_HOOKS,
29
37
  preselected: true,
30
38
  },
31
39
  {
32
40
  name: 'corpus-authoring',
33
41
  description: 'Author the corpus of named concepts itself: discover the signs a model already holds, canonize them, and write the agents and skills that carry them.',
34
42
  agents: ['nico', ...WRITERS],
43
+ hooks: WRITER_HOOKS,
35
44
  skills: [
36
45
  'signify',
37
46
  'probe',
@@ -49,6 +58,7 @@ export const PRACTICES = [
49
58
  name: 'film-production',
50
59
  description: 'Make films with software: a film-floor architect holds what the craft requires and hands the building to the same planner-to-integrator line.',
51
60
  agents: ['kino', ...WRITERS],
61
+ hooks: WRITER_HOOKS,
52
62
  },
53
63
  {
54
64
  name: 'carry-on',
@@ -1 +1 @@
1
- {"version":3,"file":"practices.js","sourceRoot":"","sources":["../src/practices.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,qFAAqF;AACrF,iFAAiF;AACjF,mFAAmF;AACnF,kDAAkD;AAClD,EAAE;AACF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,qFAAqF;AACrF,yEAAyE;AACzE,EAAE;AACF,gFAAgF;AAChF,4DAA4D;AAC5D,gFAAgF;AAIhF;wCACwC;AACxC,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAE7E,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EACT,qOAAqO;QACvO,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACxC,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,uJAAuJ;QACzJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5B,MAAM,EAAE;YACN,SAAS;YACT,OAAO;YACP,QAAQ;YACR,eAAe;YACf,WAAW;YACX,aAAa;YACb,WAAW;YACX,cAAc;YACd,cAAc;YACd,YAAY;SACb;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,+IAA+I;QACjJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;KAC7B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,mIAAmI;QACrI,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,KAAK,EAAE,CAAC,qBAAqB,CAAC;CAC/B,CAAC"}
1
+ {"version":3,"file":"practices.js","sourceRoot":"","sources":["../src/practices.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,qFAAqF;AACrF,iFAAiF;AACjF,mFAAmF;AACnF,kDAAkD;AAClD,EAAE;AACF,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAChF,qFAAqF;AACrF,qFAAqF;AACrF,+EAA+E;AAC/E,qFAAqF;AACrF,6EAA6E;AAC7E,wBAAwB;AACxB,EAAE;AACF,gFAAgF;AAChF,4DAA4D;AAC5D,gFAAgF;AAIhF;wCACwC;AACxC,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAE7E;6FAC6F;AAC7F,MAAM,YAAY,GAAG,CAAC,eAAe,CAAU,CAAC;AAEhD,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EACT,qOAAqO;QACvO,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACxC,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,uJAAuJ;QACzJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE;YACN,SAAS;YACT,OAAO;YACP,QAAQ;YACR,eAAe;YACf,WAAW;YACX,aAAa;YACb,WAAW;YACX,cAAc;YACd,cAAc;YACd,YAAY;SACb;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,+IAA+I;QACjJ,MAAM,EAAE,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC;QAC5B,KAAK,EAAE,YAAY;KACpB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EACT,mIAAmI;QACrI,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,MAAM,EAAE,CAAC,WAAW,CAAC;IACrB,KAAK,EAAE,CAAC,qBAAqB,CAAC;CAC/B,CAAC"}
@@ -59,7 +59,7 @@ import { decisionRationale as decisionRationale_transparency } from '../dimensio
59
59
  export const architectRole = {
60
60
  sign: architect_role,
61
61
  description: "Use this agent to own a project's conceptual design — build and hold the durative concept lattice, rectify every input against expertise and industry practice, cut the design into shards for planners, and route the units of the loop by name. The principal for long-horizon work; routes planning to planners, building to implementers, judging a unit to assayers, and combining approved work and running the whole check to the integrator, and neither builds, checks, commits, merges nor reads a unit, a spec, a diff or an artifact itself. An ad hoc request outside the loop, such as a comparison, an audit or a question, it hands to whichever role or agent fits it, in its own words.",
62
- archetype: 'Keeper of conceptual integrity — holds the one statement of what a system IS and what each part is called, so that delegated work has something to be accountable to. Designs the machine and never builds it, checks it, commits it or merges it, and never reads what is built: a unit reaches it only as a name, an address to route, so mechanical work cannot displace conceptual work and an agent reading files is not an agent holding a design. Treats every input, the operator’s included, as a hypothesis to rectify against expertise and industry practice before it is served. Cuts the design into shards, each one concept with what it stands on, stating what and why and never how, and routes the units of the loop by name alone: a unit goes to an implementer, its commit to the assayer, an achieved verdict to the integrator, and a not-achieved verdict or a unit that broke the whole back to the same implementer with the findings. An ad hoc request from the operator outside that work — a comparison, an audit, a question — it hands to whichever role or agent fits it, in its own words, rectified and never the operator’s literal ones. The assayer alone judges a unit, so the lattice survives the wave. A change to a shard a running plan realizes waits as a note until that plan closes and then enters the design for a following plan; it stops a plan only when the plan is built on a shard that is itself wrong. A green suite beside a system that did not move is not progress.',
62
+ archetype: 'Keeper of conceptual integrity — holds the one statement of what a system IS and what each part is called, so that delegated work has something to be accountable to. Designs the machine and never builds it, checks it, commits it or merges it, and never reads what is built: a unit reaches it only as a name, an address to route, so mechanical work cannot displace conceptual work and an agent reading files is not an agent holding a design. Treats every input, the operator’s included, as a hypothesis to rectify against expertise and industry practice before it is served. Cuts the design into shards, each one concept with what it stands on, stating what and why and never how, and routes the units of the loop by name alone: a unit goes to an implementer, its commit to the assayer, an achieved verdict to the integrator, a not-achieved verdict or a unit that broke the whole back to the same implementer with the findings, and a closed plan to the integrator, which makes its line whole and asks for release. An ad hoc request from the operator outside that work — a comparison, an audit, a question — it hands to whichever role or agent fits it, in its own words, rectified and never the operator’s literal ones. The assayer alone judges a unit, so the lattice survives the wave. A change to a shard a running plan realizes waits as a note until that plan closes and then enters the design for a following plan; it stops a plan only when the plan is built on a shard that is itself wrong. A green suite beside a system that did not move is not progress.',
63
63
  provenance: { mark: { emoji: '🏛️', hue: 'blue' } },
64
64
  // `design` holds the lattice, `note` takes in what every delegate finds. `deliver` is
65
65
  // not here: it composes the plan skill and with it the spec read, and it is the
@@ -1 +1 @@
1
- {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/roles/architect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/roles/architect.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,13 @@ export interface RoleCell {
42
42
  * their anchors to `Agent.dispatches`, as it does the held role to `Agent.holds`.
43
43
  */
44
44
  readonly dispatches: readonly Role[];
45
+ /**
46
+ * That every holder of the role runs in a git worktree of its own. Absent for a
47
+ * role whose holders run where their dispatcher does. The fold copies it to
48
+ * `Agent.isolation`, as it does `dispatches`; a persona cannot state it, because
49
+ * where an agent runs is the role's to say.
50
+ */
51
+ readonly isolation?: 'worktree';
45
52
  /** The aspects expected of anyone holding the role — DEFAULTS, every one. */
46
53
  readonly vector: RoleVector;
47
54
  }
@@ -55,7 +62,7 @@ export interface RoleCell {
55
62
  * `role` is absent, because the contract is the role's. An aspect stated here
56
63
  * OVERRIDES a scalar the role supplies and EXTENDS a set.
57
64
  */
58
- export type Persona = Omit<AgentIdentity, 'holds' | 'dispatches' | 'provenance'> & {
65
+ export type Persona = Omit<AgentIdentity, 'holds' | 'dispatches' | 'isolation' | 'provenance'> & {
59
66
  readonly provenance: {
60
67
  readonly mark: Mark;
61
68
  };
@@ -83,6 +83,7 @@ export function holds(role, persona) {
83
83
  ...(role.dispatches.length > 0
84
84
  ? { dispatches: role.dispatches.map((r) => anchorOf(r)) }
85
85
  : {}),
86
+ ...(role.isolation !== undefined ? { isolation: role.isolation } : {}),
86
87
  };
87
88
  if (declared.preamble !== undefined) {
88
89
  resolved.preamble = declared.preamble;
@@ -1 +1 @@
1
- {"version":3,"file":"hold.js","sourceRoot":"","sources":["../../src/roles/hold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hold.js","sourceRoot":"","sources":["../../src/roles/hold.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,10 @@ export const implementerRole = {
47
47
  skills: ['note'],
48
48
  // Dispatches no role: it builds its one unit and returns a name.
49
49
  dispatches: [],
50
+ // Runs in a git worktree of its own, started there by the harness: the rule that its
51
+ // unit is built off the plan's line, and never in the operator's main checkout, then
52
+ // holds from the first instruction and does not wait on the agent's own care.
53
+ isolation: 'worktree',
50
54
  vector: {
51
55
  formality: plain_formality,
52
56
  audienceAdaptation: maintenance_audienceAdaptation,
@@ -1 +1 @@
1
- {"version":3,"file":"implementer.js","sourceRoot":"","sources":["../../src/roles/implementer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implementer.js","sourceRoot":"","sources":["../../src/roles/implementer.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ cᵢ <_N cⱼ ⇔ α(cᵢ) <_lex α(cⱼ)
50
50
  ≺ ≜ shortlex over (C, <_N)
51
51
 
52
52
  c ∉ dom(α) ⇒ c ∉ Anchors :
53
+ c is no core agent dimension name or value ⇒ c is the industry's own term, used as the industry understands it ⇒ exclude, logged
53
54
  { n : circ(n,c) } = ∅ ∧ ∄ mint(c) ⇒ exclude, logged
54
55
  ∃ cᵢ, cⱼ : α(cᵢ) = α(cⱼ) ∧ D(cᵢ) ≠ D(cⱼ) ⇒ the cut was wrong ↦ conceptualize
55
56
  ⟨α(cᵢ), α(cⱼ) taken at DIFFERENT altitudes is still this collision⟩
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/signify/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,4CAA4C;AAC5C,EAAE;AACF,0GAA0G;AAC1G,gFAAgF;AAChF,qFAAqF;AACrF,mFAAmF;AACnF,sFAAsF;AACtF,+CAA+C;AAC/C,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AACjF,iFAAiF;AACjF,qFAAqF;AACrF,sFAAsF;AACtF,oCAAoC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,iRAAiR;IAC9R,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAiDmC;IAChD,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,QAAQ,EAAE,cAAc;CACzB,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/signify/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGhE,4CAA4C;AAC5C,EAAE;AACF,0GAA0G;AAC1G,gFAAgF;AAChF,qFAAqF;AACrF,mFAAmF;AACnF,sFAAsF;AACtF,+CAA+C;AAC/C,EAAE;AACF,kFAAkF;AAClF,iFAAiF;AACjF,iFAAiF;AACjF,qFAAqF;AACrF,sFAAsF;AACtF,oCAAoC;AAEpC,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,iRAAiR;IAC9R,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAkDmC;IAChD,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;IACrB,QAAQ,EAAE,cAAc;CACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cratylus/canon",
3
- "version": "0.13.1",
3
+ "version": "0.13.3",
4
4
  "description": "The canonical corpus of discovered optimal-signifiers — agents, skills, dimensions and rules as typed TS source. Markdown is a projection of these modules.",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -18,11 +18,11 @@
18
18
  ],
19
19
  "//test": "`test` builds FIRST because `test/runtime-shim.test.ts` drives the shipped `cratylus project` over the repository's own `cratylus.config.ts`, and that config extends `@cratylus/canon` — the PACKAGE, i.e. this package's `dist`. turbo's `test.dependsOn: [^build]` builds this package's DEPENDENCIES, never this package, so a cold clone would run the consumer path against a dist that does not exist.",
20
20
  "dependencies": {
21
- "@cratylus/schema": "0.8.1"
21
+ "@cratylus/schema": "0.9.0"
22
22
  },
23
23
  "devDependencies": {
24
- "@cratylus/forge": "0.14.1",
25
- "@cratylus/runtime": "0.9.2",
24
+ "@cratylus/forge": "0.14.3",
25
+ "@cratylus/runtime": "0.9.4",
26
26
  "@cratylus/tooling": "0.0.0",
27
27
  "@types/node": "^22.0.0",
28
28
  "tsx": "^4.19.0",