owlrunkit 0.20.0 → 0.21.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 (44) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +63 -10
  3. package/docs/architecture/OWLCODA_RUNKIT_0201_RELEASE_TRUTH_AND_PROFILE_NORMALIZATION_PATCH_DECISION_20260813.md +95 -0
  4. package/docs/architecture/OWLCODA_RUNKIT_021_TEAM_DELIVERY_PHASE2_PRODUCT_DECISION_20260813.md +249 -0
  5. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +92 -12
  6. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
  7. package/package.json +1 -1
  8. package/packages/attest/README.md +7 -1
  9. package/packages/attest/consumer-surface-v3.json +275 -0
  10. package/packages/attest/distribution-manifest-v1.json +14 -0
  11. package/packages/attest/schemas/canonical-candidate-identity-v1.schema.json +112 -0
  12. package/packages/attest/schemas/foreign-workspace-filesystem-identity-v1.schema.json +32 -0
  13. package/packages/attest/schemas/quick-verification-receipt-v4.schema.json +226 -0
  14. package/packages/attest/src/candidate-identity.mjs +454 -0
  15. package/packages/attest/src/index.mjs +11 -0
  16. package/packages/attest/src/quick-receipt-contract.mjs +126 -5
  17. package/packages/attest/src/quick.mjs +43 -8
  18. package/{registry-release-policy-v1.json → registry-release-policy-v2.json} +8 -9
  19. package/sbom.spdx.json +4 -4
  20. package/scripts/runkit-contract/core-contract.mjs +14 -1
  21. package/scripts/runkit-contract/fleet-skill-plan.mjs +223 -0
  22. package/scripts/runkit-contract/formal-workflow.mjs +3 -1
  23. package/scripts/runkit-contract/inspect-presentation.mjs +56 -0
  24. package/scripts/runkit-contract/install-codex-skill.mjs +1 -0
  25. package/scripts/runkit-contract/onboarding-bootstrap.mjs +15 -0
  26. package/scripts/runkit-contract/onboarding-doctor.mjs +201 -7
  27. package/scripts/runkit-contract/profile-onboarding.mjs +6 -0
  28. package/scripts/runkit-contract/project-cli-resolver.mjs +9 -1
  29. package/scripts/runkit-contract/quick-metrics.mjs +9 -5
  30. package/scripts/runkit-contract/quick-verify.mjs +108 -24
  31. package/scripts/runkit-contract/registry-adoption-gate.mjs +12 -3
  32. package/scripts/runkit-contract/registry-adoption.mjs +10 -5
  33. package/scripts/runkit-contract/runkit-cli.mjs +289 -19
  34. package/scripts/runkit-contract/schemas/delivery-lifecycle-v1.schema.json +91 -0
  35. package/scripts/runkit-contract/schemas/external-gate-v1.schema.json +68 -0
  36. package/scripts/runkit-contract/schemas/fleet-skill-upgrade-plan-v1.schema.json +140 -0
  37. package/scripts/runkit-contract/schemas/inspect-compact-v1.schema.json +93 -0
  38. package/scripts/runkit-contract/schemas/team-delivery-status-v2.schema.json +219 -0
  39. package/scripts/runkit-contract/schemas/team-project-event-v6.schema.json +82 -0
  40. package/scripts/runkit-contract/schemas/team-project-event-v7.schema.json +80 -0
  41. package/scripts/runkit-contract/schemas/team-project-status-v4.schema.json +208 -0
  42. package/scripts/runkit-contract/sync-release-identity.mjs +87 -0
  43. package/scripts/runkit-contract/team-delivery.mjs +128 -3
  44. package/scripts/runkit-contract/team-project.mjs +970 -9
