feat(linkedin): v2.2.0 — harden longform gates from 2nd production run
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>
This commit is contained in:
parent
2a27a7cd6a
commit
4ed9717627
15 changed files with 494 additions and 152 deletions
|
|
@ -216,8 +216,11 @@ does not).
|
|||
pitches and re-runs the sweep. *Never let prose start on a REWORK skeleton —
|
||||
the entire point of this gate is to catch spine errors before prose.*
|
||||
- **BLOCK** — primær = MANGLER on Premiss or Anbefaling (the reader cannot
|
||||
accept the premise, or there is no actionable direction). Must be reworked
|
||||
before any prose; this is the dangerous failure mode the gate exists for.
|
||||
accept the premise, or there is no actionable direction), **OR a section pitch
|
||||
promises a modell-/navne-katalog or a sjargong-mur** (see the hard-fail
|
||||
conditions under the resonance gate — catching them at the pitch stage is
|
||||
cheapest). Must be reworked before any prose; this is the dangerous failure
|
||||
mode the gate exists for.
|
||||
|
||||
**Gate decision (resonance mode):**
|
||||
|
||||
|
|
@ -226,11 +229,34 @@ does not).
|
|||
- **REWORK** — primær = NEI, or a fixable DELVIS/IKKE that the editor should
|
||||
address. Provide the flags as direction; editor decides.
|
||||
- **BLOCK** — primær = NEI on Krok or Leder-takeaway (the reader never starts, or
|
||||
leaves with nothing to do). Must be reworked before lock.
|
||||
leaves with nothing to do), **OR any hard-fail condition below is present for
|
||||
the primær.** Must be reworked before lock.
|
||||
|
||||
**Conversion mode** has no gate ladder — only the binary click verdict (JA / NEI)
|
||||
and one reason.
|
||||
|
||||
### Hard-fail conditions (blocking — rewrite, do NOT annotate)
|
||||
|
||||
The bar is **the primær persona's genuine JA.** The following are *hard fails*:
|
||||
the verdict is **NEI** and the gate is **BLOCK** regardless of how the other axes
|
||||
score. These are rewrite triggers, not notes the editor can wave through:
|
||||
|
||||
1. **The primær «mistet meg».** The primær reader disengaged anywhere before the
|
||||
takeaway — they stopped reading, skimmed past the point, or could not follow.
|
||||
2. **The primær does not own the action.** The leader-takeaway's action belongs to
|
||||
someone else (a technician, a different role) — the primær cannot act on it
|
||||
from their own chair.
|
||||
3. **Sjargong-mur (jargon wall).** A wall of technical vocabulary the primær's
|
||||
`sjargong` field rejects — the reader hits language that assumes they can read
|
||||
the code.
|
||||
4. **Modell-/navne-katalog.** A run of product names, model names, or benchmarks
|
||||
listed for completeness. To the primær this reads as a jargon wall; it is the
|
||||
exact failure mode the Seres process nearly shipped.
|
||||
|
||||
**«JA med store forbehold» = NEI.** A hedged, qualified, or reluctant yes is not
|
||||
a JA. Only a clean, unqualified primær JA passes the gate. Do not soften a
|
||||
hard-fail BLOCK to REWORK to be agreeable.
|
||||
|
||||
## Convergence Loop
|
||||
|
||||
Re-run per persona until the primær returns a clean JA. Each round: the editor
|
||||
|
|
@ -324,8 +350,11 @@ the skeleton + pitches (NOT prose — there is none yet) and re-runs this sweep.
|
|||
in every mode, including skjelett (do not hand back a fixed skeleton).
|
||||
2. **One persona per run.** Judge as that named reader, with their fields — not as
|
||||
yourself, not as a generic audience.
|
||||
3. **Primær trumfer.** A primær NO keeps the loop open; a sekundær ceiling-NO is a
|
||||
signal the gate works, not a defect to chase.
|
||||
3. **Primær trumfer — and a hedged JA is a NEI.** A primær NO keeps the loop open;
|
||||
a sekundær ceiling-NO is a signal the gate works, not a defect to chase. The
|
||||
bar is the primær's *clean, unqualified* JA — «JA med store forbehold» = NEI.
|
||||
The hard-fail conditions (primær mistet meg / does not own the action /
|
||||
sjargong-mur / modell-/navne-katalog) are BLOCK-level rewrites, never notes.
|
||||
4. **Land, don't correct.** You judge whether it *works for this reader* — not
|
||||
whether it is true (fact-checker) or original (differentiation-checker).
|
||||
5. **Flag cap matches the mode.** Skjelett ≤ 3, resonans ≤ 5, konverter = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue