archctx-contracts 0.1.5

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 (100) hide show
  1. package/fixtures/boundary/agent-job-expired.json +33 -0
  2. package/fixtures/boundary/architecture-event-extension.json +41 -0
  3. package/fixtures/boundary/architecture-node-extension.json +13 -0
  4. package/fixtures/boundary/attestation-v2-error.json +43 -0
  5. package/fixtures/boundary/check-delivery-dead-letter.json +14 -0
  6. package/fixtures/boundary/evidence-binding-context-only.json +20 -0
  7. package/fixtures/boundary/practice-disabled-overlay.json +59 -0
  8. package/fixtures/boundary/recommendation-deferred.json +19 -0
  9. package/fixtures/boundary/review-challenge-v2-organization.json +15 -0
  10. package/fixtures/boundary/runner-identity-organization-scope.json +16 -0
  11. package/fixtures/invalid/adapter-fidelity-reverse-sync.json +9 -0
  12. package/fixtures/invalid/agent-job-direct-mutation.json +32 -0
  13. package/fixtures/invalid/architecture-event-source-body-field.json +39 -0
  14. package/fixtures/invalid/architecture-snapshot-unknown-mode.json +29 -0
  15. package/fixtures/invalid/attestation-v2-finding-field.json +39 -0
  16. package/fixtures/invalid/check-delivery-legacy-check-name.json +14 -0
  17. package/fixtures/invalid/cloud-egress-envelope-private-field.json +12 -0
  18. package/fixtures/invalid/compatibility-illegal-reason.json +17 -0
  19. package/fixtures/invalid/evidence-binding-summary-substring-authority.json +17 -0
  20. package/fixtures/invalid/evidence-item-source-body-field.json +27 -0
  21. package/fixtures/invalid/explorer-projection-write-field.json +21 -0
  22. package/fixtures/invalid/investigation-report-direct-mutation.json +38 -0
  23. package/fixtures/invalid/investigation-report-missing-proposed-delta.json +19 -0
  24. package/fixtures/invalid/node-unknown-field.json +10 -0
  25. package/fixtures/invalid/notification-event-code-field.json +11 -0
  26. package/fixtures/invalid/practice-policy-empty-test-evidence.json +15 -0
  27. package/fixtures/invalid/practice-policy-negative-recommendation-budget.json +10 -0
  28. package/fixtures/invalid/practice-unknown-field.json +56 -0
  29. package/fixtures/invalid/projection-target-invalid-ownership.json +18 -0
  30. package/fixtures/invalid/recommendation-feedback-implicit-acceptance.json +29 -0
  31. package/fixtures/invalid/recommendation-run-raw-input-field.json +33 -0
  32. package/fixtures/invalid/recommendation-source-body-field.json +17 -0
  33. package/fixtures/invalid/review-challenge-v2-private-field.json +16 -0
  34. package/fixtures/valid/adapter-fidelity.json +9 -0
  35. package/fixtures/valid/agent-job.json +33 -0
  36. package/fixtures/valid/architecture-candidate-delta-policy.json +45 -0
  37. package/fixtures/valid/architecture-candidate-delta.json +188 -0
  38. package/fixtures/valid/architecture-event.json +39 -0
  39. package/fixtures/valid/architecture-intervention.json +36 -0
  40. package/fixtures/valid/architecture-node.json +25 -0
  41. package/fixtures/valid/architecture-relation.json +14 -0
  42. package/fixtures/valid/architecture-snapshot.json +31 -0
  43. package/fixtures/valid/architecture-subject-selector.json +9 -0
  44. package/fixtures/valid/attestation-v2.json +38 -0
  45. package/fixtures/valid/attestation.json +25 -0
  46. package/fixtures/valid/changeset.json +30 -0
  47. package/fixtures/valid/chatgpt-ga-tool.json +9 -0
  48. package/fixtures/valid/check-delivery.json +14 -0
  49. package/fixtures/valid/cloud-egress-envelope.json +11 -0
  50. package/fixtures/valid/compatibility-contract.json +19 -0
  51. package/fixtures/valid/constraint.json +22 -0
  52. package/fixtures/valid/cross-repo-relation.json +23 -0
  53. package/fixtures/valid/device-identity.json +10 -0
  54. package/fixtures/valid/entitlement.json +12 -0
  55. package/fixtures/valid/evidence-binding.json +17 -0
  56. package/fixtures/valid/evidence-item.json +29 -0
  57. package/fixtures/valid/explorer-projection.json +53 -0
  58. package/fixtures/valid/explorer-service.json +11 -0
  59. package/fixtures/valid/external-document-resource.json +29 -0
  60. package/fixtures/valid/governance-key-status.json +11 -0
  61. package/fixtures/valid/investigation-report.json +38 -0
  62. package/fixtures/valid/landscape.json +36 -0
  63. package/fixtures/valid/likec4-mapping.json +14 -0
  64. package/fixtures/valid/notification-event.json +10 -0
  65. package/fixtures/valid/notification-provider.json +12 -0
  66. package/fixtures/valid/org-runner-identity.json +10 -0
  67. package/fixtures/valid/practice-catalog-manifest.json +16 -0
  68. package/fixtures/valid/practice-check-result.json +17 -0
  69. package/fixtures/valid/practice-checkpoint.json +94 -0
  70. package/fixtures/valid/practice-guidance.json +42 -0
  71. package/fixtures/valid/practice-match.json +23 -0
  72. package/fixtures/valid/practice-policy.json +33 -0
  73. package/fixtures/valid/practice-profile.json +22 -0
  74. package/fixtures/valid/practice-source.json +19 -0
  75. package/fixtures/valid/practice-waiver.json +14 -0
  76. package/fixtures/valid/practice.json +93 -0
  77. package/fixtures/valid/product-version-manifest.json +51 -0
  78. package/fixtures/valid/projection-target.json +18 -0
  79. package/fixtures/valid/recommendation-feedback.json +29 -0
  80. package/fixtures/valid/recommendation-run.json +33 -0
  81. package/fixtures/valid/recommendation.json +17 -0
  82. package/fixtures/valid/retrieval-config.json +20 -0
  83. package/fixtures/valid/retrieval-decision.json +26 -0
  84. package/fixtures/valid/retrieval-eval.json +14 -0
  85. package/fixtures/valid/review-challenge-v2.json +15 -0
  86. package/fixtures/valid/review-result.json +32 -0
  87. package/fixtures/valid/runner-identity.json +13 -0
  88. package/fixtures/valid/structurizr-mapping.json +15 -0
  89. package/fixtures/valid/task-context.json +23 -0
  90. package/package.json +17 -0
  91. package/src/control-plane-routes.ts +35 -0
  92. package/src/external-docs.ts +137 -0
  93. package/src/github-governance.ts +850 -0
  94. package/src/index.ts +9 -0
  95. package/src/ledger.ts +649 -0
  96. package/src/ports.ts +385 -0
  97. package/src/practices.ts +433 -0
  98. package/src/product-version.ts +108 -0
  99. package/src/schema.ts +145 -0
  100. package/src/validator.ts +95 -0
@@ -0,0 +1,33 @@
1
+ {
2
+ "schemaVersion": "archcontext.agent-job/v1",
3
+ "jobId": "agent_job.al0_expired",
4
+ "status": "expired",
5
+ "runnerPort": "fake-provider",
6
+ "repository": {
7
+ "repositoryId": "repo.archcontext",
8
+ "storageRepositoryId": "storage-repo.archcontext"
9
+ },
10
+ "worktree": {
11
+ "workspaceId": "workspace.main",
12
+ "storageWorkspaceId": "storage-workspace.main",
13
+ "branch": "main",
14
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
15
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
16
+ },
17
+ "fingerprint": "sha256:1212121212121212121212121212121212121212121212121212121212121212",
18
+ "trigger": {
19
+ "source": "checkpoint",
20
+ "reason": "stale queued job expired before execution"
21
+ },
22
+ "budget": {
23
+ "maxRunsPerTask": 0,
24
+ "maxRunsPerRepositoryPerDay": 0,
25
+ "maxRunsPerDay": 0
26
+ },
27
+ "inputDigest": "sha256:1313131313131313131313131313131313131313131313131313131313131313",
28
+ "promptTemplateDigest": "sha256:1414141414141414141414141414141414141414141414141414141414141414",
29
+ "stalePolicy": "advisory-only-on-stale",
30
+ "directMutationAllowed": false,
31
+ "queuedAt": "2026-06-25T00:00:00.000Z",
32
+ "updatedAt": "2026-06-25T00:00:00.000Z"
33
+ }
@@ -0,0 +1,41 @@
1
+ {
2
+ "schemaVersion": "archcontext.architecture-event/v1",
3
+ "eventId": "arch_event.al0_extension",
4
+ "eventType": "authority.contract.freeze",
5
+ "payloadVersion": "v1",
6
+ "repository": {
7
+ "repositoryId": "repo.archcontext",
8
+ "storageRepositoryId": "storage-repo.archcontext"
9
+ },
10
+ "worktree": {
11
+ "workspaceId": "workspace.main",
12
+ "storageWorkspaceId": "storage-workspace.main",
13
+ "branch": "main",
14
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
15
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
16
+ },
17
+ "baseDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
18
+ "resultingDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
19
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
20
+ "actor": {
21
+ "kind": "system",
22
+ "id": "schema-fixture"
23
+ },
24
+ "source": "manual",
25
+ "timestamp": "2026-06-25T00:00:00.000Z",
26
+ "idempotencyKey": "al0-extension-boundary",
27
+ "provenance": {
28
+ "producer": "contracts-test",
29
+ "command": "fixture",
30
+ "inputDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
31
+ },
32
+ "payload": {
33
+ "kind": "authority-contract",
34
+ "subjectIds": ["adr.0040.hybrid-architecture-ledger"],
35
+ "summary": "Boundary fixture keeps forward-compatible data under extensions.",
36
+ "changesDigest": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
37
+ },
38
+ "extensions": {
39
+ "futureField": "allowed only here"
40
+ }
41
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "schemaVersion": "archcontext.node/v1",
3
+ "id": "interface.payment-api",
4
+ "kind": "interface",
5
+ "name": "Payment API",
6
+ "status": "active",
7
+ "summary": "Public boundary for payment facts.",
8
+ "extensions": {
9
+ "dev.archcontext.test": {
10
+ "owner": "contracts"
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "schemaVersion": "archcontext.attestation/v2",
3
+ "attestationId": "att_20260620_error",
4
+ "challengeId": "chal_20260620_0001",
5
+ "installationId": 10001,
6
+ "repositoryId": 20002,
7
+ "pullRequestNumber": 42,
8
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
9
+ "baseSha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
10
+ "mergeBaseSha": "cccccccccccccccccccccccccccccccccccccccc",
11
+ "headTreeOid": "tree_aaaaaaaa",
12
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
13
+ "modelDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
14
+ "policyDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
15
+ "codeFactsDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
16
+ "reviewDigest": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
17
+ "result": "error",
18
+ "errorCode": "CODEGRAPH_FAILED",
19
+ "execution": {
20
+ "trustLevel": "organization",
21
+ "source": "organization-runner-checkout",
22
+ "principalId": "runner_0001",
23
+ "publicKeyId": "key_runner_0001",
24
+ "runnerId": "runner_0001",
25
+ "workflowRef": "owner/repo/.github/workflows/archcontext-review.yml@refs/heads/main",
26
+ "runId": "1234567890",
27
+ "runAttempt": 1
28
+ },
29
+ "runtime": {
30
+ "version": "0.2.0",
31
+ "buildDigest": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
32
+ "codeGraphVersion": "1.0.1",
33
+ "capabilitiesDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
34
+ },
35
+ "nonce": "nonce_base64url_0001",
36
+ "startedAt": "2026-06-20T09:03:00Z",
37
+ "completedAt": "2026-06-20T09:04:00Z",
38
+ "expiresAt": "2026-06-20T09:15:00Z",
39
+ "signature": {
40
+ "algorithm": "ed25519",
41
+ "value": "base64url_signature"
42
+ }
43
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "schemaVersion": "archcontext.check-delivery/v1",
3
+ "deliveryId": "delivery_dead_letter",
4
+ "challengeId": "chal_20260620_0001",
5
+ "checkRunId": null,
6
+ "checkName": "ArchContext / Organization Runner",
7
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
8
+ "status": "DEAD_LETTER",
9
+ "attemptCount": 5,
10
+ "nextAttemptAt": null,
11
+ "lastErrorCode": "CHALLENGE_SUPERSEDED",
12
+ "createdAt": "2026-06-20T09:00:00Z",
13
+ "updatedAt": "2026-06-20T09:30:00Z"
14
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "schemaVersion": "archcontext.evidence-binding/v1",
3
+ "bindingId": "binding.evidence.al0.context-only",
4
+ "evidenceId": "evidence.al0.boundary-import",
5
+ "target": {
6
+ "kind": "event",
7
+ "id": "arch_event.al0_contract_freeze"
8
+ },
9
+ "bindingReason": "change-cursor",
10
+ "authorityEffect": "context-only",
11
+ "createdAt": "2026-06-25T00:00:00.000Z",
12
+ "provenance": {
13
+ "producer": "runtime-daemon",
14
+ "command": "checkpoint",
15
+ "inputDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
16
+ },
17
+ "extensions": {
18
+ "note": "context-only evidence cannot promote recommendation enforcement"
19
+ }
20
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "schemaVersion": "archcontext.practice/v1",
3
+ "id": "compatibility.disabled-overlay",
4
+ "revision": 1,
5
+ "status": "disabled",
6
+ "title": "Disabled overlay boundary fixture",
7
+ "summary": "Disabled overlay tombstones keep a reason and explicit overlay mode.",
8
+ "category": "compatibility",
9
+ "tags": ["fixture"],
10
+ "appliesTo": {
11
+ "repositoryKinds": ["application"],
12
+ "languages": [],
13
+ "frameworks": [],
14
+ "pathGlobs": ["**/*"],
15
+ "nodeKinds": ["module"]
16
+ },
17
+ "triggers": {
18
+ "candidateTerms": ["fixture"],
19
+ "pressureSignals": ["fixture"],
20
+ "structuralPredicates": ["fixture"]
21
+ },
22
+ "evidencePolicy": {
23
+ "minimumStrengthForRecommendation": "heuristic",
24
+ "minimumStrengthForCheckpoint": "observed",
25
+ "minimumStrengthForEnforcement": "observed",
26
+ "requiredKindsForEnforcement": ["diff"],
27
+ "maxEnforcementWhenOnlyHeuristic": "advisory"
28
+ },
29
+ "guidance": {
30
+ "questions": ["Fixture?"],
31
+ "preferred": ["Use explicit disable tombstones."],
32
+ "avoid": ["Silent deletion."]
33
+ },
34
+ "checks": [],
35
+ "enforcement": {
36
+ "default": "advisory",
37
+ "promotableTo": "checkpoint",
38
+ "repoOptInRequired": true
39
+ },
40
+ "provenance": {
41
+ "sourceKind": "archcontext-native",
42
+ "sourceRefs": [
43
+ {
44
+ "sourceId": "archcontext.spec"
45
+ }
46
+ ],
47
+ "curator": "archcontext-maintainers",
48
+ "reviewedAt": "2026-06-23"
49
+ },
50
+ "lifecycle": {
51
+ "introducedAt": "2026-06-23",
52
+ "reviewAfter": "2027-06-23",
53
+ "supersedes": [],
54
+ "disabledWithReason": "Boundary fixture for explicit disable overlays."
55
+ },
56
+ "overlay": {
57
+ "mode": "disable"
58
+ }
59
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "schemaVersion": "archcontext.recommendation/v2",
3
+ "recommendationId": "rec.al0.deferred",
4
+ "runId": "rec_run.al0_contract",
5
+ "fingerprint": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
6
+ "subject": "constraint.payment-boundary",
7
+ "status": "deferred",
8
+ "confidence": "low",
9
+ "enforcement": "advisory",
10
+ "risk": "high",
11
+ "uncertainty": "high",
12
+ "evidenceBindingIds": ["binding.evidence.al0.context-only"],
13
+ "explanation": ["Deferred because evidence remains context-only and cannot promote enforcement."],
14
+ "createdAt": "2026-06-25T00:00:00.000Z",
15
+ "updatedAt": "2026-06-25T00:00:00.000Z",
16
+ "extensions": {
17
+ "deferUntil": "2026-07-01T00:00:00.000Z"
18
+ }
19
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "schemaVersion": "archcontext.review-challenge/v2",
3
+ "challengeId": "chal_20260620_org",
4
+ "installationId": 10001,
5
+ "repositoryId": 20002,
6
+ "pullRequestNumber": 42,
7
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
8
+ "baseSha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
9
+ "nonce": "nonce_base64url_org",
10
+ "requiredTrust": "organization",
11
+ "policyProfileId": "policy.organization",
12
+ "createdAt": "2026-06-20T09:00:00Z",
13
+ "expiresAt": "2026-06-20T09:15:00Z",
14
+ "status": "LEASED"
15
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "schemaVersion": "archcontext.runner-identity/v1",
3
+ "runnerId": "runner_org_0001",
4
+ "installationId": 10001,
5
+ "repositoryIds": [],
6
+ "scope": {
7
+ "kind": "organization"
8
+ },
9
+ "workflowRef": "owner/repo/.github/workflows/archcontext-review.yml@refs/heads/main",
10
+ "publicKeyId": "key_runner_org_0001",
11
+ "publicKeyFingerprint": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
12
+ "status": "active",
13
+ "createdAt": "2026-06-20T09:00:00Z",
14
+ "rotatedAt": null,
15
+ "revokedAt": null
16
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "schemaVersion": "archcontext.adapter-fidelity/v1",
3
+ "id": "adapter-fidelity.native-sot",
4
+ "direction": "export-first",
5
+ "importScope": "initialization-only",
6
+ "nativeIsSourceOfTruth": false,
7
+ "reverseSync": "allowed",
8
+ "protectedNativeFields": ["evidence", "verification", "constraint", "intervention"]
9
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "schemaVersion": "archcontext.agent-job/v1",
3
+ "jobId": "agent_job.invalid_direct_mutation",
4
+ "status": "queued",
5
+ "runnerPort": "codex",
6
+ "repository": {
7
+ "repositoryId": "repo.archcontext",
8
+ "storageRepositoryId": "storage-repo.archcontext"
9
+ },
10
+ "worktree": {
11
+ "workspaceId": "workspace.main",
12
+ "storageWorkspaceId": "storage-workspace.main",
13
+ "branch": "main",
14
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
15
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
16
+ },
17
+ "fingerprint": "sha256:1212121212121212121212121212121212121212121212121212121212121212",
18
+ "trigger": {
19
+ "source": "checkpoint",
20
+ "reason": "invalid direct mutation"
21
+ },
22
+ "budget": {
23
+ "maxRunsPerTask": 1,
24
+ "maxRunsPerRepositoryPerDay": 3
25
+ },
26
+ "inputDigest": "sha256:1313131313131313131313131313131313131313131313131313131313131313",
27
+ "promptTemplateDigest": "sha256:1414141414141414141414141414141414141414141414141414141414141414",
28
+ "stalePolicy": "cancel-on-head-change",
29
+ "directMutationAllowed": true,
30
+ "queuedAt": "2026-06-25T00:00:00.000Z",
31
+ "updatedAt": "2026-06-25T00:00:00.000Z"
32
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "schemaVersion": "archcontext.architecture-event/v1",
3
+ "eventId": "arch_event.invalid_source_body",
4
+ "eventType": "authority.contract.freeze",
5
+ "payloadVersion": "v1",
6
+ "repository": {
7
+ "repositoryId": "repo.archcontext",
8
+ "storageRepositoryId": "storage-repo.archcontext"
9
+ },
10
+ "worktree": {
11
+ "workspaceId": "workspace.main",
12
+ "storageWorkspaceId": "storage-workspace.main",
13
+ "branch": "main",
14
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
15
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
16
+ },
17
+ "baseDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
18
+ "resultingDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
19
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
20
+ "actor": {
21
+ "kind": "daemon",
22
+ "id": "archctxd.local"
23
+ },
24
+ "source": "apply_update",
25
+ "timestamp": "2026-06-25T00:00:00.000Z",
26
+ "idempotencyKey": "invalid-source-body",
27
+ "provenance": {
28
+ "producer": "archctx",
29
+ "command": "archctx apply",
30
+ "inputDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
31
+ },
32
+ "payload": {
33
+ "kind": "authority-contract",
34
+ "subjectIds": ["adr.0040.hybrid-architecture-ledger"],
35
+ "summary": "Invalid event includes source body.",
36
+ "changesDigest": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
37
+ },
38
+ "sourceBody": "private code"
39
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "schemaVersion": "archcontext.architecture-snapshot/v1",
3
+ "snapshotId": "arch_snapshot.invalid_mode",
4
+ "repository": {
5
+ "repositoryId": "repo.archcontext",
6
+ "storageRepositoryId": "storage-repo.archcontext"
7
+ },
8
+ "worktree": {
9
+ "workspaceId": "workspace.main",
10
+ "storageWorkspaceId": "storage-workspace.main",
11
+ "branch": "main",
12
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
13
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
14
+ },
15
+ "sourceMode": "sql-only",
16
+ "eventCursor": {
17
+ "lastEventId": "arch_event.al0_contract_freeze",
18
+ "lastEventHash": "sha256:5555555555555555555555555555555555555555555555555555555555555555"
19
+ },
20
+ "graphDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
21
+ "projectionDigest": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
22
+ "entityCount": 12,
23
+ "relationCount": 8,
24
+ "constraintCount": 4,
25
+ "inputDigests": {
26
+ "modelDigest": "sha256:8888888888888888888888888888888888888888888888888888888888888888"
27
+ },
28
+ "createdAt": "2026-06-25T00:00:00.000Z"
29
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "schemaVersion": "archcontext.attestation/v2",
3
+ "attestationId": "att_bad_finding",
4
+ "challengeId": "chal_20260620_0001",
5
+ "installationId": 10001,
6
+ "repositoryId": 20002,
7
+ "pullRequestNumber": 42,
8
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
9
+ "baseSha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
10
+ "mergeBaseSha": "cccccccccccccccccccccccccccccccccccccccc",
11
+ "headTreeOid": "tree_aaaaaaaa",
12
+ "worktreeDigest": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
13
+ "modelDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
14
+ "policyDigest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
15
+ "codeFactsDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
16
+ "reviewDigest": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
17
+ "result": "pass",
18
+ "execution": {
19
+ "trustLevel": "developer",
20
+ "source": "clean-commit-worktree",
21
+ "principalId": "device_0001",
22
+ "publicKeyId": "key_device_0001"
23
+ },
24
+ "runtime": {
25
+ "version": "0.2.0",
26
+ "buildDigest": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
27
+ "codeGraphVersion": "1.0.1",
28
+ "capabilitiesDigest": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
29
+ },
30
+ "nonce": "nonce_base64url_0001",
31
+ "startedAt": "2026-06-20T09:03:00Z",
32
+ "completedAt": "2026-06-20T09:04:00Z",
33
+ "expiresAt": "2026-06-20T09:15:00Z",
34
+ "signature": {
35
+ "algorithm": "ed25519",
36
+ "value": "base64url_signature"
37
+ },
38
+ "finding": "private finding body"
39
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "schemaVersion": "archcontext.check-delivery/v1",
3
+ "deliveryId": "delivery_bad_legacy",
4
+ "challengeId": "chal_20260620_0001",
5
+ "checkRunId": "check_legacy",
6
+ "checkName": "ArchContext / Legacy Architecture Review",
7
+ "headSha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
8
+ "status": "PENDING",
9
+ "attemptCount": 0,
10
+ "nextAttemptAt": null,
11
+ "lastErrorCode": null,
12
+ "createdAt": "2026-06-20T09:00:00Z",
13
+ "updatedAt": "2026-06-20T09:00:00Z"
14
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "schemaVersion": "archcontext.cloud-egress/v1",
3
+ "requestId": "req_bad_private_field",
4
+ "category": "github.pull-head",
5
+ "method": "GET",
6
+ "host": "api.github.com",
7
+ "pathTemplate": "/repos/{owner}/{repo}/pulls/{pull_number}/files",
8
+ "statusCode": 200,
9
+ "latencyMs": 42,
10
+ "recordedAt": "2026-06-20T09:00:00Z",
11
+ "patch": "@@ private diff"
12
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": "archcontext.compatibility/v1",
3
+ "id": "compatibility.bad",
4
+ "status": "active",
5
+ "kind": "external-contract",
6
+ "protects": {
7
+ "type": "internal-api",
8
+ "id": "interface.legacy"
9
+ },
10
+ "consumers": ["module.internal"],
11
+ "legacyPaths": ["src/legacy.ts"],
12
+ "reason": "just in case",
13
+ "owner": "module.legacy",
14
+ "introducedAt": "2026-06-19T00:00:00Z",
15
+ "reviewAt": "2026-08-01T00:00:00Z",
16
+ "removalConditions": ["none"]
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "schemaVersion": "archcontext.evidence-binding/v1",
3
+ "bindingId": "binding.invalid.summary-substring",
4
+ "evidenceId": "evidence.al0.boundary-import",
5
+ "target": {
6
+ "kind": "practice",
7
+ "id": "modularity.respect-dependency-direction"
8
+ },
9
+ "bindingReason": "summary-substring",
10
+ "authorityEffect": "complete-eligible",
11
+ "createdAt": "2026-06-25T00:00:00.000Z",
12
+ "provenance": {
13
+ "producer": "practice-engine",
14
+ "command": "matchPracticesForTask",
15
+ "inputDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
16
+ }
17
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "schemaVersion": "archcontext.evidence-item/v2",
3
+ "evidenceId": "evidence.invalid.source-body",
4
+ "kind": "import-edge-added",
5
+ "strength": "observed",
6
+ "polarity": "positive",
7
+ "origin": "codegraph",
8
+ "subject": "relation.module-api-imports-runtime",
9
+ "selector": {
10
+ "kind": "relation",
11
+ "id": "relation.module-api-imports-runtime"
12
+ },
13
+ "summary": "Invalid evidence includes source body.",
14
+ "coverage": {
15
+ "level": "partial",
16
+ "scope": "changed-paths"
17
+ },
18
+ "supports": ["recommendation"],
19
+ "provenance": {
20
+ "producer": "codegraph-adapter",
21
+ "command": "codegraph explore",
22
+ "inputDigest": "sha256:3333333333333333333333333333333333333333333333333333333333333333"
23
+ },
24
+ "createdAt": "2026-06-25T00:00:00.000Z",
25
+ "digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
26
+ "sourceBody": "private code"
27
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "schemaVersion": "archcontext.explorer-projection/v1",
3
+ "generatedAt": "2026-06-20T00:00:00.000Z",
4
+ "repository": {
5
+ "repositoryId": "repo.local",
6
+ "headSha": "abc123",
7
+ "worktreeDigest": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
8
+ },
9
+ "nodes": [],
10
+ "relations": [],
11
+ "verification": [],
12
+ "pressure": [],
13
+ "interventions": [],
14
+ "capabilities": {
15
+ "readOnly": true,
16
+ "mutationMode": "forbidden",
17
+ "egress": "none",
18
+ "tokenRequired": true
19
+ },
20
+ "mutationEndpoint": "/changesets/apply"
21
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "schemaVersion": "archcontext.investigation-report/v1",
3
+ "reportId": "investigation_report.invalid_direct_mutation",
4
+ "jobId": "agent_job.al0_investigate",
5
+ "status": "succeeded",
6
+ "findings": [
7
+ {
8
+ "findingId": "finding.boundary-import",
9
+ "hypothesis": "Invalid report asks to mutate directly.",
10
+ "evidenceBindingIds": ["binding.evidence.al0.boundary-import"],
11
+ "unknowns": [],
12
+ "falsifier": "A declared relation allowing this dependency exists at the same HEAD.",
13
+ "proposedDelta": {
14
+ "candidateChangeId": "candidate_change.al0.boundary-import",
15
+ "kind": "node-materially-changed",
16
+ "target": {
17
+ "kind": "node",
18
+ "id": "module.checkout"
19
+ },
20
+ "stateDimension": "target-state",
21
+ "changeKind": "materially_changed",
22
+ "subjectSelectorIds": ["subject.path.src-checkout-service"],
23
+ "mappingIds": ["mapping.checkout-service"],
24
+ "ambiguityIds": [],
25
+ "evidenceIds": ["evidence.al0.boundary-import"],
26
+ "confidence": "medium",
27
+ "heuristic": true,
28
+ "summary": "Invalid report asks to mutate directly.",
29
+ "digest": "sha256:1515151515151515151515151515151515151515151515151515151515151515"
30
+ },
31
+ "proposedDeltaDigest": "sha256:1515151515151515151515151515151515151515151515151515151515151515",
32
+ "confidence": "medium"
33
+ }
34
+ ],
35
+ "outputDigest": "sha256:1616161616161616161616161616161616161616161616161616161616161616",
36
+ "createdAt": "2026-06-25T00:00:00.000Z",
37
+ "directMutationAllowed": true
38
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "schemaVersion": "archcontext.investigation-report/v1",
3
+ "reportId": "investigation_report.invalid_missing_delta",
4
+ "jobId": "agent_job.al0_investigate",
5
+ "status": "succeeded",
6
+ "findings": [
7
+ {
8
+ "findingId": "finding.boundary-import",
9
+ "hypothesis": "Invalid report omits the typed proposed delta.",
10
+ "evidenceBindingIds": ["binding.evidence.al0.boundary-import"],
11
+ "unknowns": [],
12
+ "falsifier": "A declared relation allowing this dependency exists at the same HEAD.",
13
+ "confidence": "medium"
14
+ }
15
+ ],
16
+ "outputDigest": "sha256:1616161616161616161616161616161616161616161616161616161616161616",
17
+ "createdAt": "2026-06-25T00:00:00.000Z",
18
+ "directMutationAllowed": false
19
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "schemaVersion": "archcontext.node/v1",
3
+ "id": "module.subscription",
4
+ "kind": "module",
5
+ "name": "Subscription",
6
+ "status": "active",
7
+ "summary": "Owns subscription lifecycle.",
8
+ "responsibilities": ["create-subscription"],
9
+ "unexpected": true
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "schemaVersion": "archcontext.notification-event/v1",
3
+ "eventId": "notification.review-complete",
4
+ "prUrl": "https://github.com/ancienttwo/arch-context/pull/12",
5
+ "result": "pass",
6
+ "riskLevel": "low",
7
+ "commitSha": "abc1234",
8
+ "runtimeVersion": "archctx/1.1.0",
9
+ "occurredAt": "2026-06-19T00:00:00Z",
10
+ "code": "console.log('leak')"
11
+ }