@cratylus/canon 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/dist/agents/architect.js +14 -108
  2. package/dist/agents/architect.js.map +1 -1
  3. package/dist/agents/assayer.d.ts +2 -0
  4. package/dist/agents/assayer.js +20 -0
  5. package/dist/agents/assayer.js.map +1 -0
  6. package/dist/agents/implementer.js +9 -69
  7. package/dist/agents/implementer.js.map +1 -1
  8. package/dist/agents/kino.js +24 -110
  9. package/dist/agents/kino.js.map +1 -1
  10. package/dist/agents/mav.js +43 -79
  11. package/dist/agents/mav.js.map +1 -1
  12. package/dist/agents/nico.js +33 -61
  13. package/dist/agents/nico.js.map +1 -1
  14. package/dist/agents/planner.js +8 -80
  15. package/dist/agents/planner.js.map +1 -1
  16. package/dist/dimensions/autonomy/human-on-the-loop.js +1 -1
  17. package/dist/dimensions/autonomy/human-on-the-loop.js.map +1 -1
  18. package/dist/dimensions/role/architect.js +19 -1
  19. package/dist/dimensions/role/architect.js.map +1 -1
  20. package/dist/dimensions/role/{build.d.ts → assayer.d.ts} +1 -1
  21. package/dist/dimensions/role/assayer.js +25 -0
  22. package/dist/dimensions/role/assayer.js.map +1 -0
  23. package/dist/dimensions/role/{diagnose.d.ts → implementer.d.ts} +1 -1
  24. package/dist/dimensions/role/implementer.js +12 -0
  25. package/dist/dimensions/role/implementer.js.map +1 -0
  26. package/dist/dimensions/role/{curate.d.ts → planner.d.ts} +1 -1
  27. package/dist/dimensions/role/planner.js +14 -0
  28. package/dist/dimensions/role/planner.js.map +1 -0
  29. package/dist/hook-cells.js +5 -2
  30. package/dist/hook-cells.js.map +1 -1
  31. package/dist/hooks/deploy-drift-notice.js +1 -1
  32. package/dist/hooks/deploy-drift-notice.js.map +1 -1
  33. package/dist/hooks/purview-guardrail.d.ts +2 -0
  34. package/dist/hooks/purview-guardrail.js +302 -0
  35. package/dist/hooks/purview-guardrail.js.map +1 -0
  36. package/dist/hooks/stance-guardrail-pre.js +17 -22
  37. package/dist/hooks/stance-guardrail-pre.js.map +1 -1
  38. package/dist/hooks/stance-guardrail.js +84 -27
  39. package/dist/hooks/stance-guardrail.js.map +1 -1
  40. package/dist/plan-states.d.ts +3 -3
  41. package/dist/plan-states.js +3 -3
  42. package/dist/roles/architect.d.ts +2 -0
  43. package/dist/roles/architect.js +101 -0
  44. package/dist/roles/architect.js.map +1 -0
  45. package/dist/roles/assayer.d.ts +2 -0
  46. package/dist/roles/assayer.js +66 -0
  47. package/dist/roles/assayer.js.map +1 -0
  48. package/dist/roles/hold.d.ts +57 -0
  49. package/dist/roles/hold.js +105 -0
  50. package/dist/roles/hold.js.map +1 -0
  51. package/dist/roles/implementer.d.ts +2 -0
  52. package/dist/roles/implementer.js +60 -0
  53. package/dist/roles/implementer.js.map +1 -0
  54. package/dist/roles/planner.d.ts +2 -0
  55. package/dist/roles/planner.js +70 -0
  56. package/dist/roles/planner.js.map +1 -0
  57. package/dist/skills/carry-on/skill.js +2 -2
  58. package/dist/skills/carry-on/skill.js.map +1 -1
  59. package/dist/skills/deliver/skill.js +41 -3
  60. package/dist/skills/deliver/skill.js.map +1 -1
  61. package/package.json +3 -6
  62. package/dist/dimensions/role/build.js +0 -2
  63. package/dist/dimensions/role/build.js.map +0 -1
  64. package/dist/dimensions/role/converse.d.ts +0 -2
  65. package/dist/dimensions/role/converse.js +0 -2
  66. package/dist/dimensions/role/converse.js.map +0 -1
  67. package/dist/dimensions/role/curate.js +0 -2
  68. package/dist/dimensions/role/curate.js.map +0 -1
  69. package/dist/dimensions/role/diagnose.js +0 -2
  70. package/dist/dimensions/role/diagnose.js.map +0 -1
  71. package/dist/dimensions/role/document.d.ts +0 -2
  72. package/dist/dimensions/role/document.js +0 -2
  73. package/dist/dimensions/role/document.js.map +0 -1
  74. package/dist/dimensions/role/implement.d.ts +0 -2
  75. package/dist/dimensions/role/implement.js +0 -2
  76. package/dist/dimensions/role/implement.js.map +0 -1
  77. package/dist/dimensions/role/operate.d.ts +0 -2
  78. package/dist/dimensions/role/operate.js +0 -2
  79. package/dist/dimensions/role/operate.js.map +0 -1
  80. package/dist/dimensions/role/orchestrate.d.ts +0 -2
  81. package/dist/dimensions/role/orchestrate.js +0 -2
  82. package/dist/dimensions/role/orchestrate.js.map +0 -1
  83. package/dist/dimensions/role/plan.d.ts +0 -2
  84. package/dist/dimensions/role/plan.js +0 -2
  85. package/dist/dimensions/role/plan.js.map +0 -1
  86. package/dist/dimensions/role/research.d.ts +0 -2
  87. package/dist/dimensions/role/research.js +0 -2
  88. package/dist/dimensions/role/research.js.map +0 -1
  89. package/dist/dimensions/role/review.d.ts +0 -2
  90. package/dist/dimensions/role/review.js +0 -2
  91. package/dist/dimensions/role/review.js.map +0 -1
  92. package/dist/dimensions/role/test.d.ts +0 -2
  93. package/dist/dimensions/role/test.js +0 -2
  94. package/dist/dimensions/role/test.js.map +0 -1
  95. package/dist/hooks/praxis-continuity.d.ts +0 -2
  96. package/dist/hooks/praxis-continuity.js +0 -132
  97. package/dist/hooks/praxis-continuity.js.map +0 -1
