v0.21.0 — syntax gate in CI, governance conventions at home
No product-code changes — this release lands the repository's assurance and dogfood closures, completing the dogfooding audit:
- syntax-gate CI job. Every shipped diagram is checked against real PlantUML (pinned jar,
PLANTUML_VERSIONin tests.yml) on every push viapumllint score --check-syntax, and a deliberately broken probe must fail-checkonlyand be forced to Level 1 by the C2 cap — the DIM-SYN integration is now exercised end to end in both directions. Measured along the way: PlantUML tolerates unclosedalt/whileand even a danglingAlice ->, so pumllint's SEQ004/ACT004 are stricter than the grammar itself — grammar checking alone would bless every deliberately broken example. Full findings in "The syntax gate, measured" (docs/dogfooding.md). - Governance conventions at home. The repository's own
pumllint.tomlnow configures GEN006/GEN007 (anowner:tag; references to the repo's spec documents or ADR-/REQ- ids), and the architecture diagram carries both in its footer. The bundled examples deliberately stay untagged (fictional domain; they feed the frozen calibration corpus), so the published pilot report honestly shows the TRC gap on them — aggregate 88 → 87/100, with no diagram changing level (measured before enabling).
Audit scorecard: two findings shipped as product changes (v0.19.0 suppressed-count disclosure, v0.20.0 SEQ103 tightening), one closed as a CI gate, one closed by configuration.