@eir-labs/coltrane 0.9.4 → 0.11.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/agents/bandleader.json +54 -0
- package/agents/bill.json +4 -2
- package/agents/change-verifier.json +2 -1
- package/agents/code-implementer.json +7 -4
- package/agents/john.json +5 -3
- package/agents/lineage-scout-external.json +19 -6
- package/agents/lineage-scribe.json +20 -9
- package/agents/lineage-weaver.json +26 -11
- package/agents/miles.json +2 -1
- package/agents/players/bandleader.md +70 -0
- package/agents/pr-publisher.json +4 -2
- package/agents/red-spec-drafter.json +12 -6
- package/agents/room-prober.json +29 -0
- package/agents/source-walker.json +1 -1
- package/charts/room-probe-chart-v1.json +14 -0
- package/charts/worker-contract-docker-v2.json +135 -0
- package/charts/worker-contract-v3.json +206 -0
- package/dist/src/boundary_check.d.ts +18 -0
- package/dist/src/boundary_check.js +70 -0
- package/dist/src/boundary_check.js.map +1 -0
- package/dist/src/boundary_scan.d.ts +62 -0
- package/dist/src/boundary_scan.js +93 -0
- package/dist/src/boundary_scan.js.map +1 -0
- package/dist/src/chart.js +34 -1
- package/dist/src/chart.js.map +1 -1
- package/dist/src/claude_invoker.d.ts +2 -1
- package/dist/src/claude_invoker.js +150 -17
- package/dist/src/claude_invoker.js.map +1 -1
- package/dist/src/cli.d.ts +1 -1
- package/dist/src/cli.js +61 -26
- package/dist/src/cli.js.map +1 -1
- package/dist/src/drain_preflight.d.ts +33 -0
- package/dist/src/drain_preflight.js +97 -0
- package/dist/src/drain_preflight.js.map +1 -0
- package/dist/src/genome_schema.d.ts +390 -9
- package/dist/src/genome_schema.js +163 -8
- package/dist/src/genome_schema.js.map +1 -1
- package/dist/src/genome_store.js +9 -0
- package/dist/src/genome_store.js.map +1 -1
- package/dist/src/genome_writer.d.ts +1 -1
- package/dist/src/genome_writer.js +10 -2
- package/dist/src/genome_writer.js.map +1 -1
- package/dist/src/gig_conformance.d.ts +66 -0
- package/dist/src/gig_conformance.js +153 -0
- package/dist/src/gig_conformance.js.map +1 -0
- package/dist/src/gig_tracker.js +8 -0
- package/dist/src/gig_tracker.js.map +1 -1
- package/dist/src/grounding.d.ts +44 -0
- package/dist/src/grounding.js +127 -0
- package/dist/src/grounding.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/institution_loader.d.ts +29 -5
- package/dist/src/institution_loader.js +67 -6
- package/dist/src/institution_loader.js.map +1 -1
- package/dist/src/lineage_adoption.d.ts +82 -0
- package/dist/src/lineage_adoption.js +82 -0
- package/dist/src/lineage_adoption.js.map +1 -0
- package/dist/src/lineage_persist.d.ts +34 -0
- package/dist/src/lineage_persist.js +60 -0
- package/dist/src/lineage_persist.js.map +1 -0
- package/dist/src/loader.d.ts +13 -0
- package/dist/src/loader.js +43 -2
- package/dist/src/loader.js.map +1 -1
- package/dist/src/mcp.js +37 -4
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/org_hire.d.ts +23 -0
- package/dist/src/org_hire.js +42 -0
- package/dist/src/org_hire.js.map +1 -0
- package/dist/src/output_mirror.js +98 -59
- package/dist/src/output_mirror.js.map +1 -1
- package/dist/src/outputs.d.ts +17 -0
- package/dist/src/outputs.js +86 -1
- package/dist/src/outputs.js.map +1 -1
- package/dist/src/player_to_claude_code.js +26 -2
- package/dist/src/player_to_claude_code.js.map +1 -1
- package/dist/src/registry.d.ts +3 -1
- package/dist/src/registry.js +43 -3
- package/dist/src/registry.js.map +1 -1
- package/dist/src/repo_index.d.ts +58 -0
- package/dist/src/repo_index.js +232 -0
- package/dist/src/repo_index.js.map +1 -0
- package/dist/src/reuse.d.ts +44 -4
- package/dist/src/reuse.js +0 -0
- package/dist/src/reuse.js.map +1 -1
- package/dist/src/runtime.d.ts +82 -0
- package/dist/src/runtime.js +254 -25
- package/dist/src/runtime.js.map +1 -1
- package/dist/src/server.d.ts +37 -0
- package/dist/src/server.js +422 -11
- package/dist/src/server.js.map +1 -1
- package/dist/src/server_relay.d.ts +40 -2
- package/dist/src/server_relay.js +186 -19
- package/dist/src/server_relay.js.map +1 -1
- package/dist/src/tool_providers.d.ts +27 -0
- package/dist/src/tool_providers.js +48 -0
- package/dist/src/tool_providers.js.map +1 -1
- package/dist/src/venue_credential.d.ts +41 -0
- package/dist/src/venue_credential.js +57 -0
- package/dist/src/venue_credential.js.map +1 -0
- package/dist/src/venue_realize.d.ts +23 -0
- package/dist/src/venue_realize.js +43 -3
- package/dist/src/venue_realize.js.map +1 -1
- package/dist/src/venue_realizer.d.ts +224 -0
- package/dist/src/venue_realizer.js +889 -0
- package/dist/src/venue_realizer.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/src/worker.d.ts +37 -0
- package/dist/src/worker.js +127 -24
- package/dist/src/worker.js.map +1 -1
- package/dist/src/worker_env.d.ts +79 -0
- package/dist/src/worker_env.js +322 -0
- package/dist/src/worker_env.js.map +1 -0
- package/dist/src/workspace.d.ts +12 -1
- package/dist/src/workspace.js +10 -3
- package/dist/src/workspace.js.map +1 -1
- package/domain_types/change-context.json +59 -13
- package/domain_types/lineage-adoption-target.json +22 -0
- package/domain_types/lineage-map.json +7 -2
- package/domain_types/lineage-record.json +55 -5
- package/domain_types/prior-art-hit.json +16 -1
- package/domain_types/red-spec.json +5 -3
- package/domain_types/woodshed-record.json +149 -0
- package/evals/gist-present.json +7 -0
- package/institutions/coltrane.json +178 -6
- package/package.json +6 -3
- package/skills/non-vacuity-probe/fixtures/fixture-001.json +17 -0
- package/skills/non-vacuity-probe/meta.json +12 -0
- package/skills/non-vacuity-probe/skill.md +27 -0
- package/skills/non-vacuity-probe/skill.mjs +81 -0
- package/standards/lineage-adopt-v0.json +37 -0
- package/standards/room-probe-v1.json +28 -0
- package/standards/software-change-pr-v1.json +15 -15
- package/standards/software-change-red-first-v0.json +183 -0
- package/standards/spec-review-and-sequence-v0.json +112 -0
- package/standards/studio-session-v0.json +101 -0
- package/tours/coltrane.json +72 -0
- package/venues/engine-room-v1.json +32 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "room-probe-v1",
|
|
3
|
+
"domain": "venue",
|
|
4
|
+
"agent_slugs": [
|
|
5
|
+
"room-prober"
|
|
6
|
+
],
|
|
7
|
+
"phases": [
|
|
8
|
+
{
|
|
9
|
+
"name": "probe",
|
|
10
|
+
"chairs": [
|
|
11
|
+
{
|
|
12
|
+
"role": "probe",
|
|
13
|
+
"agent_slug": "room-prober",
|
|
14
|
+
"depends_on": [],
|
|
15
|
+
"input_contract": [],
|
|
16
|
+
"output_contract": [
|
|
17
|
+
"Signal"
|
|
18
|
+
],
|
|
19
|
+
"required_skills": []
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"output_types": [
|
|
25
|
+
"Signal"
|
|
26
|
+
],
|
|
27
|
+
"description": "One seat, one tool, one question: can a chair reach an MCP server running inside the realized room? Deliberately the thinnest standard that can carry that question — a single SENSE phase whose seat holds only type_browse — because everything interesting lives in the venue, not here. Dispatched WITHOUT a venue it is answered by the host engine; dispatched WITH a containerized venue it must be answered from inside the container or not at all. The difference between those two runs is the whole experiment."
|
|
28
|
+
}
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"output_contract": [
|
|
24
24
|
"change-context"
|
|
25
25
|
],
|
|
26
|
+
"optional_outputs": [],
|
|
26
27
|
"required_skills": []
|
|
27
28
|
}
|
|
28
|
-
]
|
|
29
|
-
"intent": "Read the material the change lands in, to the declared boundary and no further: entry points, the files the change plausibly touches, the checks that already cover the region, the conventions it must hold to — and the unknowns, which are part of the reading, not a failure of it. No decision is taken here."
|
|
29
|
+
]
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"name": "frame-change",
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"output_contract": [
|
|
44
44
|
"change-decision"
|
|
45
45
|
],
|
|
46
|
+
"optional_outputs": [],
|
|
46
47
|
"required_skills": []
|
|
47
48
|
}
|
|
48
|
-
]
|
|
49
|
-
"intent": "Fix the direction from the reading: scope, non-goals, stop condition, and the alternatives set aside with their reasons. Stated before any structure exists, so the structure is answerable to it. Settled for the run — later phases append observations, never revisions."
|
|
49
|
+
]
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
"name": "plan-change",
|
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
"output_contract": [
|
|
66
66
|
"change-plan"
|
|
67
67
|
],
|
|
68
|
+
"optional_outputs": [],
|
|
68
69
|
"required_skills": [],
|
|
69
70
|
"preferred_skills": [
|
|
70
71
|
"structure-conformance"
|
|
71
72
|
]
|
|
72
73
|
}
|
|
73
|
-
]
|
|
74
|
-
"intent": "Settle the structure the change will be built through: ordered steps with explicit dependencies, the checks that land FIRST together with what each reports while the change is absent, the paths the plan commits to touching, and the tradeoff at every step where more than one structure would have served."
|
|
74
|
+
]
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
"name": "create-change",
|
|
@@ -88,10 +88,10 @@
|
|
|
88
88
|
"output_contract": [
|
|
89
89
|
"change-set"
|
|
90
90
|
],
|
|
91
|
+
"optional_outputs": [],
|
|
91
92
|
"required_skills": []
|
|
92
93
|
}
|
|
93
|
-
]
|
|
94
|
-
"intent": "Make the change the plan implies by WRITING it directly into the isolated working tree — every file it requires, created new or edited in place, however many that takes. The change lands as real files and the change-set is the real diff captured from the tree; this seat does not emit a patch for another to apply, and it does not verify its own work. Where the build departs from the plan, the departure is recorded with its reason."
|
|
94
|
+
]
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
97
|
"name": "verify-change",
|
|
@@ -110,10 +110,10 @@
|
|
|
110
110
|
"output_contract": [
|
|
111
111
|
"change-verdict"
|
|
112
112
|
],
|
|
113
|
+
"optional_outputs": [],
|
|
113
114
|
"required_skills": []
|
|
114
115
|
}
|
|
115
|
-
]
|
|
116
|
-
"intent": "RUN the checks the plan fixed against the working tree the implementer has already written — build and tests, nothing to apply — then measure the change against its commitments criterion by criterion from the actual run: which acceptance criteria the run confirms green, where scope drifted, and which checks could not be executed. A criterion passes only when a real test asserted it and that test went green in this run; a check that could not run is unverified, never a pass; a red run is reported verbatim. The seat that clears the change is the seat that ran it."
|
|
116
|
+
]
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
119
|
"name": "publish-pr",
|
|
@@ -132,20 +132,20 @@
|
|
|
132
132
|
"output_contract": [
|
|
133
133
|
"pull-request"
|
|
134
134
|
],
|
|
135
|
+
"optional_outputs": [],
|
|
135
136
|
"required_skills": []
|
|
136
137
|
}
|
|
137
|
-
]
|
|
138
|
-
"intent": "Turn the verified change into an open pull request the pipeline cannot merge. The change is already on disk and confirmed by the verifier; commit exactly what is in the working tree to a fresh non-main branch, push it, and open exactly one PR whose body carries the rationale and the verifier's verdict. A failed verdict is not published — it is surfaced as a caveat and the seat stops. Landing the PR on main is a human governor's act on green CI, external to this run."
|
|
138
|
+
]
|
|
139
139
|
}
|
|
140
140
|
],
|
|
141
141
|
"input_types": [
|
|
142
|
-
"change-request"
|
|
142
|
+
"change-request",
|
|
143
|
+
"change-context"
|
|
143
144
|
],
|
|
144
145
|
"output_types": [
|
|
145
146
|
"change-set",
|
|
146
147
|
"change-verdict",
|
|
147
148
|
"pull-request"
|
|
148
149
|
],
|
|
149
|
-
"
|
|
150
|
-
"description": "The full governed dev-loop: read the material, fix the direction, settle the structure, WRITE the change into an isolated working tree, RUN it to say whether what was built is what was decided, and open it as a pull request the seat that built it cannot merge. The implementer HOLDS the tree — it writes the change directly with the real file-editing interface (any number of files) and seals the change-set as the real captured diff, so the change that gets reviewed is the change that exists; there is no hand-authored patch to apply. The verify seat then EXECUTES against that tree — build and tests — so a change is cleared by a real run, never by argument; and a failing run is not the end: max_examine_rounds budgets the examine⇄amend loop, so a red verdict re-runs the writer (the failing verdict fed back) and re-verifies, iterating to green or stopping honestly at the bound. The publish seat commits exactly what is on disk. The seams hold: the seat that reads does not decide, the seat that decides does not build, the seat that builds does not judge its own work, and the seat that publishes does not merge. The cage is the isolated tree, not a missing tool. Landing on the protected main line is a human governor's act on green CI, not the pipeline's."
|
|
150
|
+
"description": "The governed dev loop, dispatchable WITH its grounding. Reads context, frames the change, plans it, writes it, verifies by running the checks, and opens a pull request a human lands. `change-context` is declared a seedable input alongside `change-request` (#424 I9): the reading chair's product may arrive from any of four interchangeable producers — a reader, the src/repo_index.ts compiler, a prior standard, or a human — and the runtime's existing seeding seam satisfies a chair's contract from an upstream output OR from the gig payload. A dispatch that already holds a reading need not pay a premium seat to re-derive it; a dispatch that does not, still runs exactly as before."
|
|
151
151
|
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "software-change-red-first-v0",
|
|
3
|
+
"domain": "software-change",
|
|
4
|
+
"agent_slugs": [
|
|
5
|
+
"john",
|
|
6
|
+
"miles",
|
|
7
|
+
"bill",
|
|
8
|
+
"red-spec-drafter",
|
|
9
|
+
"code-implementer",
|
|
10
|
+
"change-verifier",
|
|
11
|
+
"pr-publisher"
|
|
12
|
+
],
|
|
13
|
+
"phases": [
|
|
14
|
+
{
|
|
15
|
+
"name": "sense-context",
|
|
16
|
+
"chairs": [
|
|
17
|
+
{
|
|
18
|
+
"role": "read-context",
|
|
19
|
+
"agent_slug": "john",
|
|
20
|
+
"depends_on": [],
|
|
21
|
+
"input_contract": [
|
|
22
|
+
"change-request"
|
|
23
|
+
],
|
|
24
|
+
"output_contract": [
|
|
25
|
+
"change-context"
|
|
26
|
+
],
|
|
27
|
+
"optional_outputs": [],
|
|
28
|
+
"required_skills": [],
|
|
29
|
+
"turn_reserve": 12
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "frame-change",
|
|
35
|
+
"chairs": [
|
|
36
|
+
{
|
|
37
|
+
"role": "frame-change",
|
|
38
|
+
"agent_slug": "miles",
|
|
39
|
+
"depends_on": [
|
|
40
|
+
"read-context"
|
|
41
|
+
],
|
|
42
|
+
"input_contract": [
|
|
43
|
+
"change-context"
|
|
44
|
+
],
|
|
45
|
+
"output_contract": [
|
|
46
|
+
"change-decision"
|
|
47
|
+
],
|
|
48
|
+
"optional_outputs": [],
|
|
49
|
+
"required_skills": []
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "plan-change",
|
|
55
|
+
"chairs": [
|
|
56
|
+
{
|
|
57
|
+
"role": "plan-change",
|
|
58
|
+
"agent_slug": "bill",
|
|
59
|
+
"depends_on": [
|
|
60
|
+
"read-context",
|
|
61
|
+
"frame-change"
|
|
62
|
+
],
|
|
63
|
+
"input_contract": [
|
|
64
|
+
"change-context",
|
|
65
|
+
"change-decision"
|
|
66
|
+
],
|
|
67
|
+
"output_contract": [
|
|
68
|
+
"change-plan"
|
|
69
|
+
],
|
|
70
|
+
"optional_outputs": [],
|
|
71
|
+
"required_skills": [],
|
|
72
|
+
"preferred_skills": [
|
|
73
|
+
"structure-conformance"
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "draft-laws",
|
|
80
|
+
"chairs": [
|
|
81
|
+
{
|
|
82
|
+
"role": "draft-laws",
|
|
83
|
+
"agent_slug": "red-spec-drafter",
|
|
84
|
+
"depends_on": [
|
|
85
|
+
"plan-change",
|
|
86
|
+
"frame-change"
|
|
87
|
+
],
|
|
88
|
+
"input_contract": [
|
|
89
|
+
"change-plan",
|
|
90
|
+
"change-decision"
|
|
91
|
+
],
|
|
92
|
+
"output_contract": [
|
|
93
|
+
"red-spec"
|
|
94
|
+
],
|
|
95
|
+
"optional_outputs": [],
|
|
96
|
+
"required_skills": [],
|
|
97
|
+
"turn_reserve": 14
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "create-change",
|
|
103
|
+
"chairs": [
|
|
104
|
+
{
|
|
105
|
+
"role": "write-change",
|
|
106
|
+
"agent_slug": "code-implementer",
|
|
107
|
+
"depends_on": [
|
|
108
|
+
"draft-laws",
|
|
109
|
+
"plan-change"
|
|
110
|
+
],
|
|
111
|
+
"input_contract": [
|
|
112
|
+
"change-plan",
|
|
113
|
+
"red-spec"
|
|
114
|
+
],
|
|
115
|
+
"output_contract": [
|
|
116
|
+
"change-set"
|
|
117
|
+
],
|
|
118
|
+
"optional_outputs": [],
|
|
119
|
+
"required_skills": [],
|
|
120
|
+
"turn_reserve": 14
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "verify-change",
|
|
126
|
+
"chairs": [
|
|
127
|
+
{
|
|
128
|
+
"role": "verify-change",
|
|
129
|
+
"agent_slug": "change-verifier",
|
|
130
|
+
"depends_on": [
|
|
131
|
+
"write-change",
|
|
132
|
+
"draft-laws",
|
|
133
|
+
"plan-change"
|
|
134
|
+
],
|
|
135
|
+
"input_contract": [
|
|
136
|
+
"change-plan",
|
|
137
|
+
"change-set",
|
|
138
|
+
"red-spec"
|
|
139
|
+
],
|
|
140
|
+
"output_contract": [
|
|
141
|
+
"change-verdict"
|
|
142
|
+
],
|
|
143
|
+
"optional_outputs": [],
|
|
144
|
+
"required_skills": [],
|
|
145
|
+
"turn_reserve": 10
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"name": "publish-pr",
|
|
151
|
+
"chairs": [
|
|
152
|
+
{
|
|
153
|
+
"role": "publish-pr",
|
|
154
|
+
"agent_slug": "pr-publisher",
|
|
155
|
+
"depends_on": [
|
|
156
|
+
"write-change",
|
|
157
|
+
"verify-change",
|
|
158
|
+
"draft-laws"
|
|
159
|
+
],
|
|
160
|
+
"input_contract": [
|
|
161
|
+
"change-set",
|
|
162
|
+
"change-verdict",
|
|
163
|
+
"red-spec"
|
|
164
|
+
],
|
|
165
|
+
"output_contract": [
|
|
166
|
+
"pull-request"
|
|
167
|
+
],
|
|
168
|
+
"optional_outputs": [],
|
|
169
|
+
"required_skills": []
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"status": "draft",
|
|
175
|
+
"input_types": [
|
|
176
|
+
"change-request"
|
|
177
|
+
],
|
|
178
|
+
"output_types": [
|
|
179
|
+
"pull-request"
|
|
180
|
+
],
|
|
181
|
+
"description": "The governed change loop with the laws made STRUCTURAL. Identical to software-change-pr-v1 through planning, then it splits the single writing chair into two seats with disjoint powers: a law-drafting chair whose grant reaches tests/** and docs/specs/** and CANNOT touch src/, and a building chair that consumes the sealed red-spec as an input. The ordering is not requested in a brief — it is enforced twice over. By GRANT: the drafter cannot write source, so it cannot make its own laws pass. By TYPE: the builder requires a red-spec, so a phase graph seating it before the drafter fails to compose at all. The publishing chair receives the red-spec too, because the laws and the fix are written by DIFFERENT seats and a PR carrying one without the other is the artefact a laws-first pipeline exists to prevent. Carries a reserve pool: a budget-stopped chair may draw turns whose whole purpose is sealing what it already found, so exhaustion costs the tail of a run rather than all of it.",
|
|
182
|
+
"reserve_pool": 40
|
|
183
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "spec-review-and-sequence-v0",
|
|
3
|
+
"domain": "software-change",
|
|
4
|
+
"agent_slugs": [
|
|
5
|
+
"john",
|
|
6
|
+
"miles",
|
|
7
|
+
"bill"
|
|
8
|
+
],
|
|
9
|
+
"phases": [
|
|
10
|
+
{
|
|
11
|
+
"name": "read-the-red",
|
|
12
|
+
"intent": "Read the material. THREE SEATS SPLIT THIS PHASE AND EACH READS ONLY THE SLICE ITS OWN ROLE NAMES. This is not a suggestion about tidiness: a chair is killed at a hard wall-clock wall, and a seat that wanders outside its slice dies at that wall having sealed nothing — which costs real money the ledger never records, because a killed chair reports no usage. Read your slice, then seal. Budget most of your window for reading and keep a real margin for writing your change-context.\n\nIF YOUR ROLE IS read-the-argument: read SPEC-worker-contract.md and CHANGELOG.md, and nothing else. Report, gap by gap (there are six), what the document ARGUES: the defect it claims, the contract it proposes, what it explicitly leaves to the deployment, what it names as out of scope, and what its closing 'What this document does NOT specify' section deliberately declines to settle. Quote the document where its wording is load-bearing. You are the only seat that reads the argued half, so the judge sees the reasoning only through you.\n\nIF YOUR ROLE IS read-the-substrate-laws: read tests/spec_venue_realization_substrate.test.ts and nothing else. It is 962 lines and holds 40 of the suite's 88 laws, grouped into ten describe blocks. For each describe block, report: its laws by their own `it` text, the exports each destructures from the module under specification, and — for every law — the exact assertions it makes, distinguishing POSITIVE assertions (something must be present) from NEGATIVE ones (something must be absent), and counting each. That distinction is the most important thing you will record, because a law whose assertions are ALL negative is satisfied by an implementation that produces nothing at all. Be mechanical about it. Also record the type declarations at the top of the file (VenueRealizer, RealizationHandle, RealizedArtifact, RetentionPolicy, VenueGuarantee, RealizationHost), which are the interface being specified, and the shared fixtures and helpers the laws render through.\n\nIF YOUR ROLE IS read-the-other-laws-and-the-grain: read the other five law files — tests/spec_venue_realization.test.ts, tests/spec_worker_environment.test.ts, tests/spec_worker_run_modes.test.ts, tests/spec_venue_targeting.test.ts, tests/spec_venue_credential_mint.test.ts — and report for each the laws by their `it` text, the module and exports each expects, and what it asserts. Then, with whatever budget remains, sense the existing grain the implementation must follow: VenueSchema in src/genome_schema.ts, the realize gauntlet in src/venue_realize.ts, and the candour at src/workspace.ts lines 44-56. Skim these for SHAPE. Do not read them exhaustively; if budget runs short, the five law files matter more than the source.",
|
|
13
|
+
"chairs": [
|
|
14
|
+
{
|
|
15
|
+
"role": "read-the-argument",
|
|
16
|
+
"agent_slug": "john",
|
|
17
|
+
"depends_on": [],
|
|
18
|
+
"input_contract": [
|
|
19
|
+
"change-request"
|
|
20
|
+
],
|
|
21
|
+
"output_contract": [
|
|
22
|
+
"change-context"
|
|
23
|
+
],
|
|
24
|
+
"required_skills": []
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"role": "read-the-substrate-laws",
|
|
28
|
+
"agent_slug": "john",
|
|
29
|
+
"depends_on": [],
|
|
30
|
+
"input_contract": [
|
|
31
|
+
"change-request"
|
|
32
|
+
],
|
|
33
|
+
"output_contract": [
|
|
34
|
+
"change-context"
|
|
35
|
+
],
|
|
36
|
+
"required_skills": []
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"role": "read-the-other-laws-and-the-grain",
|
|
40
|
+
"agent_slug": "john",
|
|
41
|
+
"depends_on": [],
|
|
42
|
+
"input_contract": [
|
|
43
|
+
"change-request"
|
|
44
|
+
],
|
|
45
|
+
"output_contract": [
|
|
46
|
+
"change-context"
|
|
47
|
+
],
|
|
48
|
+
"required_skills": []
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "judge-the-laws",
|
|
54
|
+
"intent": "Judge the suite as a contract, from the three readings handed to you. DO NOT RE-READ THE SOURCE — the reading is done and your budget is for judgment; you may open a file only to settle a specific question the readings left genuinely ambiguous. For each family of laws answer three questions. SOUND: does it assert the property the document argues for, or something narrower or wider than the argument supports. NON-VACUOUS: could an implementation that keeps none of the guarantees still pass it. Ask this concretely rather than in general — construct the smallest hollow implementation you can (a function returning an empty object, a resolver returning nothing, a filter over an empty family) and then walk EVERY law in the family INDIVIDUALLY saying whether that hollow implementation passes it. Answer at the granularity of the single `it` block, because that is the unit a filtered test run measures: a family may be non-vacuous as a whole while several of its laws pass hollow, and if an acceptance check runs only those laws the hollow implementation ships. Where a family's honesty depends on a positive assertion living in a DIFFERENT describe block, say so plainly — that anchor is one edit away from disappearing. BUILDABLE: can it be satisfied against the existing grain without weakening it. Name every law you believe is wrong by its own describe/it text and say what the document would have to argue instead. Then fix the direction for the build: what ships, what is out of scope, the stop condition, and the alternatives set aside with their reasons. Settled for the run.",
|
|
55
|
+
"chairs": [
|
|
56
|
+
{
|
|
57
|
+
"role": "judge-laws",
|
|
58
|
+
"agent_slug": "miles",
|
|
59
|
+
"depends_on": [
|
|
60
|
+
"read-the-argument",
|
|
61
|
+
"read-the-substrate-laws",
|
|
62
|
+
"read-the-other-laws-and-the-grain"
|
|
63
|
+
],
|
|
64
|
+
"input_contract": [
|
|
65
|
+
"change-context"
|
|
66
|
+
],
|
|
67
|
+
"output_contract": [
|
|
68
|
+
"change-decision"
|
|
69
|
+
],
|
|
70
|
+
"required_skills": []
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "sequence-the-bands",
|
|
76
|
+
"intent": "Settle the order the laws are made green in, from the readings and the judgment. Ordered work packages with explicit dependencies, each naming: the laws it closes by their own describe/it text, the modules and exports it creates, the files it touches, and what the closed laws report before the package lands. The security-critical family goes first where the judgment says it must — a permissive implementation is worse than an absent one, because the contract still claims the guarantee. Every package must be independently verifiable, and must be SMALL ENOUGH TO BUILD IN ONE RUN: a package whose laws cannot be run green on their own is not a package, and neither is one that could not be written and verified inside a single chair's wall-clock budget. Size the packages against that bound honestly — a package that creates a whole module with a dozen exports and closes forty laws is two packages wearing one name. Each package states a NON-VACUITY GUARD that is a DEMONSTRATION rather than an argument: name the hollow implementation, say which of that package's laws it would still pass, and require the implementer to run it and report the survivors. Do not inherit the judge's vacuity reasoning as settled — restate it as a check somebody performs. Where the judgment found a law vacuous or unsound, the package that would have closed it must carry the remedy — an amendment to the specification — rather than quietly coding to the weak law. Account for every law: each lands in a package or is listed as deferred with its reason. State the tradeoff wherever more than one ordering would have served.",
|
|
77
|
+
"chairs": [
|
|
78
|
+
{
|
|
79
|
+
"role": "sequence-bands",
|
|
80
|
+
"agent_slug": "bill",
|
|
81
|
+
"depends_on": [
|
|
82
|
+
"read-the-argument",
|
|
83
|
+
"read-the-substrate-laws",
|
|
84
|
+
"read-the-other-laws-and-the-grain",
|
|
85
|
+
"judge-laws"
|
|
86
|
+
],
|
|
87
|
+
"input_contract": [
|
|
88
|
+
"change-context",
|
|
89
|
+
"change-decision"
|
|
90
|
+
],
|
|
91
|
+
"output_contract": [
|
|
92
|
+
"change-plan"
|
|
93
|
+
],
|
|
94
|
+
"required_skills": [],
|
|
95
|
+
"preferred_skills": [
|
|
96
|
+
"structure-conformance"
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"status": "active",
|
|
103
|
+
"input_types": [
|
|
104
|
+
"change-request"
|
|
105
|
+
],
|
|
106
|
+
"output_types": [
|
|
107
|
+
"change-context",
|
|
108
|
+
"change-decision",
|
|
109
|
+
"change-plan"
|
|
110
|
+
],
|
|
111
|
+
"description": "Review a committed RED specification and turn it into an ordered build sequence. The material is a specification document plus its falsifiable half — test files committed failing on purpose — and the question is not \"is this a good idea\" but \"are these laws sound, non-vacuous, and buildable, and in what order\". The reading is SPLIT ACROSS THREE PARALLEL SEATS because a chair has a hard wall-clock wall and a specification of this size does not fit through one: the argued half, the largest law file, and the remaining laws plus the existing source grain are read by three seats that never wait on each other. Then the seams hold as usual — the seats that READ do not judge, the seat that JUDGES does not sequence, and the seat that SEQUENCES is answerable to a decision it did not make. The output is a change-plan whose steps are work packages, each naming the laws it closes, the modules it creates, and what those laws report while the code is absent, so a later implementation run is measured against a sequence somebody argued for rather than one it invented mid-flight."
|
|
112
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "studio-session-v0",
|
|
3
|
+
"domain": "introspection",
|
|
4
|
+
"agent_slugs": [
|
|
5
|
+
"john",
|
|
6
|
+
"miles",
|
|
7
|
+
"bill"
|
|
8
|
+
],
|
|
9
|
+
"phases": [
|
|
10
|
+
{
|
|
11
|
+
"name": "listen",
|
|
12
|
+
"chairs": [
|
|
13
|
+
{
|
|
14
|
+
"role": "listen",
|
|
15
|
+
"agent_slug": "john",
|
|
16
|
+
"depends_on": [],
|
|
17
|
+
"input_contract": [
|
|
18
|
+
"parsed-conversation-trace"
|
|
19
|
+
],
|
|
20
|
+
"output_contract": [
|
|
21
|
+
"pattern-extraction"
|
|
22
|
+
],
|
|
23
|
+
"optional_outputs": [],
|
|
24
|
+
"required_skills": []
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "direct",
|
|
30
|
+
"chairs": [
|
|
31
|
+
{
|
|
32
|
+
"role": "direct",
|
|
33
|
+
"agent_slug": "miles",
|
|
34
|
+
"depends_on": [
|
|
35
|
+
"listen"
|
|
36
|
+
],
|
|
37
|
+
"input_contract": [
|
|
38
|
+
"pattern-extraction"
|
|
39
|
+
],
|
|
40
|
+
"output_contract": [
|
|
41
|
+
"design-definition"
|
|
42
|
+
],
|
|
43
|
+
"optional_outputs": [],
|
|
44
|
+
"required_skills": []
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "name-the-seat",
|
|
50
|
+
"chairs": [
|
|
51
|
+
{
|
|
52
|
+
"role": "name-the-seat",
|
|
53
|
+
"agent_slug": "bill",
|
|
54
|
+
"depends_on": [
|
|
55
|
+
"direct",
|
|
56
|
+
"listen"
|
|
57
|
+
],
|
|
58
|
+
"input_contract": [
|
|
59
|
+
"design-definition",
|
|
60
|
+
"pattern-extraction"
|
|
61
|
+
],
|
|
62
|
+
"output_contract": [
|
|
63
|
+
"draft-agent-profile"
|
|
64
|
+
],
|
|
65
|
+
"optional_outputs": [],
|
|
66
|
+
"required_skills": [],
|
|
67
|
+
"preferred_skills": [
|
|
68
|
+
"structure-conformance"
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "accept",
|
|
75
|
+
"chairs": [
|
|
76
|
+
{
|
|
77
|
+
"role": "accept",
|
|
78
|
+
"agent_slug": "",
|
|
79
|
+
"human": true,
|
|
80
|
+
"depends_on": [
|
|
81
|
+
"name-the-seat"
|
|
82
|
+
],
|
|
83
|
+
"input_contract": [],
|
|
84
|
+
"output_contract": [
|
|
85
|
+
"Judgment"
|
|
86
|
+
],
|
|
87
|
+
"optional_outputs": [],
|
|
88
|
+
"required_skills": []
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"status": "draft",
|
|
94
|
+
"input_types": [
|
|
95
|
+
"parsed-conversation-trace"
|
|
96
|
+
],
|
|
97
|
+
"output_types": [
|
|
98
|
+
"draft-agent-profile"
|
|
99
|
+
],
|
|
100
|
+
"description": "A STUDIO SESSION plays back a take and names what the leading was. It reads one session transcript as material — what was asked, what tune was called, what the band was handed, where the leader stopped the band and why — extracts the recurrent moves and the roles that keep reappearing, judges which of them are method and which are merely habit, and renders the seat that emerges as a draft agent for a human to accept or reject. The corpus is conduct, not code: a transcript records what a run DID as against what it REPORTED doing, and the gap between those two is the most instructive thing in it. Draft only — the profile is a proposal, never a promotion."
|
|
101
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "Coltrane's OWN roadmap as the worked-example Tour. This repo does committed work, so its roadmap IS a tour. Every commitment here carries NO amount — Coltrane's tour genuinely has none ('ship the evaluator' is a real commitment with a real acceptance condition and no price). This is NOT hedging: the money path is fully public and exercised with synthetic values in tests/committed_work fixtures, so a fork runs a funded tour on day one. What is absent from THIS example is fake numbers, not the mechanism. Slugs resolve against institutions/coltrane.json (org eir-labs; chairs coltrane.chair.human-governor and coltrane.chair.change-author).",
|
|
3
|
+
"tour": {
|
|
4
|
+
"slug": "coltrane-roadmap",
|
|
5
|
+
"institution_slug": "coltrane",
|
|
6
|
+
"org_slug": "eir-labs",
|
|
7
|
+
"responsible_chair": "coltrane.chair.human-governor",
|
|
8
|
+
"period": "2026-H2",
|
|
9
|
+
"northstar_slugs": [
|
|
10
|
+
"model-the-domain-before-the-work",
|
|
11
|
+
"treat-inference-as-scarce"
|
|
12
|
+
],
|
|
13
|
+
"bookings": [
|
|
14
|
+
{
|
|
15
|
+
"slug": "ship-the-binding-middle-place",
|
|
16
|
+
"aim": "land the Tour/Booking/Resource objects and the tour-admissibility checker on main behind a green pull request",
|
|
17
|
+
"period": "2026-H2",
|
|
18
|
+
"accountable_office": "coltrane.chair.change-author",
|
|
19
|
+
"acceptance": {
|
|
20
|
+
"predicate": "(=> (= ci_result \"green\") allow)",
|
|
21
|
+
"inputs": { "ci_result": "ci-status" }
|
|
22
|
+
},
|
|
23
|
+
"tier": "enforced",
|
|
24
|
+
"draws": [
|
|
25
|
+
{ "resource_slug": "engine-dev-seat", "unit": "max-seat-hours", "quantity": 40 }
|
|
26
|
+
],
|
|
27
|
+
"served_northstars": ["model-the-domain-before-the-work"],
|
|
28
|
+
"lifecycle": {
|
|
29
|
+
"state": "active",
|
|
30
|
+
"debtor": "coltrane.chair.change-author",
|
|
31
|
+
"creditor": "eir-labs",
|
|
32
|
+
"log": []
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"slug": "wire-variance-into-the-audit-surface",
|
|
37
|
+
"aim": "surface promised-versus-delivered variance from the ledger chain, once the middle place has landed",
|
|
38
|
+
"period": "2026-H2",
|
|
39
|
+
"accountable_office": "coltrane.chair.change-author",
|
|
40
|
+
"acceptance": {
|
|
41
|
+
"predicate": "(=> (= ci_result \"green\") allow)",
|
|
42
|
+
"inputs": { "ci_result": "ci-status" }
|
|
43
|
+
},
|
|
44
|
+
"tier": "enforced",
|
|
45
|
+
"antecedent": {
|
|
46
|
+
"predicate": "(= prior_booking_state \"satisfied\")",
|
|
47
|
+
"inputs": { "prior_booking_state": "commitment-state" }
|
|
48
|
+
},
|
|
49
|
+
"draws": [
|
|
50
|
+
{ "resource_slug": "engine-dev-seat", "unit": "max-seat-hours", "quantity": 20 }
|
|
51
|
+
],
|
|
52
|
+
"served_northstars": ["treat-inference-as-scarce"],
|
|
53
|
+
"lifecycle": {
|
|
54
|
+
"state": "conditional",
|
|
55
|
+
"debtor": "coltrane.chair.change-author",
|
|
56
|
+
"creditor": "eir-labs",
|
|
57
|
+
"log": []
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"resources": [
|
|
63
|
+
{
|
|
64
|
+
"slug": "engine-dev-seat",
|
|
65
|
+
"holder": "eir-labs",
|
|
66
|
+
"quantity": 200,
|
|
67
|
+
"unit": "max-seat-hours",
|
|
68
|
+
"period": "2026-H2",
|
|
69
|
+
"transferable": true
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "engine-room-v1",
|
|
3
|
+
"institution_slug": "quartet",
|
|
4
|
+
"description": "A room serving coltrane's own MCP server from inside the container, equipping two read-only tools. It exists to make one claim checkable by execution: a seated chair is answered from INSIDE the room, not by the host engine. The proof is self-referential and lives in the sealed output rather than in an operator's event log — the room image is built from the repo genome, so an agent authored after the image was built is ABSENT from the room's roster while present on the host. A seat that browses the roster and cannot find itself is reading the room's genome; one that finds itself was answered by the host. The stdio server declares the command the room actually runs: `node /app/dist/src/server_entry.js`, the compiled engine at the room image's WORKDIR — the containerized emission execs exactly this into the held room.",
|
|
5
|
+
"flavor": "engine-read",
|
|
6
|
+
"equipment": {
|
|
7
|
+
"tools": [
|
|
8
|
+
"type_browse",
|
|
9
|
+
"agent_browse"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
"installs": [],
|
|
13
|
+
"credential_surface": [],
|
|
14
|
+
"lifecycle": {
|
|
15
|
+
"policy": "ephemeral"
|
|
16
|
+
},
|
|
17
|
+
"responsible_chair": "quartet.chair.responsible-officer",
|
|
18
|
+
"substrate": "container",
|
|
19
|
+
"mcp_servers": [
|
|
20
|
+
{
|
|
21
|
+
"slug": "coltrane",
|
|
22
|
+
"transport": "stdio",
|
|
23
|
+
"command": [
|
|
24
|
+
"node",
|
|
25
|
+
"/app/dist/src/server_entry.js"
|
|
26
|
+
],
|
|
27
|
+
"credential_names": []
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"devices": [],
|
|
31
|
+
"architectures": []
|
|
32
|
+
}
|