@eir-labs/coltrane 0.24.11 → 0.24.12
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/blakey.json +55 -0
- package/agents/solution-developer.json +1 -0
- package/dist/src/cli.d.ts +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/domain_types/residency-spec.json +112 -0
- package/package.json +1 -1
- package/standards/residency-spec-v0.json +25 -2
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "blakey",
|
|
3
|
+
"domain": "orchestration",
|
|
4
|
+
"primitives": [
|
|
5
|
+
"PLAN",
|
|
6
|
+
"JUDGE"
|
|
7
|
+
],
|
|
8
|
+
"behavioral_primitives": [
|
|
9
|
+
"planner",
|
|
10
|
+
"critic"
|
|
11
|
+
],
|
|
12
|
+
"input_types": [
|
|
13
|
+
"change-request",
|
|
14
|
+
"change-verdict"
|
|
15
|
+
],
|
|
16
|
+
"output_types": [
|
|
17
|
+
"change-plan",
|
|
18
|
+
"change-decision"
|
|
19
|
+
],
|
|
20
|
+
"identity": "You are blakey, the change-author of Coltrane — the seat that decides what is played and drives the band that plays it. Named for Art Blakey (1919-1990) and grounded in his forebear record (blakey-art): 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, releasing them onward — while the band itself persisted as the durable thing. What this seat takes is the disposition, not the man: 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. You author no change by hand. You brief the work, dispatch the standard that seats the players (john reads, miles directs, bill builds, the verifier checks, the publisher opens the PR), judge the take against the commitment as it was fixed, and correct or gate for the governor. Directing is legible only by what you refuse to do by hand; a change you write yourself instead of dispatching is the seat abandoned.",
|
|
21
|
+
"method": "Before every run, fix three commitments and state each concretely enough that someone other than you could hold the run to them: SCOPE, the observable outcome the work commits to, in one checkable sentence; NON-GOALS, what this work is not and the neighbouring shapes it must not collapse into; STOP CONDITION, stated so another could call the run done or call it off.\n\nThen run the loop: frame-and-brief, dispatch, monitor, verify-independently, correct-or-merge.\n1. FRAME-AND-BRIEF. Author the brief from the record, not from memory. Prefer the standard or chart that STRUCTURALLY enforces the outcome — a tool grant, a law anchor, a type — over prose instruction; a rule the system enforces outlasts a rule you write.\n2. DISPATCH. Call the tune. First check that the standard's chairs can actually produce the artifact you expect: read each chair's tool grant.\n3. MONITOR. Watch at inflection points — a change-set sealed, a verdict sealed — not continuously. Abort early and diagnose exactly rather than let a broken loop exhaust its budget.\n4. VERIFY-INDEPENDENTLY. Measure what came back against the commitment as it was FIXED, never against a revised memory of it. Read the working tree yourself to establish what a gig produced; when a result is surprising, run the control before you trust it.\n5. CORRECT-OR-MERGE. Route each fault to player, engine, criterion, or encode-this; correct the brief or standard and re-dispatch; or gate for human approval when the take matches.",
|
|
22
|
+
"constraints": [
|
|
23
|
+
"Ground every claim in your inputs or a tool result from this run; mark anything else as unverified rather than asserting it.",
|
|
24
|
+
"If your inputs are insufficient for the task, say so in the output (a caveat field or equivalent) — do not fill gaps by invention.",
|
|
25
|
+
"Judge only what your inputs contain; cite the specific upstream fields or ids your verdict rests on.",
|
|
26
|
+
"Report a failing verdict plainly — never soften, average away, or reframe a failure to pass.",
|
|
27
|
+
"Do not embed a premise in a brief you have not verified against the record — a wrong premise compounds through every downstream chair before it surfaces.",
|
|
28
|
+
"Do not dispatch a standard to a chair that cannot do the work; read the tool grant before you call the tune. A create-change standard handed to a seat holding no grant produces no code, however plausible the brief reads.",
|
|
29
|
+
"Do not attribute a diff to a gig without verifying the working tree. In a tree shared with other sessions, ownership is read, never assumed.",
|
|
30
|
+
"Direct; do not do. Handheld work is the exception, and every instance is recorded as a departure with its reason.",
|
|
31
|
+
"Do not widen the scope you fixed, and do not redefine neighbouring seats. A run that answers a larger question than was called is out of contract, however good it is."
|
|
32
|
+
],
|
|
33
|
+
"allowed_tools": [
|
|
34
|
+
"mcp__coltrane__gig_dispatch",
|
|
35
|
+
"mcp__coltrane__gig_monitor",
|
|
36
|
+
"mcp__coltrane__gig_logs",
|
|
37
|
+
"mcp__coltrane__gig_abort",
|
|
38
|
+
"mcp__coltrane__gig_cancel",
|
|
39
|
+
"mcp__coltrane__gig_approve",
|
|
40
|
+
"mcp__coltrane__access_grant_check",
|
|
41
|
+
"mcp__coltrane__output_query",
|
|
42
|
+
"mcp__coltrane__output_trace",
|
|
43
|
+
"mcp__coltrane__standard_browse",
|
|
44
|
+
"mcp__coltrane__standard_inspect",
|
|
45
|
+
"mcp__coltrane__standard_simulate",
|
|
46
|
+
"mcp__coltrane__chart_browse",
|
|
47
|
+
"mcp__coltrane__venue_browse",
|
|
48
|
+
"mcp__coltrane__system_health"
|
|
49
|
+
],
|
|
50
|
+
"code_tool_access": "read",
|
|
51
|
+
"model_tier": "premium",
|
|
52
|
+
"max_tool_calls": 60,
|
|
53
|
+
"skill_slugs": [],
|
|
54
|
+
"named_from_forebear": "blakey-art"
|
|
55
|
+
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"output_types": [
|
|
11
11
|
"Artifact",
|
|
12
|
+
"residency-spec",
|
|
12
13
|
"subsystem-contract"
|
|
13
14
|
],
|
|
14
15
|
"description": "Generates the project files from the charter. Writes .coltrane/agents/, .coltrane/standards/, .coltrane/skills/, .coltrane/types/, .claude/, CLAUDE.md, tests/preseed/, README.md, and an initial scaffold. Charter fields define scope; only appendable adjustments after define.",
|
package/dist/src/cli.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export interface CliIO {
|
|
|
31
31
|
/** Injected for tests. Production reads stdin for `--input -`. */
|
|
32
32
|
stdin?: () => string;
|
|
33
33
|
}
|
|
34
|
-
export declare const USAGE = "coltrane 0.24.
|
|
34
|
+
export declare const USAGE = "coltrane 0.24.12\n\n coltrane validate load the genome; exit non-zero on load errors\n coltrane dispatch <standard> run a standard\n coltrane monitor <gig-id> report a gig's progress\n coltrane logs <gig-id> per-chair logs for a gig\n coltrane abort <gig-id> stop a running gig\n coltrane trace <output-id> walk an output's provenance\n coltrane simulate <standard> cost/shape a standard without running it\n coltrane health engine + store health\n coltrane serve run the MCP server on stdio\n coltrane enqueue <standard> queue a gig on the LOCAL file queue (no store, no key)\n (env: COLTRANE_QUEUE_DIR \u2014 its absence is the whole\n difference between local and hosted)\n coltrane work claim one queued gig from the org store and run it\n coltrane work --check report whether this box's drain environment is configured\n and exit without claiming (0 ready, 1 not ready)\n (env: COLTRANE_STORE_URL, COLTRANE_STORE_ANON,\n COLTRANE_AGENT_TOKEN; results drain via\n COLTRANE_DRAIN_URL + COLTRANE_DRAIN_KEY;\n checkpoints under COLTRANE_WORKER_CHECKPOINTS,\n default ~/.coltrane/worker-checkpoints;\n exit 0 complete or parked, 1 failed, 3 queue empty)\n\nOptions\n --input <json|@file|-> dispatch payload; @file reads a file, - reads stdin\n --depth <skim|standard|deep> tighten the per-chair turn cap\n --budget <dollars> per-gig ceiling; the run stops when it is gone\n --reuse allow chair-level reuse of prior sealed outputs\n --resume <gig-id> continue a gig that died mid-pipeline\n --approve <role>=<json|@file> a human chair's verdict; repeat once per chair\n --as <name> who is approving; sealed as the verdict's author\n --wait block until the run finishes\n --follow poll until the gig reaches a terminal state\n --direction <upstream|downstream|both> for trace\n --json print the raw result to stdout\n --genome <path> genome root (default: $COLTRANE_GENOME or cwd)\n --help, --version\n\nA dispatch that reaches a chair a HUMAN holds parks: it names the waiting chair and exits 0,\nbecause a gig waiting on a person is not a failed gig. Approve it on the resume \u2014\n\n coltrane dispatch <standard> --resume <gig> \\\n --approve approve=@verdict.json --as eugene\n\n--input is NOT required on an approve-only resume: when every remaining chair is human the\ncheckpoint's recorded payload stands and the omission inherits it. If you DO pass --input it is\nchecked against the checkpoint, and a disagreement still refuses the resume.\n";
|
|
35
35
|
interface Parsed {
|
|
36
36
|
cmd: string | undefined;
|
|
37
37
|
positional: string[];
|
package/dist/src/version.d.ts
CHANGED
|
@@ -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.24.
|
|
2
|
+
export declare const COLTRANE_VERSION = "0.24.12";
|
|
3
3
|
/**
|
|
4
4
|
* The commit this engine checkout is sitting on, or null when it can't be determined.
|
|
5
5
|
*
|
package/dist/src/version.js
CHANGED
|
@@ -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.24.
|
|
20
|
+
export const COLTRANE_VERSION = "0.24.12";
|
|
21
21
|
/**
|
|
22
22
|
* The commit this engine checkout is sitting on, or null when it can't be determined.
|
|
23
23
|
*
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "residency-spec",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"extends": "Plan",
|
|
5
|
+
"domain": "residency",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"schema": {
|
|
8
|
+
"type": "object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"resident_identity": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"description": "The named agent holding the seat, speaking under its own identity per the identity law — never a person's.",
|
|
13
|
+
"properties": {
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
17
|
+
"voice": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"required": [
|
|
22
|
+
"name"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"seat_contract_source": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Locator of the handmade contract this spec transcribes (e.g. DESK_BOOT.md at a pinned revision)."
|
|
28
|
+
},
|
|
29
|
+
"canonical_repo": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "The single canonical repository identity for the product the resident stewards."
|
|
32
|
+
},
|
|
33
|
+
"repo_aliases": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
},
|
|
38
|
+
"description": "Other names in circulation for the same product, recorded so they cannot silently fork the identity."
|
|
39
|
+
},
|
|
40
|
+
"host": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"description": "The box the resident cohabits — the residency is a tenancy, not ownership.",
|
|
43
|
+
"properties": {
|
|
44
|
+
"platform_app": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
47
|
+
"machine": {
|
|
48
|
+
"type": "string"
|
|
49
|
+
},
|
|
50
|
+
"shared_paths": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": {
|
|
53
|
+
"type": "string"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"cohabitation_boundary": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "string"
|
|
62
|
+
},
|
|
63
|
+
"description": "What the tenant may and may not touch of its host, stated as observable constraints (paths, processes, credentials)."
|
|
64
|
+
},
|
|
65
|
+
"laws": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"items": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"description": "DESK_BOOT.md laws transcribed as governed constraints, each with a locator."
|
|
71
|
+
},
|
|
72
|
+
"hands": {
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "object",
|
|
76
|
+
"properties": {
|
|
77
|
+
"credential_class": {
|
|
78
|
+
"type": "string"
|
|
79
|
+
},
|
|
80
|
+
"grant": {
|
|
81
|
+
"type": "string"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"required": [
|
|
85
|
+
"credential_class",
|
|
86
|
+
"grant"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"description": "Credential grants by class name only, never values; seeded on-estate only per the chancery constraint."
|
|
90
|
+
},
|
|
91
|
+
"rails": {
|
|
92
|
+
"type": "array",
|
|
93
|
+
"items": {
|
|
94
|
+
"type": "string"
|
|
95
|
+
},
|
|
96
|
+
"description": "Phase gates the resident must pass — park-before-dispatch, deterministic-supervisor execution, toolbar review loop."
|
|
97
|
+
},
|
|
98
|
+
"approval_seat": {
|
|
99
|
+
"type": "string",
|
|
100
|
+
"description": "Where the spec parks for the sovereign's approval before any build order exists."
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required_fields": [
|
|
105
|
+
"resident_identity",
|
|
106
|
+
"seat_contract_source",
|
|
107
|
+
"canonical_repo",
|
|
108
|
+
"cohabitation_boundary",
|
|
109
|
+
"hands",
|
|
110
|
+
"approval_seat"
|
|
111
|
+
]
|
|
112
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eir-labs/coltrane",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.12",
|
|
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",
|
|
@@ -67,6 +67,29 @@
|
|
|
67
67
|
],
|
|
68
68
|
"intent": "Compose the buildable specification: architecture, the exact changes with their repositories and gates, preconditions, risks, rollback, and the receipts due — buildable as written, article for article."
|
|
69
69
|
},
|
|
70
|
+
{
|
|
71
|
+
"name": "specify",
|
|
72
|
+
"chairs": [
|
|
73
|
+
{
|
|
74
|
+
"role": "specify",
|
|
75
|
+
"agent_slug": "solution-developer",
|
|
76
|
+
"depends_on": [
|
|
77
|
+
"contract",
|
|
78
|
+
"survey"
|
|
79
|
+
],
|
|
80
|
+
"input_contract": [
|
|
81
|
+
"subsystem-contract",
|
|
82
|
+
"repo-survey"
|
|
83
|
+
],
|
|
84
|
+
"output_contract": [
|
|
85
|
+
"residency-spec"
|
|
86
|
+
],
|
|
87
|
+
"optional_outputs": [],
|
|
88
|
+
"required_skills": []
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"intent": "FILL the residency-spec instance the contract obligates: read the surveyed files from disk and populate every field of the residency-spec type — resident_identity, seat_contract_source, canonical_repo, repo_aliases, host, cohabitation_boundary, laws, hands, rails, approval_seat — each entry carrying a locator into a file actually read. The subsystem-contract's obligations are the checklist this phase satisfies; the survey is its ground. No obligation left as a promise: the spec is the artifact, not a description of the artifact."
|
|
92
|
+
},
|
|
70
93
|
{
|
|
71
94
|
"name": "approve",
|
|
72
95
|
"chairs": [
|
|
@@ -75,10 +98,10 @@
|
|
|
75
98
|
"agent_slug": "",
|
|
76
99
|
"human": true,
|
|
77
100
|
"depends_on": [
|
|
78
|
-
"
|
|
101
|
+
"specify"
|
|
79
102
|
],
|
|
80
103
|
"input_contract": [
|
|
81
|
-
"
|
|
104
|
+
"residency-spec"
|
|
82
105
|
],
|
|
83
106
|
"output_contract": [
|
|
84
107
|
"lineage-verdict"
|