@@ -0,0 +1,101 @@
1
+ import { convergence as convergence_audienceAdaptation } from '../dimensions/audience-adaptation/convergence.js';
2
+ import { principalSelf } from '../dimensions/autonomy/decision-authority.js';
3
+ import { handoff as handoff_autonomy } from '../dimensions/autonomy/handoff.js';
4
+ import { humanOnTheLoop as humanOnTheLoop_autonomy } from '../dimensions/autonomy/human-on-the-loop.js';
5
+ import { missionCommand } from '../dimensions/autonomy/mission-command.js';
6
+ import { researchInvestigation as researchInvestigation_capabilities } from '../dimensions/capabilities/research-investigation.js';
7
+ import { systemDesign as systemDesign_capabilities } from '../dimensions/capabilities/system-design.js';
8
+ import { cratylism as cratylism_engineeringPrinciples } from '../dimensions/engineering-principles/cratylism.js';
9
+ import { dry as dry_engineeringPrinciples } from '../dimensions/engineering-principles/dry.js';
10
+ import { firstPrinciples as firstPrinciples_engineeringPrinciples } from '../dimensions/engineering-principles/first-principles.js';
11
+ import { greenField as greenField_engineeringPrinciples } from '../dimensions/engineering-principles/green-field.js';
12
+ import { llmNative as llmNative_engineeringPrinciples } from '../dimensions/engineering-principles/llm-native.js';
13
+ import { mece as mece_engineeringPrinciples } from '../dimensions/engineering-principles/mece.js';
14
+ import { separationOfConcerns as separationOfConcerns_engineeringPrinciples } from '../dimensions/engineering-principles/separation-of-concerns.js';
15
+ import { simplicity as simplicity_engineeringPrinciples } from '../dimensions/engineering-principles/simplicity.js';
16
+ import { trustButVerify as trustButVerify_engineeringPrinciples } from '../dimensions/engineering-principles/trust-but-verify.js';
17
+ import { plain as plain_formality } from '../dimensions/formality/plain.js';
18
+ import { systemsThinking as systemsThinking_framing } from '../dimensions/framing/systems-thinking.js';
19
+ import { honesty as honesty_guardrails } from '../dimensions/guardrails/honesty.js';
20
+ import { correctionConsolidation as correctionConsolidation_learning } from '../dimensions/learning/correction-consolidation.js';
21
+ import { delivery as delivery_objective } from '../dimensions/objective/delivery.js';
22
+ import { planAndSolve as planAndSolve_reasoningStrategy } from '../dimensions/reasoning-strategy/plan-and-solve.js';
23
+ import { architect as architect_role } from '../dimensions/role/architect.js';
24
+ import { optimize as optimize_satisficing } from '../dimensions/satisficing/optimize.js';
25
+ import { acceptanceCriteriaCheck as acceptanceCriteriaCheck_selfEvaluation } from '../dimensions/self-evaluation/acceptance-criteria-check.js';
26
+ import { projection as projection_situationAwareness } from '../dimensions/situation-awareness/projection.js';
27
+ import { decisionRationale as decisionRationale_transparency } from '../dimensions/transparency/decision-rationale.js';
28
+ // THE TOP RUNG. `architect`, `planner` and `implementer` are one ladder differing FIRST in
29
+ // decision authority — principal here, withheld below — and SECOND in the arrow each
30
+ // one is. Every rung carries `mission-command`, whose escalation clause is the shared
31
+ // law: surface the fork, do not resolve it. That single rule is what keeps delegation
32
+ // from silently becoming re-delegation of the design.
33
+ //
34
+ // WHAT THE CAPABILITY SET SAYS, AND WHAT IT DELIBERATELY DOES NOT.
35
+ // `software-engineering` was always absent, and that absence used to be the entire
36
+ // delegation boundary. It is now redundant with a contract that states the boundary out
37
+ // loud, which is the improvement: an absence cannot be quoted by a rubric and cannot be
38
+ // distinguished from an oversight by anyone reading the Target.
39
+ //
40
+ // Two capabilities were REMOVED when the contract was written down, because the
41
+ // contract convicted them. `planning-decomposition` was glossed "the decomposition that
42
+ // hands work out" while `⟨C → spec⟩ ↦ plan` says the opposite, and an agent holding a
43
+ // capability exercises it. `review-critique ≜ ⟨adversarial threat-modeling
44
+ // severity-triage⟩` is a substrate act under a name that sounded conceptual; the
45
+ // critique this rung performs is `judge`, which the contract reserves by name.
46
+ export const architectRole = {
47
+ sign: architect_role,
48
+ // `design` holds the lattice, `deliver` closes the loop on what comes back. Declared
49
+ // rather than described — omp injects them before a dispatched subagent's first
50
+ // prompt and the generic launcher names them as required reading for a main session,
51
+ // so a holder is the same agent either way it is reached.
52
+ skills: ['design', 'deliver'],
53
+ vector: {
54
+ formality: plain_formality,
55
+ // `convergence`: this position's output is UNDERSTANDING, which is worthless at a
56
+ // density its reader cannot take. A holder whose interlocutor is a peer expert
57
+ // overrides it — `nico` does — which is precisely what a default is for.
58
+ audienceAdaptation: convergence_audienceAdaptation,
59
+ transparency: decisionRationale_transparency,
60
+ autonomy: [
61
+ principalSelf,
62
+ humanOnTheLoop_autonomy,
63
+ missionCommand,
64
+ handoff_autonomy,
65
+ ],
66
+ // `delivery`, against the obvious pull toward `insight`. The characteristic failure
67
+ // of this position is becoming a theorist who emits documents while the work
68
+ // stalls; the standing drive is the finished system, and design is how it gets
69
+ // there rather than what it is for.
70
+ objective: delivery_objective,
71
+ engineeringPrinciples: [
72
+ cratylism_engineeringPrinciples,
73
+ llmNative_engineeringPrinciples,
74
+ firstPrinciples_engineeringPrinciples,
75
+ // The three carrying this position's specific load: concerns must not mix,
76
+ // delegated work is checked rather than trusted, and executors are told to BREAK
77
+ // what does not conform rather than accrete beside it.
78
+ separationOfConcerns_engineeringPrinciples,
79
+ trustButVerify_engineeringPrinciples,
80
+ greenField_engineeringPrinciples,
81
+ simplicity_engineeringPrinciples,
82
+ dry_engineeringPrinciples,
83
+ mece_engineeringPrinciples,
84
+ ],
85
+ guardrails: [honesty_guardrails],
86
+ capabilities: [
87
+ systemDesign_capabilities,
88
+ researchInvestigation_capabilities,
89
+ ],
90
+ learning: correctionConsolidation_learning,
91
+ situationAwareness: projection_situationAwareness,
92
+ framing: systemsThinking_framing,
93
+ reasoningStrategy: planAndSolve_reasoningStrategy,
94
+ satisficing: optimize_satisficing,
95
+ // NOT an executable test oracle. A suite going green proves the executor's own
96
+ // claim and says nothing about conformance to the design; acceptance is judged
97
+ // against the criteria the design states.
98
+ selfEvaluation: acceptanceCriteriaCheck_selfEvaluation,
99
+ },
100
+ };
101
+ //# sourceMappingURL=architect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architect.js","sourceRoot":"","sources":["../../src/roles/architect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RoleCell } from './hold.js';
2
+ export declare const assayerRole: RoleCell;
@@ -0,0 +1,66 @@
1
+ import { maintenance as maintenance_audienceAdaptation } from '../dimensions/audience-adaptation/maintenance.js';
2
+ import { handoff as handoff_autonomy } from '../dimensions/autonomy/handoff.js';
3
+ import { missionCommand } from '../dimensions/autonomy/mission-command.js';
4
+ import { researchInvestigation as researchInvestigation_capabilities } from '../dimensions/capabilities/research-investigation.js';
5
+ import { softwareEngineering as softwareEngineering_capabilities } from '../dimensions/capabilities/software-engineering.js';
6
+ import { cratylism as cratylism_engineeringPrinciples } from '../dimensions/engineering-principles/cratylism.js';
7
+ import { firstPrinciples as firstPrinciples_engineeringPrinciples } from '../dimensions/engineering-principles/first-principles.js';
8
+ import { mece as mece_engineeringPrinciples } from '../dimensions/engineering-principles/mece.js';
9
+ import { plain as plain_formality } from '../dimensions/formality/plain.js';
10
+ import { analytical as analytical_framing } from '../dimensions/framing/analytical.js';
11
+ import { honesty as honesty_guardrails } from '../dimensions/guardrails/honesty.js';
12
+ import { correctionConsolidation as correctionConsolidation_learning } from '../dimensions/learning/correction-consolidation.js';
13
+ import { thoroughness as thoroughness_objective } from '../dimensions/objective/thoroughness.js';
14
+ import { structuredData as structuredData_outputFormat } from '../dimensions/output-format/structured-data.js';
15
+ import { react as react_reasoningStrategy } from '../dimensions/reasoning-strategy/react.js';
16
+ import { assayer as assayer_role } from '../dimensions/role/assayer.js';
17
+ import { satisfice as satisfice_satisficing } from '../dimensions/satisficing/satisfice.js';
18
+ import { acceptanceCriteriaCheck as acceptanceCriteriaCheck_selfEvaluation } from '../dimensions/self-evaluation/acceptance-criteria-check.js';
19
+ import { comprehension as comprehension_situationAwareness } from '../dimensions/situation-awareness/comprehension.js';
20
+ import { provenanceAttribution as provenanceAttribution_transparency } from '../dimensions/transparency/provenance-attribution.js';
21
+ // THE UPWARD ARROW. `software-engineering` is PRESENT here and absent one rung up, and
22
+ // the two facts are the same decision: this is the position that descends, so that the
23
+ // design-holder does not.
24
+ //
25
+ // EVERY ASPECT BELOW IS CHOSEN AGAINST THE ONE FAILURE MODE — turning into a code
26
+ // reviewer. `thoroughness` rewards answering every concept in `realizes(unit)` rather
27
+ // than finding something to say. `satisfice` stops at the answer instead of reading on.
28
+ // `structured-data` makes the report a list of ⟨concept, uncovered-factor, locus⟩ rather
29
+ // than a narrative, and a narrative is where mechanism-prose gets in. `cratylism`
30
+ // carries the cheapest of the three questions — does the artifact SPELL its concept —
31
+ // and `first-principles` forbids inheriting the executor's own account of what it built.
32
+ //
33
+ // `design` and no `deliver`: it must read the lattice to lift into it, and judging is
34
+ // not its remit.
35
+ export const assayerRole = {
36
+ sign: assayer_role,
37
+ skills: ['design'],
38
+ vector: {
39
+ formality: plain_formality,
40
+ audienceAdaptation: maintenance_audienceAdaptation,
41
+ // `provenance-attribution`: an unachieved concept travels with a locus, and a locus
42
+ // asserted without a source is a claim the principal cannot route.
43
+ transparency: provenanceAttribution_transparency,
44
+ // No `principal-self`. It is dispatched, it answers, it returns.
45
+ autonomy: [missionCommand, handoff_autonomy],
46
+ objective: thoroughness_objective,
47
+ engineeringPrinciples: [
48
+ cratylism_engineeringPrinciples,
49
+ firstPrinciples_engineeringPrinciples,
50
+ mece_engineeringPrinciples,
51
+ ],
52
+ guardrails: [honesty_guardrails],
53
+ capabilities: [
54
+ softwareEngineering_capabilities,
55
+ researchInvestigation_capabilities,
56
+ ],
57
+ learning: correctionConsolidation_learning,
58
+ situationAwareness: comprehension_situationAwareness,
59
+ framing: analytical_framing,
60
+ reasoningStrategy: react_reasoningStrategy,
61
+ satisficing: satisfice_satisficing,
62
+ outputFormat: structuredData_outputFormat,
63
+ selfEvaluation: acceptanceCriteriaCheck_selfEvaluation,
64
+ },
65
+ };
66
+ //# sourceMappingURL=assayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assayer.js","sourceRoot":"","sources":["../../src/roles/assayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACjH,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AACnI,OAAO,EAAE,mBAAmB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAC7H,OAAO,EAAE,SAAS,IAAI,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,eAAe,IAAI,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACpI,OAAO,EAAE,IAAI,IAAI,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,uBAAuB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACjI,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjG,OAAO,EAAE,cAAc,IAAI,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAC/G,OAAO,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,EAAE,uBAAuB,IAAI,sCAAsC,EAAE,MAAM,4DAA4D,CAAC;AAC/I,OAAO,EAAE,aAAa,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACvH,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AAGnI,uFAAuF;AACvF,uFAAuF;AACvF,0BAA0B;AAC1B,EAAE;AACF,kFAAkF;AAClF,sFAAsF;AACtF,wFAAwF;AACxF,yFAAyF;AACzF,kFAAkF;AAClF,sFAAsF;AACtF,yFAAyF;AACzF,EAAE;AACF,sFAAsF;AACtF,iBAAiB;AAEjB,MAAM,CAAC,MAAM,WAAW,GAAa;IACnC,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE;QACN,SAAS,EAAE,eAAe;QAC1B,kBAAkB,EAAE,8BAA8B;QAClD,oFAAoF;QACpF,mEAAmE;QACnE,YAAY,EAAE,kCAAkC;QAChD,iEAAiE;QACjE,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAC5C,SAAS,EAAE,sBAAsB;QACjC,qBAAqB,EAAE;YACrB,+BAA+B;YAC/B,qCAAqC;YACrC,0BAA0B;SAC3B;QACD,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,YAAY,EAAE;YACZ,gCAAgC;YAChC,kCAAkC;SACnC;QACD,QAAQ,EAAE,gCAAgC;QAC1C,kBAAkB,EAAE,gCAAgC;QACpD,OAAO,EAAE,kBAAkB;QAC3B,iBAAiB,EAAE,uBAAuB;QAC1C,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,2BAA2B;QACzC,cAAc,EAAE,sCAAsC;KACvD;CACF,CAAC"}
@@ -0,0 +1,57 @@
1
+ import type { Agent as AgentIdentity, DimensionFieldsOf } from '@cratylus/schema';
2
+ import { MANIFEST } from '../manifest.js';
3
+ import type { Agent, Role } from '../manifest.js';
4
+ /** Every dimension FIELD of this corpus, as an agent carries it. */
5
+ type DimensionFields = DimensionFieldsOf<typeof MANIFEST>;
6
+ /**
7
+ * What a role SUPPLIES — a partial dimension vector, minus `role` (which is the
8
+ * role's own `sign`) and plus `guardrails`, which is `required: true` in the
9
+ * manifest and is therefore the position's to state. A position that confines
10
+ * nobody is not a lesser position, it is an unconfined one, and the catch-all
11
+ * belongs where every holder inherits it rather than on each holder in turn.
12
+ */
13
+ export type RoleVector = Partial<Omit<DimensionFields, 'role' | 'guardrails'>> & Pick<DimensionFields, 'guardrails'>;
14
+ /** The expectations attached to one position. */
15
+ export interface RoleCell {
16
+ /**
17
+ * The `role` dimension value — the position's CONTRACT, not merely its name. It
18
+ * states the pair ⟨reads, writes⟩ over the ladder and the acts the pair reserves;
19
+ * delegation is a theorem of the pair rather than a second declaration beside it.
20
+ */
21
+ readonly sign: Role;
22
+ /** The apparatus every holder operates through. Holders may add; see `holds`. */
23
+ readonly skills?: readonly string[];
24
+ /** The aspects expected of anyone holding the position — DEFAULTS, every one. */
25
+ readonly vector: RoleVector;
26
+ }
27
+ /**
28
+ * What the HOLDER declares: its identity, and any dimension value of its own.
29
+ *
30
+ * Unbounded in size — `kino` declares an entire domain over the architect role — and
31
+ * bounded in exactly one way: `role` is absent, because the contract is the position's.
32
+ * An aspect stated here OVERRIDES a scalar the role supplies and EXTENDS a set.
33
+ */
34
+ export type Declared = AgentIdentity & Partial<Omit<DimensionFields, 'role'>>;
35
+ /**
36
+ * `select(a) = hold(a) ⊕ declare(a)` — the two-operand fold, run at authoring time so
37
+ * the projected Target stays flat.
38
+ *
39
+ * `⊕` reads the manifest's own `arity`, so the precedence rule is stated once and
40
+ * cannot disagree with itself:
41
+ *
42
+ * · set → role members first, then the holder's own — EXTEND. A role-supplied
43
+ * member therefore survives every holder, which is why a set needs no
44
+ * inviolability marking: union already guarantees it.
45
+ * · scalar → the holder's value when the KEY IS PRESENT, else the role's — OVERRIDE.
46
+ * Present-with-`null` is an explicit suppression and is honoured as one;
47
+ * absent means "whatever the position says", which is the common case.
48
+ *
49
+ * A dimension neither operand states is `null` — omit-to-inherit, exactly as a
50
+ * hand-written vector spells it.
51
+ *
52
+ * `provenance.mark` NEVER folds: it is instance-bound, minted per agent at
53
+ * `create-agent`, and two agents sharing a mark are indistinguishable in the one place
54
+ * an operator reads them. It arrives on `declared` and leaves untouched.
55
+ */
56
+ export declare function holds(role: RoleCell, declared: Declared): Agent;
57
+ export {};
@@ -0,0 +1,105 @@
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
+ // A ROLE, AND THE FOLD THAT RESOLVES ONE.
3
+ //
4
+ // A role is a BUNDLE OF EXPECTED ASPECTS. In the world, naming someone an architect
5
+ // tells you how they reason, what they are accountable for, what they may decide and
6
+ // what they must delegate; the corpus adopts that account because it is what the word
7
+ // already means, and a corpus whose roles mean what roles mean needs no second
8
+ // vocabulary for it.
9
+ //
10
+ // Before this module, `role` was a scalar dimension over bare tokens, so the corpus
11
+ // could NAME a role and could not STATE one. Everything the name should have carried
12
+ // was retyped on every holder — `kino` and `architect` agreed on 19 of 22 dimensions
13
+ // by copying — and the duplication bought nothing, because what must be FULL is the
14
+ // TARGET (a harness reads a flat declaration, never a resolution chain) and the fold
15
+ // below runs at `select`, before `compose`. The emitted Target is exactly as flat as
16
+ // it was when every value was retyped by hand.
17
+ //
18
+ // A ROLE IS NOT A DIMENSION, AND IT IS NOT A BASE CLASS. It is made OF dimension
19
+ // values, so it cannot be one of them; and there is no lineage here — `architect` is
20
+ // a thin holder of the architect role exactly as `kino` is, with no parent pointer, no
21
+ // abstract cell nobody dispatches, and no chain to resolve. Two operands, one
22
+ // precedence rule, no ordering question.
23
+ //
24
+ // SINGULAR ARITY IS THE POINT, not a simplification. A role is the CONTRACT A PEER
25
+ // DISPATCHES AGAINST: when an architect hands a cut piece to a planner it reasons about
26
+ // the planner's role to know what comes back. A union of roles is a contract no
27
+ // dispatcher can reason about, and it would readmit role conflict — incompatible
28
+ // demands between two positions held at once — which singular arity deletes outright.
29
+ // The situational switch (the same practitioner architects here and implements there)
30
+ // is modelled by DISPATCH: the situation selects which agent runs.
31
+ //
32
+ // WHAT A HOLDER MAY NOT ESCAPE is exactly one thing: the role's own contract, the
33
+ // `role` dimension value stating ⟨reads, writes⟩ and everything that follows from the
34
+ // pair. It is inviolable BY CONSTRUCTION rather than by a marking — `Declared` omits
35
+ // the key, so there is no field to override and no rule to enforce. Every other aspect
36
+ // a role supplies is a DEFAULT: a scalar the holder may override, a set the holder may
37
+ // extend. A general constitutive/default marking was considered and rejected: with the
38
+ // contract folded into the role's own value, no second aspect needed protecting, and a
39
+ // mechanism with no live subject is structure that carries no load.
40
+ // ─────────────────────────────────────────────────────────────────────────────
41
+ import { kebabToCamel } from '@cratylus/schema';
42
+ import { DIMENSION_NAMES, MANIFEST } from '../manifest.js';
43
+ /**
44
+ * `select(a) = hold(a) ⊕ declare(a)` — the two-operand fold, run at authoring time so
45
+ * the projected Target stays flat.
46
+ *
47
+ * `⊕` reads the manifest's own `arity`, so the precedence rule is stated once and
48
+ * cannot disagree with itself:
49
+ *
50
+ * · set → role members first, then the holder's own — EXTEND. A role-supplied
51
+ * member therefore survives every holder, which is why a set needs no
52
+ * inviolability marking: union already guarantees it.
53
+ * · scalar → the holder's value when the KEY IS PRESENT, else the role's — OVERRIDE.
54
+ * Present-with-`null` is an explicit suppression and is honoured as one;
55
+ * absent means "whatever the position says", which is the common case.
56
+ *
57
+ * A dimension neither operand states is `null` — omit-to-inherit, exactly as a
58
+ * hand-written vector spells it.
59
+ *
60
+ * `provenance.mark` NEVER folds: it is instance-bound, minted per agent at
61
+ * `create-agent`, and two agents sharing a mark are indistinguishable in the one place
62
+ * an operator reads them. It arrives on `declared` and leaves untouched.
63
+ */
64
+ export function holds(role, declared) {
65
+ const resolved = {
66
+ name: declared.name,
67
+ description: declared.description,
68
+ archetype: declared.archetype,
69
+ provenance: declared.provenance,
70
+ };
71
+ if (declared.preamble !== undefined) {
72
+ resolved.preamble = declared.preamble;
73
+ }
74
+ const skills = [
75
+ ...(role.skills ?? []),
76
+ ...(declared.skills ?? []).filter((s) => !(role.skills ?? []).includes(s)),
77
+ ];
78
+ if (skills.length > 0) {
79
+ resolved.skills = skills;
80
+ }
81
+ const roleVector = role.vector;
82
+ const declaredVector = declared;
83
+ for (const dimension of DIMENSION_NAMES) {
84
+ const field = kebabToCamel(dimension);
85
+ if (dimension === 'role') {
86
+ resolved[field] = role.sign;
87
+ continue;
88
+ }
89
+ const fromRole = roleVector[field];
90
+ const stated = field in declaredVector ? declaredVector[field] : undefined;
91
+ if (MANIFEST[dimension].arity === 'set') {
92
+ const base = Array.isArray(fromRole) ? fromRole : [];
93
+ const extension = Array.isArray(stated) ? stated : [];
94
+ const union = [...base, ...extension.filter((v) => !base.includes(v))];
95
+ resolved[field] = union.length > 0 ? union : null;
96
+ continue;
97
+ }
98
+ resolved[field] =
99
+ field in declaredVector ? (stated ?? null) : (fromRole ?? null);
100
+ }
101
+ // The ONE cast, and it is structural rather than hopeful: the loop is driven by
102
+ // `DIMENSION_NAMES`, so every dimension field of `Agent` is assigned exactly once.
103
+ return resolved;
104
+ }
105
+ //# sourceMappingURL=hold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hold.js","sourceRoot":"","sources":["../../src/roles/hold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { RoleCell } from './hold.js';
2
+ export declare const implementerRole: RoleCell;
@@ -0,0 +1,60 @@
1
+ import { maintenance as maintenance_audienceAdaptation } from '../dimensions/audience-adaptation/maintenance.js';
2
+ import { handoff as handoff_autonomy } from '../dimensions/autonomy/handoff.js';
3
+ import { missionCommand } from '../dimensions/autonomy/mission-command.js';
4
+ import { softwareEngineering as softwareEngineering_capabilities } from '../dimensions/capabilities/software-engineering.js';
5
+ import { verificationTesting as verificationTesting_capabilities } from '../dimensions/capabilities/verification-testing.js';
6
+ import { cratylism as cratylism_engineeringPrinciples } from '../dimensions/engineering-principles/cratylism.js';
7
+ import { dry as dry_engineeringPrinciples } from '../dimensions/engineering-principles/dry.js';
8
+ import { firstPrinciples as firstPrinciples_engineeringPrinciples } from '../dimensions/engineering-principles/first-principles.js';
9
+ import { simplicity as simplicity_engineeringPrinciples } from '../dimensions/engineering-principles/simplicity.js';
10
+ import { plain as plain_formality } from '../dimensions/formality/plain.js';
11
+ import { correctnessOriented as correctnessOriented_framing } from '../dimensions/framing/correctness-oriented.js';
12
+ import { honesty as honesty_guardrails } from '../dimensions/guardrails/honesty.js';
13
+ import { correctionConsolidation as correctionConsolidation_learning } from '../dimensions/learning/correction-consolidation.js';
14
+ import { correctness as correctness_objective } from '../dimensions/objective/correctness.js';
15
+ import { react as react_reasoningStrategy } from '../dimensions/reasoning-strategy/react.js';
16
+ import { implementer as implementer_role } from '../dimensions/role/implementer.js';
17
+ import { satisfice as satisfice_satisficing } from '../dimensions/satisficing/satisfice.js';
18
+ import { executableTestOracle as executableTestOracle_selfEvaluation } from '../dimensions/self-evaluation/executable-test-oracle.js';
19
+ import { perception as perception_situationAwareness } from '../dimensions/situation-awareness/perception.js';
20
+ import { limitationDisclosure as limitationDisclosure_transparency } from '../dimensions/transparency/limitation-disclosure.js';
21
+ // THE BOTTOM RUNG, and the only one whose write layer is the substrate. It carries no
22
+ // workflow skill by design: a skill guides an agent through decisions it must make, and
23
+ // this position's decisions were made for it. It needs a unit of work, tools, and the
24
+ // discipline to stay inside the boundary.
25
+ export const implementerRole = {
26
+ sign: implementer_role,
27
+ vector: {
28
+ formality: plain_formality,
29
+ audienceAdaptation: maintenance_audienceAdaptation,
30
+ // `limitation-disclosure`: this position's entire value to the layer above is an
31
+ // honest account of what it could NOT establish. A clean report that hides an
32
+ // unproven leg is worse than a failure, because it is acted on.
33
+ transparency: limitationDisclosure_transparency,
34
+ autonomy: [missionCommand, handoff_autonomy],
35
+ objective: correctness_objective,
36
+ engineeringPrinciples: [
37
+ cratylism_engineeringPrinciples,
38
+ firstPrinciples_engineeringPrinciples,
39
+ simplicity_engineeringPrinciples,
40
+ dry_engineeringPrinciples,
41
+ ],
42
+ guardrails: [honesty_guardrails],
43
+ capabilities: [
44
+ softwareEngineering_capabilities,
45
+ verificationTesting_capabilities,
46
+ ],
47
+ learning: correctionConsolidation_learning,
48
+ situationAwareness: perception_situationAwareness,
49
+ framing: correctnessOriented_framing,
50
+ reasoningStrategy: react_reasoningStrategy,
51
+ // `satisfice`, and it is the one aspect that must not be `optimize` here.
52
+ // Optimising past the spec IS the exceeding failure the contract names: this
53
+ // position builds to the contract and stops.
54
+ satisficing: satisfice_satisficing,
55
+ // The oracle is the spec's own criteria, executed. That is verification, and it is
56
+ // exactly right at this rung — it is only wrong when mistaken for validation.
57
+ selfEvaluation: executableTestOracle_selfEvaluation,
58
+ },
59
+ };
60
+ //# sourceMappingURL=implementer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementer.js","sourceRoot":"","sources":["../../src/roles/implementer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACjH,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAC7H,OAAO,EAAE,mBAAmB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AAC7H,OAAO,EAAE,SAAS,IAAI,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,GAAG,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,eAAe,IAAI,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACpI,OAAO,EAAE,UAAU,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACpH,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,IAAI,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACnH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,uBAAuB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACjI,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC9F,OAAO,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,SAAS,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,EAAE,oBAAoB,IAAI,mCAAmC,EAAE,MAAM,yDAAyD,CAAC;AACtI,OAAO,EAAE,UAAU,IAAI,6BAA6B,EAAE,MAAM,iDAAiD,CAAC;AAC9G,OAAO,EAAE,oBAAoB,IAAI,iCAAiC,EAAE,MAAM,qDAAqD,CAAC;AAGhI,sFAAsF;AACtF,wFAAwF;AACxF,sFAAsF;AACtF,0CAA0C;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,IAAI,EAAE,gBAAgB;IACtB,MAAM,EAAE;QACN,SAAS,EAAE,eAAe;QAC1B,kBAAkB,EAAE,8BAA8B;QAClD,iFAAiF;QACjF,8EAA8E;QAC9E,gEAAgE;QAChE,YAAY,EAAE,iCAAiC;QAC/C,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAC5C,SAAS,EAAE,qBAAqB;QAChC,qBAAqB,EAAE;YACrB,+BAA+B;YAC/B,qCAAqC;YACrC,gCAAgC;YAChC,yBAAyB;SAC1B;QACD,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,YAAY,EAAE;YACZ,gCAAgC;YAChC,gCAAgC;SACjC;QACD,QAAQ,EAAE,gCAAgC;QAC1C,kBAAkB,EAAE,6BAA6B;QACjD,OAAO,EAAE,2BAA2B;QACpC,iBAAiB,EAAE,uBAAuB;QAC1C,0EAA0E;QAC1E,6EAA6E;QAC7E,6CAA6C;QAC7C,WAAW,EAAE,qBAAqB;QAClC,mFAAmF;QACnF,8EAA8E;QAC9E,cAAc,EAAE,mCAAmC;KACpD;CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { RoleCell } from './hold.js';
2
+ export declare const plannerRole: RoleCell;
@@ -0,0 +1,70 @@
1
+ import { maintenance as maintenance_audienceAdaptation } from '../dimensions/audience-adaptation/maintenance.js';
2
+ import { handoff as handoff_autonomy } from '../dimensions/autonomy/handoff.js';
3
+ import { missionCommand } from '../dimensions/autonomy/mission-command.js';
4
+ import { planningDecomposition as planningDecomposition_capabilities } from '../dimensions/capabilities/planning-decomposition.js';
5
+ import { researchInvestigation as researchInvestigation_capabilities } from '../dimensions/capabilities/research-investigation.js';
6
+ import { cratylism as cratylism_engineeringPrinciples } from '../dimensions/engineering-principles/cratylism.js';
7
+ import { dry as dry_engineeringPrinciples } from '../dimensions/engineering-principles/dry.js';
8
+ import { firstPrinciples as firstPrinciples_engineeringPrinciples } from '../dimensions/engineering-principles/first-principles.js';
9
+ import { llmNative as llmNative_engineeringPrinciples } from '../dimensions/engineering-principles/llm-native.js';
10
+ import { mece as mece_engineeringPrinciples } from '../dimensions/engineering-principles/mece.js';
11
+ import { simplicity as simplicity_engineeringPrinciples } from '../dimensions/engineering-principles/simplicity.js';
12
+ import { plain as plain_formality } from '../dimensions/formality/plain.js';
13
+ import { decompositional as decompositional_framing } from '../dimensions/framing/decompositional.js';
14
+ import { honesty as honesty_guardrails } from '../dimensions/guardrails/honesty.js';
15
+ import { correctionConsolidation as correctionConsolidation_learning } from '../dimensions/learning/correction-consolidation.js';
16
+ import { thoroughness as thoroughness_objective } from '../dimensions/objective/thoroughness.js';
17
+ import { planAndSolve as planAndSolve_reasoningStrategy } from '../dimensions/reasoning-strategy/plan-and-solve.js';
18
+ import { planner as planner_role } from '../dimensions/role/planner.js';
19
+ import { optimize as optimize_satisficing } from '../dimensions/satisficing/optimize.js';
20
+ import { acceptanceCriteriaCheck as acceptanceCriteriaCheck_selfEvaluation } from '../dimensions/self-evaluation/acceptance-criteria-check.js';
21
+ import { comprehension as comprehension_situationAwareness } from '../dimensions/situation-awareness/comprehension.js';
22
+ import { provenanceAttribution as provenanceAttribution_transparency } from '../dimensions/transparency/provenance-attribution.js';
23
+ // THE MIDDLE RUNG. Holds `mission-command` and `handoff` but NOT `principal-self`: the
24
+ // boundary was drawn above it, and the contract's `⊄ writes C` is what makes that
25
+ // refusal structural rather than a matter of discipline.
26
+ //
27
+ // `system-design` is absent alongside `software-engineering` — this position neither
28
+ // designs nor builds. What it owns is the census and the cut-into-units.
29
+ export const plannerRole = {
30
+ sign: planner_role,
31
+ // One skill, and only one. `design` and `deliver` belong to the rung ABOVE, which
32
+ // draws the boundary this rung plans inside; the rung BELOW declares none at all,
33
+ // because an implementer's decisions are made for it by its spec.
34
+ skills: ['plan'],
35
+ vector: {
36
+ formality: plain_formality,
37
+ audienceAdaptation: maintenance_audienceAdaptation,
38
+ // `provenance-attribution`: a census is only worth what its sourcing is worth, and
39
+ // a count quoted without its denominator is indistinguishable from not having
40
+ // looked. Every finding carries where it came from and whether it was observed or
41
+ // inferred.
42
+ transparency: provenanceAttribution_transparency,
43
+ autonomy: [missionCommand, handoff_autonomy],
44
+ // `thoroughness`, not `delivery`: this position ships no artifact a user sees, and
45
+ // its failure mode is an incomplete census rather than a slow one.
46
+ objective: thoroughness_objective,
47
+ engineeringPrinciples: [
48
+ cratylism_engineeringPrinciples,
49
+ llmNative_engineeringPrinciples,
50
+ firstPrinciples_engineeringPrinciples,
51
+ simplicity_engineeringPrinciples,
52
+ dry_engineeringPrinciples,
53
+ mece_engineeringPrinciples,
54
+ ],
55
+ guardrails: [honesty_guardrails],
56
+ capabilities: [
57
+ planningDecomposition_capabilities,
58
+ researchInvestigation_capabilities,
59
+ ],
60
+ learning: correctionConsolidation_learning,
61
+ // `comprehension`, where the architect holds `projection`: this position's job is
62
+ // to establish what IS, exhaustively, not to anticipate what follows.
63
+ situationAwareness: comprehension_situationAwareness,
64
+ framing: decompositional_framing,
65
+ reasoningStrategy: planAndSolve_reasoningStrategy,
66
+ satisficing: optimize_satisficing,
67
+ selfEvaluation: acceptanceCriteriaCheck_selfEvaluation,
68
+ },
69
+ };
70
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/roles/planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,8BAA8B,EAAE,MAAM,kDAAkD,CAAC;AACjH,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AACnI,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AACnI,OAAO,EAAE,SAAS,IAAI,+BAA+B,EAAE,MAAM,mDAAmD,CAAC;AACjH,OAAO,EAAE,GAAG,IAAI,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,eAAe,IAAI,qCAAqC,EAAE,MAAM,0DAA0D,CAAC;AACpI,OAAO,EAAE,SAAS,IAAI,+BAA+B,EAAE,MAAM,oDAAoD,CAAC;AAClH,OAAO,EAAE,IAAI,IAAI,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,UAAU,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACpH,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACtG,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,uBAAuB,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACjI,OAAO,EAAE,YAAY,IAAI,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjG,OAAO,EAAE,YAAY,IAAI,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AACpH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,uBAAuB,IAAI,sCAAsC,EAAE,MAAM,4DAA4D,CAAC;AAC/I,OAAO,EAAE,aAAa,IAAI,gCAAgC,EAAE,MAAM,oDAAoD,CAAC;AACvH,OAAO,EAAE,qBAAqB,IAAI,kCAAkC,EAAE,MAAM,sDAAsD,CAAC;AAGnI,uFAAuF;AACvF,kFAAkF;AAClF,yDAAyD;AACzD,EAAE;AACF,qFAAqF;AACrF,yEAAyE;AAEzE,MAAM,CAAC,MAAM,WAAW,GAAa;IACnC,IAAI,EAAE,YAAY;IAClB,kFAAkF;IAClF,kFAAkF;IAClF,kEAAkE;IAClE,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,SAAS,EAAE,eAAe;QAC1B,kBAAkB,EAAE,8BAA8B;QAClD,mFAAmF;QACnF,8EAA8E;QAC9E,kFAAkF;QAClF,YAAY;QACZ,YAAY,EAAE,kCAAkC;QAChD,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAC5C,mFAAmF;QACnF,mEAAmE;QACnE,SAAS,EAAE,sBAAsB;QACjC,qBAAqB,EAAE;YACrB,+BAA+B;YAC/B,+BAA+B;YAC/B,qCAAqC;YACrC,gCAAgC;YAChC,yBAAyB;YACzB,0BAA0B;SAC3B;QACD,UAAU,EAAE,CAAC,kBAAkB,CAAC;QAChC,YAAY,EAAE;YACZ,kCAAkC;YAClC,kCAAkC;SACnC;QACD,QAAQ,EAAE,gCAAgC;QAC1C,kFAAkF;QAClF,sEAAsE;QACtE,kBAAkB,EAAE,gCAAgC;QACpD,OAAO,EAAE,uBAAuB;QAChC,iBAAiB,EAAE,8BAA8B;QACjD,WAAW,EAAE,oBAAoB;QACjC,cAAc,EAAE,sCAAsC;KACvD;CACF,CAAC"}
@@ -8,8 +8,8 @@
8
8
  // plan. "Carry on with what we just discussed" is the same utterance doing the same
