feat(linkedin): newsletter Step 3-4 draft + consistency (S8)
This commit is contained in:
parent
9b1669a3f6
commit
39ae875b96
1 changed files with 126 additions and 9 deletions
|
|
@ -70,10 +70,11 @@ single most important correction from the Seres process (plan §0.4, principle 5
|
||||||
| 9 | **Hook / conversion gate** | persona gate on the distribution text post-lock: "would YOU click?" | **`persona-reviewer`** (conversion mode) |
|
| 9 | **Hook / conversion gate** | persona gate on the distribution text post-lock: "would YOU click?" | **`persona-reviewer`** (conversion mode) |
|
||||||
| 10 | **Scheduling** | register the edition in the plugin queue/state for native scheduling | `hooks/scripts/queue-manager.mjs` |
|
| 10 | **Scheduling** | register the edition in the plugin queue/state for native scheduling | `hooks/scripts/queue-manager.mjs` |
|
||||||
|
|
||||||
> **Build status:** Steps 0–2 are implemented below. Steps 3–10 are added in
|
> **Build status:** Steps 0–4 are implemented below. Steps 5–10 are added in
|
||||||
> subsequent build sessions (plan steps S8–S10). Until then, this command takes
|
> subsequent build sessions (plan steps S9–S10). Until then, this command takes
|
||||||
> an edition from load → calibration → verified research notes, then writes the
|
> an edition from load → calibration → verified research → draft →
|
||||||
> research phase to `edition-state.json` and HANDOVER and stops cleanly.
|
> consistency/quality pass, persisting each phase to `edition-state.json` and
|
||||||
|
> the HANDOVER and stopping cleanly between sessions.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -221,12 +222,128 @@ Next session: Step 3 — Draft.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Steps 3–10 (added in subsequent build sessions)
|
## Step 3: Draft — dramaturgical order, voice-matched
|
||||||
|
|
||||||
Drafting, consistency/quality, the fact-check sweep, the pre-lock persona sweep,
|
Turn the verified research notes (Step 2) into a full draft. This is a
|
||||||
optional annotation, lock/delivery, the post-lock hook-gate, and scheduling are
|
*long-form* draft, not a feed post: it has an arc, not a hook-and-three-bullets.
|
||||||
implemented in plan steps S8–S10. Each will append its phase here, reading the
|
|
||||||
phase contract from `config/edition-state.template.json` and the long-form
|
> **This phase may span multiple sessions.** A long edition can exceed a single
|
||||||
|
> session's context budget. If you approach the budget mid-draft, stop cleanly,
|
||||||
|
> write the partial draft to the edition folder, record `currentPhase: "draft"`
|
||||||
|
> with a section-level cursor in `edition-state.json`, and append a precise
|
||||||
|
> "draft resumes at section <X>" pointer to the edition-HANDOVER §6. The next
|
||||||
|
> session re-reads Step 0, picks up the cursor, and continues. Never start the
|
||||||
|
> consistency pass (Step 4) on a half-written draft.
|
||||||
|
|
||||||
|
**Procedure:**
|
||||||
|
|
||||||
|
1. **Re-read the voice profile** (`assets/voice-samples/`) before writing a single
|
||||||
|
sentence — this is the existing LTL rule and it is not optional for long-form.
|
||||||
|
The draft must read as the author, not as generic LinkedIn prose.
|
||||||
|
|
||||||
|
2. **Lay out the dramaturgical order** from the brief (Step 1) and notes (Step 2):
|
||||||
|
- **Ingress + first paragraph** establish ONE clear premise (this is the front
|
||||||
|
half of the premise→conclusion arc enforced in Step 4).
|
||||||
|
- **Body** develops the 2–4 key points in the order that builds tension, each
|
||||||
|
anchored to a verified note. Carry each note's source marker inline as a
|
||||||
|
comment so the Step 5 fact-check sweep can find it.
|
||||||
|
- **Conclusion** grips the premise concretely and twists it forward (direction +
|
||||||
|
one concrete grip) — it does not merely summarize.
|
||||||
|
|
||||||
|
3. **Draft with the `content-repurposer` muscle.** Reuse `agents/content-repurposer.md`
|
||||||
|
(its article→long-form conversion discipline) for the section-to-prose work —
|
||||||
|
invoke it via `Task` for individual sections when useful, *from this command
|
||||||
|
layer* (foreground, principle 4). The command owns assembly and voice; the
|
||||||
|
agent assists with conversion. The draft is voice-matched by THIS session, not
|
||||||
|
self-certified for voice — voice-match remains an `[OPERATØR]` / `[GATE:
|
||||||
|
voice-trainer]` judgment, never auto-passed (plan §10.0).
|
||||||
|
|
||||||
|
4. **Write the draft** to the edition folder (`<serie>/linkedin/<article>.draft.md`),
|
||||||
|
set `currentPhase: "draft"` in `edition-state.json`, and append a
|
||||||
|
"draft complete → next: consistency/quality" pointer to the HANDOVER §6.
|
||||||
|
|
||||||
|
```
|
||||||
|
Draft complete (or: partial — resumes at section <X>).
|
||||||
|
- Premise established: <one line>
|
||||||
|
- Key points drafted: <N>/<N>
|
||||||
|
- Voice-match: [OPERATØR]/[GATE: voice-trainer] — NOT self-certified
|
||||||
|
Draft written: <serie>/linkedin/<article>.draft.md
|
||||||
|
Next: Step 4 — Consistency + quality.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Step 4: Consistency + quality
|
||||||
|
|
||||||
|
Run the draft through the long-form quality rules. This is a *tightening* pass —
|
||||||
|
the gap between draft and final is closed by **swapping weaker for sharper and
|
||||||
|
cutting, not by expansion**; hold the length flat (plan §8).
|
||||||
|
|
||||||
|
> **Inlined rules (forward-reference note).** The canonical long-form quality
|
||||||
|
> rules live in `references/longform-quality-rules.md` — but that file is not
|
||||||
|
> authored until plan step S12. So the rules are **inlined here now**. When S12
|
||||||
|
> lands, this block is EXTRACTED to that reference file and replaced with a
|
||||||
|
> pointer; there is no dangling reference at any point.
|
||||||
|
|
||||||
|
**Calibration first (a per-sweep user choice, not a default — plan §8):** before
|
||||||
|
running this pass, confirm fold-in aggressiveness (conservative vs. aggressive),
|
||||||
|
jargon handling, and — when it matters later — persona weighting on conflict. Ask
|
||||||
|
once if the Step 1 brief did not already settle it.
|
||||||
|
|
||||||
|
Apply each rule and report a pass/flag per rule:
|
||||||
|
|
||||||
|
1. **Threads.** Every thread opened in the ingress/body resolves by the
|
||||||
|
conclusion — no dropped setups, no orphaned promises.
|
||||||
|
|
||||||
|
2. **Premise→conclusion arc.** The premise set in the ingress (Step 3) is the same
|
||||||
|
premise the conclusion grips and twists forward. If the draft drifted to a
|
||||||
|
different premise, realign the conclusion or the ingress — do not leave two
|
||||||
|
premises.
|
||||||
|
|
||||||
|
3. **Leader-takeaway.** The edition lands ONE clear takeaway + ONE concrete action.
|
||||||
|
Cut references hard; hands-on credibility beats a citation-pile. If the reader
|
||||||
|
cannot state the takeaway in one sentence, tighten until they can.
|
||||||
|
|
||||||
|
4. **AI-slop removal (forbidden phrases — strip on sight).** These are the Seres
|
||||||
|
ban-list; they read as machine-written and must not appear:
|
||||||
|
- "her må jeg være ærlig" / "for å være ærlig"
|
||||||
|
- "ikke bare X, men Y"
|
||||||
|
- gratuitous three-item listing (rule-of-three as a tic)
|
||||||
|
- "i en stadig mer kompleks verden"
|
||||||
|
- tacked-on summary sentences that restate what was just said
|
||||||
|
|
||||||
|
5. **General, not org-/person-specific.** No personal agency anecdotes; present
|
||||||
|
opportunities, not provocations. At most ONE structural anchoring reference per
|
||||||
|
text — never repeated criticism of a named person.
|
||||||
|
|
||||||
|
6. **Formatting dose (minimal).** 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. Tables sparingly. *"No article should look like a
|
||||||
|
PowerPoint printout."*
|
||||||
|
|
||||||
|
7. **Close gaps by tightening, not expanding.** Swap weaker passages for sharper
|
||||||
|
ones; keep the length flat.
|
||||||
|
|
||||||
|
After the pass, set `currentPhase: "quality"` in `edition-state.json` and append a
|
||||||
|
"quality pass complete → next: fact-check sweep" pointer to the HANDOVER §6.
|
||||||
|
|
||||||
|
```
|
||||||
|
Consistency + quality pass complete.
|
||||||
|
- Threads resolved: <yes/flags>
|
||||||
|
- Premise→conclusion arc: <intact/realigned>
|
||||||
|
- Leader-takeaway: <one line>
|
||||||
|
- AI-slop phrases removed: <N>
|
||||||
|
- Formatting dose: <within bounds/trimmed>
|
||||||
|
- Length delta vs. draft: <flat/±N words> (target: flat)
|
||||||
|
Next: Step 5 — Fact-check sweep (guilty-until-disproven, BEFORE lock).
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Steps 5–10 (added in subsequent build sessions)
|
||||||
|
|
||||||
|
The fact-check sweep, the pre-lock persona sweep, optional annotation,
|
||||||
|
lock/delivery, the post-lock hook-gate, and scheduling are implemented in plan
|
||||||
|
steps S9–S10. Each will append its phase here, reading the phase contract from
|
||||||
|
`config/edition-state.template.json` and (once extracted in S12) the long-form
|
||||||
quality rules from `references/longform-quality-rules.md`.
|
quality rules from `references/longform-quality-rules.md`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue