owlrunkit 0.18.4 → 0.19.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.
Files changed (50) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +109 -4
  3. package/docs/architecture/OWLCODA_RUNKIT_0190_CONSOLIDATED_DAILY_USE_PRODUCT_DECISION_20260812.md +100 -0
  4. package/docs/architecture/OWLCODA_RUNKIT_0191_PROFILE_RECONCILE_PATCH_PRODUCT_DECISION_20260813.md +30 -0
  5. package/docs/architecture/OWLCODA_RUN_KIT_CONTRACT_V0_2.md +57 -0
  6. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +28 -4
  7. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
  8. package/integrations/codex/skills/owlcoda-runkit/references/contract-v0.2.md +57 -0
  9. package/package.json +1 -1
  10. package/packages/attest/README.md +9 -5
  11. package/packages/attest/consumer-surface-v2.json +263 -0
  12. package/packages/attest/distribution-manifest-v1.json +14 -1
  13. package/packages/attest/schemas/quick-verification-receipt-v3.schema.json +244 -0
  14. package/packages/attest/schemas/workspace-snapshot-v2.schema.json +114 -0
  15. package/packages/attest/src/dependency-environment.mjs +128 -0
  16. package/packages/attest/src/index.mjs +1 -0
  17. package/packages/attest/src/quick-receipt-contract.mjs +202 -9
  18. package/packages/attest/src/quick.mjs +45 -4
  19. package/packages/attest/src/workspace-snapshot.mjs +133 -6
  20. package/registry-release-policy-v1.json +5 -5
  21. package/sbom.spdx.json +5 -5
  22. package/scripts/runkit-contract/core-contract.mjs +21 -1
  23. package/scripts/runkit-contract/efficiency-metrics.mjs +559 -0
  24. package/scripts/runkit-contract/evidence-store.mjs +130 -0
  25. package/scripts/runkit-contract/onboarding-bootstrap.mjs +685 -0
  26. package/scripts/runkit-contract/onboarding-doctor.mjs +2 -1
  27. package/scripts/runkit-contract/outcome-presentation.mjs +171 -0
  28. package/scripts/runkit-contract/profile-onboarding.mjs +74 -35
  29. package/scripts/runkit-contract/project-cli-resolver.mjs +26 -5
  30. package/scripts/runkit-contract/quick-evidence-reuse.mjs +590 -0
  31. package/scripts/runkit-contract/quick-isolation.mjs +314 -0
  32. package/scripts/runkit-contract/quick-metrics.mjs +51 -3
  33. package/scripts/runkit-contract/quick-receipt.mjs +31 -1
  34. package/scripts/runkit-contract/quick-verify.mjs +216 -25
  35. package/scripts/runkit-contract/quick-workspace-snapshot.mjs +1 -0
  36. package/scripts/runkit-contract/runkit-bootstrap.mjs +1 -0
  37. package/scripts/runkit-contract/runkit-cli.mjs +330 -18
  38. package/scripts/runkit-contract/runtime-transition.mjs +478 -0
  39. package/scripts/runkit-contract/schemas/efficiency-event-v1.schema.json +56 -0
  40. package/scripts/runkit-contract/schemas/efficiency-metrics-v1.schema.json +220 -0
  41. package/scripts/runkit-contract/schemas/external-runtime-report-v1.schema.json +125 -0
  42. package/scripts/runkit-contract/schemas/onboarding-bootstrap-plan-v1.schema.json +168 -0
  43. package/scripts/runkit-contract/schemas/onboarding-bootstrap-receipt-v1.schema.json +130 -0
  44. package/scripts/runkit-contract/schemas/outcome-summary-v1.schema.json +83 -0
  45. package/scripts/runkit-contract/schemas/quick-evidence-reuse-plan-v1.schema.json +59 -0
  46. package/scripts/runkit-contract/schemas/quick-evidence-reuse-receipt-v1.schema.json +79 -0
  47. package/scripts/runkit-contract/schemas/runtime-transition-receipt-v1.schema.json +185 -0
  48. package/scripts/runkit-contract/schemas/team-project-event-v4.schema.json +142 -0
  49. package/scripts/runkit-contract/team-project.mjs +704 -16
  50. package/scripts/runkit-contract/verification-envelope.mjs +15 -18
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/outcome-summary-v1.json",
4
+ "title": "OwlCoda RunKit Outcome Summary V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "result",
10
+ "headline",
11
+ "proofLevel",
12
+ "acceptanceLevels",
13
+ "proven",
14
+ "notProven",
15
+ "nextAction",
16
+ "authorizationGranted"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": { "const": "OwlCodaRunKitOutcomeSummaryV1" },
20
+ "result": { "enum": ["pass", "fail", "invalidated", "indeterminate"] },
21
+ "headline": { "type": "string", "minLength": 1 },
22
+ "proofLevel": { "enum": ["captured_verification", "no_reusable_evidence"] },
23
+ "acceptanceLevels": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": [
27
+ "candidateIdentity",
28
+ "workspaceAttestation",
29
+ "verificationCommand",
30
+ "productExperience",
31
+ "deploymentRuntime",
32
+ "productionBusiness"
33
+ ],
34
+ "properties": {
35
+ "candidateIdentity": { "enum": ["bound", "invalidated", "not_proven"] },
36
+ "workspaceAttestation": { "enum": ["unchanged", "changed", "not_proven"] },
37
+ "verificationCommand": { "enum": ["passed", "failed", "invalidated", "not_proven"] },
38
+ "productExperience": { "const": "not_proven" },
39
+ "deploymentRuntime": {
40
+ "enum": [
41
+ "not_proven",
42
+ "reported_passed",
43
+ "reported_failed_recovered",
44
+ "reported_failed_unrecovered",
45
+ "reported_indeterminate"
46
+ ]
47
+ },
48
+ "productionBusiness": { "const": "not_proven" }
49
+ }
50
+ },
51
+ "proven": {
52
+ "type": "array",
53
+ "uniqueItems": true,
54
+ "items": { "type": "string", "minLength": 1 }
55
+ },
56
+ "notProven": {
57
+ "type": "array",
58
+ "minItems": 1,
59
+ "uniqueItems": true,
60
+ "items": { "type": "string", "minLength": 1 }
61
+ },
62
+ "nextAction": { "type": "string", "minLength": 1 },
63
+ "authorizationGranted": { "const": false }
64
+ },
65
+ "examples": [{
66
+ "schemaVersion": "OwlCodaRunKitOutcomeSummaryV1",
67
+ "result": "pass",
68
+ "headline": "The exact verification command passed for the bound source candidate.",
69
+ "proofLevel": "captured_verification",
70
+ "acceptanceLevels": {
71
+ "candidateIdentity": "bound",
72
+ "workspaceAttestation": "unchanged",
73
+ "verificationCommand": "passed",
74
+ "productExperience": "not_proven",
75
+ "deploymentRuntime": "not_proven",
76
+ "productionBusiness": "not_proven"
77
+ },
78
+ "proven": ["The exact verification command exited successfully."],
79
+ "notProven": ["Product or UX acceptance was not performed by Quick Verification."],
80
+ "nextAction": "consume_attestation",
81
+ "authorizationGranted": false
82
+ }]
83
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/quick-evidence-reuse-plan-v1.schema.json",
4
+ "title": "OwlCoda Quick Evidence Reuse Plan V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "status",
10
+ "exitCode",
11
+ "ready",
12
+ "baseReceipt",
13
+ "allowedPaths",
14
+ "actualDeltaPaths",
15
+ "outOfScopePaths",
16
+ "unusedAllowedPaths",
17
+ "currentSourceFingerprint",
18
+ "issues",
19
+ "reuseReceiptPath",
20
+ "authorizationGranted"
21
+ ],
22
+ "properties": {
23
+ "schemaVersion": { "const": "OwlCodaQuickEvidenceReusePlanV1" },
24
+ "status": {
25
+ "enum": [
26
+ "quick_evidence_reuse_ready",
27
+ "quick_evidence_reuse_blocked",
28
+ "quick_evidence_reuse_not_needed"
29
+ ]
30
+ },
31
+ "exitCode": { "enum": [0, 2] },
32
+ "ready": { "type": "boolean" },
33
+ "baseReceipt": { "$ref": "#/$defs/baseReceipt" },
34
+ "allowedPaths": { "$ref": "#/$defs/paths" },
35
+ "actualDeltaPaths": { "$ref": "#/$defs/paths" },
36
+ "outOfScopePaths": { "$ref": "#/$defs/paths" },
37
+ "unusedAllowedPaths": { "$ref": "#/$defs/paths" },
38
+ "currentSourceFingerprint": { "$ref": "#/$defs/hash" },
39
+ "issues": { "type": "array", "items": { "type": "string" } },
40
+ "reuseReceiptPath": { "type": "null" },
41
+ "authorizationGranted": { "const": false }
42
+ },
43
+ "$defs": {
44
+ "hash": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
45
+ "paths": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
46
+ "baseReceipt": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["receiptId", "path", "sha256", "sourceFingerprint", "attestationIssueCodes"],
50
+ "properties": {
51
+ "receiptId": { "type": "string", "minLength": 1 },
52
+ "path": { "type": "string", "minLength": 1 },
53
+ "sha256": { "$ref": "#/$defs/hash" },
54
+ "sourceFingerprint": { "$ref": "#/$defs/hash" },
55
+ "attestationIssueCodes": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }
56
+ }
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/quick-evidence-reuse-receipt-v1.schema.json",
4
+ "title": "OwlCoda Quick Evidence Reuse Receipt V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "reuseId",
10
+ "baseReceipt",
11
+ "delta",
12
+ "decision",
13
+ "reasonCodes",
14
+ "proven",
15
+ "notProven",
16
+ "createdAt",
17
+ "authorizationGranted",
18
+ "receiptSha256"
19
+ ],
20
+ "properties": {
21
+ "schemaVersion": { "const": "OwlCodaQuickEvidenceReuseReceiptV1" },
22
+ "reuseId": { "type": "string", "pattern": "^[A-Za-z0-9._-]+$" },
23
+ "baseReceipt": {
24
+ "type": "object",
25
+ "additionalProperties": false,
26
+ "required": ["receiptId", "path", "sha256", "sourceFingerprint", "attestationIssueCodes"],
27
+ "properties": {
28
+ "receiptId": { "type": "string", "minLength": 1 },
29
+ "path": { "type": "string", "minLength": 1 },
30
+ "sha256": { "$ref": "#/$defs/hash" },
31
+ "sourceFingerprint": { "$ref": "#/$defs/hash" },
32
+ "attestationIssueCodes": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }
33
+ }
34
+ },
35
+ "delta": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": [
39
+ "allowedPaths",
40
+ "actualPaths",
41
+ "unusedAllowedPaths",
42
+ "currentSourceFingerprint",
43
+ "receiptId",
44
+ "receiptPath",
45
+ "receiptSha256",
46
+ "command"
47
+ ],
48
+ "properties": {
49
+ "allowedPaths": { "$ref": "#/$defs/paths" },
50
+ "actualPaths": { "$ref": "#/$defs/paths" },
51
+ "unusedAllowedPaths": { "$ref": "#/$defs/paths" },
52
+ "currentSourceFingerprint": { "$ref": "#/$defs/hash" },
53
+ "receiptId": { "type": "string", "minLength": 1 },
54
+ "receiptPath": { "type": "string", "minLength": 1 },
55
+ "receiptSha256": { "$ref": "#/$defs/hash" },
56
+ "command": {
57
+ "type": "object",
58
+ "additionalProperties": false,
59
+ "required": ["executable", "argv"],
60
+ "properties": {
61
+ "executable": { "type": "string", "minLength": 1 },
62
+ "argv": { "type": "array", "items": { "type": "string" } }
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "decision": { "enum": ["accepted", "rejected"] },
68
+ "reasonCodes": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
69
+ "proven": { "type": "array", "minItems": 2, "items": { "type": "string", "minLength": 1 } },
70
+ "notProven": { "type": "array", "minItems": 2, "items": { "type": "string", "minLength": 1 } },
71
+ "createdAt": { "type": "string", "format": "date-time" },
72
+ "authorizationGranted": { "const": false },
73
+ "receiptSha256": { "$ref": "#/$defs/hash" }
74
+ },
75
+ "$defs": {
76
+ "hash": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
77
+ "paths": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }
78
+ }
79
+ }
@@ -0,0 +1,185 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/runtime-transition-receipt-v1.schema.json",
4
+ "title": "OwlCoda RunKit Runtime Transition Receipt V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "receiptId",
10
+ "quickReceipt",
11
+ "runtimeReport",
12
+ "reportingBasis",
13
+ "workspaceMutation",
14
+ "externalMutation",
15
+ "rollbackPerformed",
16
+ "finalExternalState",
17
+ "failedStage",
18
+ "lastPassedStage",
19
+ "rollbackOutcome",
20
+ "stages",
21
+ "recoveryEvidence",
22
+ "transitionDecision",
23
+ "proven",
24
+ "notProven",
25
+ "createdAt",
26
+ "authorizationGranted",
27
+ "receiptSha256"
28
+ ],
29
+ "properties": {
30
+ "schemaVersion": { "const": "OwlCodaRunKitRuntimeTransitionReceiptV1" },
31
+ "receiptId": { "$ref": "#/$defs/id" },
32
+ "quickReceipt": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["receiptId", "path", "sha256"],
36
+ "properties": {
37
+ "receiptId": { "$ref": "#/$defs/id" },
38
+ "path": { "$ref": "#/$defs/path" },
39
+ "sha256": { "$ref": "#/$defs/hash" }
40
+ }
41
+ },
42
+ "runtimeReport": {
43
+ "type": "object",
44
+ "additionalProperties": false,
45
+ "required": ["path", "sha256", "sizeBytes"],
46
+ "properties": {
47
+ "path": { "$ref": "#/$defs/path" },
48
+ "sha256": { "$ref": "#/$defs/hash" },
49
+ "sizeBytes": { "type": "integer", "minimum": 0 }
50
+ }
51
+ },
52
+ "reportingBasis": { "const": "exact_command_report" },
53
+ "workspaceMutation": { "enum": ["changed", "unchanged"] },
54
+ "externalMutation": { "enum": ["changed", "unchanged", "unknown"] },
55
+ "rollbackPerformed": { "type": "boolean" },
56
+ "finalExternalState": { "$ref": "#/$defs/finalState" },
57
+ "failedStage": { "$ref": "#/$defs/nullableStageId" },
58
+ "lastPassedStage": { "$ref": "#/$defs/nullableStageId" },
59
+ "rollbackOutcome": { "enum": ["not_required", "succeeded", "failed", "unknown"] },
60
+ "stages": {
61
+ "type": "array",
62
+ "minItems": 1,
63
+ "maxItems": 128,
64
+ "items": { "$ref": "#/$defs/stage" }
65
+ },
66
+ "recoveryEvidence": {
67
+ "type": "array",
68
+ "maxItems": 128,
69
+ "items": { "$ref": "#/$defs/recoveryEvidence" }
70
+ },
71
+ "transitionDecision": {
72
+ "enum": [
73
+ "external_transition_passed",
74
+ "external_transition_failed_recovered",
75
+ "external_transition_failed_unrecovered",
76
+ "external_transition_indeterminate",
77
+ "external_transition_invalidated"
78
+ ]
79
+ },
80
+ "proven": {
81
+ "type": "array",
82
+ "minItems": 2,
83
+ "items": { "$ref": "#/$defs/summary" }
84
+ },
85
+ "notProven": {
86
+ "type": "array",
87
+ "minItems": 2,
88
+ "items": { "$ref": "#/$defs/summary" }
89
+ },
90
+ "createdAt": { "type": "string", "format": "date-time" },
91
+ "authorizationGranted": { "const": false },
92
+ "receiptSha256": { "$ref": "#/$defs/hash" }
93
+ },
94
+ "$defs": {
95
+ "hash": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
96
+ "hashOrNull": {
97
+ "oneOf": [
98
+ { "type": "null" },
99
+ { "$ref": "#/$defs/hash" }
100
+ ]
101
+ },
102
+ "id": {
103
+ "type": "string",
104
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
105
+ },
106
+ "stageId": { "$ref": "#/$defs/id" },
107
+ "nullableStageId": {
108
+ "oneOf": [
109
+ { "type": "null" },
110
+ { "$ref": "#/$defs/stageId" }
111
+ ]
112
+ },
113
+ "path": {
114
+ "type": "string",
115
+ "pattern": "^\\.owlcoda/runkit/quick/receipts/[^/]+/[^/]+$"
116
+ },
117
+ "reference": {
118
+ "type": "string",
119
+ "minLength": 1,
120
+ "maxLength": 1024,
121
+ "pattern": "^[^\\r\\n\\u0000]+$"
122
+ },
123
+ "summary": {
124
+ "type": "string",
125
+ "minLength": 1,
126
+ "maxLength": 2048,
127
+ "pattern": "^[^\\u0000]+$"
128
+ },
129
+ "finalState": {
130
+ "type": "object",
131
+ "additionalProperties": false,
132
+ "required": ["status", "stateRef", "fingerprint", "summary"],
133
+ "properties": {
134
+ "status": { "enum": ["changed", "unchanged", "restored", "unknown"] },
135
+ "stateRef": { "$ref": "#/$defs/reference" },
136
+ "fingerprint": { "$ref": "#/$defs/hashOrNull" },
137
+ "summary": { "$ref": "#/$defs/summary" }
138
+ }
139
+ },
140
+ "stage": {
141
+ "type": "object",
142
+ "additionalProperties": false,
143
+ "required": ["stageId", "status", "summary", "evidenceRefs"],
144
+ "properties": {
145
+ "stageId": { "$ref": "#/$defs/stageId" },
146
+ "status": { "enum": ["passed", "failed", "skipped"] },
147
+ "summary": { "$ref": "#/$defs/summary" },
148
+ "evidenceRefs": {
149
+ "type": "array",
150
+ "maxItems": 128,
151
+ "items": { "$ref": "#/$defs/reference" }
152
+ }
153
+ }
154
+ },
155
+ "capturedBefore": {
156
+ "type": "object",
157
+ "additionalProperties": false,
158
+ "required": ["stageId", "stateRef", "fingerprint"],
159
+ "properties": {
160
+ "stageId": { "$ref": "#/$defs/stageId" },
161
+ "stateRef": { "$ref": "#/$defs/reference" },
162
+ "fingerprint": { "$ref": "#/$defs/hashOrNull" }
163
+ }
164
+ },
165
+ "restoresTo": {
166
+ "type": "object",
167
+ "additionalProperties": false,
168
+ "required": ["stateRef", "fingerprint"],
169
+ "properties": {
170
+ "stateRef": { "$ref": "#/$defs/reference" },
171
+ "fingerprint": { "$ref": "#/$defs/hashOrNull" }
172
+ }
173
+ },
174
+ "recoveryEvidence": {
175
+ "type": "object",
176
+ "additionalProperties": false,
177
+ "required": ["artifactRef", "capturedBefore", "restoresTo"],
178
+ "properties": {
179
+ "artifactRef": { "$ref": "#/$defs/reference" },
180
+ "capturedBefore": { "$ref": "#/$defs/capturedBefore" },
181
+ "restoresTo": { "$ref": "#/$defs/restoresTo" }
182
+ }
183
+ }
184
+ }
185
+ }
@@ -0,0 +1,142 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/team-project-event-v4.schema.json",
4
+ "title": "OwlCoda RunKit Team Project Event V4",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "eventId", "type", "occurredAt"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitTeamProjectEventV4" },
10
+ "eventId": { "$ref": "#/$defs/id" },
11
+ "type": { "enum": ["upstream_reopened", "responsibility_transferred"] },
12
+ "occurredAt": { "type": "string", "minLength": 24 },
13
+ "reopenId": { "$ref": "#/$defs/id" },
14
+ "transferId": { "$ref": "#/$defs/id" },
15
+ "assignmentId": { "$ref": "#/$defs/id" },
16
+ "previousAssignmentId": { "$ref": "#/$defs/id" },
17
+ "previousCheckpointEventId": { "$ref": "#/$defs/id" },
18
+ "checkpointEventId": { "$ref": "#/$defs/id" },
19
+ "handoffEventId": { "$ref": "#/$defs/id" },
20
+ "assignmentEventId": { "$ref": "#/$defs/id" },
21
+ "workItemId": { "$ref": "#/$defs/id" },
22
+ "triggerWorkItemId": { "$ref": "#/$defs/id" },
23
+ "fromAgentId": { "$ref": "#/$defs/id" },
24
+ "reviewerAgentId": { "$ref": "#/$defs/id" },
25
+ "toAgentId": { "$ref": "#/$defs/id" },
26
+ "reason": { "type": "string", "minLength": 1 },
27
+ "summary": { "type": "string", "minLength": 1 },
28
+ "state": {
29
+ "enum": ["active", "waiting_dependency", "waiting_decision", "verifying", "ready_to_integrate"]
30
+ },
31
+ "completedUnits": { "type": "integer", "minimum": 0 },
32
+ "evidenceRefs": { "$ref": "#/$defs/nonEmptyStrings" },
33
+ "blockerRefs": { "$ref": "#/$defs/strings" },
34
+ "decisionRefs": { "$ref": "#/$defs/strings" },
35
+ "nextAction": { "type": "string", "minLength": 1 },
36
+ "sourceFingerprint": { "type": "string", "pattern": "^(sha256:)?[a-f0-9]{64}$" }
37
+ },
38
+ "allOf": [
39
+ {
40
+ "if": {
41
+ "properties": { "type": { "const": "upstream_reopened" } },
42
+ "required": ["type"]
43
+ },
44
+ "then": {
45
+ "required": [
46
+ "reopenId",
47
+ "assignmentId",
48
+ "previousAssignmentId",
49
+ "previousCheckpointEventId",
50
+ "workItemId",
51
+ "triggerWorkItemId",
52
+ "fromAgentId",
53
+ "reviewerAgentId",
54
+ "toAgentId",
55
+ "reason",
56
+ "evidenceRefs",
57
+ "nextAction"
58
+ ]
59
+ }
60
+ },
61
+ {
62
+ "if": {
63
+ "properties": { "type": { "const": "responsibility_transferred" } },
64
+ "required": ["type"]
65
+ },
66
+ "then": {
67
+ "required": [
68
+ "transferId",
69
+ "assignmentId",
70
+ "previousAssignmentId",
71
+ "checkpointEventId",
72
+ "handoffEventId",
73
+ "assignmentEventId",
74
+ "workItemId",
75
+ "fromAgentId",
76
+ "toAgentId",
77
+ "state",
78
+ "summary",
79
+ "evidenceRefs",
80
+ "blockerRefs",
81
+ "decisionRefs",
82
+ "nextAction"
83
+ ]
84
+ }
85
+ }
86
+ ],
87
+ "$defs": {
88
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
89
+ "strings": {
90
+ "type": "array",
91
+ "uniqueItems": true,
92
+ "items": { "type": "string", "minLength": 1 }
93
+ },
94
+ "nonEmptyStrings": {
95
+ "type": "array",
96
+ "minItems": 1,
97
+ "uniqueItems": true,
98
+ "items": { "type": "string", "minLength": 1 }
99
+ }
100
+ },
101
+ "examples": [
102
+ {
103
+ "schemaVersion": "OwlCodaRunKitTeamProjectEventV4",
104
+ "eventId": "upstream-reopened-source-defect-001",
105
+ "type": "upstream_reopened",
106
+ "occurredAt": "2026-08-12T10:07:00.000Z",
107
+ "reopenId": "source-defect-001",
108
+ "assignmentId": "reopen-source-defect-001",
109
+ "previousAssignmentId": "assign-source",
110
+ "previousCheckpointEventId": "checkpoint-source-done",
111
+ "workItemId": "source",
112
+ "triggerWorkItemId": "acceptance",
113
+ "fromAgentId": "source-writer",
114
+ "reviewerAgentId": "reviewer",
115
+ "toAgentId": "source-writer",
116
+ "reason": "Acceptance found a source defect.",
117
+ "evidenceRefs": ["receipt:acceptance-failure"],
118
+ "nextAction": "Repair source and produce a fresh candidate."
119
+ },
120
+ {
121
+ "schemaVersion": "OwlCodaRunKitTeamProjectEventV4",
122
+ "eventId": "responsibility-transferred-engine-a-to-b",
123
+ "type": "responsibility_transferred",
124
+ "occurredAt": "2026-08-12T11:01:00.000Z",
125
+ "transferId": "engine-a-to-b",
126
+ "assignmentId": "transfer-engine-a-to-b",
127
+ "previousAssignmentId": "assign-engine-a",
128
+ "checkpointEventId": "transfer-checkpoint-engine-a-to-b",
129
+ "handoffEventId": "transfer-handoff-engine-a-to-b",
130
+ "assignmentEventId": "transfer-assignment-engine-a-to-b",
131
+ "workItemId": "engine",
132
+ "fromAgentId": "agent-a",
133
+ "toAgentId": "agent-b",
134
+ "state": "active",
135
+ "summary": "Parser complete; serializer remains.",
136
+ "evidenceRefs": ["receipt:parser"],
137
+ "blockerRefs": [],
138
+ "decisionRefs": [],
139
+ "nextAction": "Implement serializer."
140
+ }
141
+ ]
142
+ }