Skip to content

Self-review wave 2: audit-page SEO/OG, i18n drift guards, prompt-contract hardening#144

Merged
muraschal merged 6 commits into
mainfrom
feat/self-review-wave-2
Jun 25, 2026
Merged

Self-review wave 2: audit-page SEO/OG, i18n drift guards, prompt-contract hardening#144
muraschal merged 6 commits into
mainfrom
feat/self-review-wave-2

Conversation

@muraschal

Copy link
Copy Markdown
Contributor

Supersedes #139 (auto-closed when its stacked base branch was deleted on merge of #133). Now based directly on main (which already includes #132 + #133); main was merged in and the integrated state re-verified green.

Findings

Integrated verification (on main merged in)

  • check-prompts.mjs 13/13 (stricter gate) · checksums.mjs --check ✓ · verify-pins v0.8.0 ✓ · sha256sum -c 17/17 ✓
  • web: lint (the newly-merged ESLint gate) clean ✓ · typecheck (clean .next) ✓ · test 17/17 ✓ · build

Part of #131.

muraschal and others added 6 commits June 25, 2026 18:13
The first paragraph an agent reads enumerated 12 audits and omitted lean —
the newest differentiating template — even though the machine-readable list
below had all 13.

Closes #135. Part of #131.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
German translations were coupled to source data by array index, so a reorder
in content.ts silently mistranslated with no failing test.

- principleDe: keyed by the principle English title (stable id), not [i]
- proofRows: keyed by BACKLOG_SAMPLE issue number; landing.tsx public shape
  (proofRows[i]) unchanged but now derived from the keyed source
- i18n.test.ts: 9 invariants (locale key-parity, audit-details en+de coverage,
  principle coverage, proofRows == BACKLOG_SAMPLE)

Closes #134. Part of #131.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The 26 audit detail pages emitted no structured data. Add localized
TechArticle + BreadcrumbList JSON-LD (same server-rendered pattern as the
homepage SoftwareApplication block) — a durable organic-search win that
scales with the catalogue.

Closes #136. Part of #131.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
All 13 detail pages shared one site-wide OG image. Add colocated
opengraph-image routes (both languages) rendering the audit title + tagline
via the existing renderOgImage, and drop the manual openGraph.images override
so Next auto-injects the per-route image.

Closes #137. Part of #131.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- repo-audit: normalized to the canonical skeleton (Title-Case headings,
  canonical order) with no content lost — the outlier among the 13.
- check-prompts.mjs: enforce canonical heading ORDER and required shared-
  finding-schema fields (the 8-key intersection present in all 13), not just
  heading presence.
- CODEOWNERS: route the release surface + web to @marcelrapold.
- CONTRIBUTING.md: translated German -> English (public repo, English-first).
- CHECKSUMS.txt: regenerated for the repo-audit edit (only that line).

Closes #138. Part of #131.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@muraschal muraschal merged commit fd4102d into main Jun 25, 2026
3 checks passed
@muraschal muraschal deleted the feat/self-review-wave-2 branch June 25, 2026 17:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant