@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.
- package/dist/agents/architect.js +14 -108
- package/dist/agents/architect.js.map +1 -1
- package/dist/agents/assayer.d.ts +2 -0
- package/dist/agents/assayer.js +20 -0
- package/dist/agents/assayer.js.map +1 -0
- package/dist/agents/implementer.js +9 -69
- package/dist/agents/implementer.js.map +1 -1
- package/dist/agents/kino.js +24 -110
- package/dist/agents/kino.js.map +1 -1
- package/dist/agents/mav.js +43 -79
- package/dist/agents/mav.js.map +1 -1
- package/dist/agents/nico.js +33 -61
- package/dist/agents/nico.js.map +1 -1
- package/dist/agents/planner.js +8 -80
- package/dist/agents/planner.js.map +1 -1
- package/dist/dimensions/autonomy/human-on-the-loop.js +1 -1
- package/dist/dimensions/autonomy/human-on-the-loop.js.map +1 -1
- package/dist/dimensions/role/architect.js +19 -1
- package/dist/dimensions/role/architect.js.map +1 -1
- package/dist/dimensions/role/{build.d.ts → assayer.d.ts} +1 -1
- package/dist/dimensions/role/assayer.js +25 -0
- package/dist/dimensions/role/assayer.js.map +1 -0
- package/dist/dimensions/role/{diagnose.d.ts → implementer.d.ts} +1 -1
- package/dist/dimensions/role/implementer.js +12 -0
- package/dist/dimensions/role/implementer.js.map +1 -0
- package/dist/dimensions/role/{curate.d.ts → planner.d.ts} +1 -1
- package/dist/dimensions/role/planner.js +14 -0
- package/dist/dimensions/role/planner.js.map +1 -0
- package/dist/hook-cells.js +5 -2
- package/dist/hook-cells.js.map +1 -1
- package/dist/hooks/deploy-drift-notice.js +1 -1
- package/dist/hooks/deploy-drift-notice.js.map +1 -1
- package/dist/hooks/purview-guardrail.d.ts +2 -0
- package/dist/hooks/purview-guardrail.js +302 -0
- package/dist/hooks/purview-guardrail.js.map +1 -0
- package/dist/hooks/stance-guardrail-pre.js +17 -22
- package/dist/hooks/stance-guardrail-pre.js.map +1 -1
- package/dist/hooks/stance-guardrail.js +84 -27
- package/dist/hooks/stance-guardrail.js.map +1 -1
- package/dist/plan-states.d.ts +3 -3
- package/dist/plan-states.js +3 -3
- package/dist/roles/architect.d.ts +2 -0
- package/dist/roles/architect.js +101 -0
- package/dist/roles/architect.js.map +1 -0
- package/dist/roles/assayer.d.ts +2 -0
- package/dist/roles/assayer.js +66 -0
- package/dist/roles/assayer.js.map +1 -0
- package/dist/roles/hold.d.ts +57 -0
- package/dist/roles/hold.js +105 -0
- package/dist/roles/hold.js.map +1 -0
- package/dist/roles/implementer.d.ts +2 -0
- package/dist/roles/implementer.js +60 -0
- package/dist/roles/implementer.js.map +1 -0
- package/dist/roles/planner.d.ts +2 -0
- package/dist/roles/planner.js +70 -0
- package/dist/roles/planner.js.map +1 -0
- package/dist/skills/carry-on/skill.js +2 -2
- package/dist/skills/carry-on/skill.js.map +1 -1
- package/dist/skills/deliver/skill.js +41 -3
- package/dist/skills/deliver/skill.js.map +1 -1
- package/package.json +3 -6
- package/dist/dimensions/role/build.js +0 -2
- package/dist/dimensions/role/build.js.map +0 -1
- package/dist/dimensions/role/converse.d.ts +0 -2
- package/dist/dimensions/role/converse.js +0 -2
- package/dist/dimensions/role/converse.js.map +0 -1
- package/dist/dimensions/role/curate.js +0 -2
- package/dist/dimensions/role/curate.js.map +0 -1
- package/dist/dimensions/role/diagnose.js +0 -2
- package/dist/dimensions/role/diagnose.js.map +0 -1
- package/dist/dimensions/role/document.d.ts +0 -2
- package/dist/dimensions/role/document.js +0 -2
- package/dist/dimensions/role/document.js.map +0 -1
- package/dist/dimensions/role/implement.d.ts +0 -2
- package/dist/dimensions/role/implement.js +0 -2
- package/dist/dimensions/role/implement.js.map +0 -1
- package/dist/dimensions/role/operate.d.ts +0 -2
- package/dist/dimensions/role/operate.js +0 -2
- package/dist/dimensions/role/operate.js.map +0 -1
- package/dist/dimensions/role/orchestrate.d.ts +0 -2
- package/dist/dimensions/role/orchestrate.js +0 -2
- package/dist/dimensions/role/orchestrate.js.map +0 -1
- package/dist/dimensions/role/plan.d.ts +0 -2
- package/dist/dimensions/role/plan.js +0 -2
- package/dist/dimensions/role/plan.js.map +0 -1
- package/dist/dimensions/role/research.d.ts +0 -2
- package/dist/dimensions/role/research.js +0 -2
- package/dist/dimensions/role/research.js.map +0 -1
- package/dist/dimensions/role/review.d.ts +0 -2
- package/dist/dimensions/role/review.js +0 -2
- package/dist/dimensions/role/review.js.map +0 -1
- package/dist/dimensions/role/test.d.ts +0 -2
- package/dist/dimensions/role/test.js +0 -2
- package/dist/dimensions/role/test.js.map +0 -1
- package/dist/hooks/praxis-continuity.d.ts +0 -2
- package/dist/hooks/praxis-continuity.js +0 -132
- 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,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,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,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
|
|
12
|
-
// execution" is carry-on ∘
|
|
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
|
|
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
|
-
|
|
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⟩ →
|
|
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;
|
|
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"}
|