pipeline: north star in the charter — delight the reader, freshness is part of it; pick prefers fresh daily, never-picked past reviews are candidates

This commit is contained in:
2026-07-18 12:55:00 -04:00
parent 74a063bff5
commit 63f321058a
3 changed files with 10 additions and 5 deletions
+3 -4
View File
@@ -57,11 +57,10 @@ Make an explicit pick decision **every run** — the pick is a daily editorial c
- **The pick must be uncontroversial — it's the front page.** The homepage hero greets every visitor out of context, so keep it broadly, unmistakably benign. Never pick anything that could read as endorsing or depicting harm: weapons or anything that cuts, burns, or explodes; anything dangerous or injury-prone; how-to's for any of that; horror or disturbing media; or anything that could be taken as a call to negative action. (A knife is a bad pick.) Such items can still be finds and reviews — they just never get the hero. If your strongest candidate trips this, take the strongest one that doesn't, and note the swap in the digest. - **The pick must be uncontroversial — it's the front page.** The homepage hero greets every visitor out of context, so keep it broadly, unmistakably benign. Never pick anything that could read as endorsing or depicting harm: weapons or anything that cuts, burns, or explodes; anything dangerous or injury-prone; how-to's for any of that; horror or disturbing media; or anything that could be taken as a call to negative action. (A knife is a bad pick.) Such items can still be finds and reviews — they just never get the hero. If your strongest candidate trips this, take the strongest one that doesn't, and note the swap in the digest.
- **No camping gear in the hero.** Camper trailers and other camping equipment never take the pick — they stay eligible as finds and (occasionally) reviews, just not the front page. If the strongest candidate is camping gear, take the strongest one that isn't. (Both hero rules restate `EDITORIAL.md` "Content rules" — the charter is the source of truth.) - **No camping gear in the hero.** Camper trailers and other camping equipment never take the pick — they stay eligible as finds and (occasionally) reviews, just not the front page. If the strongest candidate is camping gear, take the strongest one that isn't. (Both hero rules restate `EDITORIAL.md` "Content rules" — the charter is the source of truth.)
- Candidates: reviews graduated this run plus the existing review pool. - **Aim for a fresh pick every day** — a new pick of the day is itself a small daily contribution to delight (`EDITORIAL.md`, north star). Candidates, in order of preference: reviews graduated this run; then past reviews that have **never held the pick** (check the `pick of the day` entries in `daily-finds.log.md` / `git log --grep="pick of the day"`); then the rest of the pool.
- "Strongest" = best hero visual + broadest audience appeal; when torn, the one whose virtue is most immediately legible from the tile. - "Strongest" = best hero visual + broadest audience appeal; when torn, the one whose virtue is most immediately legible from the tile.
- New reviews usually win (freshness matters on a daily site), but a weak new review must not displace a strong current hero. - New reviews usually win, but a weak new review must not displace a strong current hero — before holding for that reason, scan the never-picked pool for one that delights.
- If the current hero has held for several days, lean toward rotating to another strong review even when nothing graduated — the homepage shouldn't look frozen. - Keeping the current pick is a valid outcome when nothing — new or never-picked — genuinely beats it, but it's a decision like any other.
- Keeping the current pick is a valid outcome, but it's a decision like any other.
- **Every pick decision gets a log entry — holds included.** Append `## YYYY-MM-DD — pick of the day: <slug>` (or `— pick of the day: held <slug>`) to `daily-finds.log.md` with the reasoning: what it beat and why, or why the incumbent kept the slot. The digest line alone is not a record — the digest is ephemeral; the log is the audit trail. - **Every pick decision gets a log entry — holds included.** Append `## YYYY-MM-DD — pick of the day: <slug>` (or `— pick of the day: held <slug>`) to `daily-finds.log.md` with the reasoning: what it beat and why, or why the incumbent kept the slot. The digest line alone is not a record — the digest is ephemeral; the log is the audit trail.
Write `src/data/pick.json``{"hero": "<review-slug>"}`. Write `src/data/pick.json``{"hero": "<review-slug>"}`.
+6
View File
@@ -2,6 +2,12 @@
The standard for every audience-facing word on unique.rzen.dev — find bodies, review bodies, bundle blurbs and intros, subtitles, descriptions — and the canonical home of the content rules that bind what gets published at all. Skills reference this file; the pipeline's copy-edit pass enforces the voice, and each pipeline stage enforces the content rules that apply to it. The standard for every audience-facing word on unique.rzen.dev — find bodies, review bodies, bundle blurbs and intros, subtitles, descriptions — and the canonical home of the content rules that bind what gets published at all. Skills reference this file; the pipeline's copy-edit pass enforces the voice, and each pipeline stage enforces the content rules that apply to it.
## The north star
The only thing we control is what we write, and the ultimate editorial principle is to **write content that consistently and reliably delights the reader**. Everything else in this file — voice, word budgets, selection judgment — is in service of that goal. (The content rules below are hard constraints on how we pursue it, never competitors to it.)
Delight is also cumulative and rhythmic: a fresh pick of the day, a new bundle, a surprising find are each small daily contributions to it. Freshness is part of the product.
## The voice in one line ## The voice in one line
Concise, to the point, and above all **inspiring delight**. Concise, to the point, and above all **inspiring delight**.
+1 -1
View File
@@ -19,7 +19,7 @@ Each role's prompt is its skill file — the canonical, version-controlled text.
| **Curator** | 2 — bundle | `.claude/skills/build-bundle/SKILL.md`, `.claude/skills/cluster-bundles/SKILL.md` | Themes finds into bundles (the pool's discovery vehicle). Enforces the hero floor; holds themes that can't meet it. `cluster-bundles` is the batch variant when the backlog passes ~25. | | **Curator** | 2 — bundle | `.claude/skills/build-bundle/SKILL.md`, `.claude/skills/cluster-bundles/SKILL.md` | Themes finds into bundles (the pool's discovery vehicle). Enforces the hero floor; holds themes that can't meet it. `cluster-bundles` is the batch variant when the backlog passes ~25. |
| **Reviewer** | 3 — reviews | `.claude/skills/build-review/SKILL.md` | Graduates 24 shortlist finds to full reviews. Fact-check against the product's own site is mandatory unattended — it substitutes for the human eye. | | **Reviewer** | 3 — reviews | `.claude/skills/build-review/SKILL.md` | Graduates 24 shortlist finds to full reviews. Fact-check against the product's own site is mandatory unattended — it substitutes for the human eye. |
| **Copy editor** | 4 — copy edit | Brief below (referenced from `daily-pipeline` stage 4); mandate: `EDITORIAL.md` | A fresh-eyes **sonnet subagent** that did not write the day's copy. Prose only; diff reviewed by the conductor before commit. | | **Copy editor** | 4 — copy edit | Brief below (referenced from `daily-pipeline` stage 4); mandate: `EDITORIAL.md` | A fresh-eyes **sonnet subagent** that did not write the day's copy. Prose only; diff reviewed by the conductor before commit. |
| **Editor-in-chief (picker)** | 5 — pick of the day | `.claude/skills/daily-pipeline/SKILL.md` §5 | Explicit pick decision every run — front page must be uncontroversial; every decision (holds included) gets a reasoned `daily-finds.log.md` entry and commit, not just a digest line. | | **Editor-in-chief (picker)** | 5 — pick of the day | `.claude/skills/daily-pipeline/SKILL.md` §5 | Explicit pick decision every run — aim for a fresh pick daily (never-picked past reviews are candidates when nothing new delights); front page must be uncontroversial; every decision (holds included) gets a reasoned `daily-finds.log.md` entry and commit, not just a digest line. |
| **Conductor** | 0, 67 | `.claude/skills/daily-pipeline/SKILL.md` | Preflight, verify (`npm run build` gate), push, digest. Owns all judgment calls and the digest the user actually reads. | | **Conductor** | 0, 67 | `.claude/skills/daily-pipeline/SKILL.md` | Preflight, verify (`npm run build` gate), push, digest. Owns all judgment calls and the digest the user actually reads. |
## House rules (bind every role) ## House rules (bind every role)