@eir-labs/coltrane 0.23.1 → 0.24.1

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.
@@ -1,5 +1,5 @@
1
1
  /** Engine semver. Keep in lockstep with package.json `version` (enforced by test). */
2
- export declare const COLTRANE_VERSION = "0.23.1";
2
+ export declare const COLTRANE_VERSION = "0.24.1";
3
3
  /**
4
4
  * The commit this engine checkout is sitting on, or null when it can't be determined.
5
5
  *
@@ -17,7 +17,7 @@ import { existsSync, readFileSync, statSync } from "node:fs";
17
17
  import { dirname, join, resolve } from "node:path";
18
18
  import { fileURLToPath } from "node:url";
19
19
  /** Engine semver. Keep in lockstep with package.json `version` (enforced by test). */
20
- export const COLTRANE_VERSION = "0.23.1";
20
+ export const COLTRANE_VERSION = "0.24.1";
21
21
  /**
22
22
  * The commit this engine checkout is sitting on, or null when it can't be determined.
23
23
  *
@@ -24,7 +24,7 @@
24
24
  "deontic": "permitted",
25
25
  "aim": "open a pull request proposing a change to the institution's main line",
26
26
  "conditions": "the change is committed on a non-main branch and its local verify passed",
27
- "or_else": "not applicable \u2014 a permission, not an obligation",
27
+ "or_else": "not applicable a permission, not an obligation",
28
28
  "check": {
29
29
  "predicate": "(=> (and (is-agent actor) (= action \"open-pr\") (not (= source \"main\"))) allow)",
30
30
  "inputs": {
@@ -55,7 +55,7 @@
55
55
  "deontic": "permitted",
56
56
  "aim": "stand deliberately red between the spec merge and the implementation merge on a change-set branch, off the protected line",
57
57
  "conditions": "while the target branch is a change-set branch and is not the protected main line",
58
- "or_else": "not applicable \u2014 a permission, not an obligation",
58
+ "or_else": "not applicable a permission, not an obligation",
59
59
  "check": {
60
60
  "predicate": "(=> (not (= target_branch \"main\")) allow)",
61
61
  "inputs": {
@@ -65,11 +65,11 @@
65
65
  "content_hash": "sha256:f465a9f3e76a5288dd993ef1b8228993feea04a47af8f3c99462cc4edcb238a5"
66
66
  },
67
67
  {
68
- "attributes": "any seated agent performing a coltrane-shaped operation \u2014 composing a standard, writing a typed output, defining an agent, registering a type",
68
+ "attributes": "any seated agent performing a coltrane-shaped operation composing a standard, writing a typed output, defining an agent, registering a type",
69
69
  "deontic": "forbidden",
70
70
  "aim": "perform a coltrane-shaped operation through a built-in file or search surface instead of the MCP surface",
71
71
  "conditions": "whenever the operation has a coltrane tool that performs it; reading source and editing engine TypeScript are not coltrane-shaped and are unaffected",
72
- "or_else": "the operation is not seen by the genome \u2014 the work does not enter the genome: no content_sha is sealed, no ledger entry is written, no hash updates, so the change is unrecorded however correct its bytes are. Where the seat holds no such grant the surface is absent and the bypass cannot arise; where it does, this is what follows.",
72
+ "or_else": "the operation is not seen by the genome the work does not enter the genome: no content_sha is sealed, no ledger entry is written, no hash updates, so the change is unrecorded however correct its bytes are. Where the seat holds no such grant the surface is absent and the bypass cannot arise; where it does, this is what follows.",
73
73
  "check": {
74
74
  "predicate": "(=> (and (is-agent actor) (= operation \"coltrane-shaped\") (not (= surface \"mcp\"))) deny)",
75
75
  "inputs": {
@@ -85,7 +85,7 @@
85
85
  "deontic": "forbidden",
86
86
  "aim": "write to core_types/ or domain_types/ directly instead of using type_register or type_extend",
87
87
  "conditions": "at all times",
88
- "or_else": "the type is not registered \u2014 the work does not enter the genome: no content_sha is sealed, no ledger entry is written, no hash updates, so the change is unrecorded however correct its bytes are. Where the seat holds no such grant the surface is absent and the bypass cannot arise; where it does, this is what follows.",
88
+ "or_else": "the type is not registered the work does not enter the genome: no content_sha is sealed, no ledger entry is written, no hash updates, so the change is unrecorded however correct its bytes are. Where the seat holds no such grant the surface is absent and the bypass cannot arise; where it does, this is what follows.",
89
89
  "check": {
90
90
  "predicate": "(=> (and (is-agent actor) (= action \"direct-write\") (= target \"type-dir\")) deny)",
91
91
  "inputs": {
@@ -100,8 +100,8 @@
100
100
  "attributes": "any seated agent adding an agent definition to the genome",
101
101
  "deontic": "forbidden",
102
102
  "aim": "add an agent DEFINITION by dropping a file under agents/ instead of using agent_define",
103
- "conditions": "for the genome agent-definition surface (agents/*.json). NOT the base-player surface: CLAUDE.md ships Claude Code subagents as markdown under agents/players/<name>.md, and those are files by design \u2014 a law that forbade them would forbid the shipped arrangement.",
104
- "or_else": "the agent is not defined \u2014 the work does not enter the genome: no content_sha is sealed, no ledger entry is written, no hash updates, so the change is unrecorded however correct its bytes are. Where the seat holds no such grant the surface is absent and the bypass cannot arise; where it does, this is what follows.",
103
+ "conditions": "for the genome agent-definition surface (agents/*.json). NOT the base-player surface: CLAUDE.md ships Claude Code subagents as markdown under agents/players/<name>.md, and those are files by design a law that forbade them would forbid the shipped arrangement.",
104
+ "or_else": "the agent is not defined the work does not enter the genome: no content_sha is sealed, no ledger entry is written, no hash updates, so the change is unrecorded however correct its bytes are. Where the seat holds no such grant the surface is absent and the bypass cannot arise; where it does, this is what follows.",
105
105
  "check": {
106
106
  "predicate": "(=> (and (is-agent actor) (= action \"file-drop\") (= target \"agent-definition\")) deny)",
107
107
  "inputs": {
@@ -120,7 +120,7 @@
120
120
  {
121
121
  "slug": "eir-labs",
122
122
  "name": "Eir Labs",
123
- "charter": "The organization that develops Coltrane through Coltrane's own governed pipeline. Its charter is to carry every change to the engine and its genome through a reviewed pull request a human governor merges on green continuous integration \u2014 never a direct write to the protected main line. It ships no capability it has not been granted and lands no change its checks have not passed.",
123
+ "charter": "The organization that develops Coltrane through Coltrane's own governed pipeline. Its charter is to carry every change to the engine and its genome through a reviewed pull request a human governor merges on green continuous integration never a direct write to the protected main line. It ships no capability it has not been granted and lands no change its checks have not passed.",
124
124
  "parent_org": null
125
125
  }
126
126
  ],
@@ -141,7 +141,7 @@
141
141
  "kind": "steve",
142
142
  "is_institution": false,
143
143
  "skill_slugs": [],
144
- "status": "named",
144
+ "status": "active",
145
145
  "named_from_forebear": "blakey-art",
146
146
  "auth_user_id": null
147
147
  }
@@ -190,7 +190,7 @@
190
190
  "role": "human-governor",
191
191
  "human": true,
192
192
  "function": "JUDGE",
193
- "mission": "Hold the merge authority for Coltrane's protected main line. This chair is held by a person, never a model agent: the governor reviews an open pull request and its continuous-integration result and merges it under their own name, or refuses it. Nothing lands on main without this office's yes. The office ships unassigned \u2014 the adopting organization seats a person here as its first governance act.",
193
+ "mission": "Hold the merge authority for Coltrane's protected main line. This chair is held by a person, never a model agent: the governor reviews an open pull request and its continuous-integration result and merges it under their own name, or refuses it. Nothing lands on main without this office's yes. The office ships unassigned the adopting organization seats a person here as its first governance act.",
194
194
  "required_skills": [],
195
195
  "caps": [],
196
196
  "obligations": [
@@ -226,7 +226,7 @@
226
226
  "name": "Crawford, S.E.S. & Ostrom, E. (1995), \"A Grammar of Institutions\"",
227
227
  "domain": "institutional analysis",
228
228
  "kind": "work",
229
- "what_taken": "The ADICO grammar \u2014 Attribute, Deontic, aIm, Condition, Or-else \u2014 which InstitutionalLawSchema takes as the shape of a law. Cited with a DOI at src/genome_schema.ts:356, the tree's one explicit \"Descends from\" declaration."
229
+ "what_taken": "The ADICO grammar Attribute, Deontic, aIm, Condition, Or-else which InstitutionalLawSchema takes as the shape of a law. Cited with a DOI at src/genome_schema.ts:356, the tree's one explicit \"Descends from\" declaration."
230
230
  },
231
231
  {
232
232
  "slug": "makinson-vandertorre-io-logic",
@@ -234,7 +234,7 @@
234
234
  "name": "Makinson, D. & van der Torre, L. (2000), \"Input/Output Logics\"",
235
235
  "domain": "deontic logic",
236
236
  "kind": "work",
237
- "what_taken": "The obligation as a norm-PAIR (condition, consequent) rather than a modal operator over a proposition \u2014 why a law here carries a predicate and an or_else instead of a truth value."
237
+ "what_taken": "The obligation as a norm-PAIR (condition, consequent) rather than a modal operator over a proposition why a law here carries a predicate and an or_else instead of a truth value."
238
238
  },
239
239
  {
240
240
  "slug": "xacml-3-decision-model",
@@ -242,7 +242,7 @@
242
242
  "name": "OASIS eXtensible Access Control Markup Language (XACML) 3.0",
243
243
  "domain": "access control",
244
244
  "kind": "work",
245
- "what_taken": "The multi-verdict decision algebra \u2014 permit / deny / not-applicable / indeterminate \u2014 that the admissibility result descends from, rather than a boolean. Named in the schema prose WITHOUT a locator: attestation, not archive."
245
+ "what_taken": "The multi-verdict decision algebra permit / deny / not-applicable / indeterminate that the admissibility result descends from, rather than a boolean. Named in the schema prose WITHOUT a locator: attestation, not archive."
246
246
  },
247
247
  {
248
248
  "slug": "gasb-54-encumbrance",
@@ -250,7 +250,7 @@
250
250
  "name": "GASB Statement No. 54, Fund Balance Reporting and Governmental Fund Type Definitions",
251
251
  "domain": "governmental accounting",
252
252
  "kind": "work",
253
- "what_taken": "The encumbrance \u2014 a commitment recorded between an appropriation ceiling and an expenditure \u2014 which the committed-work objects (Tour / Booking / Resource) take as the binding middle place. Named in docs/specs/the-binding-middle-place.md WITHOUT a locator: attestation, not archive."
253
+ "what_taken": "The encumbrance a commitment recorded between an appropriation ceiling and an expenditure which the committed-work objects (Tour / Booking / Resource) take as the binding middle place. Named in docs/specs/the-binding-middle-place.md WITHOUT a locator: attestation, not archive."
254
254
  },
255
255
  {
256
256
  "slug": "blakey-art",
@@ -258,7 +258,7 @@
258
258
  "name": "Art Blakey",
259
259
  "domain": "modern jazz (drums, bandleading)",
260
260
  "kind": "musician",
261
- "what_taken": "Born 11 October 1919 in Pittsburgh, Pennsylvania; died 16 October 1990 in New York City (Scott DeVeaux/Gary Giddins record the dates; the American National Biography entry is titled \"Blakey, Art (1919-1990), jazz drummer and bandleader\", doi:10.1093/anb/9780198606697.article.1802592, retrieved 2026-08-20). What the BANDLEADER chair takes is the documented practice of running a band as an INSTITUTION THAT OUTLIVES ITS PLAYERS. From 1954 until his death Blakey led the Jazz Messengers through roughly two dozen lineups, seating young players, developing them, and releasing them onward \u2014 Horace Silver, Clifford Brown, Lee Morgan, Wayne Shorter, Freddie Hubbard, Keith Jarrett, Wynton Marsalis among them \u2014 while the band itself persisted as the durable thing. The disposition the chair takes is that of the seat rather than the incumbent: the leader calls the tune, counts it off, seats the players, judges the take, and stops the band when it is wrong, and does not play the horn. Grove Music Online's entry (Lewis Porter, 2003, doi:10.1093/gmo/9781561592630.article.j046400, retrieved 2026-08-20) records the Messengers as the defining vehicle of that practice. Nothing of the man's biography beyond this working disposition is claimed or carried."
261
+ "what_taken": "Born 11 October 1919 in Pittsburgh, Pennsylvania; died 16 October 1990 in New York City (Scott DeVeaux/Gary Giddins record the dates; the American National Biography entry is titled \"Blakey, Art (1919-1990), jazz drummer and bandleader\", doi:10.1093/anb/9780198606697.article.1802592, retrieved 2026-08-20). What the BANDLEADER chair takes is the documented practice of running a band as an INSTITUTION THAT OUTLIVES ITS PLAYERS. From 1954 until his death Blakey led the Jazz Messengers through roughly two dozen lineups, seating young players, developing them, and releasing them onward Horace Silver, Clifford Brown, Lee Morgan, Wayne Shorter, Freddie Hubbard, Keith Jarrett, Wynton Marsalis among them while the band itself persisted as the durable thing. The disposition the chair takes is that of the seat rather than the incumbent: the leader calls the tune, counts it off, seats the players, judges the take, and stops the band when it is wrong, and does not play the horn. Grove Music Online's entry (Lewis Porter, 2003, doi:10.1093/gmo/9781561592630.article.j046400, retrieved 2026-08-20) records the Messengers as the defining vehicle of that practice. Nothing of the man's biography beyond this working disposition is claimed or carried."
262
262
  }
263
263
  ],
264
264
  "lineage_edges": [
@@ -297,7 +297,7 @@
297
297
  "source": {
298
298
  "evidence_grade": "attestation",
299
299
  "locator": "src/genome_schema.ts (AdmissibilityResult)",
300
- "note": "named in prose without a doi or url. Under system.coltrane.institutional-model the citation rule refuses a citation carrying neither \u2014 recorded here as an attestation so the gap is visible, never laundered upward to archive"
300
+ "note": "named in prose without a doi or url. Under system.coltrane.institutional-model the citation rule refuses a citation carrying neither recorded here as an attestation so the gap is visible, never laundered upward to archive"
301
301
  }
302
302
  },
303
303
  {
@@ -309,7 +309,7 @@
309
309
  "source": {
310
310
  "evidence_grade": "attestation",
311
311
  "locator": "docs/specs/the-binding-middle-place.md",
312
- "note": "named in prose without a doi or url. Under system.coltrane.institutional-model the citation rule refuses a citation carrying neither \u2014 recorded here as an attestation so the gap is visible, never laundered upward to archive"
312
+ "note": "named in prose without a doi or url. Under system.coltrane.institutional-model the citation rule refuses a citation carrying neither recorded here as an attestation so the gap is visible, never laundered upward to archive"
313
313
  }
314
314
  },
315
315
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eir-labs/coltrane",
3
- "version": "0.23.1",
3
+ "version": "0.24.1",
4
4
  "description": "A methodology engine \u2014 a typed substrate for defining agents, composing multi-phase standards, dispatching gigs, and sealing every output to a content-addressed ledger. Ships as an MCP server.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -0,0 +1,95 @@
1
+ {
2
+ "slug": "falsifier-investigation-v0",
3
+ "domain": "engineering",
4
+ "agent_slugs": [
5
+ "defect-investigator"
6
+ ],
7
+ "phases": [
8
+ {
9
+ "name": "reproduce",
10
+ "intent": "Reproduce the defect deterministically; no investigation proceeds on a guess.",
11
+ "chairs": [
12
+ {
13
+ "role": "reproduce",
14
+ "agent_slug": "defect-investigator",
15
+ "depends_on": [],
16
+ "input_contract": [
17
+ "defect-report"
18
+ ],
19
+ "output_contract": [
20
+ "reproduction"
21
+ ],
22
+ "required_skills": []
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ "name": "locate",
28
+ "intent": "Trace the exact failing call-chain in read code, file:symbol.",
29
+ "chairs": [
30
+ {
31
+ "role": "locate",
32
+ "agent_slug": "defect-investigator",
33
+ "depends_on": [
34
+ "reproduce"
35
+ ],
36
+ "input_contract": [
37
+ "reproduction"
38
+ ],
39
+ "output_contract": [
40
+ "defect-location"
41
+ ],
42
+ "required_skills": []
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "name": "root-cause",
48
+ "intent": "Why-chain to the violated invariant, not the surface symptom.",
49
+ "chairs": [
50
+ {
51
+ "role": "root-cause",
52
+ "agent_slug": "defect-investigator",
53
+ "depends_on": [
54
+ "locate"
55
+ ],
56
+ "input_contract": [
57
+ "defect-location"
58
+ ],
59
+ "output_contract": [
60
+ "root-cause"
61
+ ],
62
+ "required_skills": []
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "name": "fix-spec",
68
+ "intent": "Plan a fix for EVERY swept instance, each RED-first, plus a class-guard test.",
69
+ "chairs": [
70
+ {
71
+ "role": "fix-spec",
72
+ "agent_slug": "defect-investigator",
73
+ "depends_on": [
74
+ "root-cause"
75
+ ],
76
+ "input_contract": [
77
+ "root-cause"
78
+ ],
79
+ "output_contract": [
80
+ "fix-spec"
81
+ ],
82
+ "required_skills": []
83
+ }
84
+ ]
85
+ }
86
+ ],
87
+ "input_types": [
88
+ "defect-report"
89
+ ],
90
+ "output_types": [
91
+ "fix-spec"
92
+ ],
93
+ "description": "The thin canon investigation standard: when a stated falsifier fires, its investigation is a standing procedure, never left to whoever happens to notice. Reproduce the firing, locate it, find the root cause, and seal a fix-spec to be carried through the RED-first amendment gate. Deliberately NARROW: the class-complete practice (generalize + sweep + class-guard) is tenant law — see defect-investigation-v1 in the coltrane example — and any institution may adopt it through its own gate. Canon carries only the guarantee that a fired falsifier is investigated by procedure.",
94
+ "status": "active"
95
+ }