pipeline: EDITORIAL.md voice charter + fresh-eyes copy-edit stage

One written standard for every audience-facing word: concise, to the
point, inspiring delight through specificity — with word budgets per
copy type (reviews had drifted from a ~370-word median to 500-1000+).
All writing skills now reference the charter, and daily-pipeline gains
a stage-4 copy-edit pass: a subagent that didn't write the day's copy
tightens it against the charter, prose only, diff reviewed before
commit. Digest gains a copy-edit line.

Claude-Session: https://claude.ai/code/session_01WZaczDJjL3xZ3u5spsN5AL
This commit is contained in:
2026-07-14 19:46:35 -04:00
parent 06f8a9dc22
commit 64bad7091b
7 changed files with 53 additions and 8 deletions
+15 -4
View File
@@ -1,6 +1,6 @@
---
name: daily-pipeline
description: The full unattended daily run for unique.rzen.dev — capture (daily-finds) → bundle (build-bundle auto) → graduate reviews (build-review auto) → set the pick of the day → build, commit, and push — ending with a digest. Use when the user runs /daily-pipeline, asks to "run the pipeline", "do the daily run", or when a scheduled/headless session needs the whole chain.
description: The full unattended daily run for unique.rzen.dev — capture (daily-finds) → bundle (build-bundle auto) → graduate reviews (build-review auto) → copy-edit pass (EDITORIAL.md) → set the pick of the day → build, commit, and push — ending with a digest. Use when the user runs /daily-pipeline, asks to "run the pipeline", "do the daily run", or when a scheduled/headless session needs the whole chain.
disable-model-invocation: true
---
@@ -41,7 +41,17 @@ Stage: the new find folders, `daily-finds.log.md`, `candidate-sources.md`, and `
**Commit per review or combined**: `site: review — <Name> (graduates from find)` / `site: reviews — <A>, <B> (graduate from finds)`.
### 4. Pick of the day
### 4. Copy edit — fresh-eyes pass over the day's new prose
Enforce `EDITORIAL.md` (the voice charter: concise, to the point, inspiring delight) on everything stages 13 wrote. The point is fresh eyes — the author of a piece is the worst person to cut it — so run this as a **subagent** (sonnet) that did not write the copy:
- Scope: find bodies, bundle blurb/intro, review bodies, subtitles and descriptions created or modified this run. Nothing older.
- The subagent gets `EDITORIAL.md` plus the file list, and edits prose only — never facts, names, prices, links, claims, or structural frontmatter (wording of `subtitle`/`description`/`blurb` is fair game). Word budgets in the charter are the hard lines.
- Review the diff in the main session before committing; revert any edit that changed meaning or lost the delight it was supposed to sharpen.
**Commit** (only when something changed): `site: copy edit — <N> pieces tightened`.
### 5. Pick of the day
Make an explicit pick decision **every run** — the pick is a daily editorial call, not a side effect of publishing reviews:
@@ -56,13 +66,13 @@ Write `src/data/pick.json` → `{"hero": "<review-slug>"}`.
**Commit** (only when the pick changed): `site: pick of the day — <Name>`.
### 5. Verify + push
### 6. Verify + push
- `npm run build` must pass (it will also have been run by the sub-skills; this is the final gate). If it fails, fix what the pipeline broke; never push a red build.
- `git push origin main`. If the push fails (auth, network), leave the commits local and flag it in the digest.
- Deployment is automatic downstream: in scheduled runs, a lab CI job (`publish-unique-daily`) redeploys unique.rzen.dev from `main` after this pipeline succeeds — nothing to do here, but it means whatever is on `origin/main` goes live.
### 6. Digest
### 7. Digest
End with a compact, human-readable digest — this is the only thing the user should *need* to read:
@@ -72,6 +82,7 @@ Daily pipeline — YYYY-MM-DD
Captured: <N> finds (<M> productive sources), shortlisted <K>
Bundle: "<title>" (<n> items) [+ week's catch / cluster run if run]
Reviews: <Name> (<slug>), <Name> (<slug>) — or none
Copy edit: <N> pieces tightened — or clean
Pick: <Name> — or held: <current> (<one-line why>)
Amazon: <n> links added
Sources: <n> maintenance changes; <n> new nominees awaiting vetting