owlrunkit 0.19.1 → 0.20.0

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 (42) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +107 -3
  3. package/docs/architecture/OWLCODA_RUNKIT_0191_PROFILE_RECONCILE_PATCH_PRODUCT_DECISION_20260813.md +11 -5
  4. package/docs/architecture/OWLCODA_RUNKIT_0192_FORMAL_USABILITY_PRODUCT_DECISION_20260813.md +141 -0
  5. package/docs/architecture/OWLCODA_RUNKIT_020_TEAM_DELIVERY_PHASE1_PRODUCT_DECISION_20260813.md +296 -0
  6. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +74 -9
  7. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
  8. package/package.json +1 -1
  9. package/packages/attest/distribution-manifest-v1.json +10 -0
  10. package/packages/attest/src/quick.mjs +42 -4
  11. package/registry-release-policy-v1.json +5 -5
  12. package/sbom.spdx.json +5 -5
  13. package/scripts/runkit-contract/core-contract.mjs +42 -2
  14. package/scripts/runkit-contract/efficiency-metrics.mjs +9 -7
  15. package/scripts/runkit-contract/formal-preflight.mjs +352 -0
  16. package/scripts/runkit-contract/formal-supplemental-evidence.mjs +713 -0
  17. package/scripts/runkit-contract/formal-workflow.mjs +529 -59
  18. package/scripts/runkit-contract/onboarding-doctor.mjs +32 -13
  19. package/scripts/runkit-contract/project-cli-resolver.mjs +33 -3
  20. package/scripts/runkit-contract/project-external-delivery.mjs +16 -9
  21. package/scripts/runkit-contract/quick-attest.mjs +24 -0
  22. package/scripts/runkit-contract/runkit-cli.mjs +445 -52
  23. package/scripts/runkit-contract/schemas/candidate-transfer-packet-v1.schema.json +98 -0
  24. package/scripts/runkit-contract/schemas/formal-check-v2.schema.json +231 -0
  25. package/scripts/runkit-contract/schemas/formal-envelope-preflight-v1.schema.json +212 -0
  26. package/scripts/runkit-contract/schemas/formal-evidence-summary-v1.schema.json +114 -0
  27. package/scripts/runkit-contract/schemas/formal-supplemental-evidence-v1.schema.json +103 -0
  28. package/scripts/runkit-contract/schemas/team-acceptance-packet-v2.schema.json +109 -0
  29. package/scripts/runkit-contract/schemas/team-delivery-status-v1.schema.json +72 -0
  30. package/scripts/runkit-contract/schemas/team-packet-validation-v1.schema.json +33 -0
  31. package/scripts/runkit-contract/schemas/team-project-event-v5.schema.json +89 -0
  32. package/scripts/runkit-contract/schemas/team-project-status-v3.schema.json +173 -0
  33. package/scripts/runkit-contract/schemas/team-recommendation-v1.schema.json +121 -0
  34. package/scripts/runkit-contract/schemas/team-task-packet-v2.schema.json +228 -0
  35. package/scripts/runkit-contract/snapshot.mjs +125 -5
  36. package/scripts/runkit-contract/source-candidate.mjs +271 -69
  37. package/scripts/runkit-contract/sync-release-identity.mjs +39 -4
  38. package/scripts/runkit-contract/team-delivery.mjs +906 -0
  39. package/scripts/runkit-contract/team-project-successor.mjs +7 -4
  40. package/scripts/runkit-contract/team-project.mjs +440 -28
  41. package/scripts/runkit-contract/usage-mode.mjs +9 -3
  42. package/scripts/runkit-contract/verification-envelope.mjs +425 -37