9
9
  // work over a discussion, and a cell bound to `praxis` cannot serve it.
10
10
  //
11
- // The COMPOSITION is the operator's, at the utterance: "carry on with the praxis
12
- // execution" is carry-on ∘ praxis, and the pairing lives in what was said, not in
11
+ // The COMPOSITION is the operator's, at the utterance: "carry on with the plan
12
+ // execution" is carry-on ∘ plan, and the pairing lives in what was said, not in
13
13
  // this module's import list. A cell that names one context forecloses the rest.
14
14
  //
15
15
  // THE MECHANISM WENT WITH THE COUPLING, and that is a real loss recorded rather than
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/carry-on/skill.ts"],"names":[],"mappings":"AAEA,mEAAmE;AACnE,EAAE;AACF,6EAA6E;AAC7E,oFAAoF;AACpF,kFAAkF;AAClF,qFAAqF;AACrF,mFAAmF;AACnF,oFAAoF;AACpF,wEAAwE;AACxE,EAAE;AACF,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAChF,EAAE;AACF,qFAAqF;AACrF,qFAAqF;AACrF,kFAAkF;AAClF,sFAAsF;AACtF,kFAAkF;AAClF,oFAAoF;AACpF,mFAAmF;AACnF,2CAA2C;AAE3C,MAAM,eAAe,GACnB;;;;;;;;;;;;;;;;;;;;;CAqBkB,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,woBAAwoB;IACrpB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;CACtB,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/carry-on/skill.ts"],"names":[],"mappings":"AAEA,mEAAmE;AACnE,EAAE;AACF,6EAA6E;AAC7E,oFAAoF;AACpF,kFAAkF;AAClF,qFAAqF;AACrF,mFAAmF;AACnF,oFAAoF;AACpF,wEAAwE;AACxE,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,gFAAgF;AAChF,EAAE;AACF,qFAAqF;AACrF,qFAAqF;AACrF,kFAAkF;AAClF,sFAAsF;AACtF,kFAAkF;AAClF,oFAAoF;AACpF,mFAAmF;AACnF,2CAA2C;AAE3C,MAAM,eAAe,GACnB;;;;;;;;;;;;;;;;;;;;;CAqBkB,CAAC;AAErB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,woBAAwoB;IACrpB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;CACtB,CAAC"}
@@ -16,6 +16,25 @@ import { plan } from '../plan/skill.js';
16
16
  // rather than convenient: a check costing more than redoing the work is skipped, and
