refactor(linkedin): edition-state schema + retire 2 deterministic agents to scripts (S6)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
1faffac303
commit
ca5aa4e698
10 changed files with 69 additions and 275 deletions
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"_doc": {
|
||||
"purpose": "Schema for edition-state.json — deterministic resumption state for a newsletter edition in production. Holds the current phase + per-article status so /linkedin:newsletter (Step 0) can resume exactly where a prior session stopped.",
|
||||
"decision": "G — production state lives in the serie-mappe (e.g. /Users/ktg/repos/maskinrommet/serier/<slug>/linkedin/edition-state.json), NOT in the plugin. This file is the schema-defining TEMPLATE only; copy + fill it in the serie-mappe when producing an edition.",
|
||||
"complements": "edition-config.json (static: calendar, freshness, captions) and the human-readable edition-HANDOVER.md (narrative state, fasit §5.2). edition-state.json is the lightweight machine-readable companion for deterministic resumption.",
|
||||
"lifecycle": "/linkedin:newsletter reads this in Step 0 and rewrites it at every phase transition. Article keys mirror edition-config.json (zero-padded strings: \"01\", \"02\", ..., or \"samle\").",
|
||||
"phases": [
|
||||
"load-context — read state/HANDOVER, voice profile, persona library, series brief (Step 0)",
|
||||
"brief-calibration — angle, voice, audience personas, key points, leader-takeaway (Step 1)",
|
||||
"research — parallel scoped mandates → verified notes, triangulation (Step 2)",
|
||||
"draft — dramaturgical order, voice-matched; may span sessions (Step 3)",
|
||||
"consistency-quality — threads, premise→conclusion arc, AI-slop removal, formatting dose (Step 4)",
|
||||
"factcheck-sweep — risk-sorted, guilty-until-disproven, verification log (Step 5)",
|
||||
"persona-sweep-prelock — reader jury, primary wins, convergence to clean YES (Step 6)",
|
||||
"annotation — optional annotatable review HTML for a manual pass (Step 7)",
|
||||
"lock-delivery — LOCK → POST.html all-in-one-place deliverable (Step 8)",
|
||||
"hook-conversion-gate — persona gate on distribution text post-lock: would YOU click? (Step 9)",
|
||||
"scheduling — register edition in plugin queue/state for native LinkedIn scheduling (Step 10)"
|
||||
],
|
||||
"articleStatusValues": ["pending", "in-progress", "locked", "scheduled"]
|
||||
},
|
||||
"schemaVersion": 1,
|
||||
"series": {
|
||||
"slug": "<series-slug>",
|
||||
"title": "<Series title>"
|
||||
},
|
||||
"currentArticle": "01",
|
||||
"currentPhase": "load-context",
|
||||
"updatedAt": "<ISO-8601 timestamp>",
|
||||
"articles": {
|
||||
"01": {
|
||||
"title": "<Article 1 title>",
|
||||
"phase": "load-context",
|
||||
"status": "pending",
|
||||
"factcheckLog": null,
|
||||
"personaSweep": {
|
||||
"resonance": null,
|
||||
"conversion": null
|
||||
},
|
||||
"locked": false,
|
||||
"scheduled": null
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue