pipeline: pick decisions must be logged and committed every run — holds included; digest alone is not a record

This commit is contained in:
2026-07-18 11:06:23 -04:00
parent 5c60530d5c
commit 74a063bff5
2 changed files with 4 additions and 3 deletions
+3 -2
View File
@@ -61,11 +61,12 @@ Make an explicit pick decision **every run** — the pick is a daily editorial c
- "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: say why in the digest.
- 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.
Write `src/data/pick.json``{"hero": "<review-slug>"}`.
**Commit** (only when the pick changed): `site: pick of the day — <Name>`.
**Commit** (every run): `site: pick of the day — <Name>` when the pick changed (include the log entry); when held, commit the log entry alone as `content: pick held — <Name>`.
### 6. Verify + push
+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. |
| **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. |
| **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; keeping the current pick is a decision that gets a stated reason. |
| **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. |
| **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)