archctx 0.1.3 → 0.1.4-beta.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.
- package/NOTICE.md +23 -0
- package/assets/README.md +15 -0
- package/assets/catalog.yaml +393 -0
- package/assets/practices/api.contract-before-implementation.yaml +70 -0
- package/assets/practices/compatibility.expiry-contract.yaml +71 -0
- package/assets/practices/compatibility.single-owner.yaml +78 -0
- package/assets/practices/data.single-authoritative-model.yaml +67 -0
- package/assets/practices/decision.record-significant-change.yaml +69 -0
- package/assets/practices/migration.target-and-removal-state.yaml +82 -0
- package/assets/practices/modularity.no-new-cycle.yaml +71 -0
- package/assets/practices/modularity.respect-dependency-direction.yaml +74 -0
- package/assets/practices/observability.boundary-telemetry.yaml +65 -0
- package/assets/practices/ownership.explicit-lifecycle-owner.yaml +74 -0
- package/assets/practices/s6-expanded.yaml +1278 -0
- package/assets/practices/security.least-privilege.yaml +70 -0
- package/assets/practices/supply-chain.pinned-dependencies.yaml +65 -0
- package/assets/profiles/s6.yaml +194 -0
- package/assets/sources/core.yaml +211 -0
- package/assets/sources/s6.yaml +122 -0
- package/bin/archctx.mjs +18231 -2410
- package/package.json +6 -2
- package/schemas/cloud/attestation-v2.schema.json +85 -0
- package/schemas/cloud/attestation.schema.json +49 -0
- package/schemas/cloud/check-delivery.schema.json +25 -0
- package/schemas/cloud/cloud-egress-envelope.schema.json +19 -0
- package/schemas/cloud/device-identity.schema.json +18 -0
- package/schemas/cloud/entitlement.schema.json +24 -0
- package/schemas/cloud/governance-key-status.schema.json +19 -0
- package/schemas/cloud/org-runner-identity.schema.json +21 -0
- package/schemas/cloud/review-challenge-v2.schema.json +23 -0
- package/schemas/cloud/runner-identity.schema.json +42 -0
- package/schemas/integrations/adapter-fidelity.schema.json +21 -0
- package/schemas/integrations/chatgpt-ga-tool.schema.json +25 -0
- package/schemas/integrations/likec4-mapping.schema.json +32 -0
- package/schemas/integrations/structurizr-mapping.schema.json +33 -0
- package/schemas/repo/architecture-intervention.schema.json +41 -0
- package/schemas/repo/architecture-node.schema.json +50 -0
- package/schemas/repo/architecture-relation.schema.json +26 -0
- package/schemas/repo/compatibility-contract.schema.json +49 -0
- package/schemas/repo/constraint.schema.json +56 -0
- package/schemas/repo/cross-repo-relation.schema.json +47 -0
- package/schemas/repo/landscape.schema.json +50 -0
- package/schemas/repo/practices/practice-policy.schema.json +72 -0
- package/schemas/repo/practices/practice-profile.schema.json +30 -0
- package/schemas/repo/practices/practice-source.schema.json +34 -0
- package/schemas/repo/practices/practice-waiver.schema.json +27 -0
- package/schemas/repo/practices/practice.schema.json +88 -0
- package/schemas/runtime/agent-job.schema.json +63 -0
- package/schemas/runtime/architecture-candidate-delta-policy.schema.json +129 -0
- package/schemas/runtime/architecture-candidate-delta.schema.json +386 -0
- package/schemas/runtime/architecture-event.schema.json +76 -0
- package/schemas/runtime/architecture-snapshot.schema.json +61 -0
- package/schemas/runtime/architecture-subject-selector.schema.json +31 -0
- package/schemas/runtime/changeset.schema.json +65 -0
- package/schemas/runtime/evidence-binding.schema.json +37 -0
- package/schemas/runtime/evidence-item.schema.json +58 -0
- package/schemas/runtime/explorer-projection.schema.json +92 -0
- package/schemas/runtime/explorer-service.schema.json +19 -0
- package/schemas/runtime/external-document-resource.schema.json +55 -0
- package/schemas/runtime/investigation-report.schema.json +119 -0
- package/schemas/runtime/notification-event.schema.json +18 -0
- package/schemas/runtime/notification-provider.schema.json +26 -0
- package/schemas/runtime/practice-catalog-manifest.schema.json +22 -0
- package/schemas/runtime/practice-check-result.schema.json +45 -0
- package/schemas/runtime/practice-checkpoint.schema.json +127 -0
- package/schemas/runtime/practice-guidance.schema.json +44 -0
- package/schemas/runtime/practice-match.schema.json +41 -0
- package/schemas/runtime/product-version-manifest.schema.json +115 -0
- package/schemas/runtime/projection-target.schema.json +52 -0
- package/schemas/runtime/recommendation-feedback.schema.json +53 -0
- package/schemas/runtime/recommendation-run.schema.json +62 -0
- package/schemas/runtime/recommendation.schema.json +26 -0
- package/schemas/runtime/retrieval-config.schema.json +44 -0
- package/schemas/runtime/retrieval-decision.schema.json +49 -0
- package/schemas/runtime/retrieval-eval.schema.json +29 -0
- package/schemas/runtime/review-result.schema.json +48 -0
- 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
|
+
}
|