pipeline: several reviews per run (judgment call), pick decision every run, auto-deploy note

This commit is contained in:
2026-07-10 09:45:12 -04:00
parent c60149d1f8
commit d59550c473
2 changed files with 14 additions and 6 deletions
+13 -5
View File
@@ -36,22 +36,30 @@ Stage: the new find folders, `daily-finds.log.md`, `candidate-sources.md`, and `
### 3. Reviews — run `build-review` in auto mode
- Take the capture run's **review candidates** (the top of the shortlist, marked in the log). Graduate **12 per run** — quality over cadence; zero is fine on a thin day. Prefer candidates with strong media and a real story; the fact-check step is mandatory.
- Take the capture run's **review candidates** (the top of the shortlist, marked in the log). Graduate **several per run — how many is your judgment call** (typically 24). Quality over cadence still rules: every graduation must clear the bar on its own, and zero is fine on a thin day. Prefer candidates with strong media and a real story; the fact-check step is mandatory.
- If today's capture was thin but a prior day's log lists ungraduated review candidates, those are fair game.
**Commit per review or combined**: `site: review — <Name> (graduates from find)` / `site: reviews — <A>, <B> (graduate from finds)`.
### 4. Pick of the day
- If reviews were published this run, set the strongest one as the homepage hero: write `src/data/pick.json``{"hero": "<review-slug>"}`. "Strongest" = best hero visual + broadest audience appeal; when torn, the one whose virtue is most immediately legible from the tile.
- If no review was published, leave the pick as-is (a stale-but-good hero beats churn for its own sake).
Make an explicit pick decision **every run** — the pick is a daily editorial call, not a side effect of publishing reviews:
**Commit**: `site: pick of the day — <Name>`.
- Candidates: reviews graduated this run plus the existing review 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: say why in the digest.
Write `src/data/pick.json``{"hero": "<review-slug>"}`.
**Commit** (only when the pick changed): `site: pick of the day — <Name>`.
### 5. 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
@@ -63,7 +71,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
Pick: <Name> — or unchanged (<current>)
Pick: <Name> — or held: <current> (<one-line why>)
Amazon: <n> links added
Sources: <n> maintenance changes; <n> new nominees awaiting vetting
Attention: <anything needing the user: rejected graduations, blocked sources,