Files
unique/TEAM.md
T

5.6 KiB
Raw Blame History

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.