Commit fd7b2d8
fix(validate-a2ml): recognise contractile-shape A2ML files (#9)
The script's identity / version check assumed every `.a2ml` file uses
TOML `key = value` form. Contractile-shape files (Trustfile.a2ml,
Intentfile.a2ml, Mustfile.a2ml, Adjustfile.a2ml, …) use `@directive:`
syntax instead — their identity lives in `@trust-level`, `@intent`,
`@abstract` etc., not in `name = "..."` / `version = "..."`. As a
result every contractile file in a consumer repo failed validation
("Missing required identity field"), blocking Dependabot PRs across
the fleet.
Detect contractile shape by the presence of any of:
@abstract, @trust-level, @trust-boundary, @trust-actions,
@trust-deny, @intent, @must, @adjust, @EnD
in the file body, then skip the manifest-style identity / version
checks (parallel to the existing `*AI-MANIFEST*` special-case for
markdown-style manifests). Attestation-block and section-heading
checks (Checks 3 and 4) remain applied — they're shape-agnostic.
Closes the validate-A2ML-manifest failures observed on every Dependabot
PR across chimichanga, gitbot-fleet, idaptik, ambientops, and more
(reported by hyperpolymath/hypatia#23 audit as `Validate A2ML manifests`
class — 10 PRs blocked at audit time).
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>1 parent 5483b67 commit fd7b2d8
1 file changed
Lines changed: 15 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
149 | | - | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
150 | 163 | | |
151 | 164 | | |
152 | 165 | | |
153 | 166 | | |
154 | | - | |
| 167 | + | |
155 | 168 | | |
156 | 169 | | |
157 | 170 | | |
| |||
0 commit comments