@@ -0,0 +1,114 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/formal-evidence-summary-v1.json",
4
+ "title": "OwlCoda RunKit Formal Evidence Summary V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "runId", "summaryId", "sourceBinding", "formalChecks", "supplementalEvidence", "staleFormalCheckCount", "staleSupplementalEvidenceCount", "formalAcceptanceDerivedOnlyFromFormalChecks", "limitations", "authorizationGranted", "evidenceSummarySha256"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitFormalEvidenceSummaryV1" },
10
+ "runId": { "$ref": "#/$defs/id" },
11
+ "summaryId": { "$ref": "#/$defs/id" },
12
+ "sourceBinding": {
13
+ "type": "object",
14
+ "additionalProperties": false,
15
+ "required": ["candidatePath", "candidateSha256", "sourceFingerprint"],
16
+ "properties": {
17
+ "candidatePath": { "type": "string", "minLength": 1 },
18
+ "candidateSha256": { "$ref": "#/$defs/prefixedHash" },
19
+ "sourceFingerprint": { "$ref": "#/$defs/hash" }
20
+ }
21
+ },
22
+ "formalChecks": {
23
+ "type": "array",
24
+ "items": {
25
+ "type": "object",
26
+ "additionalProperties": false,
27
+ "required": ["checkId", "status", "failureCategory", "formalEligible", "snapshotPath", "envelopeReceiptPath"],
28
+ "properties": {
29
+ "checkId": { "$ref": "#/$defs/id" },
30
+ "status": { "enum": ["formal_check_passed", "formal_check_failed"] },
31
+ "failureCategory": {
32
+ "type": ["string", "null"],
33
+ "enum": [null, "source_check_failed", "envelope_capability_missing", "toolchain_resolution_failed", "network_policy_blocked"]
34
+ },
35
+ "formalEligible": { "type": "boolean" },
36
+ "snapshotPath": { "type": "string", "minLength": 1 },
37
+ "envelopeReceiptPath": { "type": ["string", "null"] }
38
+ },
39
+ "allOf": [{
40
+ "if": {
41
+ "properties": { "status": { "const": "formal_check_passed" } },
42
+ "required": ["status"]
43
+ },
44
+ "then": {
45
+ "properties": {
46
+ "failureCategory": { "const": null },
47
+ "formalEligible": { "const": true }
48
+ }
49
+ },
50
+ "else": {
51
+ "properties": {
52
+ "failureCategory": { "enum": ["source_check_failed", "envelope_capability_missing", "toolchain_resolution_failed", "network_policy_blocked"] },
53
+ "formalEligible": { "const": false }
54
+ }
55
+ }
56
+ }]
57
+ }
58
+ },
59
+ "supplementalEvidence": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "object",
63
+ "additionalProperties": false,
64
+ "required": ["evidenceId", "kind", "classificationBasis", "evidencePath", "supplementalEvidenceSha256", "gating"],
65
+ "properties": {
66
+ "evidenceId": { "$ref": "#/$defs/id" },
67
+ "kind": { "enum": ["supplemental-local", "networked"] },
68
+ "classificationBasis": { "const": "operator_declared_not_attested" },
69
+ "evidencePath": { "type": "string", "minLength": 1 },
70
+ "supplementalEvidenceSha256": { "$ref": "#/$defs/hash" },
71
+ "gating": { "const": false }
72
+ }
73
+ }
74
+ },
75
+ "staleFormalCheckCount": { "type": "integer", "minimum": 0 },
76
+ "staleSupplementalEvidenceCount": { "type": "integer", "minimum": 0 },
77
+ "formalAcceptanceDerivedOnlyFromFormalChecks": { "const": true },
78
+ "limitations": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
79
+ "authorizationGranted": { "const": false },
80
+ "evidenceSummarySha256": { "$ref": "#/$defs/hash" }
81
+ },
82
+ "$defs": {
83
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
84
+ "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
85
+ "prefixedHash": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
86
+ },
87
+ "examples": [
88
+ {
89
+ "schemaVersion": "OwlCodaRunKitFormalEvidenceSummaryV1",
90
+ "runId": "release-001",
91
+ "summaryId": "formal-final-evidence",
92
+ "sourceBinding": {
93
+ "candidatePath": ".owlcoda/runkit/executions/release-001/source-candidates/quality.json",
94
+ "candidateSha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
95
+ "sourceFingerprint": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
96
+ },
97
+ "formalChecks": [{
98
+ "checkId": "quality",
99
+ "status": "formal_check_passed",
100
+ "failureCategory": null,
101
+ "formalEligible": true,
102
+ "snapshotPath": ".owlcoda/runkit/executions/release-001/snapshots/quality.json",
103
+ "envelopeReceiptPath": null
104
+ }],
105
+ "supplementalEvidence": [],
106
+ "staleFormalCheckCount": 0,
107
+ "staleSupplementalEvidenceCount": 0,
108
+ "formalAcceptanceDerivedOnlyFromFormalChecks": true,
109
+ "limitations": ["supplemental_evidence_is_non_gating"],
110
+ "authorizationGranted": false,
111
+ "evidenceSummarySha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
112
+ }
113
+ ]
114
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/formal-supplemental-evidence-v1.json",
4
+ "title": "OwlCoda RunKit Formal Supplemental Evidence V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "runId", "evidenceId", "kind", "classificationBasis", "status", "gating", "sourceBinding", "quickEvidence", "limitations", "frozenMaterials", "authorizationGranted", "supplementalEvidenceSha256"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitFormalSupplementalEvidenceV1" },
10
+ "runId": { "$ref": "#/$defs/id" },
11
+ "evidenceId": { "$ref": "#/$defs/id" },
12
+ "kind": { "enum": ["supplemental-local", "networked"] },
13
+ "classificationBasis": { "const": "operator_declared_not_attested" },
14
+ "status": { "const": "attached" },
15
+ "gating": { "const": false },
16
+ "sourceBinding": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": ["candidatePath", "candidateSha256", "sourceFingerprint", "quickWorkspaceFingerprint"],
20
+ "properties": {
21
+ "candidatePath": { "type": "string", "minLength": 1 },
22
+ "candidateSha256": { "$ref": "#/$defs/prefixedHash" },
23
+ "sourceFingerprint": { "$ref": "#/$defs/hash" },
24
+ "quickWorkspaceFingerprint": { "$ref": "#/$defs/prefixedHash" }
25
+ }
26
+ },
27
+ "quickEvidence": {
28
+ "type": "object",
29
+ "additionalProperties": false,
30
+ "required": ["receiptId", "receiptPath", "receiptSha256", "receiptSchemaVersion", "exactCommand", "attestationDecision", "attestationIssueCodes"],
31
+ "properties": {
32
+ "receiptId": { "type": "string", "minLength": 1 },
33
+ "receiptPath": { "type": "string", "minLength": 1 },
34
+ "receiptSha256": { "$ref": "#/$defs/prefixedHash" },
35
+ "receiptSchemaVersion": { "type": "string", "minLength": 1 },
36
+ "exactCommand": { "type": "object" },
37
+ "attestationDecision": { "const": "GO" },
38
+ "attestationIssueCodes": { "type": "array", "items": { "type": "string" } }
39
+ }
40
+ },
41
+ "limitations": { "type": "array", "minItems": 1, "items": { "type": "string", "minLength": 1 } },
42
+ "frozenMaterials": {
43
+ "type": "array",
44
+ "minItems": 1,
45
+ "items": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "required": ["sourcePath", "evidenceObjectPath", "sha256", "sizeBytes"],
49
+ "properties": {
50
+ "sourcePath": { "type": "string", "minLength": 1 },
51
+ "evidenceObjectPath": { "type": "string", "pattern": "^\\.owlcoda/runkit/evidence/raw-sha256/[a-f0-9]{64}$" },
52
+ "sha256": { "$ref": "#/$defs/prefixedHash" },
53
+ "sizeBytes": { "type": "integer", "minimum": 0 }
54
+ }
55
+ }
56
+ },
57
+ "authorizationGranted": { "const": false },
58
+ "supplementalEvidenceSha256": { "$ref": "#/$defs/hash" }
59
+ },
60
+ "$defs": {
61
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
62
+ "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
63
+ "prefixedHash": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
64
+ },
65
+ "examples": [
66
+ {
67
+ "schemaVersion": "OwlCodaRunKitFormalSupplementalEvidenceV1",
68
+ "runId": "release-001",
69
+ "evidenceId": "network-audit",
70
+ "kind": "networked",
71
+ "classificationBasis": "operator_declared_not_attested",
72
+ "status": "attached",
73
+ "gating": false,
74
+ "sourceBinding": {
75
+ "candidatePath": ".owlcoda/runkit/executions/release-001/source-candidates/quality.json",
76
+ "candidateSha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
77
+ "sourceFingerprint": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
78
+ "quickWorkspaceFingerprint": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
79
+ },
80
+ "quickEvidence": {
81
+ "receiptId": "quick-001",
82
+ "receiptPath": ".owlcoda/runkit/quick/receipts/quick-001/receipt.json",
83
+ "receiptSha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
84
+ "receiptSchemaVersion": "OwlCodaQuickVerificationReceiptV3",
85
+ "exactCommand": {},
86
+ "attestationDecision": "GO",
87
+ "attestationIssueCodes": []
88
+ },
89
+ "limitations": [
90
+ "supplemental_evidence_is_not_formal_sandbox_evidence",
91
+ "network_classification_is_operator_declared_not_attested"
92
+ ],
93
+ "frozenMaterials": [{
94
+ "sourcePath": ".owlcoda/runkit/quick/receipts/quick-001/receipt.json",
95
+ "evidenceObjectPath": ".owlcoda/runkit/evidence/raw-sha256/dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
96
+ "sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
97
+ "sizeBytes": 100
98
+ }],
99
+ "authorizationGranted": false,
100
+ "supplementalEvidenceSha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
101
+ }
102
+ ]
103
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/team-acceptance-packet-v2.schema.json",
4
+ "title": "OwlCoda RunKit Team Acceptance Packet V2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "packetId", "projectBinding", "gateId", "workItemId",
9
+ "candidateId", "taskPacketSha256", "implementation", "verification",
10
+ "secondOrderRisk", "independenceStatus", "acceptanceLevel",
11
+ "candidateIdentityBefore", "candidateIdentityAfter", "freshAdversarialFamilies",
12
+ "coverageLedger", "protectedArtifactReadback", "productionWriteCount", "findings",
13
+ "verdict", "allowedNextGate", "remainingAcceptanceLevels",
14
+ "authorityBoundary", "authorizationGranted"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": { "const": "OwlCodaRunKitTeamAcceptancePacketV2" },
18
+ "packetId": { "$ref": "#/$defs/id" },
19
+ "projectBinding": { "$ref": "#/$defs/projectBinding" },
20
+ "gateId": { "$ref": "#/$defs/id" },
21
+ "workItemId": { "$ref": "#/$defs/id" },
22
+ "candidateId": { "$ref": "#/$defs/id" },
23
+ "taskPacketSha256": { "$ref": "#/$defs/sha256Ref" },
24
+ "implementation": { "$ref": "#/$defs/modelIdentity" },
25
+ "verification": { "$ref": "#/$defs/modelIdentity" },
26
+ "secondOrderRisk": { "enum": ["low", "medium", "high"] },
27
+ "independenceStatus": { "enum": ["independent", "same_family_not_independent", "control_tower"] },
28
+ "acceptanceLevel": { "enum": ["L0", "L1", "L2", "L3"] },
29
+ "candidateIdentityBefore": { "$ref": "#/$defs/sha256Ref" },
30
+ "candidateIdentityAfter": { "$ref": "#/$defs/sha256Ref" },
31
+ "freshAdversarialFamilies": { "$ref": "#/$defs/strings" },
32
+ "coverageLedger": {
33
+ "type": "object",
34
+ "additionalProperties": false,
35
+ "required": ["evidenceReused", "checksRunFresh", "coveredChecksNotRepeated", "receiptInvalidations", "deferredTransitionGates"],
36
+ "properties": {
37
+ "evidenceReused": { "$ref": "#/$defs/strings" },
38
+ "checksRunFresh": { "$ref": "#/$defs/strings" },
39
+ "coveredChecksNotRepeated": { "$ref": "#/$defs/strings" },
40
+ "receiptInvalidations": { "$ref": "#/$defs/strings" },
41
+ "deferredTransitionGates": { "$ref": "#/$defs/strings" }
42
+ }
43
+ },
44
+ "protectedArtifactReadback": { "$ref": "#/$defs/strings" },
45
+ "productionWriteCount": { "type": "integer", "minimum": 0 },
46
+ "findings": {
47
+ "type": "array",
48
+ "items": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "required": ["severity", "code", "message", "evidenceRefs"],
52
+ "properties": {
53
+ "severity": { "enum": ["critical", "important", "minor", "note"] },
54
+ "code": { "$ref": "#/$defs/id" },
55
+ "message": { "$ref": "#/$defs/text" },
56
+ "evidenceRefs": { "$ref": "#/$defs/strings" }
57
+ }
58
+ }
59
+ },
60
+ "verdict": { "enum": ["ACCEPT", "REWORK", "BLOCKED"] },
61
+ "allowedNextGate": { "$ref": "#/$defs/nullableText" },
62
+ "remainingAcceptanceLevels": { "type": "array", "uniqueItems": true, "items": { "enum": ["L0", "L1", "L2", "L3"] } },
63
+ "authorityBoundary": { "$ref": "#/$defs/authorityBoundary" },
64
+ "authorizationGranted": { "const": false }
65
+ },
66
+ "$defs": {
67
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$" },
68
+ "text": { "type": "string", "minLength": 1 },
69
+ "nullableText": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/text" }] },
70
+ "strings": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
71
+ "sha256Ref": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
72
+ "projectBinding": { "type": "object", "additionalProperties": false, "required": ["projectId", "projectTruthHash"], "properties": { "projectId": { "$ref": "#/$defs/id" }, "projectTruthHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" } } },
73
+ "modelIdentity": { "type": "object", "additionalProperties": false, "required": ["agent", "modelFamily", "modelVersion"], "properties": { "agent": { "$ref": "#/$defs/id" }, "modelFamily": { "$ref": "#/$defs/text" }, "modelVersion": { "$ref": "#/$defs/text" } } },
74
+ "authorityBoundary": { "type": "object", "additionalProperties": false, "required": ["agentDispatch", "git", "release", "deployment", "production", "business", "automation", "money"], "properties": { "agentDispatch": { "const": false }, "git": { "const": false }, "release": { "const": false }, "deployment": { "const": false }, "production": { "const": false }, "business": { "const": false }, "automation": { "const": false }, "money": { "const": false } } }
75
+ },
76
+ "allOf": [{
77
+ "if": {
78
+ "properties": {
79
+ "verdict": { "const": "ACCEPT" },
80
+ "acceptanceLevel": { "enum": ["L1", "L2", "L3"] }
81
+ },
82
+ "required": ["verdict", "acceptanceLevel"]
83
+ },
84
+ "then": {
85
+ "properties": {
86
+ "freshAdversarialFamilies": { "minItems": 1 },
87
+ "coverageLedger": { "properties": { "checksRunFresh": { "minItems": 1 } } }
88
+ }
89
+ }
90
+ }],
91
+ "examples": [{
92
+ "schemaVersion": "OwlCodaRunKitTeamAcceptancePacketV2",
93
+ "packetId": "acceptance-packet-001",
94
+ "projectBinding": { "projectId": "team-phase1", "projectTruthHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" },
95
+ "gateId": "ready", "workItemId": "work-1", "candidateId": "candidate-001",
96
+ "taskPacketSha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
97
+ "implementation": { "agent": "agent-a", "modelFamily": "provider:family-a", "modelVersion": "model-a-1" },
98
+ "verification": { "agent": "agent-b", "modelFamily": "provider:family-b", "modelVersion": "model-b-1" },
99
+ "secondOrderRisk": "medium", "independenceStatus": "independent", "acceptanceLevel": "L1",
100
+ "candidateIdentityBefore": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
101
+ "candidateIdentityAfter": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
102
+ "freshAdversarialFamilies": ["authority boundary"],
103
+ "coverageLedger": { "evidenceReused": ["receipt:quick-001"], "checksRunFresh": ["authority boundary"], "coveredChecksNotRepeated": [], "receiptInvalidations": [], "deferredTransitionGates": ["L2 package consumer"] },
104
+ "protectedArtifactReadback": ["docs/contract.md: unchanged"], "productionWriteCount": 0,
105
+ "findings": [], "verdict": "ACCEPT", "allowedNextGate": "L2 package consumer", "remainingAcceptanceLevels": ["L2", "L3"],
106
+ "authorityBoundary": { "agentDispatch": false, "git": false, "release": false, "deployment": false, "production": false, "business": false, "automation": false, "money": false },
107
+ "authorizationGranted": false
108
+ }]
109
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/team-delivery-status-v1.schema.json",
4
+ "title": "OwlCoda RunKit Team Delivery Status V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "status", "graphSource", "persistedTeamGraph", "projectId",
9
+ "projectTruthHash", "projectOverall", "recommendation", "lanes", "pathConflicts",
10
+ "acceptanceGaps", "ownerTransitions", "nextAction", "dispatch",
11
+ "authorityBoundary", "authorizationGranted", "exitCode"
12
+ ],
13
+ "properties": {
14
+ "schemaVersion": { "const": "OwlCodaRunKitTeamDeliveryStatusV1" },
15
+ "status": { "const": "team_delivery_status" },
16
+ "graphSource": { "const": "project_driver" },
17
+ "persistedTeamGraph": { "const": false },
18
+ "projectId": { "$ref": "#/$defs/nullableText" },
19
+ "projectTruthHash": { "oneOf": [{ "type": "null" }, { "type": "string", "pattern": "^[a-f0-9]{64}$" }] },
20
+ "projectOverall": { "type": "string", "minLength": 1 },
21
+ "recommendation": {
22
+ "type": "object", "additionalProperties": false,
23
+ "required": ["recommendedMode", "coordination", "reasonCodes"],
24
+ "properties": {
25
+ "recommendedMode": { "enum": ["off", "team"] },
26
+ "coordination": { "enum": ["none", "project_driver_team"] },
27
+ "reasonCodes": { "$ref": "#/$defs/strings" }
28
+ }
29
+ },
30
+ "lanes": { "type": "array", "items": { "$ref": "#/$defs/lane" } },
31
+ "pathConflicts": { "type": "array", "items": { "$ref": "#/$defs/pathConflict" } },
32
+ "acceptanceGaps": { "type": "array", "items": { "$ref": "#/$defs/acceptanceGap" } },
33
+ "ownerTransitions": { "type": "array", "items": { "$ref": "#/$defs/ownerTransition" } },
34
+ "nextAction": { "$ref": "#/$defs/nullableText" },
35
+ "dispatch": { "$ref": "#/$defs/dispatch" },
36
+ "authorityBoundary": { "$ref": "#/$defs/authorityBoundary" },
37
+ "authorizationGranted": { "const": false },
38
+ "exitCode": { "const": 0 }
39
+ },
40
+ "$defs": {
41
+ "text": { "type": "string", "minLength": 1 },
42
+ "nullableText": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/text" }] },
43
+ "strings": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
44
+ "nonemptyStrings": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
45
+ "lane": {
46
+ "type": "object", "additionalProperties": false,
47
+ "required": ["workItemId", "title", "status", "agentId", "dependencies", "unresolvedDependencies", "ownedPaths", "actionable", "parallelEligible", "coordinationFacts"],
48
+ "properties": {
49
+ "workItemId": { "$ref": "#/$defs/text" }, "title": { "$ref": "#/$defs/text" },
50
+ "status": { "$ref": "#/$defs/text" }, "agentId": { "$ref": "#/$defs/nullableText" },
51
+ "dependencies": { "$ref": "#/$defs/strings" }, "unresolvedDependencies": { "$ref": "#/$defs/strings" },
52
+ "ownedPaths": { "$ref": "#/$defs/nonemptyStrings" }, "actionable": { "type": "boolean" },
53
+ "parallelEligible": { "type": "boolean" }, "coordinationFacts": { "$ref": "#/$defs/strings" }
54
+ }
55
+ },
56
+ "pathConflict": { "type": "object", "additionalProperties": false, "required": ["leftWorkItemId", "leftPath", "rightWorkItemId", "rightPath"], "properties": { "leftWorkItemId": { "$ref": "#/$defs/text" }, "leftPath": { "$ref": "#/$defs/text" }, "rightWorkItemId": { "$ref": "#/$defs/text" }, "rightPath": { "$ref": "#/$defs/text" } } },
57
+ "acceptanceGap": { "type": "object", "additionalProperties": false, "required": ["workItemId", "code", "message"], "properties": { "workItemId": { "$ref": "#/$defs/text" }, "code": { "const": "verification_model_family_unbound" }, "message": { "$ref": "#/$defs/text" } } },
58
+ "ownerTransition": { "type": "object", "additionalProperties": false, "required": ["workItemId", "facts"], "properties": { "workItemId": { "$ref": "#/$defs/text" }, "facts": { "$ref": "#/$defs/nonemptyStrings" } } },
59
+ "dispatch": { "type": "object", "additionalProperties": false, "required": ["mode", "permitted", "nextCommand"], "properties": { "mode": { "const": "none" }, "permitted": { "const": false }, "nextCommand": { "type": "null" } } },
60
+ "authorityBoundary": { "type": "object", "additionalProperties": false, "required": ["agentDispatch", "git", "release", "deployment", "production", "business", "automation", "money"], "properties": { "agentDispatch": { "const": false }, "git": { "const": false }, "release": { "const": false }, "deployment": { "const": false }, "production": { "const": false }, "business": { "const": false }, "automation": { "const": false }, "money": { "const": false } } }
61
+ },
62
+ "examples": [{
63
+ "schemaVersion": "OwlCodaRunKitTeamDeliveryStatusV1", "status": "team_delivery_status",
64
+ "graphSource": "project_driver", "persistedTeamGraph": false, "projectId": null,
65
+ "projectTruthHash": null, "projectOverall": "not_initialized",
66
+ "recommendation": { "recommendedMode": "off", "coordination": "none", "reasonCodes": ["project_driver_not_initialized"] },
67
+ "lanes": [], "pathConflicts": [], "acceptanceGaps": [], "ownerTransitions": [], "nextAction": null,
68
+ "dispatch": { "mode": "none", "permitted": false, "nextCommand": null },
69
+ "authorityBoundary": { "agentDispatch": false, "git": false, "release": false, "deployment": false, "production": false, "business": false, "automation": false, "money": false },
70
+ "authorizationGranted": false, "exitCode": 0
71
+ }]
72
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/team-packet-validation-v1.schema.json",
4
+ "title": "OwlCoda RunKit Team Packet Validation V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "status", "packetKind", "packetSchemaVersion", "issueCodes", "authorityBoundary", "authorizationGranted", "exitCode"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitTeamPacketValidationV1" },
10
+ "status": { "enum": ["team_packet_valid", "team_packet_invalid"] },
11
+ "packetKind": { "enum": ["task", "acceptance", "transfer", "unknown"] },
12
+ "packetSchemaVersion": { "oneOf": [{ "type": "null" }, { "type": "string", "minLength": 1 }] },
13
+ "issueCodes": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
14
+ "authorityBoundary": {
15
+ "type": "object", "additionalProperties": false,
16
+ "required": ["agentDispatch", "git", "release", "deployment", "production", "business", "automation", "money"],
17
+ "properties": { "agentDispatch": { "const": false }, "git": { "const": false }, "release": { "const": false }, "deployment": { "const": false }, "production": { "const": false }, "business": { "const": false }, "automation": { "const": false }, "money": { "const": false } }
18
+ },
19
+ "authorizationGranted": { "const": false },
20
+ "exitCode": { "enum": [0, 2] }
21
+ },
22
+ "allOf": [{
23
+ "if": { "properties": { "status": { "const": "team_packet_valid" } }, "required": ["status"] },
24
+ "then": { "properties": { "issueCodes": { "maxItems": 0 }, "exitCode": { "const": 0 } } },
25
+ "else": { "properties": { "issueCodes": { "minItems": 1 }, "exitCode": { "const": 2 } } }
26
+ }],
27
+ "examples": [{
28
+ "schemaVersion": "OwlCodaRunKitTeamPacketValidationV1", "status": "team_packet_valid",
29
+ "packetKind": "task", "packetSchemaVersion": "OwlCodaRunKitTeamTaskPacketV2", "issueCodes": [],
30
+ "authorityBoundary": { "agentDispatch": false, "git": false, "release": false, "deployment": false, "production": false, "business": false, "automation": false, "money": false },
31
+ "authorizationGranted": false, "exitCode": 0
32
+ }]
33
+ }
@@ -0,0 +1,89 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/team-project-event-v5.schema.json",
4
+ "title": "OwlCoda RunKit Team Project Event V5",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "eventId",
10
+ "type",
11
+ "occurredAt",
12
+ "revisionId",
13
+ "assignmentId",
14
+ "workItemId",
15
+ "ownerAgentId",
16
+ "previousOwnedPaths",
17
+ "ownedPaths",
18
+ "previousMeasurable",
19
+ "measurable",
20
+ "reason",
21
+ "evidenceRefs"
22
+ ],
23
+ "properties": {
24
+ "schemaVersion": { "const": "OwlCodaRunKitTeamProjectEventV5" },
25
+ "eventId": { "$ref": "#/$defs/id" },
26
+ "type": { "const": "work_item_scope_revised" },
27
+ "occurredAt": {
28
+ "type": "string",
29
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
30
+ },
31
+ "revisionId": { "$ref": "#/$defs/id" },
32
+ "supersedesRevisionId": { "$ref": "#/$defs/id" },
33
+ "assignmentId": { "$ref": "#/$defs/id" },
34
+ "workItemId": { "$ref": "#/$defs/id" },
35
+ "ownerAgentId": { "$ref": "#/$defs/id" },
36
+ "previousOwnedPaths": { "$ref": "#/$defs/paths" },
37
+ "ownedPaths": { "$ref": "#/$defs/paths" },
38
+ "previousMeasurable": { "$ref": "#/$defs/nullableMeasurable" },
39
+ "measurable": { "$ref": "#/$defs/nullableMeasurable" },
40
+ "reason": { "type": "string", "minLength": 1 },
41
+ "evidenceRefs": {
42
+ "type": "array",
43
+ "uniqueItems": true,
44
+ "items": { "type": "string", "minLength": 1 }
45
+ }
46
+ },
47
+ "examples": [
48
+ {
49
+ "schemaVersion": "OwlCodaRunKitTeamProjectEventV5",
50
+ "eventId": "scope-revision-001",
51
+ "type": "work_item_scope_revised",
52
+ "occurredAt": "2026-08-13T05:57:10.000Z",
53
+ "revisionId": "revision-001",
54
+ "assignmentId": "assignment-001",
55
+ "workItemId": "canonical-adapter",
56
+ "ownerAgentId": "luna-max",
57
+ "previousOwnedPaths": ["src/adapter/**"],
58
+ "ownedPaths": ["src/adapter/**", "src/canonical-store/**"],
59
+ "previousMeasurable": { "unit": "interface", "total": 1 },
60
+ "measurable": { "unit": "interface", "total": 2 },
61
+ "reason": "Diagnosis proved the canonical store is part of the same bounded fix.",
62
+ "evidenceRefs": ["docs/decisions/scope-revision.md"]
63
+ }
64
+ ],
65
+ "$defs": {
66
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
67
+ "paths": {
68
+ "type": "array",
69
+ "minItems": 1,
70
+ "uniqueItems": true,
71
+ "items": { "type": "string", "minLength": 1 }
72
+ },
73
+ "measurable": {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "required": ["unit", "total"],
77
+ "properties": {
78
+ "unit": { "type": "string", "minLength": 1 },
79
+ "total": { "type": "integer", "minimum": 1 }
80
+ }
81
+ },
82
+ "nullableMeasurable": {
83
+ "oneOf": [
84
+ { "$ref": "#/$defs/measurable" },
85
+ { "type": "null" }
86
+ ]
87
+ }
88
+ }
89
+ }