@cratylus/canon 0.1.3 → 0.3.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.d.ts +2 -0
- package/dist/agents/architect.js +113 -0
- package/dist/agents/architect.js.map +1 -0
- package/dist/agents/implementer.d.ts +2 -0
- package/dist/agents/implementer.js +74 -0
- package/dist/agents/implementer.js.map +1 -0
- package/dist/agents/kino.d.ts +2 -0
- package/dist/agents/kino.js +120 -0
- package/dist/agents/kino.js.map +1 -0
- package/dist/agents/mav.js +15 -4
- package/dist/agents/mav.js.map +1 -1
- package/dist/agents/nico.js +2 -2
- package/dist/agents/nico.js.map +1 -1
- package/dist/agents/planner.d.ts +2 -0
- package/dist/agents/planner.js +85 -0
- package/dist/agents/planner.js.map +1 -0
- package/dist/dimensions/autonomy/{check-in.d.ts → handoff.d.ts} +1 -1
- package/dist/dimensions/autonomy/{check-in.js → handoff.js} +16 -4
- package/dist/dimensions/autonomy/handoff.js.map +1 -0
- 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/capabilities/film-production.d.ts +2 -0
- package/dist/dimensions/capabilities/film-production.js +8 -0
- package/dist/dimensions/capabilities/film-production.js.map +1 -0
- package/dist/dimensions/capabilities/generative-video.d.ts +2 -0
- package/dist/dimensions/capabilities/generative-video.js +8 -0
- package/dist/dimensions/capabilities/generative-video.js.map +1 -0
- package/dist/dimensions/formality/plain.js +1 -1
- package/dist/dimensions/formality/plain.js.map +1 -1
- 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/stance-guardrail-pre.js +56 -30
- package/dist/hooks/stance-guardrail-pre.js.map +1 -1
- package/dist/hooks/stance-guardrail.js +253 -38
- package/dist/hooks/stance-guardrail.js.map +1 -1
- package/dist/plan-states.d.ts +3 -3
- package/dist/plan-states.js +12 -8
- package/dist/plan-states.js.map +1 -1
- package/dist/skills/carry-on/skill.js +2 -2
- package/dist/skills/carry-on/skill.js.map +1 -1
- package/dist/skills/deliver/skill.d.ts +2 -0
- package/dist/skills/deliver/skill.js +98 -0
- package/dist/skills/deliver/skill.js.map +1 -0
- package/dist/skills/{praxis → design}/skill.d.ts +1 -1
- package/dist/skills/design/skill.js +79 -0
- package/dist/skills/design/skill.js.map +1 -0
- package/dist/skills/plan/skill.d.ts +2 -0
- package/dist/skills/plan/skill.js +89 -0
- package/dist/skills/plan/skill.js.map +1 -0
- package/package.json +4 -7
- package/dist/dimensions/autonomy/check-in.js.map +0 -1
- package/dist/dimensions/output-format/structured-decision.d.ts +0 -2
- package/dist/dimensions/output-format/structured-decision.js +0 -2
- package/dist/dimensions/output-format/structured-decision.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
- package/dist/skills/praxis/skill.js +0 -193
- package/dist/skills/praxis/skill.js.map +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
// The plan-layout state canon (one home) — the `States` set below derives from it;
|
|
2
|
-
// a project template sources its `planStates` from the same home (DRY). Lives in a
|
|
3
|
-
// sibling module, not exported here: a skill module has exactly ONE export (its Skill).
|
|
4
|
-
import { PLAN_STATES } from '../../plan-states.js';
|
|
5
|
-
const FORMAL_BLOCK = `intent ≜ the stated goal
|
|
6
|
-
States ≜ { ${PLAN_STATES.join(', ')} }
|
|
7
|
-
P ≜ a plan : a set of task-files
|
|
8
|
-
content : P → text
|
|
9
|
-
static : P → ℘(path)
|
|
10
|
-
constraints : P → ℘(invariant)
|
|
11
|
-
outputs : P → ℘(artifact)
|
|
12
|
-
inputs(t) ≜ static(t) ∪ { content(u) | (t, u) ∈ R }
|
|
13
|
-
deps(t) ≜ { u | (t, u) ∈ R }
|
|
14
|
-
accept : P → (return → 𝔹)
|
|
15
|
-
pre : P → return
|
|
16
|
-
spec(t) ≜ ⟨ intent(t), inputs(t), constraints(t), deps(t), outputs(t), accept(t) ⟩
|
|
17
|
-
census : intent → ⟨scope, static, deps⟩
|
|
18
|
-
executor : P ⇀ agent
|
|
19
|
-
self ≜ session⟨the harness's own session identity⟩
|
|
20
|
-
owner : P ⇀ session
|
|
21
|
-
bound : P → 𝔹 ⟨plan-level commitment · persists across sessions · ¬ shard-state⟩
|
|
22
|
-
gates : P × P → 𝔹
|
|
23
|
-
electable ≜ { P ∈ Plans | ¬ terminal(P) ∧ ¬ occupied(P) }
|
|
24
|
-
act ≜ a thing the executor does
|
|
25
|
-
serves : act × P → 𝔹
|
|
26
|
-
cost : act → effort
|
|
27
|
-
defect ≜ ⟨symptom, locus, provenance⟩
|
|
28
|
-
owns : defect ⇀ P
|
|
29
|
-
impedes : defect × P → 𝔹
|
|
30
|
-
refs : P → ℘(path) ⟨what a shard's outputs compile against⟩
|
|
31
|
-
sign ≜ a name the corpus bears
|
|
32
|
-
rewrites : P → ℘(sign) ⟨the signs t re-signifies⟩
|
|
33
|
-
occurs : sign → ℘(path) ⟨every site SPELLING it · the site DEFINING it is ONE of them⟩
|
|
34
|
-
footprint : P → ℘(path) ⟨the paths landing t changed⟩
|
|
35
|
-
origin : P ⇀ P ⟨the shard t was CUT OUT of · borne by no plan datum⟩
|
|
36
|
-
cross(S) ≜ |R ∩ ⋃ { sᵢ × sⱼ | sᵢ, sⱼ ∈ S ∧ i ≠ j }|
|
|
37
|
-
admissible(S) ⇔ ∀ s ∈ S : 3 ≤ |s| ≤ 1.5 · |P| / |S| ⟨a slice under 3 is a label ¬ a lane · a slice far above the mean cannot be fanned out against its siblings · both bounds are COMPUTED from |P| ∵ a fixed pair encodes |P| at the moment someone wrote it down⟩
|
|
38
|
-
swap(S,t,u) ≜ S with t and u exchanging slices
|
|
39
|
-
dir : P → path
|
|
40
|
-
state : P → States
|
|
41
|
-
truth : P → States
|
|
42
|
-
R ⊆ P × P
|
|
43
|
-
slices : P → ℘(℘(P))
|
|
44
|
-
mirror : (state, R, content) → document
|
|
45
|
-
PLAN.md ≜ mirror(state, R, content)
|
|
46
|
-
depalimpsest(c) ≜ c ↾ live-strata
|
|
47
|
-
conform @ signify
|
|
48
|
-
Phase ≜ { proposed, in-flight, landed, superseded, retired }
|
|
49
|
-
Plans ≜ { P | P a plan on disk }
|
|
50
|
-
commit ≜ a VCS commit
|
|
51
|
-
commits : P → ℘(commit)
|
|
52
|
-
lands : commit × P → 𝔹
|
|
53
|
-
landing : P ⇀ commit
|
|
54
|
-
retires : commit × P → 𝔹
|
|
55
|
-
retirement : P ⇀ commit
|
|
56
|
-
stored : P → ℘(commit)
|
|
57
|
-
retired : P → 𝔹
|
|
58
|
-
superseded : P → 𝔹
|
|
59
|
-
terminal : P → 𝔹
|
|
60
|
-
phase : P → Phase
|
|
61
|
-
|
|
62
|
-
blocked(t) ⇔ ∃ u : (t, u) ∈ R ∧ state(u) ≠ completed
|
|
63
|
-
ruling-owed(t) ⇔ a decision nobody has taken stands between t and its acceptance ⟨¬ a dep ∵ a dep is mechanical sequencing an executor can wait out⟩
|
|
64
|
-
occupied(P) ⇔ owner(P) defined ∧ owner(P) ≠ self ⟨liveness is ¬ DECIDABLE here ∵ the owner is another session and no harness lets this one interrogate it · ∴ occupancy is read off the RECORD, ¬ off a registry⟩
|
|
65
|
-
retires(c, P) ⇔ c deletes dir(P) ⟨the twin of lands · retirement is VCS-carried, ¬ residence-carried⟩
|
|
66
|
-
retired(P) ⇔ retirement(P) defined
|
|
67
|
-
superseded(P) ⇔ .superseded-by @ dir(P)
|
|
68
|
-
frontier(P) ≜ { t | t ∈ P ∧ state(t) ∈ { ready, active } } ⟨where the plan IS · ¬ only what is dispatchable⟩
|
|
69
|
-
sharded(P) ⇔ P ≠ ∅
|
|
70
|
-
promote(u) ≜ { t | (t, u) ∈ R ∧ state(t) = pending ∧ ¬blocked(t) ∧ ¬ruling-owed(t) }
|
|
71
|
-
next ≜ { pending ↦ ready, ready ↦ active, active ↦ completed, completed ↦ completed }
|
|
72
|
-
W(n) ≜ ⋃ { wave(i) | i <= n }
|
|
73
|
-
wave(0) ≜ { t | ∄ u : (t, u) ∈ R }
|
|
74
|
-
wave(n+1) ≜ { t | t ∉ W(n) ∧ ∀ u : (t, u) ∈ R ⇒ u ∈ W(n) }
|
|
75
|
-
waves ≜ (wave(0), wave(1), …)
|
|
76
|
-
dispatched(P) ⇔ ∃ t ∈ P : state(t) ∈ { active, completed }
|
|
77
|
-
done(P) ⇔ ∀ t ∈ P : state(t) = completed
|
|
78
|
-
landed(P) ⇔ landing(P) defined ∧ frontier(P) = ∅ ∧ pending(P) = ∅ ∧ ¬ retired(P) ⟨landing is HISTORICAL ∧ monotone ; done is NOT absorbing ∴ landing alone reports a REOPENED plan as terminal, and terminal ⇒ retire is an OBLIGATION ∴ the readout demands retiring open work⟩
|
|
79
|
-
terminal(P) ⇔ landed(P) ∨ superseded(P)
|
|
80
|
-
nextPhase ≜ { proposed ↦ in-flight, in-flight ↦ landed, landed ↦ retired, superseded ↦ retired, retired ↦ retired }
|
|
81
|
-
|
|
82
|
-
∀ t ∈ P : t @ dir(P)/state(t)
|
|
83
|
-
owner(P) @ dir(P)/.owner
|
|
84
|
-
owner(P) released @ unbind ∨ land ∨ retire ⟨an abandoned .owner reads as occupied until then · the cost is paid ONCE ∧ VISIBLY by an operator deleting a file they can see ≺ every session ∧ INVISIBLY by a registry swearing a dead pid was live⟩
|
|
85
|
-
∀ t : content(t) ⊨ spec(t)
|
|
86
|
-
∀ t : ∀ p ∈ static(t) : p exists at authoring
|
|
87
|
-
∀ t : ∀ p ∈ outputs(t) : p exists ∨ the directory holding p exists ⟨a shard MAY create a file ∴ a non-resolving output is ¬ automatically a typo · the PARENT discriminates a creation target from a misspelling⟩
|
|
88
|
-
∀ t : ∃ r : ¬accept(t)(r)
|
|
89
|
-
∀ t : ¬accept(t)(pre(t))
|
|
90
|
-
∀ t : accept(t)(pre(t)) ⇒ ¬(content(t) ⊨ spec(t))
|
|
91
|
-
∀ t : content(t) grounded-by census(intent(t))
|
|
92
|
-
∀ t : ¬(content(t) grounded-by census(intent(t))) ⇒ ¬(content(t) ⊨ spec(t))
|
|
93
|
-
∀ t : census(intent(t)) delegable-to agent
|
|
94
|
-
∀ t : measurement ∈ content(t) ⇒ measurement = claim⟨timestamp⟩ ∴ re-derive ≺ cite-as-evidence
|
|
95
|
-
⟨a count in a shard is CENSUS OUTPUT, ¬ a datum · the tree moves under it ∧ nothing reds⟩
|
|
96
|
-
⟨measured : one plan carried 413 ids ⟨irreproducible under 12 definitions⟩ · 192/413 ⟨ratio EXACT ∧ both absolutes wrong⟩ · 26 sites ⟨14 at HEAD⟩ · 53.5% reach ⟨36.7%⟩⟩
|
|
97
|
-
⟨an exact RATIO over wrong ABSOLUTES = computed once ∧ remembered ∴ the tell⟩
|
|
98
|
-
⟨∴ a shard reaching a NEGATIVE conclusion ⟨"unbuildable" · "nothing gates X"⟩ on quoted counts is unfalsified, ¬ established⟩
|
|
99
|
-
∀ t : reach-leg(t) ⊨ print(denominator) ⟨∄ denominator ⇒ found-nothing ≡ could-not-look⟩
|
|
100
|
-
state(t) = ready ⇒ ¬ blocked(t) ∧ ¬ ruling-owed(t) ⟨ready PROMISES an executor can pick t up and FINISH · conflating a dep with a ruling stalls a fan-out with every agent blocked on the same unanswered question⟩
|
|
101
|
-
⋃ slices(P) = P
|
|
102
|
-
∀ s₁, s₂ ∈ slices(P) : s₁ ≠ s₂ ⇒ s₁ ∩ s₂ = ∅
|
|
103
|
-
admissible(slices(P)) ∧ ∄ t, u ∈ P : admissible(swap(slices(P),t,u)) ∧ cross(swap(slices(P),t,u)) < cross(slices(P))
|
|
104
|
-
argmin over an UNNAMED admissible ⇒ unfalsifiable ∧ global argmin over every assignment ¬ decidable ∴ argmin ↾ LOCAL ⟨no admissible swap improves the cut · exhaustive ∧ deterministic⟩
|
|
105
|
-
waves = (wave(0), …, wave(m))
|
|
106
|
-
∀ n < m : |wave(n)| = 1 ⇒ slices mis-cut ⟨a singleton non-terminal wave is a chain, ¬ a cut⟩
|
|
107
|
-
∀ t, u ∈ wave(n) : t ≠ u ⇒ outputs(t) ∩ outputs(u) = ∅ ⟨the concurrency precondition⟩
|
|
108
|
-
∃ t, u ∈ wave(n) : t ≠ u ∧ outputs(t) ∩ outputs(u) ≠ ∅ ⇒ slices mis-cut
|
|
109
|
-
∀ t, u ∈ wave(n) : t ≠ u ⇒ outputs(t) ∩ refs(u) = ∅ ⟨disjoint outputs is NECESSARY ¬ sufficient : a deletion in t dangles a reference in u⟩
|
|
110
|
-
⊨ disjoint-outputs ⇒ dispatch(wave(n)) needs-no-isolation ⟨a correctly cut wave never contends⟩
|
|
111
|
-
∀ t : footprint(t) ⊆ outputs(t) ⟨outputs IS the contention set ∴ an under-declared array silently voids every disjointness proof above · a shorter array is still an array of resolving globs⟩
|
|
112
|
-
∀ t : ⋃ { occurs(s) | s ∈ rewrites(t) } ⊆ outputs(t) ⟨a shard's footprint is its REFERENCE set, ¬ its definition site · a rename touches every speller · giving a name its first home makes every existing spelling interpolate it · resolve occurs BEFORE declaring outputs⟩
|
|
113
|
-
⟨measured 6 under-declared arrays across one plan, ONE cause ⟨footprint read off where a sign is DEFINED while the work was bounded by where it is USED⟩ · declared 1 glob and wrote 15 paths · 1 and 12 · 8 and 20⟩
|
|
114
|
-
origin(t) defined ⇒ outputs(t) re-derived from rewrites(t) ⟨SPLITTING A SHARD DOES NOT SPLIT ITS BLAST RADIUS · the child's array is its own, ¬ the topical part of outputs(origin(t)) · so a split understates BY CONSTRUCTION, ¬ by oversight⟩
|
|
115
|
-
∄ origin borne by any plan datum ⇒ ¬ gateable ∴ this law rides the CELL ⟨the seam nearest the defect is the only one left when the datum a check would need was never captured⟩
|
|
116
|
-
(state, R, content) ≽ PLAN.md
|
|
117
|
-
mirror(state, R, content) emits R ∧ waves
|
|
118
|
-
depalimpsest(depalimpsest(c)) = depalimpsest(c)
|
|
119
|
-
retired(P) ⇒ phase(P) = retired
|
|
120
|
-
superseded(P) ∧ ¬ retired(P) ⇒ phase(P) = superseded
|
|
121
|
-
landed(P) ∧ ¬ superseded(P) ⇒ phase(P) = landed
|
|
122
|
-
dispatched(P) ∧ ¬ landed(P) ∧ ¬ superseded(P) ∧ ¬ retired(P) ⇒ phase(P) = in-flight
|
|
123
|
-
¬ dispatched(P) ∧ ¬ superseded(P) ∧ ¬ retired(P) ⇒ phase(P) = proposed
|
|
124
|
-
landing(P) = c ⇔ lands(c, P)
|
|
125
|
-
retirement(P) = c ⇔ retires(c, P)
|
|
126
|
-
∀ c, c' : lands(c, P) ∧ lands(c', P) ⇒ c = c'
|
|
127
|
-
∀ c, c' : retires(c, P) ∧ retires(c', P) ⇒ c = c'
|
|
128
|
-
retired(P) ⇒ P ∉ Plans ⟨retire removes the member · Plans is disk, ∴ phase reads the commit, ¬ a residence⟩
|
|
129
|
-
∀ P : stored(P) = ∅ ⟨landing ∧ retirement alike : recomputed from VCS every call, written nowhere⟩
|
|
130
|
-
list = Plans
|
|
131
|
-
yield(P) ≜ what EXECUTING P established ∧ ¬ derivable from intent(P) @ ENGINE ⟨enters as Intent, ¬ as a Sign : execution establishes what needs naming, ¬ the name⟩
|
|
132
|
-
drained(y) ⇔ ∀ i ∈ y : i authored into its strongest seam ⟨gate ≻ cell ≻ governing-doc @ retire⟩ ∨ i filed as a canon-candidate ⟨¬ agent-private store : a private home is where the NEXT agent re-derives it⟩
|
|
133
|
-
retire(P) defined ⇔ terminal(P) ∧ drained(yield(P))
|
|
134
|
-
supersede(P, Q) ⇒ superseded(P)
|
|
135
|
-
∀ t : conform(content(t))
|
|
136
|
-
⊨ conform(PLAN.md)
|
|
137
|
-
∀ t, r : ¬conform(r) ⇒ ¬accept(t)(r)
|
|
138
|
-
|
|
139
|
-
bound(P) @ dir(P)/.bound ⟨persistent · survives session-end · ¬ derived from shard-state⟩
|
|
140
|
-
∃ P ∈ Plans : ¬ terminal(P) ⇒ ∃! P : bound(P) ⟨always-bind ∧ WIP=1 · one law⟩
|
|
141
|
-
bound(P) ⇒ ¬ occupied(P)
|
|
142
|
-
bound(P) ∧ ¬ sharded(P) ⇒ start(P) ≺ dispatch(P) ⟨binding an unsharded plan obliges the cut⟩
|
|
143
|
-
bound(P) ∧ sharded(P) ∧ ¬ done(P) ⇒ frontier(P) ≠ ∅ ⟨the ¬ done antecedent is LOAD-BEARING · dropped, the law reds a plan for FINISHING ∧ the cheapest green is filing work nobody needs⟩
|
|
144
|
-
done(P) ⇒ frontier(P) = ∅ ⟨TAUTOLOGY ∵ frontier(P) ⊆ the open states · carries no content and is the first thing anyone writes here⟩
|
|
145
|
-
done(P) ⇒ ∀ t ∈ P : t @ dir(P)/completed ⟨done is witnessed by RESIDENCE · a task-file that VANISHED empties frontier(P) exactly as finishing does, ∧ only residence tells the two apart⟩
|
|
146
|
-
sharded(P) ∧ ¬ done(P) ∧ frontier(P) = ∅ ⇒ R ill-formed ⟨cycle ∨ unsatisfiable dep ∨ AN EDGELESS NODE⟩ · SURFACE
|
|
147
|
-
⟨read the third disjunct FIRST : \`file\` writes its stub with ¬ census ∧ ¬ re-slice ∴ the filed t has NO edge in R, ∴ ∄ u : t ∈ promote(u), ∴ t is unreachable BY CONSTRUCTION ∧ it still counts against done(P)⟩
|
|
148
|
-
⟨∴ any bound plan carrying a filed defect and no live shard reds this law, and the cause is the FILING, ¬ a cycle · only \`upsert\` gets it out · measured twice, in two plans, two weeks apart⟩
|
|
149
|
-
gates(P, Q) ⇔ ∃ t ∈ Q : landing(P) ∈ deps(t)
|
|
150
|
-
elect ≜ in-flight ≻ gating ≻ operator-intent ⟨lexicographic · finish before starting⟩
|
|
151
|
-
terminal(P) ⇒ retire(P) ⟨obligation ¬ permission · an unretired terminal plan is WIP that is not work⟩
|
|
152
|
-
yield(P) ≠ ∅ ∧ ¬ drained(yield(P)) ⇒ ¬ retire(P) ⟨ENGINE intake, realized HERE : deletion is where a law dies⟩
|
|
153
|
-
⟨measured : 16 retired plans, 25 laws, 0 in the canon ∴ every anchor re-derived privately, per agent, forever⟩
|
|
154
|
-
impedes(d, t) ⇔ d standing ⇒ ∄ r : accept(t)(r)
|
|
155
|
-
impedes(d, t) ⇒ fix(d) ∧ ¬ check-in-owed ⟨a regression in the path is repaired, ¬ surfaced⟩
|
|
156
|
-
¬ impedes(d, t) ⇒ file(owns(d), d) ∧ ¬ fix(d) ⟨a defect beside the path is filed, ¬ chased⟩
|
|
157
|
-
cost(file) < cost(fix) ⟨else the gradient points at chasing · the load-bearing law⟩
|
|
158
|
-
dispatch(P) ∧ ¬ serves(a, P) ⇒ a ∈ { file, triage } ⟨scope-bound⟩
|
|
159
|
-
advance ⊨ mirror ⟨state moves ∴ PLAN.md moves · drift is ¬ a later chore⟩
|
|
160
|
-
|
|
161
|
-
start : intent ↦ (P, slices(P), waves)
|
|
162
|
-
upsert : (P, intent) ↦ P' ≜ author census-grounded t(s) ∧ P' = P ∪ {t} ∧ re-slice ∧ re-mirror
|
|
163
|
-
list : ↦ ℘(P)
|
|
164
|
-
elect : ↦ P ≜ the ≻-greatest of electable ; pre electable ≠ ∅
|
|
165
|
-
bind : P ↦ P ≜ write .bound @ dir(P) ; pre ∀ Q ≠ P : ¬ bound(Q) ; post ∃! bound
|
|
166
|
-
unbind : P ↦ P ≜ remove .bound @ dir(P) ∧ remove .owner @ dir(P) ; pre done(P) ∨ terminal(P) ∨ operator-redirect
|
|
167
|
-
file : (P, d) ↦ P' ≜ stub t @ dir(P)/pending : ⟨symptom(d), locus(d), provenance(d)⟩ ;
|
|
168
|
-
¬ census ∧ ¬ re-slice ∧ ¬ re-mirror ; post P' = P ∪ { t }
|
|
169
|
-
triage : d ↦ impedes(d, t) ⇒ fix(d) ; ¬ impedes(d, t) ⇒ file(owns(d), d)
|
|
170
|
-
dispatch ≜ ∀ t ∈ frontier(P) : state(t) = ready ⇒ concurrently ⟨ state(t) := active ∧ owner(P) := self ∧ executor(t) runs content(t) ⟩
|
|
171
|
-
dispatch(P) ⇒ ¬occupied(P) ∧ bound(P)
|
|
172
|
-
judge(t, r) ≜ accept(t)(r) ⇒ advance(t) ; ¬accept(t)(r) ⇒ r rejected back to executor(t), state(t) stays active
|
|
173
|
-
⟨r lands VERBATIM ≺ any verdict on it : the loss mode is read-reason-discard, and it takes everything exactly when a run dies mid-judgement⟩
|
|
174
|
-
⟨fan-in is as order-sensitive as fan-out : ∀ t dispatched in the wave, confirm executor(t) RETURNED ; outputs(t) exist ≠ executor(t) returned⟩
|
|
175
|
-
advance(t) ≜ state(t) := next(state(t)) ; state(t) = completed ⇒ ∀ d ∈ promote(t) : state(d) := ready ;
|
|
176
|
-
PLAN.md := mirror(state, R, content)
|
|
177
|
-
update(t) ≜ content(t) := depalimpsest(content(t)) ; PLAN.md := mirror(state, R, content)
|
|
178
|
-
merge : { P₁, P₂, … } ↦ ⋃ Pᵢ
|
|
179
|
-
sync ≜ ∀ t ∈ P : state(t) ≠ truth(t) ⇒ state(t) := truth(t) ;
|
|
180
|
-
∀ u ∈ P : ∀ d ∈ promote(u) : state(d) := ready ;
|
|
181
|
-
PLAN.md ≠ mirror(state, R, content) ⇒ PLAN.md := mirror(state, R, content)
|
|
182
|
-
post : state = truth ∧ PLAN.md = mirror(state, R, content)
|
|
183
|
-
supersede : (P, Q) ↦ P ≜ write .superseded-by @ dir(P) := Q ⟨staged⟩ ; pre Q ∈ Plans ∧ Q ≠ P ; post superseded(P)
|
|
184
|
-
retire : P ↦ ⊥ ≜ delete dir(P) ; pre terminal(P) ∧ drained(yield(P)) ; post P ∉ Plans
|
|
185
|
-
landingOf : P ↦ landing(P)
|
|
186
|
-
retirementOf : P ↦ retirement(P)`;
|
|
187
|
-
export const praxis = {
|
|
188
|
-
name: 'praxis',
|
|
189
|
-
description: `use this skill to create a plan decomposed into MECE execution shards, where each shard is a self-contained task execution specification with objective, inputs, constraints, dependencies, outputs, and completion criteria.`,
|
|
190
|
-
formalBlock: FORMAL_BLOCK,
|
|
191
|
-
composition: () => [],
|
|
192
|
-
};
|
|
193
|
-
//# sourceMappingURL=skill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/skills/praxis/skill.ts"],"names":[],"mappings":"AACA,mFAAmF;AACnF,mFAAmF;AACnF,wFAAwF;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,YAAY,GAAG;sBACC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAoLQ,CAAC;AAErD,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,+NAA+N;IAC5O,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE;CACtB,CAAC"}
|