refactor: strip WP-/RB- ticket refs from backend (RD-19)

The backend half of the sweep RD-18 did for the front end. git blame
holds the provenance and stays correct when the code moves; the
comment names a closed ticket and tells the reader nothing the
sentence around it does not.

public/letter.css and LetterHtml.golden.html change together, because
the renderer inlines the CSS and the golden file snapshots the
result.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
eho
2026-09-04 21:48:08 +02:00
co-authored by Claude Sonnet 5
parent dd11eafe50
commit 8560746d15
89 changed files with 530 additions and 380 deletions
@@ -12,8 +12,8 @@ namespace BigRegister.Tests;
/// </summary>
public class StamdataValidationTests
{
/// Declared references INTO stamdata keys — the FK-like invariants the build gate enforces
/// (WP-48). Add an entry when a consumer starts depending on a stamdata key; the gate then
/// Declared references INTO stamdata keys — the FK-like invariants the build gate enforces.
/// Add an entry when a consumer starts depending on a stamdata key; the gate then
/// fails a delete/rename/expire that orphans it. Resolvers use the "valid today" views, so
/// expiring a row (geldigTot in the past) that current data still references also fails —
/// which steers the editor toward closing validity only once nothing current relies on it.
@@ -23,7 +23,7 @@ public class StamdataValidationTests
private static readonly IReadOnlySet<string> BeroepCodes =
StamdataFile.Load<Beroep>("beroepen").Select(b => b.Code).ToHashSet(StringComparer.Ordinal);
// Every document category id that exists across any wizard (WP-59's confidentialiteit
// Every document category id that exists across any wizard (the confidentialiteit
// table points at these) — "org-logo" resolves too, even though it's deliberately absent
// from the confidentialiteit table itself (falls back to "openbaar").
private static readonly IReadOnlySet<string> DocumentCategoryIds = new[] { "registratie", "herregistratie", "org-template" }
@@ -38,7 +38,7 @@ public class StamdataValidationTests
SeedData.Diplomas.Select(d => d.Opleiding),
key => Professions.ByProgram.ContainsKey(key)),
// Stamdata → stamdata references: two tables point at beroepen.code, so deleting or
// renaming a beroep that either still uses fails the build (WP-48 gate, generalized).
// renaming a beroep that either still uses fails the build (a stamdata gate, generalized).
new StamdataRef(
"Opleiding.beroep → beroepen.code",
StamdataFile.Load<Opleiding>("opleidingen").Select(o => o.Beroep),
@@ -47,7 +47,7 @@ public class StamdataValidationTests
"Specialisme.beroep → beroepen.code",
StamdataFile.Load<Specialisme>("specialismen").Select(s => s.Beroep),
key => BeroepCodes.Contains(key)),
// WP-59: a confidentialiteit row for a category that no wizard ever asks for is dead
// A confidentialiteit row for a category that no wizard ever asks for is dead
// config — fail the build rather than let it silently rot.
new StamdataRef(
"DocumentConfidentialiteit.CategoryId → a real document category",