Two new pipeline phases gate the spine before any prose is written: - Step 2.5 — Skeleton + section pitch: writes <serie>/NN-skjelett.md with the five-line spine (premiss / problem / anbefaling / gevinst / vei videre) + one-line section pitches. Operator-gate (JA / REVIDER / NEI) AND parallel persona-skjelett-sweep must both return JA before the pipeline can advance. - Step 3a — Spine prose: one paragraph per section against the gated skeleton, ~20-30% of final edition length. Operator-gate on whether the axis lands now that there is prose on it. Old Step 3 (Draft) split into 3a (spine) and 3b (full expansion); 3b owns the multi-session draft-cursor logic. Third persona-reviewer mode added: skjelett (alongside resonans + konverter). Five spine axes scored HOLDER / TVILER / MANGLER, max 3 direction-only flags, per-pitch section-pay-in check. Reads the skeleton + pitches only. Pipeline grows from 11 to 13 phases; commands (24) and agents (14) counts unchanged. Encodes the Maskinrommet writing-contract section A discipline (premiss / problem / anbefaling / gevinst / vei videre) into the pipeline. Empirically motivated by the Seres-serien Del 3 + Del 4 production: a spine error caught at the skeleton stage costs 5-15 min, the same error caught at Step 6 (resonance) costs 4-12 h, post-lock it costs a day of cascading rework (delingstekst, hooks, carousel, doc refs). Backward-compatible: existing editions stop at currentPhase: "research" and now resume at Step 2.5 instead of Step 3 — an intended deterministic improvement, never a contract break. Steps 1, 2, 4-10 bit-for-bit unchanged. Renderers (build-html.mjs, build-linkedin.mjs) untouched. New phase strings in edition-state.template.json _doc.phases: - skeleton-pitch (between research and draft) - spine-prose (between skeleton-pitch and draft) Files changed (10): - plugin.json: 2.0.0 -> 2.1.0 - CHANGELOG.md: new [2.1.0] entry - CLAUDE.md (plugin + marketplace): pipeline 11->13 phases noted - README.md (plugin + marketplace): What's New v2.1.0 + version row - agents/persona-reviewer.md: third mode skjelett added; resonans + konverter unchanged - commands/newsletter.md: Step 2.5 + 3a + 3b sections, resumption + pipeline tables - config/edition-state.template.json: 11 -> 13 phases in _doc.phases - references/longform-quality-rules.md: Rule 8 (Skjelett foer prosa) Verification: 9/9 criteria PASS pre-commit. Phase strings consistent across template + command + resumption table. Renderer files git-untouched. All 11 original step headings preserved (Step 0/1/2/4-10). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
8.9 KiB
Long-Form Quality Rules
Canonical quality rules for long-form LinkedIn content (newsletter editions,
essays, series articles). These are enforced by the /linkedin:newsletter
pipeline — primarily in Step 4 (Consistency + quality), reinforced by the
fact-check sweep (Step 5) and the persona sweeps (Steps 6 + 9).
Provenance. Distilled from the Seres series production (the operator's first full long-form run) and codified as the authoritative spec in plan §8. Source of truth: this file.
commands/newsletter.mdStep 4 points here rather than restating the rules — there is exactly one place to change them.
Scope. These rules are for long-form only. Short-form feed posts are governed by the
PreToolUsecontent-gatekeeper / voice-guardian hooks, which are calibrated for feed posts and stay short-form-only (plan decision B). Long- form quality is enforced by pipeline phases, not by those hooks.
The rules
1. Leder-takeaway (lead takeaway)
Every text lands ONE clear takeaway + ONE concrete action. The reader should be able to state, in a single sentence, what they now think differently and what they will do about it.
- Cut references hard. Hands-on credibility beats a citation-pile — a text that shows you have done the work outweighs one that quotes everyone who has written about it.
- If the reader cannot state the takeaway in one sentence, the text is not done — tighten until they can.
Pass/flag: PASS when the one-takeaway + one-action is stated and unmistakable; FLAG when the text carries two competing takeaways or ends without a concrete action.
2. Premiss→konklusjon-bue (premise→conclusion arc)
Establish one clear premise early (in the ingress + first paragraph), then let the conclusion grip that premise concretely and twist it forward — give a direction plus one tangible grip. The conclusion does not merely summarize.
- The premise the conclusion grips must be the SAME premise the ingress set. If the draft drifted to a different premise mid-text, realign the conclusion or the ingress — never leave two premises standing.
Pass/flag: PASS when ingress-premise == conclusion-premise and the close moves it forward; FLAG when the conclusion only restates, or grips a premise the opening never set.
3. AI-slop-fraser (forbidden phrases — strip on sight)
These phrases read as machine-written and are banned. They are the Seres ban-list; strip them on sight (the list is Norwegian because the target text is Norwegian):
- «her må jeg være ærlig» / «for å være ærlig»
- «ikke bare X, men Y» (the not-just-X-but-Y construction as a tic)
- gratuitous three-item listing (rule-of-three used as a reflex, not because the content actually enumerates three things)
- «i en stadig mer kompleks verden» (and equivalent throat-clearing openers)
- tacked-on summary sentences that restate what was just said
Pass/flag: PASS when none appear; FLAG (with count) and remove each occurrence.
4. Generell, ikke etat-/person-spesifikk (general, not org-/person-specific)
Write for a broad reader, not as an internal memo or a grievance.
- No personal agency anecdotes.
- Present opportunities, not provocations.
- At most one structural anchoring reference per text — never repeated criticism of a named person or organization.
Pass/flag: PASS when the text reads as generally useful and carries ≤1 structural anchor; FLAG personal anecdotes, provocations, and any repeated naming.
5. Formaterings-dose (minimal formatting dose)
"No article should look like a PowerPoint printout."
- Bold = at most one point per section.
- Short lists (2–4 items) only where the text already enumerates — never turn load-bearing reasoning into bullets. Prose carries the argument; lists carry genuine enumerations.
- Tables sparingly.
Pass/flag: PASS when formatting stays within these bounds; FLAG (and trim) when bold is scattered, reasoning has been bulletized, or tables proliferate.
6. Gap lukkes med stramming, ikke utvidelse (close gaps by tightening, not expanding)
The gap between a draft and the final is closed by swapping weaker passages for sharper ones and cutting — not by adding material. Hold the length flat.
This rule holds across every later phase too: fact-check fixes (Step 5), persona rework (Step 6), and hook revisions (Step 9) all close their gaps by tightening, never by expansion.
Pass/flag: target a flat length delta vs. the prior draft; FLAG when a revision grew the word count to cover a weakness instead of sharpening it.
7. Kalibrering per sweep (per-sweep calibration — a user choice, not a default)
Before each quality / fact-check / persona sweep, the operator calibrates — this is a per-sweep user choice, never a silent default:
- Fold-in aggressiveness — conservative vs. aggressive when folding flags back into the text.
- Jargon handling — keep, gloss, or cut domain jargon.
- Persona weighting on conflict — how to weigh a secondary persona's flag against the primær when they disagree (the primær trumfer rule still governs the final gate, but the calibration sets how hard a secondary signal is chased).
Ask once if the Step 1 brief did not already settle it. Do not assume an aggressiveness; the same draft can be tightened conservatively or aggressively and the operator owns that dial.
8. Skjelett før prosa (skeleton before prose — pre-condition for every other rule)
The argument-line — premiss, problem, anbefaling, gevinst, vei videre — must be explicit, visible, and confirmed before the first sentence of prose is written. None of the other rules can bite reliably on a draft whose spine was never declared: Rule 1 (leder-takeaway) and Rule 2 (premiss→konklusjon-bue) in particular collapse into post-hoc reconstruction if the spine was never gated.
- Write the five-line skeleton (premiss / problem / anbefaling / gevinst / vei
videre) and the section pitches before any prose. Both the operator and
the persona-skjelett-sweep (
persona-reviewermode: skjelett) must say JA on this skeleton before Step 3a (spine prose) starts. - A spine error caught at the skeleton stage costs 5–15 min; the same error caught at Step 6 (resonance) costs 4–12 h; caught post-lock it costs a day of cascading rework. The cheapest gate is also the earliest.
- The skeleton format is identical to the Maskinrommet writing-contract §A
(premiss / problem / anbefaling / gevinst / vei videre). Pipeline editions
produced through
/linkedin:newslettertherefore satisfy that contract at the structural level by construction.
Pass/flag: PASS when the skeleton + pitches exist as <serie>/NN-skjelett.md
and both the operator-gate AND the persona-skjelett-sweep returned JA before
prose started; FLAG retroactively if a draft turns out to have skipped this gate
(treat as a process miss and harvest the lesson — do not retrofit a skeleton
to a finished draft and call it gated).
How the pipeline uses these rules
| Phase | Where the rules bite |
|---|---|
| Step 2.5 — Skeleton + section pitch | Primary enforcement of rule 8: skeleton + pitches MUST exist and be JA from operator + persona-skjelett-sweep before prose. |
| Step 3a — Spine prose | Rule 6 applies even within spine prose (tighten, don't expand the spine); rule 8 is the gate that lets 3a start. |
| Step 4 — Consistency + quality | Primary enforcement: apply rules 1–6, calibrate per rule 7, report a pass/flag per rule. Rule 8 is verified as historical fact (skeleton existed + was gated). |
| Step 5 — Fact-check sweep | Fixes obey rule 6 (tighten, don't expand). |
| Step 6 — Persona sweep (pre-lock) | Rework obeys rule 6; the leader-takeaway (rule 1) and arc (rule 2) are what the reader jury judges for resonance. A draft that passed rule 8 typically lands here with far fewer spine-level reworks. |
| Step 9 — Hook / conversion gate | Hook revisions obey rule 6 (sharpen the krok by tightening, body stays locked). |
Self-certification boundary
Whether a text lands, matches voice, is original, or reaches prose quality is
subjective judgment and is NEVER self-certified green by Claude (plan §10.0).
These rules give objective-where-possible checks (forbidden-phrase presence,
length delta, formatting counts, one-takeaway test), but the resonance verdict is
routed to the persona sweep ([GATE]) or the operator ([OPERATØR]), never
auto-passed.
Related
commands/newsletter.md— Step 4 applies these rules; the whole pipeline references them.agents/fact-checker.md— Step 5 sweep (guilty-until-disproven).agents/persona-reviewer.md— Step 6 (resonance) + Step 9 (conversion) reader jury.config/personas.template.md— the reader personas + "primær trumfer" rule.references/newsletter-strategy-guide.md— strategic context for long-form.