archctx 0.1.3 → 0.1.4

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 (77) hide show
  1. package/NOTICE.md +23 -0
  2. package/assets/README.md +15 -0
  3. package/assets/catalog.yaml +393 -0
  4. package/assets/practices/api.contract-before-implementation.yaml +70 -0
  5. package/assets/practices/compatibility.expiry-contract.yaml +71 -0
  6. package/assets/practices/compatibility.single-owner.yaml +78 -0
  7. package/assets/practices/data.single-authoritative-model.yaml +67 -0
  8. package/assets/practices/decision.record-significant-change.yaml +69 -0
  9. package/assets/practices/migration.target-and-removal-state.yaml +82 -0
  10. package/assets/practices/modularity.no-new-cycle.yaml +71 -0
  11. package/assets/practices/modularity.respect-dependency-direction.yaml +74 -0
  12. package/assets/practices/observability.boundary-telemetry.yaml +65 -0
  13. package/assets/practices/ownership.explicit-lifecycle-owner.yaml +74 -0
  14. package/assets/practices/s6-expanded.yaml +1278 -0
  15. package/assets/practices/security.least-privilege.yaml +70 -0
  16. package/assets/practices/supply-chain.pinned-dependencies.yaml +65 -0
  17. package/assets/profiles/s6.yaml +194 -0
  18. package/assets/sources/core.yaml +211 -0
  19. package/assets/sources/s6.yaml +122 -0
  20. package/bin/archctx.mjs +17591 -1752
  21. package/package.json +6 -2
  22. package/schemas/cloud/attestation-v2.schema.json +85 -0
  23. package/schemas/cloud/attestation.schema.json +49 -0
  24. package/schemas/cloud/check-delivery.schema.json +25 -0
  25. package/schemas/cloud/cloud-egress-envelope.schema.json +19 -0
  26. package/schemas/cloud/device-identity.schema.json +18 -0
  27. package/schemas/cloud/entitlement.schema.json +24 -0
  28. package/schemas/cloud/governance-key-status.schema.json +19 -0
  29. package/schemas/cloud/org-runner-identity.schema.json +21 -0
  30. package/schemas/cloud/review-challenge-v2.schema.json +23 -0
  31. package/schemas/cloud/runner-identity.schema.json +42 -0
  32. package/schemas/integrations/adapter-fidelity.schema.json +21 -0
  33. package/schemas/integrations/chatgpt-ga-tool.schema.json +25 -0
  34. package/schemas/integrations/likec4-mapping.schema.json +32 -0
  35. package/schemas/integrations/structurizr-mapping.schema.json +33 -0
  36. package/schemas/repo/architecture-intervention.schema.json +41 -0
  37. package/schemas/repo/architecture-node.schema.json +50 -0
  38. package/schemas/repo/architecture-relation.schema.json +26 -0
  39. package/schemas/repo/compatibility-contract.schema.json +49 -0
  40. package/schemas/repo/constraint.schema.json +56 -0
  41. package/schemas/repo/cross-repo-relation.schema.json +47 -0
  42. package/schemas/repo/landscape.schema.json +50 -0
  43. package/schemas/repo/practices/practice-policy.schema.json +72 -0
  44. package/schemas/repo/practices/practice-profile.schema.json +30 -0
  45. package/schemas/repo/practices/practice-source.schema.json +34 -0
  46. package/schemas/repo/practices/practice-waiver.schema.json +27 -0
  47. package/schemas/repo/practices/practice.schema.json +88 -0
  48. package/schemas/runtime/agent-job.schema.json +63 -0
  49. package/schemas/runtime/architecture-candidate-delta-policy.schema.json +129 -0
  50. package/schemas/runtime/architecture-candidate-delta.schema.json +386 -0
  51. package/schemas/runtime/architecture-event.schema.json +76 -0
  52. package/schemas/runtime/architecture-snapshot.schema.json +61 -0
  53. package/schemas/runtime/architecture-subject-selector.schema.json +31 -0
  54. package/schemas/runtime/changeset.schema.json +65 -0
  55. package/schemas/runtime/evidence-binding.schema.json +37 -0
  56. package/schemas/runtime/evidence-item.schema.json +58 -0
  57. package/schemas/runtime/explorer-projection.schema.json +92 -0
  58. package/schemas/runtime/explorer-service.schema.json +19 -0
  59. package/schemas/runtime/external-document-resource.schema.json +55 -0
  60. package/schemas/runtime/investigation-report.schema.json +119 -0
  61. package/schemas/runtime/notification-event.schema.json +18 -0
  62. package/schemas/runtime/notification-provider.schema.json +26 -0
  63. package/schemas/runtime/practice-catalog-manifest.schema.json +22 -0
  64. package/schemas/runtime/practice-check-result.schema.json +45 -0
  65. package/schemas/runtime/practice-checkpoint.schema.json +127 -0
  66. package/schemas/runtime/practice-guidance.schema.json +44 -0
  67. package/schemas/runtime/practice-match.schema.json +41 -0
  68. package/schemas/runtime/product-version-manifest.schema.json +115 -0
  69. package/schemas/runtime/projection-target.schema.json +52 -0
  70. package/schemas/runtime/recommendation-feedback.schema.json +53 -0
  71. package/schemas/runtime/recommendation-run.schema.json +62 -0
  72. package/schemas/runtime/recommendation.schema.json +26 -0
  73. package/schemas/runtime/retrieval-config.schema.json +44 -0
  74. package/schemas/runtime/retrieval-decision.schema.json +49 -0
  75. package/schemas/runtime/retrieval-eval.schema.json +29 -0
  76. package/schemas/runtime/review-result.schema.json +48 -0
  77. package/schemas/runtime/task-context.schema.json +53 -0
