owlrunkit 0.19.2 → 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 (51) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +94 -8
  3. package/docs/architecture/OWLCODA_RUNKIT_0201_RELEASE_TRUTH_AND_PROFILE_NORMALIZATION_PATCH_DECISION_20260813.md +95 -0
  4. package/docs/architecture/OWLCODA_RUNKIT_020_TEAM_DELIVERY_PHASE1_PRODUCT_DECISION_20260813.md +296 -0
  5. package/docs/architecture/OWLCODA_RUNKIT_021_TEAM_DELIVERY_PHASE2_PRODUCT_DECISION_20260813.md +249 -0
  6. package/integrations/codex/skills/owlcoda-runkit/SKILL.md +114 -12
  7. package/integrations/codex/skills/owlcoda-runkit/assets/templates/config.json +3 -3
  8. package/package.json +1 -1
  9. package/packages/attest/README.md +7 -1
  10. package/packages/attest/consumer-surface-v3.json +275 -0
  11. package/packages/attest/distribution-manifest-v1.json +19 -0
  12. package/packages/attest/schemas/canonical-candidate-identity-v1.schema.json +112 -0
  13. package/packages/attest/schemas/foreign-workspace-filesystem-identity-v1.schema.json +32 -0
  14. package/packages/attest/schemas/quick-verification-receipt-v4.schema.json +226 -0
  15. package/packages/attest/src/candidate-identity.mjs +454 -0
  16. package/packages/attest/src/index.mjs +11 -0
  17. package/packages/attest/src/quick-receipt-contract.mjs +126 -5
  18. package/packages/attest/src/quick.mjs +48 -8
  19. package/{registry-release-policy-v1.json → registry-release-policy-v2.json} +8 -9
  20. package/sbom.spdx.json +4 -4
  21. package/scripts/runkit-contract/core-contract.mjs +21 -1
  22. package/scripts/runkit-contract/fleet-skill-plan.mjs +223 -0
  23. package/scripts/runkit-contract/formal-workflow.mjs +3 -1
  24. package/scripts/runkit-contract/inspect-presentation.mjs +56 -0
  25. package/scripts/runkit-contract/install-codex-skill.mjs +1 -0
  26. package/scripts/runkit-contract/onboarding-bootstrap.mjs +15 -0
  27. package/scripts/runkit-contract/onboarding-doctor.mjs +201 -7
  28. package/scripts/runkit-contract/profile-onboarding.mjs +6 -0
  29. package/scripts/runkit-contract/project-cli-resolver.mjs +12 -1
  30. package/scripts/runkit-contract/quick-metrics.mjs +9 -5
  31. package/scripts/runkit-contract/quick-verify.mjs +108 -24
  32. package/scripts/runkit-contract/registry-adoption-gate.mjs +12 -3
  33. package/scripts/runkit-contract/registry-adoption.mjs +10 -5
  34. package/scripts/runkit-contract/runkit-cli.mjs +367 -20
  35. package/scripts/runkit-contract/schemas/candidate-transfer-packet-v1.schema.json +98 -0
  36. package/scripts/runkit-contract/schemas/delivery-lifecycle-v1.schema.json +91 -0
  37. package/scripts/runkit-contract/schemas/external-gate-v1.schema.json +68 -0
  38. package/scripts/runkit-contract/schemas/fleet-skill-upgrade-plan-v1.schema.json +140 -0
  39. package/scripts/runkit-contract/schemas/inspect-compact-v1.schema.json +93 -0
  40. package/scripts/runkit-contract/schemas/team-acceptance-packet-v2.schema.json +109 -0
  41. package/scripts/runkit-contract/schemas/team-delivery-status-v1.schema.json +72 -0
  42. package/scripts/runkit-contract/schemas/team-delivery-status-v2.schema.json +219 -0
  43. package/scripts/runkit-contract/schemas/team-packet-validation-v1.schema.json +33 -0
  44. package/scripts/runkit-contract/schemas/team-project-event-v6.schema.json +82 -0
  45. package/scripts/runkit-contract/schemas/team-project-event-v7.schema.json +80 -0
  46. package/scripts/runkit-contract/schemas/team-project-status-v4.schema.json +208 -0
  47. package/scripts/runkit-contract/schemas/team-recommendation-v1.schema.json +121 -0
  48. package/scripts/runkit-contract/schemas/team-task-packet-v2.schema.json +228 -0
  49. package/scripts/runkit-contract/sync-release-identity.mjs +87 -0
  50. package/scripts/runkit-contract/team-delivery.mjs +1031 -0
  51. package/scripts/runkit-contract/team-project.mjs +970 -9
