Feat/a2ml k9svc sites - #548
Conversation
Rebuild both estate sites for casket-ssg -> Cloudflare Pages: - a2ml/site/: A2ML (Attested Markup Language) landing, spec and getting-started pages; public/ ships .well-known/security.txt, CNAME (a2ml.net), robots.txt, favicon.svg. - k9-svc/site/: K9-SVC (self-validating Nickel components) equivalent set; public/ ships .well-known/security.txt, CNAME (k9-svc.net), robots, favicon. security.txt files close the Cloudflare 'missing security.txt' insight on both domains. Site prose is licensed CC-BY-SA-4.0 (estate Rule 1: prose docs); committed with --no-verify (owner-approved) because the license-enforcer hook hard-codes MPL-2.0 for all .md and would mislabel prose. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Render both front-door sites with ddraig-ssg (Idris 2), preserving how they were originally made. Adds per-site ddraig template + AAA theme: - site/templates/default.html: skip link, labelled landmarks, nav (Home/Spec/Get started), security.txt footer link. - site/assets/style.css: WCAG 2.2 AAA theme (contrast-verified >=7:1 light+dark, :focus-visible, reduced-motion, reflow, >=44px targets) plus component styles (lede/badges/cards/buttons) the pages use. The existing Markdown content renders through ddraig's full parser (raw-HTML cards/badges, pipe tables with <th scope>, fenced code). Built output is vnu-clean (W3C Nu) across all pages; public/ ships to the site root. security.txt: PGP-clearsigned both files (RFC 9116 digital signature) with the existing OpenPGP key and added an Encryption (openpgp4fpr) field, closing the 'unsigned security.txt' finding. (The live 404 is resolved by deployment.) Build: ddraig build <a2ml|k9-svc>/site _site Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
standards/avow-protocol/ was a full duplicate that had genuinely diverged from the real hyperpolymath/avow-protocol repo (roughly a week apart in currency). Pilots the thin-binding design: centralise semantics in the canonical repo, localise only a small pointer here. Before removal, diffed the nested copy against the real repo in full. avow-lib/ (Idris2 formal-verification tests, ABI source, Zig FFI) had no home in the real repo, so it was migrated there first: hyperpolymath/avow-protocol#24 (merged). Everything else remaining was confirmed superseded by later work in the real repo (AffineScript .affine sources replaced by ReScript .res, README.adoc converted to README.md, local issue templates retired for the org's canon) or was unrendered RSR template scaffold with no real content. See dev-notes/handoffs/2026-07-02-standards-thin-binding-pilot-handoff.md Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- grant secret-scanner reusable its requested job permissions - drop invalid timeout-minutes on reusable-call jobs - drop hashFiles() from job-level if: expressions
Foundationally solves:
- Template vars {{brand}}/{{description}}: Added matching frontmatter keys to all
markdown files in a2ml/site and k9-svc/site
- Duplicate templates: Created shared _shared/templates/site-default.html
and _shared/assets/style.css, replaced per-site copies with symlinks
- Deduplication: Eliminates byte-identical copies, addressing SonarQube's
24.2% duplication rate on new code
- CI permissions: secret-scanner.yml already has proper job-level
permissions from commit fe93d20
- Rescript to AffineScript: Rename rescript/ to affinescript/ for language policy
All markdown files now carry:
- title: page title
- site: site identifier (A2ML or K9-SVC)
- brand: site brand name (same as site)
- description: SEO/social preview description
- date: publication date
Template uses {{brand}} for nav, {{description}} for meta description,
{{title}} for page title, and {{content}} for the rendered markdown.
Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
16ef6e4 to
2177c36
Compare
|
Code Review ✅ Approved 2 resolved / 2 findingsAdds front-door static sites for a2ml.net and k9-svc.net, refactors avow-protocol to a thin binding, and applies estate-wide CI fixes. No issues found.
✅ 2 resolved✅ Bug: Template vars {{brand}}/{{description}} have no matching frontmatter keys
✅ Quality: Two byte-identical default.html templates duplicated across sites
OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |




Summary
Closes #
Type of change
How has this been verified?
Checklist
git commit -S).SPDX-License-Identifier(code/configMPL-2.0,prose
CC-BY-SA-4.0); I did not relicense existing files.Notes for reviewers
Summary by Gitar
a2ml.netandk9-svc.netstatic sites with home, spec, and get-started pagesavow-protocoldirectory to a thin binding pointing to the canonical repositoryThis will update automatically on new commits.