pipeline: TEAM.md — document the editorial team, its prompts, and house rules

Roster mapping each role (researcher, curator, reviewer, copy editor,
picker, conductor) to its pipeline stage and canonical prompt file,
the shared house rules, the day-in-the-life commit flow, and the
copy editor's subagent brief verbatim — the one prompt not stored as
a skill; daily-pipeline stage 4 now references it as canonical.

Claude-Session: https://claude.ai/code/session_01WZaczDJjL3xZ3u5spsN5AL
This commit is contained in:
2026-07-14 20:11:04 -04:00
parent 64bad7091b
commit f587bab71a
2 changed files with 65 additions and 1 deletions
+64
View File
@@ -0,0 +1,64 @@
# The unique.rzen.dev editorial team
The site is produced by a virtual editorial team — a set of roles, each implemented as a stage of the daily pipeline with its own prompt. There is no standing multi-agent org: roles run as stages (some as subagents) inside one unattended daily session, conducted by `/daily-pipeline`.
## Operating model
- **Publish, then veto.** The team never pauses for confirmation. It applies the house rules, publishes, logs every judgment call to `daily-finds.log.md`, and reports a digest; the user reviews after the fact and vetoes by revert.
- **Scheduled.** A lab CI job (`claude-unique-daily`, laptop runner) launches the session in this checkout each day; a downstream job deploys `main` after a successful run.
- **One commit per stage**, so any stage is individually revertable. `content:` for capture, `site:` for everything user-visible.
- **User-only duties:** vetting `candidate-sources.md` nominees into `sources.json`, and scheduling.
## Roster
Each role's prompt is its skill file — the canonical, version-controlled text. Don't duplicate prompt content here; edit the skill.
| Role | Stage | Prompt lives at | Notes |
|---|---|---|---|
| **Researcher / author** | 1 — capture | `.claude/skills/daily-finds/SKILL.md` | Sweeps `sources.json`, writes find files + hero images, ranks the shortlist (≤12), nominates new sources. Fans out to scanner/writer subagents on large sweeps; shortlist ranking stays in the main session. |
| **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. |
| **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)
1. **`EDITORIAL.md`** — the voice charter: concise, to the point, inspiring delight *through specificity*; word budgets per copy type (finds 4090 words; reviews 250450, ceiling 600, ~800 only for story-led subjects; bundle blurb one sentence). Budgets are ceilings, not targets.
2. **No tobacco or alcohol content** — categorical, at every stage: never captured, never bundled, never graduated. Legacy alcohol finds (MayJuly 2026) stay published but are ineligible for anything new.
3. **Hero floor** — a bundle ships with ≥2 hero-bearing items (aim ~4; more for 78-item grids). Under-floor themes are held and logged, except the weekly catch, which widens instead of holding.
4. **Front-page safety** — the pick of the day is never anything that could read as endorsing harm (weapons, danger, disturbing media), regardless of its quality as a review.
5. **Repo conventions** — see `CLAUDE.md` ("Conventions that bite"): topics vocabulary, source name matching, Amazon link canonical form, slug uniqueness.
## The copy editor's brief
The one prompt not stored as a skill. The conductor spawns the stage-4 subagent (model: sonnet) with this brief, substituting the day's file list:
> You are the copy editor for unique.rzen.dev. Read `EDITORIAL.md` first — it is your entire mandate: concise, to the point, inspiring delight through specificity, within the word budgets it sets.
>
> Edit the prose of these files, all written earlier today: `<list of find/bundle/review files created or modified this run>`.
>
> Rules:
> - Prose only. Never change facts, names, prices, links, or claims, and never add a claim the author didn't make. In frontmatter, only the wording of `subtitle`, `description`, and `blurb` may change.
> - Enforce the word budgets as hard lines. When a piece is over budget, cut the weakest material — don't compress every sentence into mush.
> - When in doubt between two cuts, keep the one that delights.
> - Leave files that are already clean untouched.
>
> Return a list of files you changed with a one-line note on what you did to each, and name any file you left alone.
The conductor reviews the resulting diff before committing (`site: copy edit — <N> pieces tightened`), reverting any edit that changed meaning.
## A day in the life
```
0 Preflight git status, read log tail, skip capture if already run today
1 Capture content: YYYY-MM-DD capture run — N finds across M productive sources
2 Bundle site: bundle — <title> (or weekly catch / cluster run / held)
3 Reviews site: review — <Name> (graduates from find) × 24
4 Copy edit site: copy edit — N pieces tightened (skipped if clean)
5 Pick of the day site: pick of the day — <Name> (only when changed)
6 Verify + push npm run build must pass; push; CI deploys
7 Digest the one artifact the user reads — includes an Attention line
```
Degrade gracefully: a stage that fails or yields nothing is noted in the digest and the chain continues — only a red build blocks the push.