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,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "archcontext.practice/v1",
|
|
3
|
+
"id": "security.least-privilege",
|
|
4
|
+
"revision": 1,
|
|
5
|
+
"status": "active",
|
|
6
|
+
"title": "New credentials and integration scopes must be least-privilege",
|
|
7
|
+
"summary": "When a change adds credentials, tokens, cloud permissions, or integration scopes, the allowed operations must be narrower than the integration's full capability set.",
|
|
8
|
+
"category": "security",
|
|
9
|
+
"tags": ["security", "permissions", "credentials"],
|
|
10
|
+
"appliesTo": {
|
|
11
|
+
"repositoryKinds": ["application", "service"],
|
|
12
|
+
"languages": [],
|
|
13
|
+
"frameworks": [],
|
|
14
|
+
"pathGlobs": ["src/**", "packages/**", "deploy/**", ".github/**"],
|
|
15
|
+
"nodeKinds": ["service", "resource", "policy"],
|
|
16
|
+
"negativePathGlobs": ["test/**", "docs/**"]
|
|
17
|
+
},
|
|
18
|
+
"triggers": {
|
|
19
|
+
"candidateTerms": ["token", "credential", "permission", "scope", "secret", "key"],
|
|
20
|
+
"pressureSignals": ["broad-permission-scope"],
|
|
21
|
+
"structuralPredicates": ["new-credential-scope-observed", "permission-expanded"]
|
|
22
|
+
},
|
|
23
|
+
"evidencePolicy": {
|
|
24
|
+
"minimumStrengthForRecommendation": "heuristic",
|
|
25
|
+
"minimumStrengthForCheckpoint": "observed",
|
|
26
|
+
"minimumStrengthForEnforcement": "observed",
|
|
27
|
+
"requiredKindsForEnforcement": ["diff", "path"],
|
|
28
|
+
"maxEnforcementWhenOnlyHeuristic": "advisory"
|
|
29
|
+
},
|
|
30
|
+
"guidance": {
|
|
31
|
+
"questions": ["What operation does this credential need?", "Which permissions are explicitly forbidden?", "Where is rotation or revocation handled?"],
|
|
32
|
+
"preferred": ["Use named, narrow scopes.", "Keep secret material out of repository and logs."],
|
|
33
|
+
"avoid": ["Granting broad platform permissions for one API call.", "Persisting secret values in architecture or verification artifacts."]
|
|
34
|
+
},
|
|
35
|
+
"checks": [
|
|
36
|
+
{
|
|
37
|
+
"checkId": "least-privilege-required",
|
|
38
|
+
"mode": "deterministic",
|
|
39
|
+
"parameters": {
|
|
40
|
+
"forNewCredentialScopes": true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"enforcement": {
|
|
45
|
+
"default": "advisory",
|
|
46
|
+
"promotableTo": "complete",
|
|
47
|
+
"repoOptInRequired": true,
|
|
48
|
+
"fixtureGate": {
|
|
49
|
+
"positive": [{ "id": "fixture.security.least-privilege.positive", "path": "evals/practices/enforcement-waiver-adversarial.jsonl", "description": "Security-sensitive permission expansion can be complete-gated only with explicit scoped evidence." }],
|
|
50
|
+
"nearNegative": [{ "id": "fixture.security.least-privilege.near-negative", "path": "evals/practices/benign-negative.jsonl", "description": "Benign security wording remains non-gating." }],
|
|
51
|
+
"mixedChange": [{ "id": "fixture.security.least-privilege.mixed-change", "path": "packages/core/practice-engine/test/practice-engine.test.ts", "description": "Bound evidence tests prevent unrelated observed evidence from promoting security practice matches." }],
|
|
52
|
+
"baseline": [{ "id": "fixture.security.least-privilege.baseline", "path": "packages/core/practice-engine/test/practice-engine.test.ts", "description": "Typed practice bindings anchor security evidence to the expected baseline subject." }]
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"provenance": {
|
|
56
|
+
"sourceKind": "archcontext-native",
|
|
57
|
+
"sourceRefs": [
|
|
58
|
+
{
|
|
59
|
+
"sourceId": "archcontext.adr.0036"
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"curator": "archcontext-maintainers",
|
|
63
|
+
"reviewedAt": "2026-06-23"
|
|
64
|
+
},
|
|
65
|
+
"lifecycle": {
|
|
66
|
+
"introducedAt": "2026-06-23",
|
|
67
|
+
"reviewAfter": "2027-06-23",
|
|
68
|
+
"supersedes": []
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "archcontext.practice/v1",
|
|
3
|
+
"id": "supply-chain.pinned-dependencies",
|
|
4
|
+
"revision": 1,
|
|
5
|
+
"status": "active",
|
|
6
|
+
"title": "Runtime dependency changes should be pinned and reviewable",
|
|
7
|
+
"summary": "A dependency introduced into the runtime path should be pinned through the package manager lockfile or an equivalent deterministic manifest.",
|
|
8
|
+
"category": "supply-chain",
|
|
9
|
+
"tags": ["supply-chain", "dependencies", "lockfile"],
|
|
10
|
+
"appliesTo": {
|
|
11
|
+
"repositoryKinds": ["application", "service", "library"],
|
|
12
|
+
"languages": [],
|
|
13
|
+
"frameworks": [],
|
|
14
|
+
"pathGlobs": ["package.json", "bun.lock", "pnpm-lock.yaml", "package-lock.json", "Cargo.toml", "go.mod"],
|
|
15
|
+
"nodeKinds": ["package", "module"],
|
|
16
|
+
"negativePathGlobs": ["docs/**", "test/**"]
|
|
17
|
+
},
|
|
18
|
+
"triggers": {
|
|
19
|
+
"candidateTerms": ["dependency", "package", "lockfile", "version"],
|
|
20
|
+
"pressureSignals": ["unpinned-runtime-dependency"],
|
|
21
|
+
"structuralPredicates": ["runtime-dependency-added", "lockfile-not-updated"]
|
|
22
|
+
},
|
|
23
|
+
"evidencePolicy": {
|
|
24
|
+
"minimumStrengthForRecommendation": "observed",
|
|
25
|
+
"minimumStrengthForCheckpoint": "observed",
|
|
26
|
+
"minimumStrengthForEnforcement": "observed",
|
|
27
|
+
"requiredKindsForEnforcement": ["package-manifest", "diff"],
|
|
28
|
+
"maxEnforcementWhenOnlyHeuristic": "advisory"
|
|
29
|
+
},
|
|
30
|
+
"guidance": {
|
|
31
|
+
"questions": ["Which runtime path uses this dependency?", "Where is the resolved version pinned?", "What rollback removes the dependency safely?"],
|
|
32
|
+
"preferred": ["Commit lockfile changes with manifest changes.", "Keep optional providers out of mandatory local-core paths."],
|
|
33
|
+
"avoid": ["Adding a runtime dependency without lockfile evidence.", "Letting optional network providers become implicit required dependencies."]
|
|
34
|
+
},
|
|
35
|
+
"checks": [
|
|
36
|
+
{
|
|
37
|
+
"checkId": "pinned-dependencies-required",
|
|
38
|
+
"mode": "deterministic",
|
|
39
|
+
"parameters": {
|
|
40
|
+
"requireLockfileEvidence": true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"enforcement": {
|
|
45
|
+
"default": "advisory",
|
|
46
|
+
"promotableTo": "checkpoint",
|
|
47
|
+
"repoOptInRequired": true
|
|
48
|
+
},
|
|
49
|
+
"provenance": {
|
|
50
|
+
"sourceKind": "curated-open-source",
|
|
51
|
+
"sourceRefs": [
|
|
52
|
+
{
|
|
53
|
+
"sourceId": "openssf.scorecard",
|
|
54
|
+
"licenseSpdx": "Apache-2.0"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"curator": "archcontext-maintainers",
|
|
58
|
+
"reviewedAt": "2026-06-23"
|
|
59
|
+
},
|
|
60
|
+
"lifecycle": {
|
|
61
|
+
"introducedAt": "2026-06-23",
|
|
62
|
+
"reviewAfter": "2027-06-23",
|
|
63
|
+
"supersedes": []
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
4
|
+
"id": "profile.generic-service",
|
|
5
|
+
"revision": 1,
|
|
6
|
+
"status": "active",
|
|
7
|
+
"title": "Generic Service",
|
|
8
|
+
"repositoryKinds": ["service", "application"],
|
|
9
|
+
"languages": [],
|
|
10
|
+
"frameworks": [],
|
|
11
|
+
"includePracticeIds": [
|
|
12
|
+
"api.contract-before-implementation",
|
|
13
|
+
"api.schema-version-contract",
|
|
14
|
+
"observability.release-health-probe",
|
|
15
|
+
"ownership.service-catalog-entry",
|
|
16
|
+
"security.external-permission-review"
|
|
17
|
+
],
|
|
18
|
+
"excludePracticeIds": [],
|
|
19
|
+
"provenance": {
|
|
20
|
+
"sourceKind": "archcontext-native",
|
|
21
|
+
"sourceRefs": [{ "sourceId": "archcontext.spec" }, { "sourceId": "backstage" }],
|
|
22
|
+
"curator": "archcontext-maintainers",
|
|
23
|
+
"reviewedAt": "2026-06-24"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
28
|
+
"id": "profile.library",
|
|
29
|
+
"revision": 1,
|
|
30
|
+
"status": "active",
|
|
31
|
+
"title": "Reusable Library",
|
|
32
|
+
"repositoryKinds": ["library"],
|
|
33
|
+
"languages": [],
|
|
34
|
+
"frameworks": [],
|
|
35
|
+
"includePracticeIds": [
|
|
36
|
+
"api.contract-before-implementation",
|
|
37
|
+
"api.backward-compatible-error-shape",
|
|
38
|
+
"modularity.layer-contract-declared",
|
|
39
|
+
"supply-chain.release-artifact-digest",
|
|
40
|
+
"decision.tradeoff-options-recorded"
|
|
41
|
+
],
|
|
42
|
+
"excludePracticeIds": [],
|
|
43
|
+
"provenance": {
|
|
44
|
+
"sourceKind": "archcontext-native",
|
|
45
|
+
"sourceRefs": [{ "sourceId": "archcontext.spec" }, { "sourceId": "madr" }],
|
|
46
|
+
"curator": "archcontext-maintainers",
|
|
47
|
+
"reviewedAt": "2026-06-24"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
52
|
+
"id": "profile.typescript",
|
|
53
|
+
"revision": 1,
|
|
54
|
+
"status": "active",
|
|
55
|
+
"title": "TypeScript Project",
|
|
56
|
+
"repositoryKinds": ["application", "service", "library"],
|
|
57
|
+
"languages": ["typescript"],
|
|
58
|
+
"frameworks": [],
|
|
59
|
+
"includePracticeIds": [
|
|
60
|
+
"api.schema-version-contract",
|
|
61
|
+
"modularity.no-shared-internal-imports",
|
|
62
|
+
"supply-chain.dependency-update-review",
|
|
63
|
+
"security.audit-log-redaction",
|
|
64
|
+
"data.event-version-lineage"
|
|
65
|
+
],
|
|
66
|
+
"excludePracticeIds": [],
|
|
67
|
+
"provenance": {
|
|
68
|
+
"sourceKind": "archcontext-native",
|
|
69
|
+
"sourceRefs": [{ "sourceId": "archcontext.spec" }, { "sourceId": "openssf.scorecard" }],
|
|
70
|
+
"curator": "archcontext-maintainers",
|
|
71
|
+
"reviewedAt": "2026-06-24"
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
76
|
+
"id": "profile.java",
|
|
77
|
+
"revision": 1,
|
|
78
|
+
"status": "active",
|
|
79
|
+
"title": "Java Project",
|
|
80
|
+
"repositoryKinds": ["application", "service", "library"],
|
|
81
|
+
"languages": ["java"],
|
|
82
|
+
"frameworks": [],
|
|
83
|
+
"includePracticeIds": [
|
|
84
|
+
"modularity.respect-dependency-direction",
|
|
85
|
+
"modularity.layer-contract-declared",
|
|
86
|
+
"modularity.no-shared-internal-imports",
|
|
87
|
+
"api.idempotency-contract",
|
|
88
|
+
"data.schema-ownership-boundary"
|
|
89
|
+
],
|
|
90
|
+
"excludePracticeIds": [],
|
|
91
|
+
"provenance": {
|
|
92
|
+
"sourceKind": "curated-reference",
|
|
93
|
+
"sourceRefs": [{ "sourceId": "archunit" }, { "sourceId": "archcontext.spec" }],
|
|
94
|
+
"curator": "archcontext-maintainers",
|
|
95
|
+
"reviewedAt": "2026-06-24"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
100
|
+
"id": "profile.kubernetes",
|
|
101
|
+
"revision": 1,
|
|
102
|
+
"status": "active",
|
|
103
|
+
"title": "Kubernetes Service",
|
|
104
|
+
"repositoryKinds": ["service", "application"],
|
|
105
|
+
"languages": [],
|
|
106
|
+
"frameworks": ["kubernetes"],
|
|
107
|
+
"includePracticeIds": [
|
|
108
|
+
"observability.release-health-probe",
|
|
109
|
+
"observability.error-budget-signal",
|
|
110
|
+
"ownership.escalation-contact",
|
|
111
|
+
"compatibility.rollback-entrypoint",
|
|
112
|
+
"supply-chain.sbom-manifest"
|
|
113
|
+
],
|
|
114
|
+
"excludePracticeIds": [],
|
|
115
|
+
"provenance": {
|
|
116
|
+
"sourceKind": "curated-reference",
|
|
117
|
+
"sourceRefs": [{ "sourceId": "kubernetes.docs" }, { "sourceId": "opentelemetry" }],
|
|
118
|
+
"curator": "archcontext-maintainers",
|
|
119
|
+
"reviewedAt": "2026-06-24"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
124
|
+
"id": "profile.event-driven",
|
|
125
|
+
"revision": 1,
|
|
126
|
+
"status": "active",
|
|
127
|
+
"title": "Event Driven Service",
|
|
128
|
+
"repositoryKinds": ["service", "application"],
|
|
129
|
+
"languages": [],
|
|
130
|
+
"frameworks": [],
|
|
131
|
+
"includePracticeIds": [
|
|
132
|
+
"api.idempotency-contract",
|
|
133
|
+
"data.event-version-lineage",
|
|
134
|
+
"observability.queue-boundary-metrics",
|
|
135
|
+
"migration.parallel-run-observability",
|
|
136
|
+
"compatibility.deprecation-window"
|
|
137
|
+
],
|
|
138
|
+
"excludePracticeIds": [],
|
|
139
|
+
"provenance": {
|
|
140
|
+
"sourceKind": "archcontext-native",
|
|
141
|
+
"sourceRefs": [{ "sourceId": "archcontext.adr.0009" }, { "sourceId": "opentelemetry" }],
|
|
142
|
+
"curator": "archcontext-maintainers",
|
|
143
|
+
"reviewedAt": "2026-06-24"
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
148
|
+
"id": "profile.monorepo",
|
|
149
|
+
"revision": 1,
|
|
150
|
+
"status": "active",
|
|
151
|
+
"title": "Monorepo",
|
|
152
|
+
"repositoryKinds": ["application", "service", "library"],
|
|
153
|
+
"languages": [],
|
|
154
|
+
"frameworks": [],
|
|
155
|
+
"includePracticeIds": [
|
|
156
|
+
"modularity.no-new-cycle",
|
|
157
|
+
"modularity.no-shared-internal-imports",
|
|
158
|
+
"ownership.operational-owner",
|
|
159
|
+
"supply-chain.dependency-update-review",
|
|
160
|
+
"decision.supersession-link"
|
|
161
|
+
],
|
|
162
|
+
"excludePracticeIds": [],
|
|
163
|
+
"provenance": {
|
|
164
|
+
"sourceKind": "archcontext-native",
|
|
165
|
+
"sourceRefs": [{ "sourceId": "archcontext.spec" }, { "sourceId": "backstage" }],
|
|
166
|
+
"curator": "archcontext-maintainers",
|
|
167
|
+
"reviewedAt": "2026-06-24"
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"schemaVersion": "archcontext.practice-profile/v1",
|
|
172
|
+
"id": "profile.security-sensitive",
|
|
173
|
+
"revision": 1,
|
|
174
|
+
"status": "active",
|
|
175
|
+
"title": "Security Sensitive Repository",
|
|
176
|
+
"repositoryKinds": ["application", "service", "library"],
|
|
177
|
+
"languages": [],
|
|
178
|
+
"frameworks": [],
|
|
179
|
+
"includePracticeIds": [
|
|
180
|
+
"security.least-privilege",
|
|
181
|
+
"security.secret-material-never-enters-repo",
|
|
182
|
+
"security.audit-log-redaction",
|
|
183
|
+
"security.external-permission-review",
|
|
184
|
+
"supply-chain.release-artifact-digest"
|
|
185
|
+
],
|
|
186
|
+
"excludePracticeIds": [],
|
|
187
|
+
"provenance": {
|
|
188
|
+
"sourceKind": "archcontext-native",
|
|
189
|
+
"sourceRefs": [{ "sourceId": "archcontext.adr.0036" }, { "sourceId": "openssf.scorecard" }],
|
|
190
|
+
"curator": "archcontext-maintainers",
|
|
191
|
+
"reviewedAt": "2026-06-24"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
]
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
4
|
+
"id": "archcontext.spec",
|
|
5
|
+
"name": "ArchContext Product Specification",
|
|
6
|
+
"sourceType": "archcontext",
|
|
7
|
+
"uri": "docs/spec.md",
|
|
8
|
+
"revision": "2026-06-23",
|
|
9
|
+
"licenseSpdx": "LicenseRef-ArchContext-Repo",
|
|
10
|
+
"licenseLevel": "A",
|
|
11
|
+
"usagePolicy": "repo-authored",
|
|
12
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
13
|
+
"contentDigest": "sha256:1000000000000000000000000000000000000000000000000000000000000001",
|
|
14
|
+
"attribution": "ArchContext maintainers",
|
|
15
|
+
"review": {
|
|
16
|
+
"status": "approved",
|
|
17
|
+
"reviewer": "archcontext-maintainers",
|
|
18
|
+
"reviewedAt": "2026-06-23"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
23
|
+
"id": "archcontext.adr.0008",
|
|
24
|
+
"name": "ADR-0008 Declared Observed Verified",
|
|
25
|
+
"sourceType": "archcontext",
|
|
26
|
+
"uri": "docs/adr/ADR-0008-declared-observed-verified.md",
|
|
27
|
+
"revision": "2026-06-23",
|
|
28
|
+
"licenseSpdx": "LicenseRef-ArchContext-Repo",
|
|
29
|
+
"licenseLevel": "A",
|
|
30
|
+
"usagePolicy": "repo-authored",
|
|
31
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
32
|
+
"contentDigest": "sha256:1000000000000000000000000000000000000000000000000000000000000008",
|
|
33
|
+
"attribution": "ArchContext maintainers",
|
|
34
|
+
"review": {
|
|
35
|
+
"status": "approved",
|
|
36
|
+
"reviewer": "archcontext-maintainers",
|
|
37
|
+
"reviewedAt": "2026-06-23"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
42
|
+
"id": "archcontext.adr.0009",
|
|
43
|
+
"name": "ADR-0009 Target State vs Migration State",
|
|
44
|
+
"sourceType": "archcontext",
|
|
45
|
+
"uri": "docs/adr/ADR-0009-target-state-vs-migration-state.md",
|
|
46
|
+
"revision": "2026-06-23",
|
|
47
|
+
"licenseSpdx": "LicenseRef-ArchContext-Repo",
|
|
48
|
+
"licenseLevel": "A",
|
|
49
|
+
"usagePolicy": "repo-authored",
|
|
50
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
51
|
+
"contentDigest": "sha256:1000000000000000000000000000000000000000000000000000000000000009",
|
|
52
|
+
"attribution": "ArchContext maintainers",
|
|
53
|
+
"review": {
|
|
54
|
+
"status": "approved",
|
|
55
|
+
"reviewer": "archcontext-maintainers",
|
|
56
|
+
"reviewedAt": "2026-06-23"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
61
|
+
"id": "archcontext.adr.0010",
|
|
62
|
+
"name": "ADR-0010 Compatibility Code Requires Contract",
|
|
63
|
+
"sourceType": "archcontext",
|
|
64
|
+
"uri": "docs/adr/ADR-0010-compatibility-code-requires-contract.md",
|
|
65
|
+
"revision": "2026-06-23",
|
|
66
|
+
"licenseSpdx": "LicenseRef-ArchContext-Repo",
|
|
67
|
+
"licenseLevel": "A",
|
|
68
|
+
"usagePolicy": "repo-authored",
|
|
69
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
70
|
+
"contentDigest": "sha256:1000000000000000000000000000000000000000000000000000000000000010",
|
|
71
|
+
"attribution": "ArchContext maintainers",
|
|
72
|
+
"review": {
|
|
73
|
+
"status": "approved",
|
|
74
|
+
"reviewer": "archcontext-maintainers",
|
|
75
|
+
"reviewedAt": "2026-06-23"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
80
|
+
"id": "archcontext.adr.0012",
|
|
81
|
+
"name": "ADR-0012 Changeset-only Architecture Writes",
|
|
82
|
+
"sourceType": "archcontext",
|
|
83
|
+
"uri": "docs/adr/ADR-0012-changeset-only-architecture-writes.md",
|
|
84
|
+
"revision": "2026-06-23",
|
|
85
|
+
"licenseSpdx": "LicenseRef-ArchContext-Repo",
|
|
86
|
+
"licenseLevel": "A",
|
|
87
|
+
"usagePolicy": "repo-authored",
|
|
88
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
89
|
+
"contentDigest": "sha256:1000000000000000000000000000000000000000000000000000000000000012",
|
|
90
|
+
"attribution": "ArchContext maintainers",
|
|
91
|
+
"review": {
|
|
92
|
+
"status": "approved",
|
|
93
|
+
"reviewer": "archcontext-maintainers",
|
|
94
|
+
"reviewedAt": "2026-06-23"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
99
|
+
"id": "archcontext.adr.0036",
|
|
100
|
+
"name": "ADR-0036 Deterministic Gate LLM Advisory",
|
|
101
|
+
"sourceType": "archcontext",
|
|
102
|
+
"uri": "docs/adr/ADR-0036-deterministic-gate-llm-advisory.md",
|
|
103
|
+
"revision": "2026-06-23",
|
|
104
|
+
"licenseSpdx": "LicenseRef-ArchContext-Repo",
|
|
105
|
+
"licenseLevel": "A",
|
|
106
|
+
"usagePolicy": "repo-authored",
|
|
107
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
108
|
+
"contentDigest": "sha256:1000000000000000000000000000000000000000000000000000000000000036",
|
|
109
|
+
"attribution": "ArchContext maintainers",
|
|
110
|
+
"review": {
|
|
111
|
+
"status": "approved",
|
|
112
|
+
"reviewer": "archcontext-maintainers",
|
|
113
|
+
"reviewedAt": "2026-06-23"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
118
|
+
"id": "madr",
|
|
119
|
+
"name": "Markdown Architectural Decision Records",
|
|
120
|
+
"sourceType": "git",
|
|
121
|
+
"uri": "https://github.com/adr/madr",
|
|
122
|
+
"revision": "v4.0.0",
|
|
123
|
+
"licenseSpdx": "MIT OR CC0-1.0",
|
|
124
|
+
"licenseLevel": "A",
|
|
125
|
+
"usagePolicy": "builtin-with-attribution",
|
|
126
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
127
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000001",
|
|
128
|
+
"attribution": "MADR contributors",
|
|
129
|
+
"review": {
|
|
130
|
+
"status": "approved",
|
|
131
|
+
"reviewer": "archcontext-maintainers",
|
|
132
|
+
"reviewedAt": "2026-06-23"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
137
|
+
"id": "backstage",
|
|
138
|
+
"name": "Backstage Software Catalog",
|
|
139
|
+
"sourceType": "git",
|
|
140
|
+
"uri": "https://github.com/backstage/backstage",
|
|
141
|
+
"revision": "pinned-reference",
|
|
142
|
+
"licenseSpdx": "Apache-2.0",
|
|
143
|
+
"licenseLevel": "A",
|
|
144
|
+
"usagePolicy": "builtin-with-attribution",
|
|
145
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
146
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000002",
|
|
147
|
+
"attribution": "Backstage contributors",
|
|
148
|
+
"review": {
|
|
149
|
+
"status": "approved",
|
|
150
|
+
"reviewer": "archcontext-maintainers",
|
|
151
|
+
"reviewedAt": "2026-06-23"
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
156
|
+
"id": "archunit",
|
|
157
|
+
"name": "ArchUnit",
|
|
158
|
+
"sourceType": "git",
|
|
159
|
+
"uri": "https://github.com/TNG/ArchUnit",
|
|
160
|
+
"revision": "pinned-reference",
|
|
161
|
+
"licenseSpdx": "Apache-2.0",
|
|
162
|
+
"licenseLevel": "A",
|
|
163
|
+
"usagePolicy": "builtin-with-attribution",
|
|
164
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
165
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000003",
|
|
166
|
+
"attribution": "ArchUnit contributors",
|
|
167
|
+
"review": {
|
|
168
|
+
"status": "approved",
|
|
169
|
+
"reviewer": "archcontext-maintainers",
|
|
170
|
+
"reviewedAt": "2026-06-23"
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
175
|
+
"id": "opentelemetry",
|
|
176
|
+
"name": "OpenTelemetry Documentation",
|
|
177
|
+
"sourceType": "git",
|
|
178
|
+
"uri": "https://github.com/open-telemetry/opentelemetry.io",
|
|
179
|
+
"revision": "pinned-reference",
|
|
180
|
+
"licenseSpdx": "CC-BY-4.0",
|
|
181
|
+
"licenseLevel": "B",
|
|
182
|
+
"usagePolicy": "builtin-with-attribution",
|
|
183
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
184
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000004",
|
|
185
|
+
"attribution": "OpenTelemetry contributors",
|
|
186
|
+
"review": {
|
|
187
|
+
"status": "approved",
|
|
188
|
+
"reviewer": "archcontext-maintainers",
|
|
189
|
+
"reviewedAt": "2026-06-23"
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
194
|
+
"id": "openssf.scorecard",
|
|
195
|
+
"name": "OpenSSF Scorecard",
|
|
196
|
+
"sourceType": "git",
|
|
197
|
+
"uri": "https://github.com/ossf/scorecard",
|
|
198
|
+
"revision": "pinned-reference",
|
|
199
|
+
"licenseSpdx": "Apache-2.0",
|
|
200
|
+
"licenseLevel": "A",
|
|
201
|
+
"usagePolicy": "builtin-with-attribution",
|
|
202
|
+
"retrievedAt": "2026-06-23T00:00:00Z",
|
|
203
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000005",
|
|
204
|
+
"attribution": "OpenSSF Scorecard contributors",
|
|
205
|
+
"review": {
|
|
206
|
+
"status": "approved",
|
|
207
|
+
"reviewer": "archcontext-maintainers",
|
|
208
|
+
"reviewedAt": "2026-06-23"
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
]
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
4
|
+
"id": "structurizr.dsl",
|
|
5
|
+
"name": "Structurizr DSL Documentation",
|
|
6
|
+
"sourceType": "website",
|
|
7
|
+
"uri": "https://docs.structurizr.com/dsl",
|
|
8
|
+
"revision": "pinned-reference-2026-06-24",
|
|
9
|
+
"licenseSpdx": "LicenseRef-Structurizr-Docs",
|
|
10
|
+
"licenseLevel": "B",
|
|
11
|
+
"usagePolicy": "builtin-with-attribution",
|
|
12
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
13
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000006",
|
|
14
|
+
"attribution": "Structurizr DSL documentation",
|
|
15
|
+
"review": { "status": "approved", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
19
|
+
"id": "twelve-factor",
|
|
20
|
+
"name": "The Twelve-Factor App",
|
|
21
|
+
"sourceType": "git",
|
|
22
|
+
"uri": "https://github.com/heroku/12factor",
|
|
23
|
+
"revision": "pinned-reference-2026-06-24",
|
|
24
|
+
"licenseSpdx": "MIT",
|
|
25
|
+
"licenseLevel": "A",
|
|
26
|
+
"usagePolicy": "builtin-with-attribution",
|
|
27
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
28
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000007",
|
|
29
|
+
"attribution": "The Twelve-Factor App contributors",
|
|
30
|
+
"review": { "status": "approved", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
34
|
+
"id": "kubernetes.docs",
|
|
35
|
+
"name": "Kubernetes Documentation",
|
|
36
|
+
"sourceType": "git",
|
|
37
|
+
"uri": "https://github.com/kubernetes/website",
|
|
38
|
+
"revision": "pinned-reference-2026-06-24",
|
|
39
|
+
"licenseSpdx": "CC-BY-4.0",
|
|
40
|
+
"licenseLevel": "B",
|
|
41
|
+
"usagePolicy": "builtin-with-attribution",
|
|
42
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
43
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000008",
|
|
44
|
+
"attribution": "Kubernetes documentation contributors",
|
|
45
|
+
"review": { "status": "approved", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
49
|
+
"id": "cncf.app-delivery",
|
|
50
|
+
"name": "CNCF TAG App Delivery",
|
|
51
|
+
"sourceType": "git",
|
|
52
|
+
"uri": "https://github.com/cncf/tag-app-delivery",
|
|
53
|
+
"revision": "pinned-reference-2026-06-24",
|
|
54
|
+
"licenseSpdx": "Apache-2.0",
|
|
55
|
+
"licenseLevel": "A",
|
|
56
|
+
"usagePolicy": "builtin-with-attribution",
|
|
57
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
58
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000009",
|
|
59
|
+
"attribution": "CNCF TAG App Delivery contributors",
|
|
60
|
+
"review": { "status": "approved", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
64
|
+
"id": "google.sre",
|
|
65
|
+
"name": "Google SRE Book",
|
|
66
|
+
"sourceType": "website",
|
|
67
|
+
"uri": "https://sre.google/sre-book/table-of-contents/",
|
|
68
|
+
"revision": "pinned-reference-2026-06-24",
|
|
69
|
+
"licenseSpdx": "CC-BY-NC-ND-4.0",
|
|
70
|
+
"licenseLevel": "C",
|
|
71
|
+
"usagePolicy": "reference-only",
|
|
72
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
73
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000010",
|
|
74
|
+
"attribution": "Google SRE Book authors",
|
|
75
|
+
"review": { "status": "reference-only", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
79
|
+
"id": "azure.architecture",
|
|
80
|
+
"name": "Azure Architecture Center",
|
|
81
|
+
"sourceType": "website",
|
|
82
|
+
"uri": "https://learn.microsoft.com/azure/architecture/",
|
|
83
|
+
"revision": "pinned-reference-2026-06-24",
|
|
84
|
+
"licenseSpdx": "LicenseRef-Microsoft-Docs",
|
|
85
|
+
"licenseLevel": "B",
|
|
86
|
+
"usagePolicy": "builtin-with-attribution",
|
|
87
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
88
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000011",
|
|
89
|
+
"attribution": "Microsoft Learn documentation",
|
|
90
|
+
"review": { "status": "approved", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
94
|
+
"id": "owasp.cheat-sheet-series",
|
|
95
|
+
"name": "OWASP Cheat Sheet Series",
|
|
96
|
+
"sourceType": "git",
|
|
97
|
+
"uri": "https://github.com/OWASP/CheatSheetSeries",
|
|
98
|
+
"revision": "pinned-reference-2026-06-24",
|
|
99
|
+
"licenseSpdx": "CC-BY-SA-4.0",
|
|
100
|
+
"licenseLevel": "C",
|
|
101
|
+
"usagePolicy": "reference-only",
|
|
102
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
103
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000012",
|
|
104
|
+
"attribution": "OWASP Cheat Sheet Series contributors",
|
|
105
|
+
"review": { "status": "reference-only", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"schemaVersion": "archcontext.practice-source/v1",
|
|
109
|
+
"id": "arc42",
|
|
110
|
+
"name": "arc42 Template",
|
|
111
|
+
"sourceType": "website",
|
|
112
|
+
"uri": "https://arc42.org/",
|
|
113
|
+
"revision": "pinned-reference-2026-06-24",
|
|
114
|
+
"licenseSpdx": "CC-BY-SA-4.0",
|
|
115
|
+
"licenseLevel": "C",
|
|
116
|
+
"usagePolicy": "reference-only",
|
|
117
|
+
"retrievedAt": "2026-06-24T00:00:00Z",
|
|
118
|
+
"contentDigest": "sha256:2000000000000000000000000000000000000000000000000000000000000013",
|
|
119
|
+
"attribution": "arc42 contributors",
|
|
120
|
+
"review": { "status": "reference-only", "reviewer": "archcontext-maintainers", "reviewedAt": "2026-06-24" }
|
|
121
|
+
}
|
|
122
|
+
]
|