@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,55 +8,125 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"input_refs":
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
"input_refs": {
|
|
12
|
+
"type": "array",
|
|
13
|
+
"items": {
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"description": "References to the repo-survey outputs this extraction is derived from."
|
|
17
|
+
},
|
|
18
|
+
"user_signature": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "One-line characterization of the user's working pattern (e.g., 'rapid cross-domain research with TDD-flavored code changes')."
|
|
21
|
+
},
|
|
14
22
|
"recurrent_workflows": {
|
|
15
23
|
"type": "array",
|
|
16
24
|
"description": "Observable multi-step sequences the user runs across repos (e.g., 'fetch dataset → run analysis → write results doc → OTS-stamp').",
|
|
17
25
|
"items": {
|
|
18
26
|
"type": "object",
|
|
19
27
|
"properties": {
|
|
20
|
-
"name":
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
28
|
+
"name": {
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"steps": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "string"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"evidence_repos": {
|
|
38
|
+
"type": "array",
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
"description": "Which repos exhibit this pattern."
|
|
43
|
+
},
|
|
44
|
+
"frequency": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"enum": [
|
|
47
|
+
"once",
|
|
48
|
+
"occasional",
|
|
49
|
+
"frequent",
|
|
50
|
+
"dominant"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
24
53
|
},
|
|
25
|
-
"required": [
|
|
54
|
+
"required": [
|
|
55
|
+
"name",
|
|
56
|
+
"steps",
|
|
57
|
+
"evidence_repos"
|
|
58
|
+
]
|
|
26
59
|
}
|
|
27
60
|
},
|
|
28
|
-
|
|
29
61
|
"agent_like_roles": {
|
|
30
62
|
"type": "array",
|
|
31
63
|
"description": "Implicit roles the user plays (or scripts they've written) that map to coltrane agent shapes.",
|
|
32
64
|
"items": {
|
|
33
65
|
"type": "object",
|
|
34
66
|
"properties": {
|
|
35
|
-
"role":
|
|
36
|
-
|
|
37
|
-
|
|
67
|
+
"role": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"implicit_primitives": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
},
|
|
75
|
+
"description": "Behavioral primitives this role would map to (analyst, executor, etc.)."
|
|
76
|
+
},
|
|
77
|
+
"evidence": {
|
|
78
|
+
"type": "string",
|
|
79
|
+
"description": "What in the surveys suggests this role."
|
|
80
|
+
}
|
|
38
81
|
},
|
|
39
|
-
"required": [
|
|
82
|
+
"required": [
|
|
83
|
+
"role",
|
|
84
|
+
"evidence"
|
|
85
|
+
]
|
|
40
86
|
}
|
|
41
87
|
},
|
|
42
|
-
|
|
43
88
|
"recurrent_domain_shapes": {
|
|
44
89
|
"type": "array",
|
|
45
90
|
"description": "Data shapes the user repeatedly works with (e.g., 'time-series with channel + bandpass metadata').",
|
|
46
91
|
"items": {
|
|
47
92
|
"type": "object",
|
|
48
93
|
"properties": {
|
|
49
|
-
"shape_name":
|
|
50
|
-
|
|
51
|
-
|
|
94
|
+
"shape_name": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
97
|
+
"schema_hint": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"description": "Loose JSON-schema-ish hint, not a binding type definition."
|
|
100
|
+
},
|
|
101
|
+
"evidence_repos": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": {
|
|
104
|
+
"type": "string"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
52
107
|
},
|
|
53
|
-
"required": [
|
|
108
|
+
"required": [
|
|
109
|
+
"shape_name",
|
|
110
|
+
"evidence_repos"
|
|
111
|
+
]
|
|
54
112
|
}
|
|
55
113
|
},
|
|
56
|
-
|
|
57
|
-
|
|
114
|
+
"confidence_band": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"enum": [
|
|
117
|
+
"high",
|
|
118
|
+
"moderate",
|
|
119
|
+
"low"
|
|
120
|
+
],
|
|
121
|
+
"description": "How confident is this read across the survey cohort?"
|
|
122
|
+
}
|
|
58
123
|
},
|
|
59
|
-
"required": [
|
|
124
|
+
"required": [
|
|
125
|
+
"input_refs",
|
|
126
|
+
"user_signature",
|
|
127
|
+
"confidence_band",
|
|
128
|
+
"claims"
|
|
129
|
+
]
|
|
60
130
|
},
|
|
61
131
|
"required_fields": []
|
|
62
132
|
}
|
|
@@ -8,14 +8,43 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"preview_url":
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
"preview_url": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The reachable preview URL from POST /v13/deployments (the deployment's url, https-prefixed)."
|
|
14
|
+
},
|
|
15
|
+
"commit_sha": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "The exact commit deployed, sensed from branch HEAD — not read out of the change-set."
|
|
18
|
+
},
|
|
19
|
+
"branch": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "The git branch deployed to the preview target."
|
|
22
|
+
},
|
|
23
|
+
"project_id": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "The Vercel project id (prj_...) the deployment belongs to."
|
|
26
|
+
},
|
|
27
|
+
"deployment_id": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"description": "The Vercel deployment id (dpl_...), read later by a promote chair to call the promote API."
|
|
30
|
+
},
|
|
31
|
+
"build_status": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "The last observed Vercel readyState: QUEUED | INITIALIZING | BUILDING | READY | ERROR | CANCELED."
|
|
34
|
+
},
|
|
35
|
+
"protection": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"enum": [
|
|
38
|
+
"vercel-sso",
|
|
39
|
+
"supabase-auth",
|
|
40
|
+
"public"
|
|
41
|
+
],
|
|
42
|
+
"description": "How the preview URL is gated. supabase-auth is the phone-reachable mode required at the approval gate."
|
|
43
|
+
},
|
|
44
|
+
"inspector_url": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "The Vercel inspector/dashboard URL for the deployment, when the response carried it."
|
|
47
|
+
}
|
|
19
48
|
}
|
|
20
49
|
},
|
|
21
50
|
"required_fields": [
|
|
@@ -8,14 +8,25 @@
|
|
|
8
8
|
"schema": {
|
|
9
9
|
"type": "object",
|
|
10
10
|
"properties": {
|
|
11
|
-
"id": {
|
|
12
|
-
|
|
11
|
+
"id": {
|
|
12
|
+
"type": "string"
|
|
13
|
+
},
|
|
14
|
+
"name": {
|
|
15
|
+
"type": "string"
|
|
16
|
+
},
|
|
13
17
|
"use_case": {
|
|
14
18
|
"type": "string",
|
|
15
|
-
"enum": [
|
|
19
|
+
"enum": [
|
|
20
|
+
"code-changes",
|
|
21
|
+
"research-briefs",
|
|
22
|
+
"operations",
|
|
23
|
+
"mixed",
|
|
24
|
+
"bare"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
"template": {
|
|
28
|
+
"type": "string"
|
|
16
29
|
},
|
|
17
|
-
"template": { "type": "string" },
|
|
18
|
-
|
|
19
30
|
"scope": {
|
|
20
31
|
"type": "string",
|
|
21
32
|
"description": "What the project will do."
|
|
@@ -28,44 +39,76 @@
|
|
|
28
39
|
"type": "string",
|
|
29
40
|
"description": "What this project is explicitly NOT."
|
|
30
41
|
},
|
|
31
|
-
|
|
32
42
|
"preseed_agents": {
|
|
33
43
|
"type": "array",
|
|
34
|
-
"items": {
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
35
47
|
"description": "Slugs of agents to ship in the scaffolded .coltrane/agents/."
|
|
36
48
|
},
|
|
37
49
|
"preseed_standards": {
|
|
38
50
|
"type": "array",
|
|
39
|
-
"items": {
|
|
51
|
+
"items": {
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
40
54
|
"description": "Slugs of standards to ship in .coltrane/standards/."
|
|
41
55
|
},
|
|
42
56
|
"preseed_skills": {
|
|
43
57
|
"type": "array",
|
|
44
|
-
"items": {
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string"
|
|
60
|
+
},
|
|
45
61
|
"description": "Slugs of skills to ship in .coltrane/skills/."
|
|
46
62
|
},
|
|
47
63
|
"default_model_tier": {
|
|
48
64
|
"type": "string",
|
|
49
|
-
"enum": [
|
|
65
|
+
"enum": [
|
|
66
|
+
"economy",
|
|
67
|
+
"standard",
|
|
68
|
+
"premium"
|
|
69
|
+
],
|
|
50
70
|
"default": "standard"
|
|
51
71
|
},
|
|
52
72
|
"default_code_tool_access": {
|
|
53
73
|
"type": "string",
|
|
54
|
-
"enum": [
|
|
74
|
+
"enum": [
|
|
75
|
+
"none",
|
|
76
|
+
"read",
|
|
77
|
+
"write",
|
|
78
|
+
"full"
|
|
79
|
+
],
|
|
55
80
|
"default": "read"
|
|
56
81
|
},
|
|
57
|
-
|
|
58
82
|
"outcome": {
|
|
59
|
-
"type": [
|
|
60
|
-
|
|
83
|
+
"type": [
|
|
84
|
+
"string",
|
|
85
|
+
"null"
|
|
86
|
+
],
|
|
87
|
+
"enum": [
|
|
88
|
+
null,
|
|
89
|
+
"completed",
|
|
90
|
+
"partial",
|
|
91
|
+
"refined",
|
|
92
|
+
"aborted",
|
|
93
|
+
"unverified"
|
|
94
|
+
],
|
|
61
95
|
"description": "Set at DELIVER. unverified = outcome cannot be computed."
|
|
62
96
|
},
|
|
63
97
|
"outcome_at": {
|
|
64
|
-
"type": [
|
|
98
|
+
"type": [
|
|
99
|
+
"string",
|
|
100
|
+
"null"
|
|
101
|
+
],
|
|
65
102
|
"format": "date-time"
|
|
66
103
|
}
|
|
67
104
|
},
|
|
68
|
-
"required": [
|
|
105
|
+
"required": [
|
|
106
|
+
"id",
|
|
107
|
+
"name",
|
|
108
|
+
"use_case",
|
|
109
|
+
"scope",
|
|
110
|
+
"steps"
|
|
111
|
+
]
|
|
69
112
|
},
|
|
70
113
|
"required_fields": []
|
|
71
114
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "proof-of-work-contract",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"extends": "Artifact",
|
|
5
|
+
"domain": "software-change",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"description": "The composed PROOF OF WORK for a work order's reconciliation (WO-F02, Documenso #1917537): the cold map, the hot audit's findings, and a verdict per clause, folded into one contract and written as a sealed output — the engine stamps its content_sha and input_shas, so the contract is content-addressed by construction, never by an agent's own hashing. This is what the sovereign settles against and what a DEFAULT cites: the document that makes 'the work was done' a checkable claim instead of a recollection.",
|
|
8
|
+
"schema": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"work_order_id": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The chancery_work_order.id this contract reconciles."
|
|
14
|
+
},
|
|
15
|
+
"cold_map_ref": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "content_sha (or output id) of the sealed reconciliation-map this contract composes from."
|
|
18
|
+
},
|
|
19
|
+
"audit_verdict_ref": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "content_sha (or output id) of the sealed hot-audit change-verdict this contract composes from."
|
|
22
|
+
},
|
|
23
|
+
"clause_verdicts": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"minItems": 1,
|
|
26
|
+
"description": "One verdict per clause of the order — the cold map's row joined with the audit's finding for that clause. Copies only: the composer draws no verdict of its own.",
|
|
27
|
+
"items": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"properties": {
|
|
30
|
+
"clause_ref": {
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"clause_kind": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"enum": [
|
|
36
|
+
"article",
|
|
37
|
+
"terminal",
|
|
38
|
+
"receipt_due"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"receipt_status": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"enum": [
|
|
44
|
+
"receipted",
|
|
45
|
+
"absent"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"audit_finding": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "The audit's verdict for this clause, verbatim: upheld, refuted (with the refutation), or unaudited (with why — e.g. budget exhausted, receipt absent)."
|
|
51
|
+
},
|
|
52
|
+
"evidence_refs": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "string"
|
|
56
|
+
},
|
|
57
|
+
"description": "The citations the finding rests on — output ids, file paths, URLs probed, check names run."
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"required": [
|
|
61
|
+
"clause_ref",
|
|
62
|
+
"receipt_status",
|
|
63
|
+
"audit_finding"
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"proposed_state": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"enum": [
|
|
70
|
+
"satisfied",
|
|
71
|
+
"defaulted"
|
|
72
|
+
],
|
|
73
|
+
"description": "What the composed evidence supports — a PROPOSAL only. The adjudicator rules on default; only the sovereign, settling at the human seat, records 'satisfied'."
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"required_fields": [
|
|
78
|
+
"work_order_id",
|
|
79
|
+
"cold_map_ref",
|
|
80
|
+
"audit_verdict_ref",
|
|
81
|
+
"clause_verdicts",
|
|
82
|
+
"proposed_state",
|
|
83
|
+
"input_refs",
|
|
84
|
+
"content"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "reconciliation-map",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"extends": "Interpretation",
|
|
5
|
+
"domain": "software-change",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"description": "The COLD MAP of a work order's reconciliation (WO-F02, Documenso #1917537): every clause of the order — each article, each terminal, each receipts_due type — matched deterministically against the receipts actually landed (chancery_work_order_receipt rows and the completed_output_id FK into the sealed output chain). A clause with no receipt is listed ABSENT, never omitted. This is clerical work: no model judgment, no spend against the reconciliation budget — the map restates rows, it does not evaluate them.",
|
|
8
|
+
"schema": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"work_order_id": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The chancery_work_order.id this map reconciles."
|
|
14
|
+
},
|
|
15
|
+
"reconciliation_owner": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "chancery_work_order.reconciliation_owner — who reconciles: the bond's bonded_party or a named agent/chair."
|
|
18
|
+
},
|
|
19
|
+
"reconciliation_budget": {
|
|
20
|
+
"type": "number",
|
|
21
|
+
"description": "chancery_work_order.reconciliation_budget — the declared heat cap the hot audit must spend within."
|
|
22
|
+
},
|
|
23
|
+
"reconciliation_due_at": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"description": "chancery_work_order.reconciliation_due_at (ISO-8601) — the committed date the sweep fires at regardless of any completion signal."
|
|
26
|
+
},
|
|
27
|
+
"past_due": {
|
|
28
|
+
"type": "boolean",
|
|
29
|
+
"description": "Whether the mapping ran after reconciliation_due_at. Deterministic: map time vs the due timestamp."
|
|
30
|
+
},
|
|
31
|
+
"clauses": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"minItems": 1,
|
|
34
|
+
"description": "One row per clause of the order — every article, terminal, and receipts_due type. Nothing is skipped: an unmatched clause appears with status 'absent'.",
|
|
35
|
+
"items": {
|
|
36
|
+
"type": "object",
|
|
37
|
+
"properties": {
|
|
38
|
+
"clause_ref": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Which clause: an article title/index, a terminal role, or a receipts_due type name."
|
|
41
|
+
},
|
|
42
|
+
"clause_kind": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"article",
|
|
46
|
+
"terminal",
|
|
47
|
+
"receipt_due"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"receipt_output_ids": {
|
|
51
|
+
"type": "array",
|
|
52
|
+
"items": {
|
|
53
|
+
"type": "string"
|
|
54
|
+
},
|
|
55
|
+
"description": "The coltrane_outputs ids (via chancery_work_order_receipt.output_id or completed_output_id) matched to this clause. Empty when absent."
|
|
56
|
+
},
|
|
57
|
+
"status": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"enum": [
|
|
60
|
+
"receipted",
|
|
61
|
+
"absent"
|
|
62
|
+
],
|
|
63
|
+
"description": "receipted: at least one sealed receipt matches. absent: no receipt exists — stated plainly, never inferred away."
|
|
64
|
+
},
|
|
65
|
+
"locator": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"description": "Where the matching rows were read from (table/view + key), so the map is re-runnable."
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"clause_ref",
|
|
72
|
+
"clause_kind",
|
|
73
|
+
"status"
|
|
74
|
+
]
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"absent_count": {
|
|
78
|
+
"type": "number",
|
|
79
|
+
"description": "The number of clauses with status 'absent'. Zero is a claim like any other: it must equal the count in clauses."
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"required_fields": [
|
|
84
|
+
"work_order_id",
|
|
85
|
+
"clauses",
|
|
86
|
+
"absent_count",
|
|
87
|
+
"input_refs",
|
|
88
|
+
"claims"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "reconciliation-record",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"extends": "Judgment",
|
|
5
|
+
"domain": "software-change",
|
|
6
|
+
"status": "active",
|
|
7
|
+
"description": "The adjudicated (and, at the human seat, settled) reconciliation of a work order — the record whose reconciliation_state lands in chancery_work_order.reconciliation_state. Its state vocabulary is EXACTLY the DB check constraint ('pending' | 'satisfied' | 'defaulted'): the default-adjudicator seals 'defaulted' (past reconciliation_due_at with clauses unreceipted) or 'pending' (awaiting the sovereign); only the human settling seal records 'satisfied'. A defaulted record cites the absences that defaulted it — abandonment is shown, not summarized.",
|
|
8
|
+
"schema": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"work_order_id": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "The chancery_work_order.id this record reconciles."
|
|
14
|
+
},
|
|
15
|
+
"reconciliation_state": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": [
|
|
18
|
+
"pending",
|
|
19
|
+
"satisfied",
|
|
20
|
+
"defaulted"
|
|
21
|
+
],
|
|
22
|
+
"description": "Mirrors the chancery_work_order.reconciliation_state check constraint, byte for byte."
|
|
23
|
+
},
|
|
24
|
+
"proof_of_work_ref": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "content_sha (or output id) of the sealed proof-of-work-contract this record rules on."
|
|
27
|
+
},
|
|
28
|
+
"basis": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "The deterministic rule applied, restated with its inputs: past_due (yes/no), absent_count, and — for 'satisfied' — the settling seat."
|
|
31
|
+
},
|
|
32
|
+
"defaulted_clauses": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"items": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
},
|
|
37
|
+
"description": "For a 'defaulted' record: the clause_refs still absent at ruling time, copied from the cold map. Empty for other states."
|
|
38
|
+
},
|
|
39
|
+
"settled_by": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "For a 'satisfied' record: the human seat that settled — the reconciliation_owner (or the governor, where the order names that terminal)."
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"required_fields": [
|
|
46
|
+
"work_order_id",
|
|
47
|
+
"reconciliation_state",
|
|
48
|
+
"proof_of_work_ref",
|
|
49
|
+
"basis",
|
|
50
|
+
"input_refs"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"patch": {
|
|
24
24
|
"type": "string",
|
|
25
|
-
"description": "The unified diff itself, not a description of it. The spec-drafting review chair reads test bodies OUT OF THIS FIELD ('read each red test in the diffs'), so this is the evidence the gate adjudicates, not documentation of the change. Observed on gig 34ff466b: every patch sealed as a one-line summary ('full unified diff captured from git diff --cached ... content present verbatim in the working tree at this path')
|
|
25
|
+
"description": "The unified diff itself, not a description of it. The spec-drafting review chair reads test bodies OUT OF THIS FIELD ('read each red test in the diffs'), so this is the evidence the gate adjudicates, not documentation of the change. Observed on gig 34ff466b: every patch sealed as a one-line summary ('full unified diff captured from git diff --cached ... content present verbatim in the working tree at this path') — true, and useless as evidence. The reviewer refused, correctly, marking NON-TAUTOLOGY and REDNESS 'NOT RUN'. The gate was not failed, it was STARVED, and the seal accepted that silently because the type asked only for a string.",
|
|
26
26
|
"pattern": "(^|\\n)[+-]"
|
|
27
27
|
}
|
|
28
28
|
},
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
},
|
|
62
62
|
"uncovered": {
|
|
63
63
|
"type": "array",
|
|
64
|
-
"description": "Contract invariants with no red test
|
|
64
|
+
"description": "Contract invariants with no red test — MUST be empty.",
|
|
65
65
|
"items": {
|
|
66
66
|
"type": "string"
|
|
67
67
|
}
|