@@ -0,0 +1,49 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archctx.repoharness.com/schemas/repo/compatibility-contract.schema.json",
4
+ "title": "CompatibilityContract",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "id",
10
+ "status",
11
+ "kind",
12
+ "protects",
13
+ "consumers",
14
+ "legacyPaths",
15
+ "reason",
16
+ "owner",
17
+ "introducedAt",
18
+ "reviewAt",
19
+ "removalConditions"
20
+ ],
21
+ "properties": {
22
+ "schemaVersion": { "const": "archcontext.compatibility/v1" },
23
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
24
+ "status": { "type": "string", "enum": ["active", "review-due", "expired", "removed"] },
25
+ "kind": {
26
+ "type": "string",
27
+ "enum": ["external-contract", "persisted-data-migration", "rolling-deployment", "temporary-feature-transition"]
28
+ },
29
+ "protects": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "required": ["type", "id"],
33
+ "properties": {
34
+ "type": { "type": "string" },
35
+ "id": { "type": "string" }
36
+ }
37
+ },
38
+ "consumers": { "type": "array", "items": { "type": "string" } },
39
+ "legacyPaths": { "type": "array", "items": { "type": "string" } },
40
+ "reason": { "type": "string", "pattern": "^(?!just in case$|safer to keep$|many internal callers$|large diff$|old code already exists$).+" },
41
+ "owner": { "type": "string" },
42
+ "introducedAt": { "type": "string" },
43
+ "reviewAt": { "type": "string" },
44
+ "expiresAt": { "type": "string" },
45
+ "removalConditions": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
46
+ "migrationIssue": { "type": "string" },
47
+ "extensions": { "type": "object", "additionalProperties": true }
48
+ }
49
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archctx.repoharness.com/schemas/repo/constraint.schema.json",
4
+ "title": "Constraint",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "id", "name", "severity", "scope", "rule", "rationale"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "archcontext.constraint/v1" },
10
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9]*(\\.[a-z0-9][a-z0-9-]*)+$" },
11
+ "name": { "type": "string" },
12
+ "severity": { "type": "string", "enum": ["notice", "warning", "error", "critical"] },
13
+ "scope": {
14
+ "type": "object",
15
+ "additionalProperties": false,
16
+ "properties": {
17
+ "nodes": { "type": "array", "items": { "type": "string" } },
18
+ "relations": { "type": "array", "items": { "type": "string" } }
19
+ }
20
+ },
21
+ "rule": {
22
+ "type": "object",
23
+ "additionalProperties": true,
24
+ "required": ["type"],
25
+ "properties": {
26
+ "type": {
27
+ "type": "string",
28
+ "enum": [
29
+ "forbid-dependency",
30
+ "require-interface",
31
+ "forbid-data-access",
32
+ "require-owner",
33
+ "require-adr",
34
+ "require-compatibility-contract",
35
+ "forbid-cycle",
36
+ "require-cleanup-by",
37
+ "require-review"
38
+ ]
39
+ }
40
+ }
41
+ },
42
+ "allowedVia": { "type": "array", "items": { "type": "string" } },
43
+ "rationale": { "type": "string" },
44
+ "humanExplanation": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "properties": {
48
+ "title": { "type": "string" },
49
+ "consequence": { "type": "string" },
50
+ "recommendation": { "type": "string" }
51
+ }
52
+ },
53
+ "requiresAdrForException": { "type": "boolean" },
54
+ "extensions": { "type": "object", "additionalProperties": true }
55
+ }
56
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archctx.repoharness.com/schemas/repo/cross-repo-relation.schema.json",
4
+ "title": "CrossRepoRelation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "id", "kind", "source", "target", "via", "intent"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "archcontext.cross-repo-relation/v1" },
10
+ "id": { "type": "string", "pattern": "^relation\\.[a-z0-9][a-z0-9.-]*$" },
11
+ "kind": { "type": "string", "enum": ["depends-on", "calls", "publishes", "subscribes", "implements"] },
12
+ "source": {
13
+ "type": "object",
14
+ "additionalProperties": false,
15
+ "required": ["repositoryId", "nodeId"],
16
+ "properties": {
17
+ "repositoryId": { "type": "string" },
18
+ "nodeId": { "type": "string" }
19
+ }
20
+ },
21
+ "target": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": ["repositoryId", "nodeId"],
25
+ "properties": {
26
+ "repositoryId": { "type": "string" },
27
+ "nodeId": { "type": "string" }
28
+ }
29
+ },
30
+ "via": {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "required": ["kind", "id"],
34
+ "properties": {
35
+ "kind": { "type": "string", "enum": ["interface", "event"] },
36
+ "id": { "type": "string" }
37
+ }
38
+ },
39
+ "synchrony": { "type": "string", "enum": ["synchronous", "asynchronous", "batch"] },
40
+ "intent": { "type": "string" },
41
+ "owner": { "type": "string" },
42
+ "allowedData": { "type": "array", "items": { "type": "string" } },
43
+ "forbiddenData": { "type": "array", "items": { "type": "string" } },
44
+ "criticality": { "type": "string", "enum": ["low", "medium", "high", "critical"] },
45
+ "extensions": { "type": "object", "additionalProperties": true }
46
+ }
47
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archctx.repoharness.com/schemas/repo/landscape.schema.json",
4
+ "title": "Landscape",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "id", "name", "repositories", "relations", "syncPolicy"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "archcontext.landscape/v1" },
10
+ "id": { "type": "string", "pattern": "^landscape\\.[a-z0-9][a-z0-9.-]*$" },
11
+ "name": { "type": "string" },
12
+ "repositories": {
13
+ "type": "array",
14
+ "minItems": 1,
15
+ "items": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "required": ["repositoryId", "numericRepositoryId", "name", "role"],
19
+ "properties": {
20
+ "repositoryId": { "type": "string" },
21
+ "numericRepositoryId": { "type": "integer", "minimum": 1 },
22
+ "name": { "type": "string" },
23
+ "role": { "type": "string" },
24
+ "owner": { "type": "string" },
25
+ "defaultBranch": { "type": "string" }
26
+ }
27
+ }
28
+ },
29
+ "relations": { "type": "array", "items": { "type": "string" } },
30
+ "ownership": { "type": "object", "additionalProperties": true },
31
+ "scope": {
32
+ "type": "object",
33
+ "additionalProperties": false,
34
+ "properties": {
35
+ "defaultActiveRepositories": { "type": "array", "items": { "type": "string" } },
36
+ "maxActiveRepositories": { "type": "integer", "minimum": 1 }
37
+ }
38
+ },
39
+ "syncPolicy": {
40
+ "type": "object",
41
+ "additionalProperties": false,
42
+ "required": ["mode", "archcontextSyncService"],
43
+ "properties": {
44
+ "mode": { "type": "string", "enum": ["git-worktree-only"] },
45
+ "archcontextSyncService": { "type": "string", "enum": ["forbidden"] }
46
+ }
47
+ },
48
+ "extensions": { "type": "object", "additionalProperties": true }
49
+ }
50
+ }
@@ -0,0 +1,72 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archctx.repoharness.com/schemas/repo/practices/practice-policy.schema.json",
4
+ "title": "PracticeEnforcementPolicy",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "mode", "rules"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "archcontext.practice-enforcement-policy/v1" },
10
+ "mode": { "type": "string", "enum": ["advisory", "active", "fail-open", "fail-closed"] },
11
+ "recommendations": {
12
+ "type": "object",
13
+ "additionalProperties": false,
14
+ "properties": {
15
+ "enabled": { "type": "boolean" },
16
+ "policyMode": { "type": "string", "enum": ["advisory", "checkpoint", "complete"] },
17
+ "frequency": {
18
+ "type": "object",
19
+ "additionalProperties": false,
20
+ "properties": {
21
+ "minIntervalMs": { "type": "integer", "minimum": 0 },
22
+ "cooldownMs": { "type": "integer", "minimum": 0 }
23
+ }
24
+ },
25
+ "budgets": {
26
+ "type": "object",
27
+ "additionalProperties": false,
28
+ "properties": {
29
+ "maxRecommendationsPerRun": { "type": "integer", "minimum": 0 },
30
+ "maxL3InvestigationsPerRun": { "type": "integer", "minimum": 0 },
31
+ "maxRunsPerTask": { "type": "integer", "minimum": 0 },
32
+ "maxRunsPerRepositoryPerDay": { "type": "integer", "minimum": 0 },
33
+ "maxRunsPerDay": { "type": "integer", "minimum": 0 }
34
+ }
35
+ }
36
+ }
37
+ },
38
+ "rules": {
39
+ "type": "array",
40
+ "items": {
41
+ "type": "object",
42
+ "additionalProperties": false,
43
+ "required": ["practiceId", "enforcement"],
44
+ "properties": {
45
+ "practiceId": { "type": "string", "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$" },
46
+ "enforcement": { "type": "string", "enum": ["advisory", "checkpoint", "complete"] },
47
+ "checkIds": { "type": "array", "items": { "type": "string" } },
48
+ "testEvidence": {
49
+ "type": "object",
50
+ "additionalProperties": false,
51
+ "anyOf": [
52
+ { "required": ["commands"] },
53
+ { "required": ["subjects"] }
54
+ ],
55
+ "properties": {
56
+ "commands": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1 },
57
+ "subjects": { "type": "array", "items": { "type": "string", "minLength": 1 }, "minItems": 1 }
58
+ }
59
+ },
60
+ "scope": {
61
+ "type": "object",
62
+ "additionalProperties": false,
63
+ "properties": {
64
+ "pathGlobs": { "type": "array", "items": { "type": "string" } },
65
+ "subjects": { "type": "array", "items": { "type": "string" } }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "type": "object",
3
+ "required": [
4
+ "schemaVersion",
5
+ "id",
6
+ "revision",
7
+ "status",
8
+ "title",
9
+ "repositoryKinds",
10
+ "languages",
11
+ "frameworks",
12
+ "includePracticeIds",
13
+ "excludePracticeIds",
14
+ "provenance"
15
+ ],
16
+ "properties": {
17
+ "schemaVersion": { "const": "archcontext.practice-profile/v1" },
18
+ "id": { "type": "string", "pattern": "^profile\\.[a-z0-9-]+(\\.[a-z0-9-]+)*$" },
19
+ "revision": { "type": "integer", "minimum": 1 },
20
+ "status": { "enum": ["active", "deprecated"] },
21
+ "title": { "type": "string" },
22
+ "repositoryKinds": { "type": "array", "items": { "type": "string" } },
23
+ "languages": { "type": "array", "items": { "type": "string" } },
24
+ "frameworks": { "type": "array", "items": { "type": "string" } },
25
+ "includePracticeIds": { "type": "array", "items": { "type": "string" } },
26
+ "excludePracticeIds": { "type": "array", "items": { "type": "string" } },
27
+ "provenance": { "type": "object" }
28
+ },
29
+ "additionalProperties": false
30
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "type": "object",
3
+ "required": [
4
+ "schemaVersion",
5
+ "id",
6
+ "name",
7
+ "sourceType",
8
+ "uri",
9
+ "revision",
10
+ "licenseSpdx",
11
+ "licenseLevel",
12
+ "usagePolicy",
13
+ "retrievedAt",
14
+ "contentDigest",
15
+ "attribution",
16
+ "review"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": { "const": "archcontext.practice-source/v1" },
20
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*(\\.[a-z0-9][a-z0-9-]*)*$" },
21
+ "name": { "type": "string" },
22
+ "sourceType": { "enum": ["archcontext", "git", "website", "standard", "reference"] },
23
+ "uri": { "type": "string" },
24
+ "revision": { "type": "string" },
25
+ "licenseSpdx": { "type": "string" },
26
+ "licenseLevel": { "enum": ["A", "B", "C", "D", "E"] },
27
+ "usagePolicy": { "enum": ["builtin-with-attribution", "reference-only", "repo-authored"] },
28
+ "retrievedAt": { "type": "string" },
29
+ "contentDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
30
+ "attribution": { "type": "string" },
31
+ "review": { "type": "object" }
32
+ },
33
+ "additionalProperties": false
34
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archctx.repoharness.com/schemas/repo/practices/practice-waiver.schema.json",
4
+ "title": "PracticeWaiver",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "practiceId", "scope", "owner", "reason", "createdAt", "reviewAt", "expiresAt", "evidenceDigest"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "archcontext.practice-waiver/v1" },
10
+ "practiceId": { "type": "string", "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$" },
11
+ "checkId": { "type": "string" },
12
+ "scope": {
13
+ "type": "object",
14
+ "additionalProperties": false,
15
+ "properties": {
16
+ "pathGlobs": { "type": "array", "items": { "type": "string" } },
17
+ "subjects": { "type": "array", "items": { "type": "string" } }
18
+ }
19
+ },
20
+ "owner": { "type": "string" },
21
+ "reason": { "type": "string" },
22
+ "createdAt": { "type": "string" },
23
+ "reviewAt": { "type": "string" },
24
+ "expiresAt": { "type": "string" },
25
+ "evidenceDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
26
+ }
27
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "type": "object",
3
+ "required": [
4
+ "schemaVersion",
5
+ "id",
6
+ "revision",
7
+ "status",
8
+ "title",
9
+ "summary",
10
+ "category",
11
+ "tags",
12
+ "appliesTo",
13
+ "triggers",
14
+ "evidencePolicy",
15
+ "guidance",
16
+ "checks",
17
+ "enforcement",
18
+ "provenance",
19
+ "lifecycle"
20
+ ],
21
+ "properties": {
22
+ "schemaVersion": { "const": "archcontext.practice/v1" },
23
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)+$" },
24
+ "revision": { "type": "integer", "minimum": 1 },
25
+ "status": { "enum": ["active", "deprecated", "disabled"] },
26
+ "title": { "type": "string" },
27
+ "summary": { "type": "string" },
28
+ "category": { "type": "string" },
29
+ "tags": { "type": "array", "items": { "type": "string" } },
30
+ "appliesTo": { "type": "object" },
31
+ "triggers": { "type": "object" },
32
+ "evidencePolicy": { "type": "object" },
33
+ "guidance": { "type": "object" },
34
+ "checks": { "type": "array", "items": { "type": "object" } },
35
+ "enforcement": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": ["default", "promotableTo", "repoOptInRequired"],
39
+ "properties": {
40
+ "default": { "enum": ["advisory", "checkpoint", "complete"] },
41
+ "promotableTo": { "enum": ["advisory", "checkpoint", "complete"] },
42
+ "repoOptInRequired": { "type": "boolean" },
43
+ "fixtureGate": {
44
+ "type": "object",
45
+ "additionalProperties": false,
46
+ "required": ["positive", "nearNegative", "mixedChange", "baseline"],
47
+ "properties": {
48
+ "positive": { "$ref": "#/$defs/fixtureRefs" },
49
+ "nearNegative": { "$ref": "#/$defs/fixtureRefs" },
50
+ "mixedChange": { "$ref": "#/$defs/fixtureRefs" },
51
+ "baseline": { "$ref": "#/$defs/fixtureRefs" }
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "provenance": { "type": "object" },
57
+ "lifecycle": { "type": "object" },
58
+ "overlay": {
59
+ "type": "object",
60
+ "properties": {
61
+ "mode": { "enum": ["add", "replace", "disable"] },
62
+ "extends": { "type": "string" },
63
+ "expiresAt": { "type": "string", "format": "date-time" }
64
+ },
65
+ "required": ["mode"],
66
+ "additionalProperties": false
67
+ }
68
+ },
69
+ "$defs": {
70
+ "fixtureRefs": {
71
+ "type": "array",
72
+ "minItems": 1,
73
+ "items": { "$ref": "#/$defs/fixtureRef" }
74
+ },
75
+ "fixtureRef": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "required": ["id", "path", "description"],
79
+ "properties": {
80
+ "id": { "type": "string", "pattern": "^[a-z][a-z0-9_.-]+$" },
81
+ "path": { "type": "string", "minLength": 1 },
82
+ "description": { "type": "string", "minLength": 1 },
83
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
84
+ }
85
+ }
86
+ },
87
+ "additionalProperties": false
88
+ }
@@ -0,0 +1,63 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archcontext.dev/schemas/runtime/agent-job.schema.json",
4
+ "title": "AgentJob",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "jobId", "status", "runnerPort", "repository", "worktree", "fingerprint", "trigger", "budget", "inputDigest", "promptTemplateDigest", "stalePolicy", "directMutationAllowed", "queuedAt", "updatedAt"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "archcontext.agent-job/v1" },
10
+ "jobId": { "type": "string", "pattern": "^agent_job\\.[a-zA-Z0-9_-]+$" },
11
+ "status": { "enum": ["queued", "running", "succeeded", "failed", "cancelled", "superseded", "expired"] },
12
+ "runnerPort": { "enum": ["claude-code", "codex", "fake-provider"] },
13
+ "repository": {
14
+ "type": "object",
15
+ "additionalProperties": false,
16
+ "required": ["repositoryId", "storageRepositoryId"],
17
+ "properties": {
18
+ "repositoryId": { "type": "string" },
19
+ "storageRepositoryId": { "type": "string" }
20
+ }
21
+ },
22
+ "worktree": {
23
+ "type": "object",
24
+ "additionalProperties": false,
25
+ "required": ["workspaceId", "storageWorkspaceId", "branch", "headSha", "worktreeDigest"],
26
+ "properties": {
27
+ "workspaceId": { "type": "string" },
28
+ "storageWorkspaceId": { "type": "string" },
29
+ "branch": { "type": "string" },
30
+ "headSha": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
31
+ "worktreeDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
32
+ }
33
+ },
34
+ "fingerprint": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
35
+ "trigger": {
36
+ "type": "object",
37
+ "additionalProperties": false,
38
+ "required": ["source", "reason"],
39
+ "properties": {
40
+ "source": { "enum": ["prepare_task", "checkpoint", "plan_update", "apply_update", "complete_task", "git_hook", "yaml_import", "projection_reconcile", "migration", "manual"] },
41
+ "reason": { "type": "string" }
42
+ }
43
+ },
44
+ "budget": {
45
+ "type": "object",
46
+ "additionalProperties": false,
47
+ "required": ["maxRunsPerTask", "maxRunsPerRepositoryPerDay"],
48
+ "properties": {
49
+ "maxRunsPerTask": { "type": "integer", "minimum": 0 },
50
+ "maxRunsPerRepositoryPerDay": { "type": "integer", "minimum": 0 },
51
+ "maxRunsPerDay": { "type": "integer", "minimum": 0 }
52
+ }
53
+ },
54
+ "inputDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
55
+ "promptTemplateDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
56
+ "outputDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
57
+ "stalePolicy": { "enum": ["cancel-on-head-change", "advisory-only-on-stale"] },
58
+ "directMutationAllowed": { "const": false },
59
+ "queuedAt": { "type": "string" },
60
+ "updatedAt": { "type": "string" },
61
+ "extensions": { "type": "object", "additionalProperties": true }
62
+ }
63
+ }
@@ -0,0 +1,129 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://archcontext.dev/schemas/runtime/architecture-candidate-delta-policy.schema.json",
4
+ "title": "Architecture Candidate Delta Policy Evaluation",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "evaluationId",
10
+ "deltaId",
11
+ "repository",
12
+ "worktree",
13
+ "deltaDigest",
14
+ "policyVersion",
15
+ "evaluatedAt",
16
+ "decisions",
17
+ "summary",
18
+ "evaluationDigest"
19
+ ],
20
+ "properties": {
21
+ "schemaVersion": { "const": "archcontext.architecture-candidate-delta-policy/v1" },
22
+ "evaluationId": { "type": "string", "pattern": "^candidate_delta_policy\\.[a-zA-Z0-9_.-]+$" },
23
+ "deltaId": { "type": "string", "pattern": "^delta\\.[a-zA-Z0-9_.-]+$" },
24
+ "repository": {
25
+ "type": "object",
26
+ "additionalProperties": false,
27
+ "required": ["repositoryId", "storageRepositoryId"],
28
+ "properties": {
29
+ "repositoryId": { "type": "string" },
30
+ "storageRepositoryId": { "type": "string" }
31
+ }
32
+ },
33
+ "worktree": {
34
+ "type": "object",
35
+ "additionalProperties": false,
36
+ "required": ["workspaceId", "storageWorkspaceId", "branch", "headSha", "worktreeDigest"],
37
+ "properties": {
38
+ "workspaceId": { "type": "string" },
39
+ "storageWorkspaceId": { "type": "string" },
40
+ "branch": { "type": "string" },
41
+ "headSha": { "type": "string" },
42
+ "worktreeDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }
43
+ }
44
+ },
45
+ "deltaDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
46
+ "policyVersion": { "type": "string" },
47
+ "evaluatedAt": { "type": "string", "format": "date-time" },
48
+ "decisions": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "additionalProperties": false,
53
+ "required": [
54
+ "decisionId",
55
+ "candidateChangeId",
56
+ "target",
57
+ "stateDimension",
58
+ "changeKind",
59
+ "confidence",
60
+ "action",
61
+ "reasonCodes",
62
+ "evidenceIds",
63
+ "digest"
64
+ ],
65
+ "properties": {
66
+ "decisionId": { "type": "string", "pattern": "^candidate_delta_policy_decision\\.[a-zA-Z0-9_.-]+$" },
67
+ "candidateChangeId": { "type": "string", "pattern": "^candidate_change\\.[a-zA-Z0-9_.-]+$" },
68
+ "target": {
69
+ "type": "object",
70
+ "additionalProperties": false,
71
+ "required": ["kind", "id"],
72
+ "properties": {
73
+ "kind": { "enum": ["node", "relation", "constraint", "owner", "lifecycle", "migration-state"] },
74
+ "id": { "type": "string" },
75
+ "parentId": { "type": "string" }
76
+ }
77
+ },
78
+ "stateDimension": { "enum": ["target-state", "migration-state"] },
79
+ "changeKind": { "enum": ["added", "removed", "moved", "renamed", "materially_changed"] },
80
+ "confidence": { "enum": ["low", "medium", "high"] },
81
+ "action": { "enum": ["auto-accept", "require-checkpoint", "require-proof", "require-human-approval"] },
82
+ "reasonCodes": {
83
+ "type": "array",
84
+ "items": {
85
+ "enum": [
86
+ "high-confidence-complete-evidence",
87
+ "medium-confidence",
88
+ "low-confidence",
89
+ "partial-evidence",
90
+ "missing-evidence",
91
+ "mapping-ambiguity",
92
+ "migration-state-progress",
93
+ "target-state-removal",
94
+ "relation-removal",
95
+ "constraint-relaxation",
96
+ "owner-authority-change"
97
+ ]
98
+ }
99
+ },
100
+ "evidenceIds": { "type": "array", "items": { "type": "string" } },
101
+ "digest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
102
+ "extensions": { "type": "object", "additionalProperties": true }
103
+ }
104
+ }
105
+ },
106
+ "summary": {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "required": [
110
+ "candidateChanges",
111
+ "autoAccept",
112
+ "requireCheckpoint",
113
+ "requireProof",
114
+ "requireHumanApproval",
115
+ "mappingAmbiguities"
116
+ ],
117
+ "properties": {
118
+ "candidateChanges": { "type": "integer", "minimum": 0 },
119
+ "autoAccept": { "type": "integer", "minimum": 0 },
120
+ "requireCheckpoint": { "type": "integer", "minimum": 0 },
121
+ "requireProof": { "type": "integer", "minimum": 0 },
122
+ "requireHumanApproval": { "type": "integer", "minimum": 0 },
123
+ "mappingAmbiguities": { "type": "integer", "minimum": 0 }
124
+ }
125
+ },
126
+ "evaluationDigest": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" },
127
+ "extensions": { "type": "object", "additionalProperties": true }
128
+ }
129
+ }