Fem grep-lokaliserte gjeldsposter fra STATE FUNN, pluss to anti-erosjons-lints
som gjør to av dem terminale i stedet for gjenoppdaget en gang til.
1. .claude-plugin/plugin.json description — v4.0.0-arvet release-notat med
historiske tellinger («→ 19 agents», «→ 27 commands», «→ 29 commands»)
erstattet av en beskrivelse av hva pluginen ER. Dette er teksten /plugin
viser. Ingen tellinger i teksten: de drifter, og CHANGELOG.md eier historikken.
2. CHANGELOG hadde TO «## [0.6.0]»-overskrifter (2026-07-17 = ekte, 2026-02-07 i
halen). Halens datert om til «## [0.6.0-legacy]». Sjette gangs gjenoppdagelse
— derfor lint, se punkt 6.
3. De-niche: 7 «thought leader»-treff utenfor commands/ rettet — README (mot
kommandoens egen frontmatter-ordlyd), skills/linkedin-networking (2:
FUNN-listen navnga bare :9, men :185 var samme defekt), analytics-interpreter,
analytics-tools-guide, collaborations-guide, linkedin-visual-style.
BEVISST BEHOLDT: de 5 blocklist-linjene, de to negative eksemplene
(opportunity-generation, det ironiske sitatet i video-strategy-guide), og
network-builder:562 — et WebSearch-uttrykk som treffer hvordan ANDRE
merker seg selv, allerede paret med «Creator».
4. Hardkodet «KTG» i generisk operatør-tiltale fjernet. FUNN navnga tre linjer i
language-reviewer; klassen var 21 linjer over 4 agenter, newsletter.md,
edition-state-templaten og specifics-bank sitt renderte NN-kilder.md-artefakt.
BEVISST BEHOLDT som proveniens: CHANGELOG, tests/fixtures/* (de ER KTGs
faktiske redaktørrunde, kalibreringsfasiten), adopter-notatene som ærlig
flagger KTG-interne verktøy (contract-gate, specifics-bank), «KTG
cover-directive» og «answers KTG's question» — attribusjon, ikke tiltale.
5. Step 9 persisterte tre nøkler templaten aldri deklarerte: randsoneGate (N9),
hookForge + personaSweep.deling (N24). Nå deklarert i BÅDE artikkel-shapen og
_doc. Additivt, schemaVersion forblir 1. _doc.hookForge bærer N22-invarianten
videre: en variant har målt lengde / krok-type / kroppsspor og ALDRI en
predikert engagement-score.
6. To nye ubetingede lints (Section 16aa), begge mutasjonstestet mot de FAKTISKE
filene, ikke bare mot self-testen:
- CHANGELOG-dublettvakt (+ in-memory non-vakuitets-self-test som skiller en
ekte dublett fra en bevisst «-legacy»-overskrift)
- Step 9-nøkkeldeklarasjon (shape + _doc)
Mutasjon 1 (gjeninnfør dubletten) → rødt. Mutasjon 2 (fjern hookForge fra
shapen) → rødt. Mutasjon 3 (fjern _doc.randsoneGate, fila fortsatt gyldig
JSON) → rødt. Restaurert → grønt.
Ti suiter grønne: test-runner 300 → 303 (floor 281 → 284) · trends 300 ·
analytics 202 · hooks 191 · brain 134 · editions 72 · render 63 ·
specifics-bank 45 · tests 35 · contract-gate 33.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017vMLTF7J13jJmgqwwJyivt
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
The 6 long-form-review fasit fixtures (agents/fixtures/*-cases.md) were registered
by Claude Code as junk `fixtures:*` agents because agents/ is scanned recursively.
They are test fixtures, not capabilities. Moved them + their 6 lint tests to
tests/ + tests/fixtures/ and retargeted the 5 agent fasit-refs. Count-neutral
namespace hygiene (ls agents/*.md still 19).
- agents/fixtures/*-cases.md -> tests/fixtures/ (6)
- agents/__tests__/*-fixture.test.mjs -> tests/ (6; ../fixtures -> ./fixtures)
- 5 agent refs ${CLAUDE_PLUGIN_ROOT}/agents/fixtures -> /tests/fixtures
- version-sync 0.5.2 -> 0.5.3 (plugin.json / README badge / CLAUDE.md / CHANGELOG)
Verify: fixture-lint 35/35 at new path; render 20/20, hooks 139/139; test-runner 109/0/0.
Reinstall/reload required for the 6 spurious agents to leave the registry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CrTb8ktf1XZWEVwgz5MTTo
Cold, adversarial review package for the long-form pipeline + configurable
per-edition personas. Motivated by Del 4 (Security Champions pivot): the
in-session editor + persona sweep shared the drafting session's framing-bias,
so the shipped version was never independently re-reviewed.
Headless package (9a/9b):
- New Step 6.5 (headless-review) in /linkedin:newsletter, after the persona
sweep, before lock — the independence layer the in-session gates can't be.
- New standalone /linkedin:headless-review command (run in a fresh session for
maximum isolation; reconstructs frozen draft + contract + personas from disk).
- 3 new Opus archetypes, each with a cardinal context-isolation block that
refuses drafting-session framing as "context pollution":
- content-reviewer (argument integrity C1–C5, ≤8 flags)
- language-reviewer (Norwegian language L1–L5, ≤10 flags)
- fact-reviewer (cold re-verification F1–F4, risk-sort + pivot-risk, WebSearch)
- Deliberate redundancy with fact-checker / editorial-reviewer documented so
the pairs are never de-duplicated.
Pivot-reopen (9c):
- New /linkedin:pivot command: logs articles.NN.pivots[], resets currentPhase,
un-locks, marks gates to re-run.
- Pivot-detection gate in Step 8 lock precondition (>20% word-count change or
>2 new sections re-opens cleared gates). Del 4 v8→v11 worked example.
Per-artifact personas (new requirement):
- articles.NN.personas with resolution order (edition-state → series file →
plugin library → interactive). One or more readers configurable per edition.
Schema/docs:
- edition-state.template.json: additive personas[], pivots[], headlessReview,
headless-review phase (16 phases); personaSweep.resonance.wordCount baseline.
- 3 fasit fixtures + 3 structural lint tests (Del 4 worked cases).
- Counts: 24→26 commands, 16→19 agents, 15→16 newsletter phases.
- README + CLAUDE.md (plugin + root) + CHANGELOG synced.
Verification: 35 agent-fixture + 59 hook + 20 render tests green. Backward-
compatible (additive state); reload required before the 3 new agents resolve.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>