From 63f321058a17dd8372375b77c2b5f54d05712ad6 Mon Sep 17 00:00:00 2001 From: rzen Date: Sat, 18 Jul 2026 12:55:00 -0400 Subject: [PATCH] =?UTF-8?q?pipeline:=20north=20star=20in=20the=20charter?= =?UTF-8?q?=20=E2=80=94=20delight=20the=20reader,=20freshness=20is=20part?= =?UTF-8?q?=20of=20it;=20pick=20prefers=20fresh=20daily,=20never-picked=20?= =?UTF-8?q?past=20reviews=20are=20candidates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/skills/daily-pipeline/SKILL.md | 7 +++---- EDITORIAL.md | 6 ++++++ TEAM.md | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.claude/skills/daily-pipeline/SKILL.md b/.claude/skills/daily-pipeline/SKILL.md index b302325..26cbb7e 100644 --- a/.claude/skills/daily-pipeline/SKILL.md +++ b/.claude/skills/daily-pipeline/SKILL.md @@ -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. - **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. -- New reviews usually win (freshness matters on a daily site), but a weak new review must not displace a strong current hero. -- 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, but it's a decision like any other. +- 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. +- 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. - **Every pick decision gets a log entry — holds included.** Append `## YYYY-MM-DD — pick of the day: ` (or `— pick of the day: held `) 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": ""}`. diff --git a/EDITORIAL.md b/EDITORIAL.md index 1d807a8..7689e27 100644 --- a/EDITORIAL.md +++ b/EDITORIAL.md @@ -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 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 Concise, to the point, and above all **inspiring delight**. diff --git a/TEAM.md b/TEAM.md index 4a7c4f5..b8e99cd 100644 --- a/TEAM.md +++ b/TEAM.md @@ -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. | | **Reviewer** | 3 — reviews | `.claude/skills/build-review/SKILL.md` | Graduates 2–4 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. | -| **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, 6–7 | `.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)