@mnstry/atelier 0.2.0-alpha.1
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/CHANGELOG.md +383 -0
- package/LICENSE +202 -0
- package/NOTICE +5 -0
- package/README.md +262 -0
- package/SECURITY.md +93 -0
- package/TRADEMARKS.md +88 -0
- package/announcements/2026-08-06-announcements-channel.v1.json +12 -0
- package/announcements/keys/mnstry-announcements.public.v1.json +9 -0
- package/bin/atelier.mjs +2 -0
- package/bin/mnstry-atelier.mjs +3 -0
- package/contracts/analysis-adapter.v1.schema.json +248 -0
- package/contracts/atelier-action-intent.v1.schema.json +143 -0
- package/contracts/atelier-analysis-adapter.v1.schema.json +360 -0
- package/contracts/atelier-attestation.v1.schema.json +239 -0
- package/contracts/atelier-boundary-policy.v1.schema.json +339 -0
- package/contracts/atelier-claim.v1.schema.json +97 -0
- package/contracts/atelier-export.v1.schema.json +1015 -0
- package/contracts/atelier-extension-pack.v1.schema.json +290 -0
- package/contracts/atelier-kit-manifest.v1.schema.json +273 -0
- package/contracts/atelier-lock.v1.schema.json +364 -0
- package/contracts/atelier-migration.v1.schema.json +162 -0
- package/contracts/atelier-project-config.v1.schema.json +352 -0
- package/contracts/atelier-readiness-protocol.v1.schema.json +517 -0
- package/contracts/atelier-readiness-run.v1.schema.json +229 -0
- package/contracts/atelier-readiness.v1.schema.json +457 -0
- package/contracts/compat-baseline.json +10 -0
- package/contracts/git-promote-event.v1.schema.json +145 -0
- package/contracts/knowledge-source-sidecar.v1.schema.json +157 -0
- package/contracts/mnstry-atelier-semantic-profile.v1.json +254 -0
- package/docs/announcements.md +101 -0
- package/docs/atelier-runtime.md +34 -0
- package/docs/attestation.md +201 -0
- package/docs/continuity.md +55 -0
- package/docs/contract-stability.md +111 -0
- package/docs/distributions.md +220 -0
- package/docs/install.md +140 -0
- package/docs/knowledge-graph.md +140 -0
- package/docs/ontology.md +206 -0
- package/docs/release-engineering.md +151 -0
- package/docs/repo-boundary-guard.md +199 -0
- package/docs/tenant-readiness.md +64 -0
- package/docs/upgrade.md +124 -0
- package/fixtures/analysis/invalid/native-graph.v1.json +4 -0
- package/fixtures/analysis/invalid/promoted-claim.v1.json +17 -0
- package/fixtures/analysis/invalid/runtime-import.v1.json +20 -0
- package/fixtures/analysis/valid/output.claims.v1.json +17 -0
- package/fixtures/analysis-adapter/invalid/manifest-hidden-provider.v1.json +24 -0
- package/fixtures/analysis-adapter/invalid/output-frontmatter-mutation.v1.json +21 -0
- package/fixtures/analysis-adapter/invalid/output-native-graph.v1.json +14 -0
- package/fixtures/analysis-adapter/manifest.disabled.v1.json +22 -0
- package/fixtures/analysis-adapter/manifest.enabled-local.v1.json +23 -0
- package/fixtures/analysis-adapter/output.claims.v1.json +21 -0
- package/fixtures/atelier-action-intent/invalid/runtime-mutation-authority.v1.json +16 -0
- package/fixtures/atelier-action-intent/invalid/unknown-top-level-field.v1.json +17 -0
- package/fixtures/atelier-action-intent/invalid/writes-beyond-clipboard.v1.json +16 -0
- package/fixtures/atelier-action-intent/valid/copy-agent-prompt.v1.json +16 -0
- package/fixtures/atelier-action-intent/valid/copy-repo-path.v1.json +22 -0
- package/fixtures/atelier-analysis-adapter/invalid/hidden-model-provider.v1.json +24 -0
- package/fixtures/atelier-analysis-adapter/invalid/inert-with-execute-command.v1.json +24 -0
- package/fixtures/atelier-analysis-adapter/invalid/proposals-with-runtime-import.v1.json +30 -0
- package/fixtures/atelier-analysis-adapter/valid/manifest-inert.v1.json +24 -0
- package/fixtures/atelier-analysis-adapter/valid/proposals-claim-only.v1.json +27 -0
- package/fixtures/atelier-attestation/invalid/bad-digest.v1.json +23 -0
- package/fixtures/atelier-attestation/invalid/conformance-scope.v1.json +23 -0
- package/fixtures/atelier-attestation/invalid/missing-signature.v1.json +22 -0
- package/fixtures/atelier-attestation/invalid/unknown-root-field.v1.json +24 -0
- package/fixtures/atelier-attestation/keys/roundtrip-issuer.public.v1.json +9 -0
- package/fixtures/atelier-attestation/valid/rejected-with-reasons.v1.json +49 -0
- package/fixtures/atelier-attestation/valid/signed-admitted.v1.json +35 -0
- package/fixtures/atelier-attestation/valid/signed-roundtrip.v1.json +29 -0
- package/fixtures/atelier-attestation/valid/unsigned-advisory.v1.json +23 -0
- package/fixtures/atelier-claim/invalid/unknown-provider.v1.json +15 -0
- package/fixtures/atelier-claim/invalid/unknown-top-level-field.v1.json +16 -0
- package/fixtures/atelier-claim/invalid/wrong-schema-const.v1.json +15 -0
- package/fixtures/atelier-claim/valid/adapter-style-proposed-relation.v1.json +19 -0
- package/fixtures/atelier-claim/valid/codex-proposed-relation.v1.json +16 -0
- package/fixtures/atelier-claim/valid/manual-proposed-relation.v1.json +16 -0
- package/fixtures/atelier-claim/valid/readiness-proposed-relation.v1.json +18 -0
- package/fixtures/atelier-export/invalid/dirty-unforced-empty-taint.v1.json +19 -0
- package/fixtures/atelier-export/invalid/object-local-audience-visibility.v1.json +11 -0
- package/fixtures/atelier-export/invalid/open-object-class-owner.v1.json +23 -0
- package/fixtures/atelier-export/invalid/pricing-legacy-amount.v1.json +23 -0
- package/fixtures/atelier-export/invalid/public-disguised-internal-source-ref.v1.json +11 -0
- package/fixtures/atelier-export/invalid/public-nested-private-source-ref.v1.json +17 -0
- package/fixtures/atelier-export/invalid/public-resolved-private-source-ref.v1.json +13 -0
- package/fixtures/atelier-export/invalid/public-resolved-sensitive-source-ref.v1.json +13 -0
- package/fixtures/atelier-export/invalid/public-source-ref-missing-provenance.v1.json +20 -0
- package/fixtures/atelier-export/invalid/public-source-team-kg.json +12 -0
- package/fixtures/atelier-export/invalid/source-node-legacy-visibility.v1.json +21 -0
- package/fixtures/atelier-export/invalid/source-node-unknown-field.v1.json +18 -0
- package/fixtures/atelier-export/invalid/unresolved-public-source-ref.v1.json +11 -0
- package/fixtures/atelier-export/sample-studio-offer.v1.json +397 -0
- package/fixtures/atelier-extension-pack/invalid/bundled-slug-collision.v1.json +22 -0
- package/fixtures/atelier-extension-pack/invalid/escapes-root.v1.json +22 -0
- package/fixtures/atelier-extension-pack/invalid/posture-tampered.v1.json +22 -0
- package/fixtures/atelier-extension-pack/invalid/protocols/autonomous-authority.v1.json +118 -0
- package/fixtures/atelier-extension-pack/invalid/protocols/offer-map.v1.json +109 -0
- package/fixtures/atelier-extension-pack/invalid/redefines-runtime-term.v1.json +19 -0
- package/fixtures/atelier-extension-pack/invalid/wrong-namespace.v1.json +19 -0
- package/fixtures/atelier-extension-pack/valid/protocols/contract-gate.v1.json +109 -0
- package/fixtures/atelier-extension-pack/valid/sample-pack.v1.json +48 -0
- package/fixtures/atelier-kit-manifest/invalid/runtime-copy-without-canonical-role.v1.json +53 -0
- package/fixtures/atelier-kit-manifest/invalid/telemetry-send-path.v1.json +21 -0
- package/fixtures/atelier-kit-manifest/valid/mnstry-atelier.valid.v1.json +76 -0
- package/fixtures/atelier-lock/invalid/absolute-contract-path.v1.json +40 -0
- package/fixtures/atelier-lock/invalid/runtime-mutation-enabled.v1.json +41 -0
- package/fixtures/atelier-lock/invalid/unknown-top-level-field.v1.json +42 -0
- package/fixtures/atelier-lock/valid/extension-pack.v1.json +55 -0
- package/fixtures/atelier-lock/valid/minimal.v1.json +44 -0
- package/fixtures/atelier-migration/invalid/live-apply-mode.v1.json +21 -0
- package/fixtures/atelier-migration/invalid/missing-review-evidence.v1.json +20 -0
- package/fixtures/atelier-migration/invalid/runtime-mutation-enabled.v1.json +21 -0
- package/fixtures/atelier-migration/valid/minimal.v1.json +32 -0
- package/fixtures/atelier-project-config/invalid/absolute-repo-path.v1.json +11 -0
- package/fixtures/atelier-project-config/invalid/ext-not-object.v1.json +12 -0
- package/fixtures/atelier-project-config/invalid/external-kind-read-boundary.v1.json +12 -0
- package/fixtures/atelier-project-config/invalid/missing-repos-and-alignment.v1.json +7 -0
- package/fixtures/atelier-project-config/invalid/unknown-top-level-field.v1.json +14 -0
- package/fixtures/atelier-project-config/valid/alignment-scaffold.v1.json +15 -0
- package/fixtures/atelier-project-config/valid/ext-extension-packs.v1.json +36 -0
- package/fixtures/atelier-project-config/valid/repo-workspace.v1.json +23 -0
- package/fixtures/atelier-project-config/validator-only/ext-member-not-object.v1.json +14 -0
- package/fixtures/atelier-readiness/invalid/dry-run-only-false.v1.json +87 -0
- package/fixtures/atelier-readiness/invalid/support-bundle-send-path.v1.json +87 -0
- package/fixtures/atelier-readiness/invalid/unknown-top-level-field.v1.json +88 -0
- package/fixtures/atelier-readiness/valid/ready-workspace.v1.json +84 -0
- package/fixtures/boundary-policy/invalid/content-rule-exception-blanket-path.v1.json +67 -0
- package/fixtures/boundary-policy/invalid/invalid-actor-private-repo-mapping.v1.json +20 -0
- package/fixtures/boundary-policy/invalid/legacy-warning-missing-warning.v1.json +20 -0
- package/fixtures/boundary-policy/invalid/missing-repo-coverage.v1.json +19 -0
- package/fixtures/boundary-policy/invalid/unknown-key.v1.json +12 -0
- package/fixtures/boundary-policy/valid/content-rule-exception.v1.json +67 -0
- package/fixtures/boundary-policy/valid/legacy-warning.v1.json +33 -0
- package/fixtures/boundary-policy/valid/strict-private-shared.v1.json +40 -0
- package/fixtures/git-promote/invalid/provision-named-revocable.v1.json +29 -0
- package/fixtures/git-promote/private-to-team.v1.json +29 -0
- package/fixtures/knowledge-source-sidecar/invalid/legacy-visibility-field.v1.json +17 -0
- package/fixtures/knowledge-source-sidecar/invalid/missing-audience.v1.json +15 -0
- package/fixtures/knowledge-source-sidecar/invalid/unknown-relation-kind.v1.json +18 -0
- package/fixtures/knowledge-source-sidecar/valid/html-source.v1.json +18 -0
- package/fixtures/knowledge-source-sidecar/valid/pdf-evidence.v1.json +18 -0
- package/fixtures/projects/neutral-project/atelier.project.json +15 -0
- package/fixtures/projects/neutral-project/ops/config/repo-access.v1.json +12 -0
- package/fixtures/projects/neutral-project/project-knowledge.graph.json +69 -0
- package/fixtures/projects/sample-workspace/atelier.project.json +23 -0
- package/fixtures/projects/sample-workspace/boundary-policy.v1.json +59 -0
- package/fixtures/projects/sample-workspace/content/README.md +16 -0
- package/fixtures/projects/sample-workspace/content/source.html +5 -0
- package/fixtures/projects/sample-workspace/content/source.html.kg.json +15 -0
- package/fixtures/projects/sample-workspace/repo-access.v1.json +9 -0
- package/fixtures/projects/source-formats-workspace/atelier.project.json +23 -0
- package/fixtures/projects/source-formats-workspace/content/README.md +17 -0
- package/fixtures/projects/source-formats-workspace/content/data.json +7 -0
- package/fixtures/projects/source-formats-workspace/content/data.json.kg.json +15 -0
- package/fixtures/projects/source-formats-workspace/content/logo.png.kg.json +15 -0
- package/fixtures/projects/source-formats-workspace/content/metrics.csv +3 -0
- package/fixtures/projects/source-formats-workspace/content/metrics.csv.kg.json +15 -0
- package/fixtures/projects/source-formats-workspace/content/pipeline.yaml +4 -0
- package/fixtures/projects/source-formats-workspace/content/pipeline.yaml.kg.json +15 -0
- package/fixtures/projects/source-formats-workspace/repo-access.v1.json +9 -0
- package/fixtures/readiness-protocols/extension-pack/invalid/protocol-missing-path.v1.json +20 -0
- package/fixtures/readiness-protocols/extension-pack/valid/with-protocol.v1.json +24 -0
- package/fixtures/readiness-protocols/protocol/invalid/missing-check-target.v1.json +103 -0
- package/fixtures/readiness-protocols/protocol/invalid/runtime-mutation-enabled.v1.json +107 -0
- package/fixtures/readiness-protocols/protocol/valid/minimal.v1.json +100 -0
- package/fixtures/readiness-protocols/run/invalid/missing-evidence.v1.json +37 -0
- package/fixtures/readiness-protocols/run/invalid/pass-with-blocker.v1.json +22 -0
- package/fixtures/readiness-protocols/run/invalid/runtime-mutation-enabled.v1.json +22 -0
- package/fixtures/readiness-protocols/run/valid/pass.v1.json +44 -0
- package/fixtures/support/invalid/leaky-support.v1.json +13 -0
- package/fixtures/support/valid/minimal-safe.v1.json +20 -0
- package/package.json +98 -0
- package/skills/claude/atelier-open/SKILL.md +68 -0
- package/skills/claude/mnstry-readiness/SKILL.md +41 -0
- package/skills/codex/atelier-open/SKILL.md +68 -0
- package/skills/codex/mnstry-readiness/SKILL.md +41 -0
- package/src/analysis/adapter.mjs +20 -0
- package/src/analysis/analysis-claim-contract.mjs +335 -0
- package/src/attestation/jcs.mjs +64 -0
- package/src/attestation/sign.mjs +305 -0
- package/src/boundary/content-rules.mjs +262 -0
- package/src/boundary/policy.mjs +806 -0
- package/src/check-atelier-export-contract.mjs +116 -0
- package/src/cli/run.mjs +283 -0
- package/src/collaboration/proposals.mjs +262 -0
- package/src/commands/analysis.mjs +8 -0
- package/src/commands/announcements.mjs +308 -0
- package/src/commands/attestation.mjs +198 -0
- package/src/commands/boundary.mjs +25 -0
- package/src/commands/config.mjs +4 -0
- package/src/commands/context.mjs +3 -0
- package/src/commands/distribution.mjs +224 -0
- package/src/commands/egress.mjs +11 -0
- package/src/commands/extension-pack.mjs +209 -0
- package/src/commands/feedback.mjs +3 -0
- package/src/commands/graph.mjs +3 -0
- package/src/commands/init.mjs +130 -0
- package/src/commands/lock.mjs +3 -0
- package/src/commands/project.mjs +3 -0
- package/src/commands/promote.mjs +4 -0
- package/src/commands/readiness.mjs +3 -0
- package/src/commands/server.mjs +6 -0
- package/src/commands/setup.mjs +250 -0
- package/src/commands/support.mjs +3 -0
- package/src/commands/upgrade.mjs +3 -0
- package/src/contracts/corpus.mjs +171 -0
- package/src/egress/check.mjs +45 -0
- package/src/egress/forbidden-egress.mjs +323 -0
- package/src/export/atelier-export-contract.mjs +722 -0
- package/src/extension-packs/loader.mjs +491 -0
- package/src/graph/graph.mjs +370 -0
- package/src/graph/knowledge-graph.mjs +887 -0
- package/src/harness/context-client.mjs +144 -0
- package/src/harness/context.mjs +27 -0
- package/src/index.mjs +88 -0
- package/src/project/config.mjs +557 -0
- package/src/project/file-class.mjs +113 -0
- package/src/project/git-ignore.mjs +31 -0
- package/src/project/path-match.mjs +30 -0
- package/src/project/repo-identity.mjs +176 -0
- package/src/projection/alignment-projection.mjs +169 -0
- package/src/projection/policy.mjs +90 -0
- package/src/projection/project.mjs +152 -0
- package/src/readiness/readiness.mjs +312 -0
- package/src/readiness-protocols/bundled-pack.mjs +766 -0
- package/src/readiness-protocols/runtime.mjs +419 -0
- package/src/server/local-sidecar.mjs +640 -0
- package/src/server/security.mjs +229 -0
- package/src/server/server.mjs +42 -0
- package/src/support/feedback-report.mjs +414 -0
- package/src/support/support-bundle.mjs +226 -0
- package/src/ui/html-primitives.mjs +104 -0
- package/src/upgrade/upgrade.mjs +701 -0
- package/src/validate-atelier-export-dry-run.mjs +75 -0
- package/templates/atelier.project.example.json +23 -0
- package/templates/distribution-workspace/.claude/launch.json +12 -0
- package/templates/distribution-workspace/README.md +86 -0
- package/templates/distribution-workspace/atelier.project.json +36 -0
- package/templates/distribution-workspace/boundary-policy.v1.json +61 -0
- package/templates/distribution-workspace/gitignore +29 -0
- package/templates/distribution-workspace/governance/repo-boundary-ledger.md +5 -0
- package/templates/distribution-workspace/project/README.md +19 -0
- package/templates/distribution-workspace/repo-access.v1.json +9 -0
- package/templates/launch.json +12 -0
- package/templates/private-domain-workspace/.claude/launch.json +12 -0
- package/templates/private-domain-workspace/README.md +50 -0
- package/templates/private-domain-workspace/atelier.project.json +28 -0
- package/templates/private-domain-workspace/boundary-policy.v1.json +54 -0
- package/templates/private-domain-workspace/domain/README.md +19 -0
- package/templates/private-domain-workspace/gitignore +29 -0
- package/templates/private-domain-workspace/governance/repo-boundary-ledger.md +4 -0
- package/templates/private-domain-workspace/repo-access.v1.json +9 -0
- package/templates/shared-project-workspace/.claude/launch.json +12 -0
- package/templates/shared-project-workspace/README.md +51 -0
- package/templates/shared-project-workspace/atelier.project.json +28 -0
- package/templates/shared-project-workspace/boundary-policy.v1.json +61 -0
- package/templates/shared-project-workspace/gitignore +29 -0
- package/templates/shared-project-workspace/governance/repo-boundary-ledger.md +5 -0
- package/templates/shared-project-workspace/project/README.md +19 -0
- package/templates/shared-project-workspace/repo-access.v1.json +9 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://mnstry.ai/schemas/atelier/atelier-readiness-run.v1.schema.json",
|
|
4
|
+
"$comment": "contract revision 1.1.0 (contract-stability epoch)",
|
|
5
|
+
"title": "MNSTRY Atelier Readiness Run v1",
|
|
6
|
+
"description": "Local, ignored, claim-first result of a readiness protocol run. A run can create proposed claims and draft packets, but it never grants runtime mutation, import, telemetry, egress, send-path, direct browser-write, or canonical graph/front-matter authority.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"required": [
|
|
10
|
+
"schema",
|
|
11
|
+
"runId",
|
|
12
|
+
"protocolId",
|
|
13
|
+
"createdAt",
|
|
14
|
+
"project",
|
|
15
|
+
"answers",
|
|
16
|
+
"status",
|
|
17
|
+
"score",
|
|
18
|
+
"blockers",
|
|
19
|
+
"warnings",
|
|
20
|
+
"claims",
|
|
21
|
+
"safety"
|
|
22
|
+
],
|
|
23
|
+
"allOf": [
|
|
24
|
+
{
|
|
25
|
+
"if": {
|
|
26
|
+
"properties": {
|
|
27
|
+
"status": {
|
|
28
|
+
"const": "ready"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"then": {
|
|
33
|
+
"properties": {
|
|
34
|
+
"blockers": {
|
|
35
|
+
"maxItems": 0
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"properties": {
|
|
42
|
+
"schema": {
|
|
43
|
+
"const": "atelier-readiness-run@v1"
|
|
44
|
+
},
|
|
45
|
+
"contractVersion": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"pattern": "^1\\.[0-9]+\\.[0-9]+$"
|
|
48
|
+
},
|
|
49
|
+
"runId": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"pattern": "^readiness-run-[a-f0-9]{24}$"
|
|
52
|
+
},
|
|
53
|
+
"protocolId": {
|
|
54
|
+
"$ref": "#/$defs/protocolId"
|
|
55
|
+
},
|
|
56
|
+
"createdAt": {
|
|
57
|
+
"type": "string",
|
|
58
|
+
"format": "date-time"
|
|
59
|
+
},
|
|
60
|
+
"project": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"minLength": 1
|
|
63
|
+
},
|
|
64
|
+
"answers": {
|
|
65
|
+
"type": "object"
|
|
66
|
+
},
|
|
67
|
+
"status": {
|
|
68
|
+
"enum": [
|
|
69
|
+
"missing",
|
|
70
|
+
"draft",
|
|
71
|
+
"review-needed",
|
|
72
|
+
"ready",
|
|
73
|
+
"blocked"
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
"score": {
|
|
77
|
+
"type": "integer",
|
|
78
|
+
"minimum": 0,
|
|
79
|
+
"maximum": 100
|
|
80
|
+
},
|
|
81
|
+
"blockers": {
|
|
82
|
+
"$ref": "#/$defs/stringList"
|
|
83
|
+
},
|
|
84
|
+
"warnings": {
|
|
85
|
+
"$ref": "#/$defs/stringList"
|
|
86
|
+
},
|
|
87
|
+
"claims": {
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"$ref": "#/$defs/claim"
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"safety": {
|
|
94
|
+
"$ref": "#/$defs/safety"
|
|
95
|
+
},
|
|
96
|
+
"ext": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"$defs": {
|
|
102
|
+
"protocolId": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"pattern": "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*:[a-z][a-z0-9._-]*$"
|
|
105
|
+
},
|
|
106
|
+
"stringList": {
|
|
107
|
+
"type": "array",
|
|
108
|
+
"items": {
|
|
109
|
+
"type": "string",
|
|
110
|
+
"minLength": 1
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"claim": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"required": [
|
|
117
|
+
"schema",
|
|
118
|
+
"claimId",
|
|
119
|
+
"subject",
|
|
120
|
+
"predicate",
|
|
121
|
+
"object",
|
|
122
|
+
"provider",
|
|
123
|
+
"status",
|
|
124
|
+
"promoted"
|
|
125
|
+
],
|
|
126
|
+
"properties": {
|
|
127
|
+
"schema": {
|
|
128
|
+
"const": "atelier-claim@v1"
|
|
129
|
+
},
|
|
130
|
+
"claimId": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"pattern": "^claim:[a-z0-9][a-z0-9:-]*$"
|
|
133
|
+
},
|
|
134
|
+
"subject": {
|
|
135
|
+
"type": "string",
|
|
136
|
+
"pattern": "^[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9:-]*$"
|
|
137
|
+
},
|
|
138
|
+
"predicate": {
|
|
139
|
+
"enum": [
|
|
140
|
+
"related",
|
|
141
|
+
"supports",
|
|
142
|
+
"supersedes",
|
|
143
|
+
"implements",
|
|
144
|
+
"depends_on",
|
|
145
|
+
"evidences",
|
|
146
|
+
"contradicts",
|
|
147
|
+
"belongs_to"
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"object": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"pattern": "^[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9:-]*$"
|
|
153
|
+
},
|
|
154
|
+
"provider": {
|
|
155
|
+
"enum": [
|
|
156
|
+
"atelier-readiness",
|
|
157
|
+
"codex",
|
|
158
|
+
"manual",
|
|
159
|
+
"analysis",
|
|
160
|
+
"claude",
|
|
161
|
+
"script"
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
"status": {
|
|
165
|
+
"const": "proposed"
|
|
166
|
+
},
|
|
167
|
+
"promoted": {
|
|
168
|
+
"const": false
|
|
169
|
+
},
|
|
170
|
+
"confidence": {
|
|
171
|
+
"type": "number",
|
|
172
|
+
"minimum": 0,
|
|
173
|
+
"maximum": 1
|
|
174
|
+
},
|
|
175
|
+
"evidence": {
|
|
176
|
+
"type": "array",
|
|
177
|
+
"items": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"minLength": 1
|
|
180
|
+
},
|
|
181
|
+
"minItems": 1
|
|
182
|
+
},
|
|
183
|
+
"notes": {
|
|
184
|
+
"$ref": "#/$defs/stringList"
|
|
185
|
+
},
|
|
186
|
+
"createdAt": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"format": "date-time"
|
|
189
|
+
},
|
|
190
|
+
"ext": {
|
|
191
|
+
"type": "object",
|
|
192
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
"safety": {
|
|
197
|
+
"type": "object",
|
|
198
|
+
"additionalProperties": false,
|
|
199
|
+
"required": [
|
|
200
|
+
"runtimeMutation",
|
|
201
|
+
"runtimeImport",
|
|
202
|
+
"canonicalWrites",
|
|
203
|
+
"claimOnly",
|
|
204
|
+
"storage"
|
|
205
|
+
],
|
|
206
|
+
"properties": {
|
|
207
|
+
"runtimeMutation": {
|
|
208
|
+
"const": false
|
|
209
|
+
},
|
|
210
|
+
"runtimeImport": {
|
|
211
|
+
"const": false
|
|
212
|
+
},
|
|
213
|
+
"canonicalWrites": {
|
|
214
|
+
"const": false
|
|
215
|
+
},
|
|
216
|
+
"claimOnly": {
|
|
217
|
+
"const": true
|
|
218
|
+
},
|
|
219
|
+
"storage": {
|
|
220
|
+
"const": "ignored-local"
|
|
221
|
+
},
|
|
222
|
+
"ext": {
|
|
223
|
+
"type": "object",
|
|
224
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://mnstry.ai/schemas/atelier/atelier-readiness.v1.schema.json",
|
|
4
|
+
"$comment": "contract revision 1.1.0 (contract-stability epoch)",
|
|
5
|
+
"title": "mnstry.atelier-readiness@v1",
|
|
6
|
+
"description": "Live readiness report for the Atelier extractable-kit boundary. This is evidence from current checks, not source authority.",
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"required": [
|
|
10
|
+
"schema",
|
|
11
|
+
"generatedAt",
|
|
12
|
+
"workspace",
|
|
13
|
+
"acceptedBoundary",
|
|
14
|
+
"ready",
|
|
15
|
+
"blockers",
|
|
16
|
+
"warnings",
|
|
17
|
+
"graph",
|
|
18
|
+
"alignment",
|
|
19
|
+
"contracts",
|
|
20
|
+
"kitManifest",
|
|
21
|
+
"runtimeDryRun",
|
|
22
|
+
"supportBundle",
|
|
23
|
+
"analysis",
|
|
24
|
+
"checks"
|
|
25
|
+
],
|
|
26
|
+
"properties": {
|
|
27
|
+
"schema": {
|
|
28
|
+
"const": "mnstry.atelier-readiness@v1"
|
|
29
|
+
},
|
|
30
|
+
"contractVersion": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^1\\.[0-9]+\\.[0-9]+$"
|
|
33
|
+
},
|
|
34
|
+
"generatedAt": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"format": "date-time"
|
|
37
|
+
},
|
|
38
|
+
"workspace": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"additionalProperties": false,
|
|
41
|
+
"required": [
|
|
42
|
+
"root",
|
|
43
|
+
"repoOpsHead"
|
|
44
|
+
],
|
|
45
|
+
"properties": {
|
|
46
|
+
"root": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"minLength": 1
|
|
49
|
+
},
|
|
50
|
+
"repoOpsHead": {
|
|
51
|
+
"type": [
|
|
52
|
+
"string",
|
|
53
|
+
"null"
|
|
54
|
+
],
|
|
55
|
+
"pattern": "^[0-9a-f]{7,40}$"
|
|
56
|
+
},
|
|
57
|
+
"ext": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"acceptedBoundary": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"minLength": 1
|
|
66
|
+
},
|
|
67
|
+
"ready": {
|
|
68
|
+
"type": "boolean"
|
|
69
|
+
},
|
|
70
|
+
"blockers": {
|
|
71
|
+
"$ref": "#/$defs/stringList"
|
|
72
|
+
},
|
|
73
|
+
"warnings": {
|
|
74
|
+
"$ref": "#/$defs/stringList"
|
|
75
|
+
},
|
|
76
|
+
"graph": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"additionalProperties": false,
|
|
79
|
+
"required": [
|
|
80
|
+
"ok",
|
|
81
|
+
"path",
|
|
82
|
+
"schema",
|
|
83
|
+
"nodes",
|
|
84
|
+
"edges",
|
|
85
|
+
"diagnostics",
|
|
86
|
+
"privateRepoRecommended"
|
|
87
|
+
],
|
|
88
|
+
"properties": {
|
|
89
|
+
"ok": {
|
|
90
|
+
"type": "boolean"
|
|
91
|
+
},
|
|
92
|
+
"path": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"minLength": 1
|
|
95
|
+
},
|
|
96
|
+
"schema": {
|
|
97
|
+
"type": [
|
|
98
|
+
"string",
|
|
99
|
+
"null"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"nodes": {
|
|
103
|
+
"type": "integer",
|
|
104
|
+
"minimum": 0
|
|
105
|
+
},
|
|
106
|
+
"edges": {
|
|
107
|
+
"type": "integer",
|
|
108
|
+
"minimum": 0
|
|
109
|
+
},
|
|
110
|
+
"diagnostics": {
|
|
111
|
+
"type": "integer",
|
|
112
|
+
"minimum": 0
|
|
113
|
+
},
|
|
114
|
+
"privateRepoRecommended": {
|
|
115
|
+
"type": "integer",
|
|
116
|
+
"minimum": 0
|
|
117
|
+
},
|
|
118
|
+
"ext": {
|
|
119
|
+
"type": "object",
|
|
120
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
"alignment": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"additionalProperties": false,
|
|
127
|
+
"required": [
|
|
128
|
+
"ok",
|
|
129
|
+
"path",
|
|
130
|
+
"schema",
|
|
131
|
+
"generatedAt",
|
|
132
|
+
"graphNodes",
|
|
133
|
+
"graphEdges",
|
|
134
|
+
"alignmentNodes",
|
|
135
|
+
"alignmentEdges",
|
|
136
|
+
"gaps",
|
|
137
|
+
"diagnostics"
|
|
138
|
+
],
|
|
139
|
+
"properties": {
|
|
140
|
+
"ok": {
|
|
141
|
+
"type": "boolean"
|
|
142
|
+
},
|
|
143
|
+
"path": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"minLength": 1
|
|
146
|
+
},
|
|
147
|
+
"schema": {
|
|
148
|
+
"type": [
|
|
149
|
+
"string",
|
|
150
|
+
"null"
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"generatedAt": {
|
|
154
|
+
"type": [
|
|
155
|
+
"string",
|
|
156
|
+
"null"
|
|
157
|
+
],
|
|
158
|
+
"format": "date-time"
|
|
159
|
+
},
|
|
160
|
+
"graphNodes": {
|
|
161
|
+
"type": "integer",
|
|
162
|
+
"minimum": 0
|
|
163
|
+
},
|
|
164
|
+
"graphEdges": {
|
|
165
|
+
"type": "integer",
|
|
166
|
+
"minimum": 0
|
|
167
|
+
},
|
|
168
|
+
"alignmentNodes": {
|
|
169
|
+
"type": "integer",
|
|
170
|
+
"minimum": 0
|
|
171
|
+
},
|
|
172
|
+
"alignmentEdges": {
|
|
173
|
+
"type": "integer",
|
|
174
|
+
"minimum": 0
|
|
175
|
+
},
|
|
176
|
+
"gaps": {
|
|
177
|
+
"type": "integer",
|
|
178
|
+
"minimum": 0
|
|
179
|
+
},
|
|
180
|
+
"diagnostics": {
|
|
181
|
+
"type": "integer",
|
|
182
|
+
"minimum": 0
|
|
183
|
+
},
|
|
184
|
+
"ext": {
|
|
185
|
+
"type": "object",
|
|
186
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
"contracts": {
|
|
191
|
+
"type": "array",
|
|
192
|
+
"items": {
|
|
193
|
+
"type": "object",
|
|
194
|
+
"additionalProperties": false,
|
|
195
|
+
"required": [
|
|
196
|
+
"path",
|
|
197
|
+
"present"
|
|
198
|
+
],
|
|
199
|
+
"properties": {
|
|
200
|
+
"path": {
|
|
201
|
+
"type": "string",
|
|
202
|
+
"minLength": 1
|
|
203
|
+
},
|
|
204
|
+
"present": {
|
|
205
|
+
"type": "boolean"
|
|
206
|
+
},
|
|
207
|
+
"ext": {
|
|
208
|
+
"type": "object",
|
|
209
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
"runtimeDryRun": {
|
|
215
|
+
"type": "object",
|
|
216
|
+
"additionalProperties": false,
|
|
217
|
+
"required": [
|
|
218
|
+
"ok",
|
|
219
|
+
"root",
|
|
220
|
+
"script",
|
|
221
|
+
"test",
|
|
222
|
+
"fixture",
|
|
223
|
+
"dryRunOnly"
|
|
224
|
+
],
|
|
225
|
+
"properties": {
|
|
226
|
+
"ok": {
|
|
227
|
+
"type": "boolean"
|
|
228
|
+
},
|
|
229
|
+
"root": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"minLength": 1
|
|
232
|
+
},
|
|
233
|
+
"script": {
|
|
234
|
+
"type": "string",
|
|
235
|
+
"minLength": 1
|
|
236
|
+
},
|
|
237
|
+
"test": {
|
|
238
|
+
"type": "string",
|
|
239
|
+
"minLength": 1
|
|
240
|
+
},
|
|
241
|
+
"fixture": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"minLength": 1
|
|
244
|
+
},
|
|
245
|
+
"dryRunOnly": {
|
|
246
|
+
"const": true
|
|
247
|
+
},
|
|
248
|
+
"ext": {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"kitManifest": {
|
|
255
|
+
"type": "object",
|
|
256
|
+
"additionalProperties": false,
|
|
257
|
+
"required": [
|
|
258
|
+
"ok",
|
|
259
|
+
"path",
|
|
260
|
+
"schema",
|
|
261
|
+
"kernel",
|
|
262
|
+
"sourceDialect",
|
|
263
|
+
"exportContract",
|
|
264
|
+
"extensionPacks",
|
|
265
|
+
"telemetry"
|
|
266
|
+
],
|
|
267
|
+
"properties": {
|
|
268
|
+
"ok": {
|
|
269
|
+
"type": "boolean"
|
|
270
|
+
},
|
|
271
|
+
"path": {
|
|
272
|
+
"type": "string",
|
|
273
|
+
"minLength": 1
|
|
274
|
+
},
|
|
275
|
+
"schema": {
|
|
276
|
+
"type": [
|
|
277
|
+
"string",
|
|
278
|
+
"null"
|
|
279
|
+
]
|
|
280
|
+
},
|
|
281
|
+
"kernel": {
|
|
282
|
+
"type": [
|
|
283
|
+
"string",
|
|
284
|
+
"null"
|
|
285
|
+
]
|
|
286
|
+
},
|
|
287
|
+
"sourceDialect": {
|
|
288
|
+
"type": [
|
|
289
|
+
"string",
|
|
290
|
+
"null"
|
|
291
|
+
]
|
|
292
|
+
},
|
|
293
|
+
"exportContract": {
|
|
294
|
+
"type": [
|
|
295
|
+
"string",
|
|
296
|
+
"null"
|
|
297
|
+
]
|
|
298
|
+
},
|
|
299
|
+
"extensionPacks": {
|
|
300
|
+
"type": "integer",
|
|
301
|
+
"minimum": 0
|
|
302
|
+
},
|
|
303
|
+
"telemetry": {
|
|
304
|
+
"type": [
|
|
305
|
+
"object",
|
|
306
|
+
"null"
|
|
307
|
+
]
|
|
308
|
+
},
|
|
309
|
+
"ext": {
|
|
310
|
+
"type": "object",
|
|
311
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
"supportBundle": {
|
|
316
|
+
"type": "object",
|
|
317
|
+
"additionalProperties": false,
|
|
318
|
+
"required": [
|
|
319
|
+
"states",
|
|
320
|
+
"sendPath",
|
|
321
|
+
"background",
|
|
322
|
+
"telemetry",
|
|
323
|
+
"hashableDryRun"
|
|
324
|
+
],
|
|
325
|
+
"properties": {
|
|
326
|
+
"states": {
|
|
327
|
+
"type": "array",
|
|
328
|
+
"items": {
|
|
329
|
+
"enum": [
|
|
330
|
+
"none",
|
|
331
|
+
"support_bundle"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
"minItems": 2,
|
|
335
|
+
"uniqueItems": true
|
|
336
|
+
},
|
|
337
|
+
"sendPath": {
|
|
338
|
+
"const": false
|
|
339
|
+
},
|
|
340
|
+
"background": {
|
|
341
|
+
"const": false
|
|
342
|
+
},
|
|
343
|
+
"telemetry": {
|
|
344
|
+
"const": "none"
|
|
345
|
+
},
|
|
346
|
+
"hashableDryRun": {
|
|
347
|
+
"const": true
|
|
348
|
+
},
|
|
349
|
+
"ext": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
"analysis": {
|
|
356
|
+
"type": "object",
|
|
357
|
+
"additionalProperties": false,
|
|
358
|
+
"required": [
|
|
359
|
+
"ok",
|
|
360
|
+
"enabled",
|
|
361
|
+
"defaultEnabled",
|
|
362
|
+
"manifestPath",
|
|
363
|
+
"manifestPresent",
|
|
364
|
+
"authority"
|
|
365
|
+
],
|
|
366
|
+
"properties": {
|
|
367
|
+
"ok": {
|
|
368
|
+
"type": "boolean"
|
|
369
|
+
},
|
|
370
|
+
"enabled": {
|
|
371
|
+
"type": "boolean"
|
|
372
|
+
},
|
|
373
|
+
"defaultEnabled": {
|
|
374
|
+
"const": false
|
|
375
|
+
},
|
|
376
|
+
"manifestPath": {
|
|
377
|
+
"type": "string",
|
|
378
|
+
"minLength": 1
|
|
379
|
+
},
|
|
380
|
+
"manifestPresent": {
|
|
381
|
+
"type": "boolean"
|
|
382
|
+
},
|
|
383
|
+
"authority": {
|
|
384
|
+
"enum": [
|
|
385
|
+
"optional-local-claim-only"
|
|
386
|
+
]
|
|
387
|
+
},
|
|
388
|
+
"ext": {
|
|
389
|
+
"type": "object",
|
|
390
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
"checks": {
|
|
395
|
+
"type": "array",
|
|
396
|
+
"items": {
|
|
397
|
+
"type": "object",
|
|
398
|
+
"additionalProperties": false,
|
|
399
|
+
"required": [
|
|
400
|
+
"label",
|
|
401
|
+
"command",
|
|
402
|
+
"cwd",
|
|
403
|
+
"ok",
|
|
404
|
+
"status",
|
|
405
|
+
"signal"
|
|
406
|
+
],
|
|
407
|
+
"properties": {
|
|
408
|
+
"label": {
|
|
409
|
+
"type": "string",
|
|
410
|
+
"minLength": 1
|
|
411
|
+
},
|
|
412
|
+
"command": {
|
|
413
|
+
"type": "string",
|
|
414
|
+
"minLength": 1
|
|
415
|
+
},
|
|
416
|
+
"cwd": {
|
|
417
|
+
"type": "string",
|
|
418
|
+
"minLength": 1
|
|
419
|
+
},
|
|
420
|
+
"ok": {
|
|
421
|
+
"type": "boolean"
|
|
422
|
+
},
|
|
423
|
+
"status": {
|
|
424
|
+
"type": [
|
|
425
|
+
"integer",
|
|
426
|
+
"null"
|
|
427
|
+
]
|
|
428
|
+
},
|
|
429
|
+
"signal": {
|
|
430
|
+
"type": [
|
|
431
|
+
"string",
|
|
432
|
+
"null"
|
|
433
|
+
]
|
|
434
|
+
},
|
|
435
|
+
"ext": {
|
|
436
|
+
"type": "object",
|
|
437
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
"ext": {
|
|
443
|
+
"type": "object",
|
|
444
|
+
"description": "Reserved extension container. Producers MAY add namespaced members (recommend vendor-prefixed keys). Consumers MUST ignore members they do not recognize. Contents are not validated at v1 and carry no authority over first-class fields."
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
"$defs": {
|
|
448
|
+
"stringList": {
|
|
449
|
+
"type": "array",
|
|
450
|
+
"items": {
|
|
451
|
+
"type": "string",
|
|
452
|
+
"minLength": 1
|
|
453
|
+
},
|
|
454
|
+
"uniqueItems": true
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema": "atelier-compat-baseline@v1",
|
|
3
|
+
"baselineTag": "v0.2.0-alpha.0",
|
|
4
|
+
"preEpochTags": [
|
|
5
|
+
"v0.1.0-alpha.0",
|
|
6
|
+
"v0.1.0-alpha.1",
|
|
7
|
+
"v0.1.0-alpha.2"
|
|
8
|
+
],
|
|
9
|
+
"note": "Set baselineTag to the first tag cut after the contract-stability epoch, in the same release commit as the tag. Null is inert ONLY while every existing tag is in preEpochTags; any tag beyond that set with a null baseline fails the gate."
|
|
10
|
+
}
|