Files
unique/TEAM.md
T

64 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 editorial charter, voice half**: 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. **`EDITORIAL.md` — content rules half**: no tobacco/alcohol at any stage; front-page safety and no camping gear for the pick of the day; rules apply forward only (published stays published). The charter's "Content rules" section is the source of truth; skill restatements defer to it.
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. **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.