17
17
  // no instruction survives that gradient. Naming discipline is what buys the cheapness —
18
18
  // if the artifact spells its concept, two of the three are reading a name.
19
+ //
20
+ // WHERE THE READ GOES, AND WHY THE VERDICT DOES NOT FOLLOW IT. `validate ⊨ artifact` is
21
+ // right and it has a cost: reading artifacts is reading files — paths, identifiers, call
22
+ // sites — which is exactly the mechanical work the architect's contract calls a descent.
23
+ // Left there, the skill obliges the design-holder to descend on every wave, and by the
24
+ // third wave the design-holder is a code reviewer holding a lattice it can no longer
25
+ // carry. So `validate` is two operations under one name and they separate cleanly: the
26
+ // ASSAY (read the landed artifact, re-derive which concepts it realizes) is mechanical,
27
+ // substrate-bound and DELEGABLE; the JUDGMENT (what an unachieved concept means —
28
+ // rejection, an `amend(C)` because execution established a yield, or a design that was
29
+ // wrong) is keyed to C and is NOT.
30
+ //
31
+ // A THIRD PARTY DOES NOT REOPEN THE DEFECT THIS CELL CLOSES. The law forbids accepting
32
+ // on a claim from the party that BUILT the thing: one description, a closed loop. There
33
+ // are still two descriptions here and they are still held by different parties — the
34
+ // executor holds the spec and not the design, the assayer holds the design and not the
35
+ // spec. The artifact read the law demands still happens; it happens at the one site in
36
+ // the loop where reading substrate is the work rather than a descent, and what reaches
37
+ // the principal is in the only vocabulary the principal can check without descending.
19
38
  const FORMAL_BLOCK = `C @ design
20
39
  c ≜ a concept ⟨c ∈ C⟩
21
40
  anchor @ design
@@ -42,6 +61,10 @@ covers : path × ℘(C) → 𝔹 ⟨observable behaviour ≅ the factorization
42
61
  sole : path × anchor → 𝔹 ⟨∄ other artifact realizing the same concept⟩
43
62
  verify : P × return → 𝔹 ⟨the EXECUTOR's · built-it-right, against spec⟩
44
63
  validate : P → 𝔹 ⟨the PRINCIPAL's · built-the-right-thing, against C⟩
64
+ assay : artifact → ℘(C) ⟨which concepts the artifact ACTUALLY realizes · the REVERSE of plan⟩
65
+ assayer : unit ⇀ agent ⟨role = assayer · holds C ∧ ¬ holds spec(unit)⟩
66
+ achieved : unit → 𝔹 ⟨the three questions, answered against the assay⟩
67
+ unachieved : unit → ℘(⟨c, uncovered-factor, locus⟩) ⟨what crosses UPWARD⟩
45
68
  defect ≜ ⟨symptom, locus, provenance⟩
46
69
  impedes : defect × P → 𝔹
47
70
  cost : act → effort
@@ -52,9 +75,22 @@ commit @ design
52
75
  accepts @ design
53
76
 
54
77
  ∀ unit, r : ¬conform(r) ⇒ ¬accept(unit)(r)
55
- validate(unit) ⇔ spells(artifact(unit), realizes(unit))
78
+ achieved(unit) ⇔ realizes(unit) ∈ assay(artifact(unit))
79
+ ∧ spells(artifact(unit), realizes(unit))
56
80
  ∧ covers(artifact(unit), factors(denotes(realizes(unit))))
57
81
  ∧ sole(artifact(unit), realizes(unit))
82
+ unachieved(unit) = ∅ ⇔ achieved(unit)
83
+ unachieved ⊨ C-typed ⟨it crosses in C's OWN vocabulary · mechanism-prose ⟨naming · structure ·
84
+ test-quality⟩ ⇒ REFUSE ∵ it descends the principal it was dispatched to spare⟩
85
+ locus ⊨ ROUTED ∧ ¬ read ⟨an ADDRESS so the redispatch has one · a citation is substrate, and
86
+ handing the principal substrate is the same defect in smaller pieces⟩
87
+ assay ⊨ artifact ⟨the ASSAYER reads the files · the ONE site in the loop where
88
+ substrate-reading is ¬ a descent⟩
89
+ assayer ⊥ executor ⟨TWO descriptions, two witnesses : executor holds spec ∧ ¬ holds C ·
90
+ assayer holds C ∧ ¬ holds spec⟩
91
+ validate(unit) ≜ unachieved(unit) = ∅ ⟨the principal JUDGES the assay ∧ ¬ re-reads the
92
+ artifact · the READ is delegable · the VERDICT is ¬ delegable ∵ keyed to C, which the
93
+ principal alone amends⟩
58
94
  validate ⊨ artifact ⟨NEVER r · a summary is a CLAIM ∧ the file is EVIDENCE ·
59
95
  an acceptance that read only the return has accepted nothing⟩
60
96
  validate ⊨ self ⟨¬ delegable · the executor cannot judge its own conformance ∵ it
@@ -67,6 +103,8 @@ judge(unit) ≜ verify(unit, r) ∧ validate(unit) ⇒ advance(unit) ; ¬ ⇒ r
67
103
  and it takes everything when a run dies mid-judgement⟩
68
104
  ⟨fan-in is as order-sensitive as fan-out : ∀ unit dispatched, confirm executor(unit)
69
105
  RETURNED · outputs(unit) exist ≠ executor(unit) returned⟩
106
+ ¬validate(unit) ⇒ redispatch(executor(unit), unachieved(unit)) ⟨the flaw handed down is
107
+ CONCEPTUAL ∧ ¬ a review⟩
70
108
  cost(validate) < cost(rebuild) ⟨else the gradient points at skipping · the cheapness
71
109
  is BOUGHT by conform(anchor) ∴ naming discipline is the verification budget⟩
72
110
  ¬spells ⇒ REFUSE ≺ any behavioural read ⟨the traceability arrow breaks at the cheapest
@@ -87,8 +125,8 @@ cost(file) < cost(fix) ⟨else the gradient points at chasing · the load-bearin
87
125
  elect ≜ in-flight ≻ gating ≻ operator-intent ⟨lexicographic⟩
88
126
  terminal(P) ⇒ retire(P) ⟨obligation ¬ permission · an unretired terminal plan is WIP
89
127
  that is not work⟩ ; C persists ⟨plans come ∧ go ABOVE the design⟩
90
- deliver ≜ bind → dispatch(wave) → verify ⟨executor⟩ → validate ⟨self, on artifact⟩ →
91
- judge → amend(C) ⇔ yield → advance → retire`;
128
+ deliver ≜ bind → dispatch(wave) → verify ⟨executor⟩ → assay ⟨assayer, on artifact⟩ →
129
+ validate ⟨self, on the assay⟩ → judge → amend(C) ⇔ yield → advance → retire`;
92
130
  export const deliver = {
93
131
  name: 'deliver',
94
132
  description: `use this skill to execute a plan and ACCEPT its results — dispatch a wave of units to executors, then validate each landed artifact against the design rather than against the executor's report, and integrate. Reach for it whenever delegated work comes back. Validation is three cheap questions — does the artifact spell its concept's name, does its behaviour cover that concept's factorization exactly, and does anything else already realize it — read off the files themselves, never off a summary. It also carries the conduct of the work: one plan bound at a time, finish before starting, repair what blocks the path and merely file what sits beside it.`,
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/deliver/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,mFAAmF;AACnF,sFAAsF;AACtF,uFAAuF;AACvF,qFAAqF;AACrF,iFAAiF;AACjF,sFAAsF;AACtF,mFAAmF;AACnF,EAAE;AACF,sFAAsF;AACtF,oFAAoF;AACpF,kEAAkE;AAClE,EAAE;AACF,qFAAqF;AACrF,qFAAqF;AACrF,wFAAwF;AACxF,2EAA2E;AAE3E,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDAwE8C,CAAC;AAEpE,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gpBAAgpB;IAC7pB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/deliver/skill.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,mFAAmF;AACnF,sFAAsF;AACtF,uFAAuF;AACvF,qFAAqF;AACrF,iFAAiF;AACjF,sFAAsF;AACtF,mFAAmF;AACnF,EAAE;AACF,sFAAsF;AACtF,oFAAoF;AACpF,kEAAkE;AAClE,EAAE;AACF,qFAAqF;AACrF,qFAAqF;AACrF,wFAAwF;AACxF,2EAA2E;AAC3E,EAAE;AACF,wFAAwF;AACxF,yFAAyF;AACzF,yFAAyF;AACzF,uFAAuF;AACvF,qFAAqF;AACrF,uFAAuF;AACvF,wFAAwF;AACxF,kFAAkF;AAClF,uFAAuF;AACvF,mCAAmC;AACnC,EAAE;AACF,uFAAuF;AACvF,wFAAwF;AACxF,qFAAqF;AACrF,uFAAuF;AACvF,uFAAuF;AACvF,uFAAuF;AACvF,sFAAsF;AAEtF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFA2F8E,CAAC;AAEpG,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,gpBAAgpB;IAC7pB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC;CAClC,CAAC"}