@eir-labs/coltrane 0.24.14 → 0.24.15
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 +5 -5
- package/agents/default-adjudicator.json +39 -0
- package/agents/deploy-agent.json +1 -2
- package/agents/deploy-scout.json +1 -2
- package/agents/lineage-scout-internal.json +14 -4
- package/agents/lineage-scribe.json +6 -6
- package/agents/lineage-weaver.json +8 -8
- package/agents/patent-browser-scout.json +3 -1
- package/agents/proof-composer.json +38 -0
- package/agents/receipt-mapper.json +39 -0
- package/agents/reconciliation-auditor.json +45 -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/alignment-plan.json +9 -3
- package/domain_types/branch-state.json +12 -3
- package/domain_types/change-decision.json +32 -7
- package/domain_types/change-plan.json +41 -12
- package/domain_types/change-request.json +37 -7
- package/domain_types/change-set.json +40 -11
- package/domain_types/change-verdict.json +42 -6
- package/domain_types/deploy-verdict.json +21 -3
- package/domain_types/design-brief.json +48 -9
- package/domain_types/design-concept.json +40 -9
- package/domain_types/design-definition.json +40 -9
- package/domain_types/design-question.json +26 -5
- package/domain_types/design-verdict.json +42 -6
- package/domain_types/draft-agent-profile.json +75 -14
- package/domain_types/draft-domain-type.json +56 -11
- package/domain_types/draft-standard.json +57 -15
- package/domain_types/internal-inventory.json +15 -5
- package/domain_types/lineage-adoption-target.json +4 -1
- package/domain_types/lineage-hit.json +19 -6
- package/domain_types/lineage-map.json +35 -8
- package/domain_types/lineage-question.json +13 -4
- package/domain_types/lineage-record.json +71 -18
- package/domain_types/lineage-verdict.json +9 -3
- package/domain_types/parsed-conversation-trace.json +54 -13
- package/domain_types/pattern-extraction.json +91 -21
- package/domain_types/preview-deployment.json +37 -8
- package/domain_types/project-charter.json +59 -16
- package/domain_types/proof-of-work-contract.json +86 -0
- package/domain_types/reconciliation-map.json +90 -0
- package/domain_types/reconciliation-record.json +52 -0
- package/domain_types/red-spec.json +2 -2
- package/domain_types/repo-survey.json +84 -14
- package/domain_types/seeding-verdict.json +93 -27
- package/domain_types/soft-verdict.json +45 -10
- package/domain_types/user-flow-transcript.json +36 -10
- package/domain_types/user-flow-verdict.json +57 -13
- package/package.json +1 -1
- package/standards/lineage-adopt-v0.json +2 -2
- package/standards/lineage-deepen-v0.json +12 -4
- package/standards/lineage-pass-v1.json +60 -17
- package/standards/lineage-reweave-v0.json +34 -10
- package/standards/patent-triage-v1.json +170 -12
- package/standards/product-design-v1.json +4 -4
- package/standards/reconcile-work-order-v0.json +137 -0
- package/standards/software-change-v1.json +5 -5
- package/standards/user_flow_correctness.json +3 -3
|
@@ -8,13 +8,43 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"request_text":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
"request_text": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The change as stated by the requester, unparaphrased."
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Repository or working-tree identifier the change lands in."
|
|
18
|
+
},
|
|
19
|
+
"target_paths": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"description": "Paths the requester believes are in scope. A belief, not a finding — the reading phase may contradict it."
|
|
25
|
+
},
|
|
26
|
+
"acceptance_criteria": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"description": "Observations that would show the change was made. Each entry must be checkable by someone who did not write the change."
|
|
32
|
+
},
|
|
33
|
+
"out_of_scope": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
},
|
|
38
|
+
"description": "Work the requester explicitly excludes."
|
|
39
|
+
},
|
|
40
|
+
"requested_by": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "The requesting party."
|
|
43
|
+
},
|
|
44
|
+
"change_set_branch": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "The change-set branch (changeset/<originating-gig-uuid>[/<slug>]) the implementation run must work on. CARRIED here, never inferred from the working tree. Optional and additive: a request that omits it is refused as branch-absent-but-expected only where a run needs it."
|
|
47
|
+
}
|
|
18
48
|
}
|
|
19
49
|
},
|
|
20
50
|
"required_fields": [
|
|
@@ -8,31 +8,60 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"diffs":
|
|
11
|
+
"diffs": {
|
|
12
12
|
"type": "array",
|
|
13
13
|
"description": "Per-path patch content, in unified-diff form.",
|
|
14
14
|
"items": {
|
|
15
15
|
"type": "object",
|
|
16
16
|
"properties": {
|
|
17
|
-
"path":
|
|
18
|
-
|
|
17
|
+
"path": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"patch": {
|
|
21
|
+
"type": "string"
|
|
22
|
+
}
|
|
19
23
|
},
|
|
20
|
-
"required": [
|
|
24
|
+
"required": [
|
|
25
|
+
"path",
|
|
26
|
+
"patch"
|
|
27
|
+
]
|
|
21
28
|
}
|
|
22
29
|
},
|
|
23
|
-
"tests_added": {
|
|
24
|
-
|
|
25
|
-
|
|
30
|
+
"tests_added": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"description": "Checks introduced by this change, named so a verifier can run exactly them."
|
|
36
|
+
},
|
|
37
|
+
"rationale": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"description": "The non-obvious choices this change makes, each with the reason it was made."
|
|
43
|
+
},
|
|
44
|
+
"departures": {
|
|
26
45
|
"type": "array",
|
|
27
46
|
"description": "Where the artefact left the plan, and why.",
|
|
28
47
|
"items": {
|
|
29
48
|
"type": "object",
|
|
30
49
|
"properties": {
|
|
31
|
-
"from_step": {
|
|
32
|
-
|
|
33
|
-
|
|
50
|
+
"from_step": {
|
|
51
|
+
"type": "string"
|
|
52
|
+
},
|
|
53
|
+
"instead": {
|
|
54
|
+
"type": "string"
|
|
55
|
+
},
|
|
56
|
+
"why": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
34
59
|
},
|
|
35
|
-
"required": [
|
|
60
|
+
"required": [
|
|
61
|
+
"from_step",
|
|
62
|
+
"instead",
|
|
63
|
+
"why"
|
|
64
|
+
]
|
|
36
65
|
}
|
|
37
66
|
}
|
|
38
67
|
}
|
|
@@ -8,12 +8,48 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"decision_ref":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
11
|
+
"decision_ref": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The change-decision this verdict measures against."
|
|
14
|
+
},
|
|
15
|
+
"criteria_unmet": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"description": "Acceptance criteria the change does not meet, stated plainly."
|
|
21
|
+
},
|
|
22
|
+
"inferred_not_run": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"description": "Checks that could NOT be executed under the granted tools and were reasoned about instead. Required — an empty list is a claim that everything ran."
|
|
28
|
+
},
|
|
29
|
+
"failures_verbatim": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"description": "Failure output as the tool reported it: messages, counts, names. Not summaries of them."
|
|
35
|
+
},
|
|
36
|
+
"scope_drift": {
|
|
37
|
+
"type": "array",
|
|
38
|
+
"items": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"description": "Where the change exceeded or fell short of the fixed scope."
|
|
42
|
+
},
|
|
43
|
+
"recommendation": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"enum": [
|
|
46
|
+
"accept",
|
|
47
|
+
"amend",
|
|
48
|
+
"reject",
|
|
49
|
+
"insufficient-evidence"
|
|
50
|
+
],
|
|
51
|
+
"description": "insufficient-evidence is the honest answer when the granted tools could not check what the verdict turns on."
|
|
52
|
+
}
|
|
17
53
|
}
|
|
18
54
|
},
|
|
19
55
|
"required_fields": [
|
|
@@ -8,9 +8,27 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"terminal_state":
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
"terminal_state": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"enum": [
|
|
14
|
+
"READY",
|
|
15
|
+
"ERROR",
|
|
16
|
+
"CANCELED",
|
|
17
|
+
"UNSETTLED"
|
|
18
|
+
],
|
|
19
|
+
"description": "The build's terminal readyState, or UNSETTLED when the poll budget was spent before any terminal state was observed."
|
|
20
|
+
},
|
|
21
|
+
"logs_tail": {
|
|
22
|
+
"type": "array",
|
|
23
|
+
"items": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"description": "The tail of the build log, present only when terminal_state is not READY."
|
|
27
|
+
},
|
|
28
|
+
"deadline_exceeded": {
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"description": "True when the bounded poll loop reached its max_tool_calls ceiling without a terminal readyState. Pairs with terminal_state UNSETTLED and pass false."
|
|
31
|
+
}
|
|
14
32
|
}
|
|
15
33
|
},
|
|
16
34
|
"required_fields": [
|
|
@@ -8,23 +8,62 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"observations":
|
|
11
|
+
"observations": {
|
|
12
12
|
"type": "array",
|
|
13
13
|
"description": "What was found, each with the locator it was found through.",
|
|
14
14
|
"items": {
|
|
15
15
|
"type": "object",
|
|
16
16
|
"properties": {
|
|
17
|
-
"observation": {
|
|
18
|
-
|
|
17
|
+
"observation": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"locator": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Tool plus path or query that produced this observation."
|
|
23
|
+
}
|
|
19
24
|
},
|
|
20
|
-
"required": [
|
|
25
|
+
"required": [
|
|
26
|
+
"observation"
|
|
27
|
+
]
|
|
21
28
|
}
|
|
22
29
|
},
|
|
23
|
-
"audience_segments":
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
"audience_segments": {
|
|
31
|
+
"type": "array",
|
|
32
|
+
"items": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"description": "Distinguishable groups the question lands differently for."
|
|
36
|
+
},
|
|
37
|
+
"unmet_needs": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"description": "Needs the current state does not serve. Findings, not proposals."
|
|
43
|
+
},
|
|
44
|
+
"adjacent_questions": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
49
|
+
"description": "Questions the exploration surfaced that the posed question did not contain."
|
|
50
|
+
},
|
|
51
|
+
"divergence_breadth": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": [
|
|
54
|
+
"narrow",
|
|
55
|
+
"moderate",
|
|
56
|
+
"wide"
|
|
57
|
+
],
|
|
58
|
+
"description": "How far the exploration actually reached, judged against the material available rather than against effort spent."
|
|
59
|
+
},
|
|
60
|
+
"unknowns": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
},
|
|
65
|
+
"description": "What the exploration could not determine. Required: the honest bound of the divergence."
|
|
66
|
+
}
|
|
28
67
|
}
|
|
29
68
|
},
|
|
30
69
|
"required_fields": [
|
|
@@ -8,23 +8,54 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"concept_name":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
11
|
+
"concept_name": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Short handle for the concept."
|
|
14
|
+
},
|
|
15
|
+
"description": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "What it is, in the audience's register."
|
|
18
|
+
},
|
|
19
|
+
"mechanism": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"description": "How it works, step by step. The part that distinguishes a concept from a wish."
|
|
25
|
+
},
|
|
26
|
+
"addresses": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"description": "Which success criteria from the definition this concept answers, named individually."
|
|
32
|
+
},
|
|
33
|
+
"tradeoffs": {
|
|
16
34
|
"type": "array",
|
|
17
35
|
"description": "What this concept gives up, and what it buys with it.",
|
|
18
36
|
"items": {
|
|
19
37
|
"type": "object",
|
|
20
38
|
"properties": {
|
|
21
|
-
"gives_up": {
|
|
22
|
-
|
|
39
|
+
"gives_up": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"buys": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
}
|
|
23
45
|
},
|
|
24
|
-
"required": [
|
|
46
|
+
"required": [
|
|
47
|
+
"gives_up",
|
|
48
|
+
"buys"
|
|
49
|
+
]
|
|
25
50
|
}
|
|
26
51
|
},
|
|
27
|
-
"open_questions":
|
|
52
|
+
"open_questions": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "string"
|
|
56
|
+
},
|
|
57
|
+
"description": "What remains unresolved in the concept as built."
|
|
58
|
+
}
|
|
28
59
|
}
|
|
29
60
|
},
|
|
30
61
|
"required_fields": [
|
|
@@ -8,23 +8,54 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"problem_statement": {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
11
|
+
"problem_statement": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The single problem the run commits to solving, stated so that a solution to a different problem would be visibly off-target."
|
|
14
|
+
},
|
|
15
|
+
"in_scope": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"description": "What the second diamond may explore."
|
|
21
|
+
},
|
|
22
|
+
"out_of_scope": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"description": "What it may not, and the neighbouring problems this one must not collapse into."
|
|
28
|
+
},
|
|
29
|
+
"success_criteria": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"description": "Observations that would confirm the problem was solved. Each checkable by someone who did not do the work."
|
|
35
|
+
},
|
|
36
|
+
"discarded": {
|
|
16
37
|
"type": "array",
|
|
17
38
|
"description": "Problems the brief surfaced and this definition set aside, each with its reason.",
|
|
18
39
|
"items": {
|
|
19
40
|
"type": "object",
|
|
20
41
|
"properties": {
|
|
21
|
-
"problem": {
|
|
22
|
-
|
|
42
|
+
"problem": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"reason": {
|
|
46
|
+
"type": "string"
|
|
47
|
+
}
|
|
23
48
|
},
|
|
24
|
-
"required": [
|
|
49
|
+
"required": [
|
|
50
|
+
"problem",
|
|
51
|
+
"reason"
|
|
52
|
+
]
|
|
25
53
|
}
|
|
26
54
|
},
|
|
27
|
-
"audience":
|
|
55
|
+
"audience": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "Who the delivered answer is for, carried forward from the seed."
|
|
58
|
+
}
|
|
28
59
|
}
|
|
29
60
|
},
|
|
30
61
|
"required_fields": [
|
|
@@ -8,11 +8,32 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"question":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
11
|
+
"question": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The question as posed, unparaphrased."
|
|
14
|
+
},
|
|
15
|
+
"audience": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Who the eventual answer is for."
|
|
18
|
+
},
|
|
19
|
+
"known_context": {
|
|
20
|
+
"type": "array",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"description": "What the requester already holds as established."
|
|
25
|
+
},
|
|
26
|
+
"constraints": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"description": "Bounds the answer must respect regardless of what the exploration finds."
|
|
32
|
+
},
|
|
33
|
+
"success_signal": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "What the requester would observe if the run answered well."
|
|
36
|
+
}
|
|
16
37
|
}
|
|
17
38
|
},
|
|
18
39
|
"required_fields": [
|
|
@@ -8,12 +8,48 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"definition_ref":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
11
|
+
"definition_ref": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The design-definition this verdict measures against."
|
|
14
|
+
},
|
|
15
|
+
"criteria_met": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"items": {
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"description": "Success criteria the concept satisfies, each with the observation that shows it."
|
|
21
|
+
},
|
|
22
|
+
"criteria_unmet": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"items": {
|
|
25
|
+
"type": "string"
|
|
26
|
+
},
|
|
27
|
+
"description": "Success criteria the concept does not satisfy, stated plainly and unsoftened."
|
|
28
|
+
},
|
|
29
|
+
"inferred_not_run": {
|
|
30
|
+
"type": "array",
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"description": "Criteria judged by reasoning because no check could be executed. Required — an empty list is a claim that everything was observed."
|
|
35
|
+
},
|
|
36
|
+
"scope_drift": {
|
|
37
|
+
"type": "array",
|
|
38
|
+
"items": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"description": "Where the concept answers a different problem than the one defined."
|
|
42
|
+
},
|
|
43
|
+
"recommendation": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"enum": [
|
|
46
|
+
"deliver",
|
|
47
|
+
"iterate",
|
|
48
|
+
"redefine",
|
|
49
|
+
"insufficient-evidence"
|
|
50
|
+
],
|
|
51
|
+
"description": "redefine returns the run to the first seam: the concept is sound but the problem was the wrong one."
|
|
52
|
+
}
|
|
17
53
|
}
|
|
18
54
|
},
|
|
19
55
|
"required_fields": [
|
|
@@ -8,24 +8,85 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"input_refs":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
11
|
+
"input_refs": {
|
|
12
|
+
"type": "array",
|
|
13
|
+
"items": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"description": "References to the pattern-extraction this draft is derived from."
|
|
17
|
+
},
|
|
18
|
+
"slug": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Proposed agent slug, kebab-case."
|
|
21
|
+
},
|
|
22
|
+
"description": {
|
|
23
|
+
"type": "string",
|
|
24
|
+
"description": "One-line description for the .claude/agents/<slug>.md frontmatter."
|
|
25
|
+
},
|
|
26
|
+
"behavioral_primitives": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"items": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"description": "Proposed behavioral primitives (max 2 per coltrane convention)."
|
|
32
|
+
},
|
|
33
|
+
"domain": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Proposed domain slug (inferred from the user's work)."
|
|
36
|
+
},
|
|
37
|
+
"tools_allowlist": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"description": "Proposed coltrane MCP tools allowlist."
|
|
43
|
+
},
|
|
44
|
+
"model_tier": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"enum": [
|
|
47
|
+
"economy",
|
|
48
|
+
"standard",
|
|
49
|
+
"premium"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"code_tool_access": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": [
|
|
55
|
+
"none",
|
|
56
|
+
"read",
|
|
57
|
+
"write",
|
|
58
|
+
"full"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"system_prompt_draft": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "Draft body for the agent .md file — what Claude reads as system prompt when dispatched as this subagent."
|
|
64
|
+
},
|
|
65
|
+
"evidence_summary": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "Why this agent is proposed: which patterns + which repos."
|
|
68
|
+
},
|
|
69
|
+
"user_acceptance": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"enum": [
|
|
72
|
+
"pending",
|
|
73
|
+
"accepted",
|
|
74
|
+
"rejected",
|
|
75
|
+
"refined"
|
|
76
|
+
],
|
|
24
77
|
"default": "pending",
|
|
25
78
|
"description": "User's verdict at the seam: pending = not yet reviewed; accepted = adopt to active fleet; rejected = discard; refined = user edited fields, re-propose."
|
|
26
79
|
}
|
|
27
80
|
},
|
|
28
|
-
"required": [
|
|
81
|
+
"required": [
|
|
82
|
+
"input_refs",
|
|
83
|
+
"slug",
|
|
84
|
+
"description",
|
|
85
|
+
"behavioral_primitives",
|
|
86
|
+
"system_prompt_draft",
|
|
87
|
+
"user_acceptance",
|
|
88
|
+
"validation_criteria"
|
|
89
|
+
]
|
|
29
90
|
},
|
|
30
91
|
"required_fields": []
|
|
31
92
|
}
|