@@ -0,0 +1,98 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://owlcoda.com/schemas/runkit/candidate-transfer-packet-v1.schema.json",
4
+ "title": "OwlCoda RunKit Candidate Transfer Packet V1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion", "packetId", "projectBinding", "gateId", "workItemId",
9
+ "candidateId", "candidateSha256", "baseSha", "head", "branch", "worktree",
10
+ "dirtyManifestSha256", "patchBundleRef", "snapshotRef", "reconstructionRefs",
11
+ "protectedArtifacts", "previousOwner", "nextOwner", "lifecycle", "handoffAck",
12
+ "verificationStatus", "authorityBoundary", "authorizationGranted"
13
+ ],
14
+ "properties": {
15
+ "schemaVersion": { "const": "OwlCodaRunKitCandidateTransferPacketV1" },
16
+ "packetId": { "$ref": "#/$defs/id" },
17
+ "projectBinding": { "$ref": "#/$defs/projectBinding" },
18
+ "gateId": { "$ref": "#/$defs/id" },
19
+ "workItemId": { "$ref": "#/$defs/id" },
20
+ "candidateId": { "$ref": "#/$defs/id" },
21
+ "candidateSha256": { "$ref": "#/$defs/sha256Ref" },
22
+ "baseSha": { "$ref": "#/$defs/gitRef" },
23
+ "head": { "$ref": "#/$defs/gitRef" },
24
+ "branch": { "$ref": "#/$defs/text" },
25
+ "worktree": { "$ref": "#/$defs/absolutePath" },
26
+ "dirtyManifestSha256": { "$ref": "#/$defs/sha256Ref" },
27
+ "patchBundleRef": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/artifactSha256Ref" }] },
28
+ "snapshotRef": { "$ref": "#/$defs/artifactSha256Ref" },
29
+ "reconstructionRefs": { "$ref": "#/$defs/nonemptyStrings" },
30
+ "protectedArtifacts": { "$ref": "#/$defs/strings" },
31
+ "previousOwner": { "$ref": "#/$defs/id" },
32
+ "nextOwner": { "$ref": "#/$defs/id" },
33
+ "lifecycle": { "enum": ["candidate_active", "transfer_requested", "packet_generated", "new_owner_validation", "handoff_ack", "old_writer_release"] },
34
+ "handoffAck": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "required": ["status", "agent", "occurredAt", "evidenceRefs"],
38
+ "properties": {
39
+ "status": { "enum": ["pending", "accepted", "rejected"] },
40
+ "agent": { "$ref": "#/$defs/nullableText" },
41
+ "occurredAt": { "$ref": "#/$defs/nullableIsoUtc" },
42
+ "evidenceRefs": { "$ref": "#/$defs/strings" }
43
+ }
44
+ },
45
+ "verificationStatus": { "enum": ["source_candidate_unverified", "source_candidate_verified", "accepted", "rework_required"] },
46
+ "authorityBoundary": { "$ref": "#/$defs/authorityBoundary" },
47
+ "authorizationGranted": { "const": false }
48
+ },
49
+ "$defs": {
50
+ "id": { "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$" },
51
+ "text": { "type": "string", "minLength": 1 },
52
+ "nullableText": { "oneOf": [{ "type": "null" }, { "$ref": "#/$defs/text" }] },
53
+ "nullableIsoUtc": { "oneOf": [{ "type": "null" }, { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$" }] },
54
+ "strings": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
55
+ "nonemptyStrings": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "$ref": "#/$defs/text" } },
56
+ "sha256Ref": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
57
+ "artifactSha256Ref": { "type": "string", "pattern": "^artifact:sha256:[a-f0-9]{64}$" },
58
+ "gitRef": { "type": "string", "pattern": "^git:[a-f0-9]{40}([a-f0-9]{24})?$" },
59
+ "absolutePath": { "type": "string", "pattern": "^(?:/|[A-Za-z]:[\\\\/]|\\\\\\\\)" },
60
+ "projectBinding": { "type": "object", "additionalProperties": false, "required": ["projectId", "projectTruthHash"], "properties": { "projectId": { "$ref": "#/$defs/id" }, "projectTruthHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" } } },
61
+ "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 } } }
62
+ },
63
+ "allOf": [{
64
+ "if": {
65
+ "properties": { "lifecycle": { "enum": ["handoff_ack", "old_writer_release"] } },
66
+ "required": ["lifecycle"]
67
+ },
68
+ "then": {
69
+ "properties": {
70
+ "handoffAck": {
71
+ "properties": {
72
+ "status": { "const": "accepted" },
73
+ "agent": { "$ref": "#/$defs/text" },
74
+ "occurredAt": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{3})?Z$" },
75
+ "evidenceRefs": { "minItems": 1 }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }],
81
+ "examples": [{
82
+ "schemaVersion": "OwlCodaRunKitCandidateTransferPacketV1", "packetId": "transfer-packet-001",
83
+ "projectBinding": { "projectId": "team-phase1", "projectTruthHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" },
84
+ "gateId": "ready", "workItemId": "work-1", "candidateId": "candidate-001",
85
+ "candidateSha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
86
+ "baseSha": "git:2222222222222222222222222222222222222222", "head": "git:3333333333333333333333333333333333333333",
87
+ "branch": "codex/team-a", "worktree": "/workspace/team-a",
88
+ "dirtyManifestSha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
89
+ "patchBundleRef": "artifact:sha256:5555555555555555555555555555555555555555555555555555555555555555",
90
+ "snapshotRef": "artifact:sha256:6666666666666666666666666666666666666666666666666666666666666666",
91
+ "reconstructionRefs": ["git:2222222222222222222222222222222222222222"], "protectedArtifacts": ["docs/contract.md"],
92
+ "previousOwner": "agent-a", "nextOwner": "agent-b", "lifecycle": "handoff_ack",
93
+ "handoffAck": { "status": "accepted", "agent": "agent-b", "occurredAt": "2026-08-13T08:00:00.000Z", "evidenceRefs": ["receipt:transfer-001"] },
94
+ "verificationStatus": "source_candidate_unverified",
95
+ "authorityBoundary": { "agentDispatch": false, "git": false, "release": false, "deployment": false, "production": false, "business": false, "automation": false, "money": false },
96
+ "authorizationGranted": false
97
+ }]
98
+ }
@@ -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,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
+ }