C-4/C-9: Step 9 (post-lock) gets a scoped fact-reviewer (F1/F3) + language-reviewer
(L1/L2) pass over the four feed-facing surfaces — delingstekst hook, samle post,
carousel slide text, edition title — plus a title-strength gate, before the hook
conversion binary. Placed at Step 9 (first phase where all four exist; operates on
distribution copy only, never the locked body — body/canonical-title defect = pivot).
C-6: deterministic post-factcheck fact-invariant after Step 5 — any later fold-in
whose diff touches a sentence with numbers, names, or quotes fires a mandatory scoped
fact-reviewer mini-recheck (not a judgment call), closing the pivot-heuristic blind
spot; enforced at the 6.5 + 7 fold-in sites.
C-7: WebFetch added to fact-checker + fact-reviewer (verbatim source text for quote
precision / exact-figure attribution).
TDD RED→GREEN: test-runner Section 16p (8 unconditional greps + non-vacuity
self-test), anti-erosion floor 129 → 137. Suite 146 → 154/0. Domain-general.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014bE7VbkmR3cqHFEeGfzgwb
Implements the 6-change spec from the Seres-serien production
(linkedin-plugin-endringsspec.md). All acceptance criteria met.
1. Avoid-patterns (modell-/navne-katalog, completeness-over-reader-action,
self-referential overhead openings) → longform-quality-rules.md (rule 1+3)
+ user-profile.template.md.
2. Persona gate now BLOCKING with explicit hard-fail list (primær mistet meg /
doesn't own action / sjargong-mur / modell-navne-katalog → BLOCK;
"JA med store forbehold" = NEI) → persona-reviewer.md + personas.template.md.
3. Fact-check declared orthogonal to narrative strength + post-cutoff
web-search mandate + high-frequency-error checklist → fact-checker.md.
4. NEW agent voice-scrubber.md (Opus) — de-AI scrub + Norwegian-chronicle
voice-drift; gold standard = approved Norwegian editions, NOT the English
post corpus. Wired into newsletter.md Step 4.
5. Operator gates = render+annotate rounds (build-html.mjs to file://) as
primary flow, AskUserQuestion as receipt/fallback → newsletter.md 2.5+3a.
6. Edition state reconciled with STATE.md (ONE-system). edition-HANDOVER
template deleted; narrative to <serie>/STATE.md, machine data
(factcheckLog, personaSweep, immutableRules) to edition-state.json.
Agents 14 to 15; commands unchanged (24). Backward-compatible (additive
state-shape only). Docs updated across all three levels + CHANGELOG.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>