@@ -0,0 +1,91 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/delivery-lifecycle-v1.schema.json",
4
+ "title": "OwlCoda RunKit Delivery Lifecycle V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "lifecycleStatus", "currentStage", "nextRequiredStage",
9
+ "blockingStage", "blockingExternalGateIds", "stages", "authorizationGranted"
10
+ ],
11
+ "properties": {
12
+ "schemaVersion": { "const": "OwlCodaRunKitDeliveryLifecycleV1" },
13
+ "lifecycleStatus": { "enum": ["in_progress", "blocked", "completed"] },
14
+ "currentStage": {
15
+ "enum": [
16
+ "work_ledger_incomplete", "work_ledger_complete", "source_accepted",
17
+ "integrated", "materialized", "deployed", "live_readback_passed", "product_accepted"
18
+ ]
19
+ },
20
+ "nextRequiredStage": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/stageName" }] },
21
+ "blockingStage": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/stageName" }] },
22
+ "blockingExternalGateIds": { "$ref": "#/$defs/strings" },
23
+ "stages": {
24
+ "type": "array",
25
+ "minItems": 6,
26
+ "maxItems": 6,
27
+ "prefixItems": [
28
+ { "$ref": "#/$defs/sourceStage" },
29
+ { "$ref": "#/$defs/integrationStage" },
30
+ { "$ref": "#/$defs/materializationStage" },
31
+ { "$ref": "#/$defs/deploymentStage" },
32
+ { "$ref": "#/$defs/liveReadbackStage" },
33
+ { "$ref": "#/$defs/productAcceptanceStage" }
34
+ ],
35
+ "items": false
36
+ },
37
+ "authorizationGranted": { "const": false }
38
+ },
39
+ "allOf": [
40
+ { "if": { "properties": { "currentStage": { "const": "product_accepted" } }, "required": ["currentStage"] }, "then": { "properties": { "lifecycleStatus": { "const": "completed" }, "nextRequiredStage": { "type": "null" }, "blockingStage": { "type": "null" }, "blockingExternalGateIds": { "maxItems": 0 } } } }
41
+ ],
42
+ "examples": [
43
+ {
44
+ "schemaVersion": "OwlCodaRunKitDeliveryLifecycleV1",
45
+ "lifecycleStatus": "in_progress",
46
+ "currentStage": "work_ledger_complete",
47
+ "nextRequiredStage": "source",
48
+ "blockingStage": null,
49
+ "blockingExternalGateIds": [],
50
+ "stages": [
51
+ { "stage": "source", "status": "pending", "recordId": null, "ownerAgentId": null, "summary": null, "evidenceRefs": [], "externalGateIds": [], "occurredAt": null, "truthRef": null },
52
+ { "stage": "integration", "status": "pending", "recordId": null, "ownerAgentId": null, "summary": null, "evidenceRefs": [], "externalGateIds": [], "occurredAt": null, "truthRef": null },
53
+ { "stage": "materialization", "status": "pending", "recordId": null, "ownerAgentId": null, "summary": null, "evidenceRefs": [], "externalGateIds": [], "occurredAt": null, "truthRef": null },
54
+ { "stage": "deployment", "status": "pending", "recordId": null, "ownerAgentId": null, "summary": null, "evidenceRefs": [], "externalGateIds": [], "occurredAt": null, "truthRef": null },
55
+ { "stage": "live_readback", "status": "pending", "recordId": null, "ownerAgentId": null, "summary": null, "evidenceRefs": [], "externalGateIds": [], "occurredAt": null, "truthRef": null },
56
+ { "stage": "product_acceptance", "status": "pending", "recordId": null, "ownerAgentId": null, "summary": null, "evidenceRefs": [], "externalGateIds": [], "occurredAt": null, "truthRef": null }
57
+ ],
58
+ "authorizationGranted": false
59
+ }
60
+ ],
61
+ "$defs": {
62
+ "text": { "type": "string", "minLength": 1 },
63
+ "nullableText": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/text" }] },
64
+ "timestamp": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" },
65
+ "nullableTimestamp": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/timestamp" }] },
66
+ "stageName": { "enum": ["source", "integration", "materialization", "deployment", "live_readback", "product_acceptance"] },
67
+ "strings": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
68
+ "stageBase": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "required": ["stage", "status", "recordId", "ownerAgentId", "summary", "evidenceRefs", "externalGateIds", "occurredAt", "truthRef"],
72
+ "properties": {
73
+ "stage": { "$ref": "#/$defs/stageName" },
74
+ "status": { "type": "string", "minLength": 1 },
75
+ "recordId": { "$ref": "#/$defs/nullableText" },
76
+ "ownerAgentId": { "$ref": "#/$defs/nullableText" },
77
+ "summary": { "$ref": "#/$defs/nullableText" },
78
+ "evidenceRefs": { "$ref": "#/$defs/strings" },
79
+ "externalGateIds": { "$ref": "#/$defs/strings" },
80
+ "occurredAt": { "$ref": "#/$defs/nullableTimestamp" },
81
+ "truthRef": { "$ref": "#/$defs/nullableText" }
82
+ }
83
+ },
84
+ "sourceStage": { "allOf": [{ "$ref": "#/$defs/stageBase" }, { "properties": { "stage": { "const": "source" }, "status": { "enum": ["pending", "accepted", "rejected"] } } }] },
85
+ "integrationStage": { "allOf": [{ "$ref": "#/$defs/stageBase" }, { "properties": { "stage": { "const": "integration" }, "status": { "enum": ["pending", "integrated", "rejected"] } } }] },
86
+ "materializationStage": { "allOf": [{ "$ref": "#/$defs/stageBase" }, { "properties": { "stage": { "const": "materialization" }, "status": { "enum": ["pending", "materialized", "failed"] } } }] },
87
+ "deploymentStage": { "allOf": [{ "$ref": "#/$defs/stageBase" }, { "properties": { "stage": { "const": "deployment" }, "status": { "enum": ["pending", "deployed", "failed", "rolled_back"] } } }] },
88
+ "liveReadbackStage": { "allOf": [{ "$ref": "#/$defs/stageBase" }, { "properties": { "stage": { "const": "live_readback" }, "status": { "enum": ["pending", "passed", "failed"] } } }] },
89
+ "productAcceptanceStage": { "allOf": [{ "$ref": "#/$defs/stageBase" }, { "properties": { "stage": { "const": "product_acceptance" }, "status": { "enum": ["pending", "accepted", "rejected", "deferred"] } } }] }
90
+ }
91
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/external-gate-v1.schema.json",
4
+ "title": "OwlCoda RunKit External Gate V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "gateId", "title", "requiredFor", "gateStatus",
9
+ "blocking", "ownerAgentId", "source", "summary", "evidenceRefs",
10
+ "occurredAt", "truthRefs", "authorizationGranted"
11
+ ],
12
+ "properties": {
13
+ "schemaVersion": { "const": "OwlCodaRunKitExternalGateV1" },
14
+ "gateId": { "$ref": "#/$defs/id" },
15
+ "title": { "$ref": "#/$defs/text" },
16
+ "requiredFor": { "$ref": "#/$defs/stage" },
17
+ "gateStatus": { "enum": ["pending", "passed", "blocked", "deferred"] },
18
+ "blocking": { "type": "boolean" },
19
+ "ownerAgentId": { "$ref": "#/$defs/id" },
20
+ "source": {
21
+ "type": "object",
22
+ "additionalProperties": false,
23
+ "required": ["adapterId", "ref", "sha256"],
24
+ "properties": {
25
+ "adapterId": { "$ref": "#/$defs/id" },
26
+ "ref": { "$ref": "#/$defs/text" },
27
+ "sha256": { "$ref": "#/$defs/sha256" }
28
+ }
29
+ },
30
+ "summary": { "$ref": "#/$defs/text" },
31
+ "evidenceRefs": { "$ref": "#/$defs/nonemptyStrings" },
32
+ "occurredAt": { "$ref": "#/$defs/timestamp" },
33
+ "truthRefs": { "$ref": "#/$defs/nonemptyStrings" },
34
+ "authorizationGranted": { "const": false }
35
+ },
36
+ "allOf": [
37
+ { "if": { "properties": { "gateStatus": { "const": "passed" } }, "required": ["gateStatus"] }, "then": { "properties": { "blocking": { "const": false } } }, "else": { "properties": { "blocking": { "const": true } } } }
38
+ ],
39
+ "examples": [
40
+ {
41
+ "schemaVersion": "OwlCodaRunKitExternalGateV1",
42
+ "gateId": "packaging-l1",
43
+ "title": "Packaging cross-family L1",
44
+ "requiredFor": "source",
45
+ "gateStatus": "pending",
46
+ "blocking": true,
47
+ "ownerAgentId": "reviewer",
48
+ "source": {
49
+ "adapterId": "product-contract-v1",
50
+ "ref": "docs/PRODUCT_CONTRACT.md",
51
+ "sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
52
+ },
53
+ "summary": "External acceptance remains pending.",
54
+ "evidenceRefs": ["artifact:product-contract"],
55
+ "occurredAt": "2026-08-13T00:03:00.000Z",
56
+ "truthRefs": ["project/events/external-gate-packaging-pending.json"],
57
+ "authorizationGranted": false
58
+ }
59
+ ],
60
+ "$defs": {
61
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$" },
62
+ "text": { "type": "string", "minLength": 1 },
63
+ "timestamp": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" },
64
+ "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
65
+ "stage": { "enum": ["source", "integration", "materialization", "deployment", "live_readback", "product_acceptance"] },
66
+ "nonemptyStrings": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/text" } }
67
+ }
68
+ }
@@ -0,0 +1,140 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.dev/schemas/runkit/fleet-skill-upgrade-plan-v1.schema.json",
4
+ "title": "OwlCoda RunKit Fleet Skill Upgrade Plan V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "status", "expectedCore", "sharedSkill", "discovery", "affectedProjects", "blockers", "commands", "authorizationGranted"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "OwlCodaRunKitFleetSkillUpgradePlanV1" },
10
+ "status": { "enum": ["ready", "blocked"] },
11
+ "expectedCore": {
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "required": ["contractVersion", "coreVersion", "coreManifestSha256", "coreSourceRef"],
15
+ "properties": {
16
+ "contractVersion": { "const": "0.2" },
17
+ "coreVersion": { "type": "string", "pattern": "^\\d+\\.\\d+\\.\\d+$" },
18
+ "coreManifestSha256": { "$ref": "#/$defs/sha256" },
19
+ "coreSourceRef": { "type": "string", "pattern": "^artifact:sha256:[a-f0-9]{64}$" }
20
+ }
21
+ },
22
+ "sharedSkill": {
23
+ "type": "object",
24
+ "additionalProperties": false,
25
+ "required": ["targetRoot", "status", "installedSkillVersion", "installedConfigCoreVersion", "issues"],
26
+ "properties": {
27
+ "targetRoot": { "type": "string", "minLength": 1 },
28
+ "status": { "enum": ["missing", "unmanaged", "drifted", "version_mismatch", "valid"] },
29
+ "installedSkillVersion": { "type": ["string", "null"] },
30
+ "installedConfigCoreVersion": { "type": ["string", "null"] },
31
+ "issues": { "$ref": "#/$defs/strings" }
32
+ }
33
+ },
34
+ "discovery": {
35
+ "oneOf": [
36
+ { "type": "null" },
37
+ {
38
+ "type": "object",
39
+ "additionalProperties": false,
40
+ "required": ["source", "complete", "workspaceCount", "unreachableRoots"],
41
+ "properties": {
42
+ "source": { "type": "string", "minLength": 1 },
43
+ "complete": { "type": "boolean" },
44
+ "workspaceCount": { "type": "integer", "minimum": 0 },
45
+ "unreachableRoots": { "$ref": "#/$defs/strings" }
46
+ }
47
+ }
48
+ ]
49
+ },
50
+ "affectedProjects": {
51
+ "type": "array",
52
+ "items": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["workspaceRoot", "configPath", "configCoreVersion", "activeRunIds", "activeLeaseIds", "upgradeSafe"],
56
+ "properties": {
57
+ "workspaceRoot": { "type": "string", "minLength": 1 },
58
+ "configPath": { "type": "string", "minLength": 1 },
59
+ "configCoreVersion": { "type": ["string", "null"] },
60
+ "activeRunIds": { "$ref": "#/$defs/strings" },
61
+ "activeLeaseIds": { "$ref": "#/$defs/strings" },
62
+ "upgradeSafe": { "type": "boolean" }
63
+ }
64
+ }
65
+ },
66
+ "blockers": {
67
+ "type": "array",
68
+ "items": {
69
+ "type": "object",
70
+ "required": ["code"],
71
+ "properties": {
72
+ "code": { "type": "string", "minLength": 1 },
73
+ "workspaceRoot": { "type": "string", "minLength": 1 },
74
+ "artifactId": { "type": "string", "minLength": 1 },
75
+ "detail": { "type": "string", "minLength": 1 }
76
+ },
77
+ "additionalProperties": false
78
+ }
79
+ },
80
+ "commands": {
81
+ "type": "object",
82
+ "additionalProperties": false,
83
+ "required": ["dryRun", "install", "rollback"],
84
+ "properties": {
85
+ "dryRun": { "type": "string", "minLength": 1 },
86
+ "install": { "type": "string", "minLength": 1 },
87
+ "rollback": { "type": "string", "minLength": 1 }
88
+ }
89
+ },
90
+ "authorizationGranted": { "const": false }
91
+ },
92
+ "allOf": [
93
+ {
94
+ "if": { "properties": { "status": { "const": "ready" } }, "required": ["status"] },
95
+ "then": { "properties": { "blockers": { "maxItems": 0 } } },
96
+ "else": { "properties": { "blockers": { "minItems": 1 } } }
97
+ }
98
+ ],
99
+ "examples": [
100
+ {
101
+ "schemaVersion": "OwlCodaRunKitFleetSkillUpgradePlanV1",
102
+ "status": "blocked",
103
+ "expectedCore": {
104
+ "contractVersion": "0.2",
105
+ "coreVersion": "0.21.0",
106
+ "coreManifestSha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
107
+ "coreSourceRef": "artifact:sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
108
+ },
109
+ "sharedSkill": {
110
+ "targetRoot": "/opt/codex/skills/owlcoda-runkit",
111
+ "status": "version_mismatch",
112
+ "installedSkillVersion": "0.20.0",
113
+ "installedConfigCoreVersion": "0.20.0",
114
+ "issues": ["installed_skill_core_version_mismatch"]
115
+ },
116
+ "discovery": { "source": "fleet_registry", "complete": true, "workspaceCount": 1, "unreachableRoots": [] },
117
+ "affectedProjects": [
118
+ {
119
+ "workspaceRoot": "/projects/example",
120
+ "configPath": "/projects/example/.owlcoda/runkit/config.json",
121
+ "configCoreVersion": "0.20.0",
122
+ "activeRunIds": ["active-run"],
123
+ "activeLeaseIds": [],
124
+ "upgradeSafe": false
125
+ }
126
+ ],
127
+ "blockers": [{ "code": "active_execution", "workspaceRoot": "/projects/example", "artifactId": "active-run" }],
128
+ "commands": {
129
+ "dryRun": "npx --no-install owlrunkit fleet skill-plan ...",
130
+ "install": "node install-codex-skill.mjs install ...",
131
+ "rollback": "node install-codex-skill.mjs restore ..."
132
+ },
133
+ "authorizationGranted": false
134
+ }
135
+ ],
136
+ "$defs": {
137
+ "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
138
+ "strings": { "type": "array", "uniqueItems": true, "items": { "type": "string", "minLength": 1 } }
139
+ }
140
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/inspect-compact-v1.schema.json",
4
+ "title": "OwlCoda RunKit Inspect Compact V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "status", "exitCode", "projectTruthHash", "progress",
9
+ "dominantGap", "ownerAgentId", "nextAction", "warningSummary", "execution",
10
+ "authorityBoundary", "authorizationGranted"
11
+ ],
12
+ "properties": {
13
+ "schemaVersion": { "const": "OwlCodaRunKitInspectCompactV1" },
14
+ "status": { "const": "inspected_compact" },
15
+ "exitCode": { "enum": [0, 2] },
16
+ "projectTruthHash": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/hash" }] },
17
+ "progress": {
18
+ "type": "object", "additionalProperties": false,
19
+ "required": ["overall", "completedWorkItems", "totalWorkItems"],
20
+ "properties": {
21
+ "overall": { "$ref": "#/$defs/nullableText" },
22
+ "completedWorkItems": { "$ref": "#/$defs/nullableCount" },
23
+ "totalWorkItems": { "$ref": "#/$defs/nullableCount" }
24
+ }
25
+ },
26
+ "dominantGap": {
27
+ "type": "object", "additionalProperties": false,
28
+ "required": ["code", "reason"],
29
+ "properties": {
30
+ "code": { "$ref": "#/$defs/text" },
31
+ "reason": { "$ref": "#/$defs/nullableText" }
32
+ }
33
+ },
34
+ "ownerAgentId": { "$ref": "#/$defs/nullableText" },
35
+ "nextAction": { "$ref": "#/$defs/text" },
36
+ "warningSummary": {
37
+ "type": "object", "additionalProperties": false,
38
+ "required": ["count", "groups"],
39
+ "properties": {
40
+ "count": { "type": "integer", "minimum": 0 },
41
+ "groups": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "object", "additionalProperties": false,
45
+ "required": ["code", "count", "blocking"],
46
+ "properties": {
47
+ "code": { "$ref": "#/$defs/text" },
48
+ "count": { "type": "integer", "minimum": 1 },
49
+ "blocking": { "type": "boolean" }
50
+ }
51
+ }
52
+ }
53
+ }
54
+ },
55
+ "execution": {
56
+ "type": "object", "additionalProperties": false,
57
+ "required": ["state", "openCount", "activeLeaseCount"],
58
+ "properties": {
59
+ "state": { "$ref": "#/$defs/text" },
60
+ "openCount": { "type": "integer", "minimum": 0 },
61
+ "activeLeaseCount": { "type": "integer", "minimum": 0 }
62
+ }
63
+ },
64
+ "authorityBoundary": { "$ref": "#/$defs/authorityBoundary" },
65
+ "authorizationGranted": { "const": false }
66
+ },
67
+ "$defs": {
68
+ "text": { "type": "string", "minLength": 1 },
69
+ "nullableText": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/text" }] },
70
+ "nullableCount": { "oneOf": [{ "type": "null" }, { "type": "integer", "minimum": 0 }] },
71
+ "hash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
72
+ "authorityBoundary": {
73
+ "type": "object", "additionalProperties": false,
74
+ "required": ["git", "release", "deployment", "production", "business"],
75
+ "properties": {
76
+ "git": { "const": false }, "release": { "const": false },
77
+ "deployment": { "const": false }, "production": { "const": false },
78
+ "business": { "const": false }
79
+ }
80
+ }
81
+ },
82
+ "examples": [{
83
+ "schemaVersion": "OwlCodaRunKitInspectCompactV1", "status": "inspected_compact",
84
+ "exitCode": 0, "projectTruthHash": null,
85
+ "progress": { "overall": null, "completedWorkItems": null, "totalWorkItems": null },
86
+ "dominantGap": { "code": "plan_new_execution", "reason": null },
87
+ "ownerAgentId": null, "nextAction": "plan_new_execution",
88
+ "warningSummary": { "count": 0, "groups": [] },
89
+ "execution": { "state": "no_active_execution", "openCount": 0, "activeLeaseCount": 0 },
90
+ "authorityBoundary": { "git": false, "release": false, "deployment": false, "production": false, "business": false },
91
+ "authorizationGranted": false
92
+ }]
93
+ }
@@ -0,0 +1,219 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/team-delivery-status-v2.schema.json",
4
+ "title": "OwlCoda RunKit Team Delivery Status V2",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "status", "graphSource", "persistedTeamGraph", "projectId",
9
+ "projectTruthHash", "projectOverall", "recommendation", "lanes", "pathConflicts",
10
+ "acceptanceGaps", "ownerTransitions", "externalGates", "deliveryLifecycle",
11
+ "unmodeledCandidateLanes", "warnings", "warningSummary", "nextAction", "dispatch",
12
+ "authorityBoundary", "authorizationGranted", "exitCode"
13
+ ],
14
+ "properties": {
15
+ "schemaVersion": { "const": "OwlCodaRunKitTeamDeliveryStatusV2" },
16
+ "status": { "const": "team_delivery_status" },
17
+ "graphSource": { "const": "project_driver" },
18
+ "persistedTeamGraph": { "const": false },
19
+ "projectId": { "$ref": "#/$defs/nullableText" },
20
+ "projectTruthHash": { "oneOf": [{ "type": "null" }, { "type": "string", "pattern": "^[a-f0-9]{64}$" }] },
21
+ "projectOverall": { "$ref": "#/$defs/text" },
22
+ "recommendation": {
23
+ "type": "object",
24
+ "additionalProperties": false,
25
+ "required": ["recommendedMode", "coordination", "reasonCodes"],
26
+ "properties": {
27
+ "recommendedMode": { "enum": ["off", "team"] },
28
+ "coordination": { "enum": ["none", "project_driver_team"] },
29
+ "reasonCodes": { "$ref": "#/$defs/strings" }
30
+ }
31
+ },
32
+ "lanes": { "type": "array", "items": { "$ref": "#/$defs/lane" } },
33
+ "pathConflicts": { "type": "array", "items": { "$ref": "#/$defs/pathConflict" } },
34
+ "acceptanceGaps": { "type": "array", "items": { "$ref": "#/$defs/acceptanceGap" } },
35
+ "ownerTransitions": { "type": "array", "items": { "$ref": "#/$defs/ownerTransition" } },
36
+ "externalGates": { "type": "array", "items": { "$ref": "#/$defs/externalGate" } },
37
+ "deliveryLifecycle": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/deliveryLifecycle" }] },
38
+ "unmodeledCandidateLanes": { "type": "array", "items": { "$ref": "#/$defs/candidateLane" } },
39
+ "warnings": { "type": "array", "items": { "$ref": "#/$defs/warning" } },
40
+ "warningSummary": {
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": ["count", "groups"],
44
+ "properties": {
45
+ "count": { "type": "integer", "minimum": 0 },
46
+ "groups": { "type": "array", "items": { "$ref": "#/$defs/warningGroup" } }
47
+ }
48
+ },
49
+ "nextAction": { "$ref": "#/$defs/nullableText" },
50
+ "dispatch": { "$ref": "#/$defs/dispatch" },
51
+ "authorityBoundary": { "$ref": "#/$defs/authorityBoundary" },
52
+ "authorizationGranted": { "const": false },
53
+ "exitCode": { "const": 0 }
54
+ },
55
+ "examples": [
56
+ {
57
+ "schemaVersion": "OwlCodaRunKitTeamDeliveryStatusV2",
58
+ "status": "team_delivery_status",
59
+ "graphSource": "project_driver",
60
+ "persistedTeamGraph": false,
61
+ "projectId": null,
62
+ "projectTruthHash": null,
63
+ "projectOverall": "not_initialized",
64
+ "recommendation": {
65
+ "recommendedMode": "off",
66
+ "coordination": "none",
67
+ "reasonCodes": ["project_driver_not_initialized"]
68
+ },
69
+ "lanes": [],
70
+ "pathConflicts": [],
71
+ "acceptanceGaps": [],
72
+ "ownerTransitions": [],
73
+ "externalGates": [],
74
+ "deliveryLifecycle": null,
75
+ "unmodeledCandidateLanes": [],
76
+ "warnings": [],
77
+ "warningSummary": { "count": 0, "groups": [] },
78
+ "nextAction": null,
79
+ "dispatch": { "mode": "none", "permitted": false, "nextCommand": null },
80
+ "authorityBoundary": {
81
+ "agentDispatch": false,
82
+ "git": false,
83
+ "release": false,
84
+ "deployment": false,
85
+ "production": false,
86
+ "business": false,
87
+ "automation": false,
88
+ "money": false
89
+ },
90
+ "authorizationGranted": false,
91
+ "exitCode": 0
92
+ }
93
+ ],
94
+ "$defs": {
95
+ "text": { "type": "string", "minLength": 1 },
96
+ "nullableText": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/text" }] },
97
+ "strings": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
98
+ "nonemptyStrings": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
99
+ "stageName": { "enum": ["source", "integration", "materialization", "deployment", "live_readback", "product_acceptance"] },
100
+ "nullableStage": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/stageName" }] },
101
+ "lane": {
102
+ "type": "object",
103
+ "additionalProperties": false,
104
+ "required": ["workItemId", "title", "status", "agentId", "dependencies", "unresolvedDependencies", "ownedPaths", "actionable", "parallelEligible", "coordinationFacts"],
105
+ "properties": {
106
+ "workItemId": { "$ref": "#/$defs/text" },
107
+ "title": { "$ref": "#/$defs/text" },
108
+ "status": { "$ref": "#/$defs/text" },
109
+ "agentId": { "$ref": "#/$defs/nullableText" },
110
+ "dependencies": { "$ref": "#/$defs/strings" },
111
+ "unresolvedDependencies": { "$ref": "#/$defs/strings" },
112
+ "ownedPaths": { "$ref": "#/$defs/nonemptyStrings" },
113
+ "actionable": { "type": "boolean" },
114
+ "parallelEligible": { "type": "boolean" },
115
+ "coordinationFacts": { "$ref": "#/$defs/strings" }
116
+ }
117
+ },
118
+ "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" } } },
119
+ "acceptanceGap": { "type": "object", "additionalProperties": false, "required": ["workItemId", "code", "message"], "properties": { "workItemId": { "$ref": "#/$defs/text" }, "code": { "const": "verification_model_family_unbound" }, "message": { "$ref": "#/$defs/text" } } },
120
+ "ownerTransition": { "type": "object", "additionalProperties": false, "required": ["workItemId", "facts"], "properties": { "workItemId": { "$ref": "#/$defs/text" }, "facts": { "$ref": "#/$defs/nonemptyStrings" } } },
121
+ "externalGate": {
122
+ "type": "object",
123
+ "additionalProperties": false,
124
+ "required": ["schemaVersion", "gateId", "title", "requiredFor", "gateStatus", "blocking", "ownerAgentId", "source", "summary", "evidenceRefs", "occurredAt", "truthRefs", "authorizationGranted"],
125
+ "properties": {
126
+ "schemaVersion": { "const": "OwlCodaRunKitExternalGateV1" },
127
+ "gateId": { "$ref": "#/$defs/text" },
128
+ "title": { "$ref": "#/$defs/text" },
129
+ "requiredFor": { "$ref": "#/$defs/stageName" },
130
+ "gateStatus": { "enum": ["pending", "passed", "blocked", "deferred"] },
131
+ "blocking": { "type": "boolean" },
132
+ "ownerAgentId": { "$ref": "#/$defs/text" },
133
+ "source": { "type": "object", "additionalProperties": false, "required": ["adapterId", "ref", "sha256"], "properties": { "adapterId": { "$ref": "#/$defs/text" }, "ref": { "$ref": "#/$defs/text" }, "sha256": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" } } },
134
+ "summary": { "$ref": "#/$defs/text" },
135
+ "evidenceRefs": { "$ref": "#/$defs/nonemptyStrings" },
136
+ "occurredAt": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" },
137
+ "truthRefs": { "$ref": "#/$defs/nonemptyStrings" },
138
+ "authorizationGranted": { "const": false }
139
+ }
140
+ },
141
+ "deliveryStage": {
142
+ "type": "object",
143
+ "additionalProperties": false,
144
+ "required": ["stage", "status", "recordId", "ownerAgentId", "summary", "evidenceRefs", "externalGateIds", "occurredAt", "truthRef"],
145
+ "properties": {
146
+ "stage": { "$ref": "#/$defs/stageName" },
147
+ "status": { "enum": ["pending", "accepted", "rejected", "integrated", "materialized", "deployed", "failed", "rolled_back", "passed", "deferred"] },
148
+ "recordId": { "$ref": "#/$defs/nullableText" },
149
+ "ownerAgentId": { "$ref": "#/$defs/nullableText" },
150
+ "summary": { "$ref": "#/$defs/nullableText" },
151
+ "evidenceRefs": { "$ref": "#/$defs/strings" },
152
+ "externalGateIds": { "$ref": "#/$defs/strings" },
153
+ "occurredAt": { "oneOf": [{ "type": "null" }, { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$" }] },
154
+ "truthRef": { "$ref": "#/$defs/nullableText" }
155
+ }
156
+ },
157
+ "deliveryLifecycle": {
158
+ "type": "object",
159
+ "additionalProperties": false,
160
+ "required": ["schemaVersion", "lifecycleStatus", "currentStage", "nextRequiredStage", "blockingStage", "blockingExternalGateIds", "stages", "authorizationGranted"],
161
+ "properties": {
162
+ "schemaVersion": { "const": "OwlCodaRunKitDeliveryLifecycleV1" },
163
+ "lifecycleStatus": { "enum": ["in_progress", "blocked", "completed"] },
164
+ "currentStage": { "enum": ["work_ledger_incomplete", "work_ledger_complete", "source_accepted", "integrated", "materialized", "deployed", "live_readback_passed", "product_accepted"] },
165
+ "nextRequiredStage": { "$ref": "#/$defs/nullableStage" },
166
+ "blockingStage": { "$ref": "#/$defs/nullableStage" },
167
+ "blockingExternalGateIds": { "$ref": "#/$defs/strings" },
168
+ "stages": { "type": "array", "minItems": 6, "maxItems": 6, "items": { "$ref": "#/$defs/deliveryStage" } },
169
+ "authorizationGranted": { "const": false }
170
+ }
171
+ },
172
+ "candidateLane": {
173
+ "type": "object",
174
+ "additionalProperties": false,
175
+ "required": ["laneId", "kind", "artifactId", "status", "sourceRef", "actionable", "modeledWorkItemId", "truthRefs"],
176
+ "properties": {
177
+ "laneId": { "$ref": "#/$defs/text" },
178
+ "kind": { "enum": ["data_candidate", "external_gate", "target_snapshot", "source_delivery"] },
179
+ "artifactId": { "$ref": "#/$defs/text" },
180
+ "status": { "$ref": "#/$defs/text" },
181
+ "sourceRef": { "$ref": "#/$defs/text" },
182
+ "actionable": { "type": "boolean" },
183
+ "modeledWorkItemId": { "$ref": "#/$defs/nullableText" },
184
+ "truthRefs": { "$ref": "#/$defs/nonemptyStrings" }
185
+ }
186
+ },
187
+ "warning": {
188
+ "type": "object",
189
+ "additionalProperties": false,
190
+ "required": ["code", "workItemId", "message", "truthRefs", "severity", "blocking", "requiredAtGate", "recommendedAction"],
191
+ "properties": {
192
+ "code": { "const": "no_bound_verification_receipt" },
193
+ "workItemId": { "$ref": "#/$defs/text" },
194
+ "message": { "$ref": "#/$defs/text" },
195
+ "truthRefs": { "$ref": "#/$defs/nonemptyStrings" },
196
+ "severity": { "const": "warning" },
197
+ "blocking": { "const": false },
198
+ "requiredAtGate": { "const": false },
199
+ "recommendedAction": { "enum": ["no_retroactive_action_required", "bind_quick_or_formal_receipt_if_reusable_evidence_is_required"] }
200
+ }
201
+ },
202
+ "warningGroup": {
203
+ "type": "object",
204
+ "additionalProperties": false,
205
+ "required": ["code", "severity", "blocking", "count", "workItemIds", "requiredAtGate", "recommendedAction"],
206
+ "properties": {
207
+ "code": { "const": "no_bound_verification_receipt" },
208
+ "severity": { "const": "warning" },
209
+ "blocking": { "const": false },
210
+ "count": { "type": "integer", "minimum": 1 },
211
+ "workItemIds": { "$ref": "#/$defs/nonemptyStrings" },
212
+ "requiredAtGate": { "const": false },
213
+ "recommendedAction": { "enum": ["no_retroactive_action_required", "bind_quick_or_formal_receipt_if_reusable_evidence_is_required", "review_individual_warning_actions"] }
214
+ }
215
+ },
216
+ "dispatch": { "type": "object", "additionalProperties": false, "required": ["mode", "permitted", "nextCommand"], "properties": { "mode": { "const": "none" }, "permitted": { "const": false }, "nextCommand": { "type": "null" } } },
217
+ "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 } } }
218
+ }
219
+ }