Agent build · v1
Site-first article and explainer agents
What it does: Two Claude Code agents that publish to your own site first: one writes a data-backed article per run, the other turns articles and projects into pages that each answer one searched question.
- Model
- Claude Opus (Claude Code background agents)
- Runs in
- Claude Code scheduled tasks + background agents
- Cost per run
- not measured
- License
- MIT
- Used by
- 0
- Files
- 7 (18 KB)
curl -L https://tensorust.com/builds/site-first-article-agents/download -o site-first-article-agents.zip
Receipts
- Source
- https://this-week-in-rust.org/blog/2026/10/21/this-week-in-rust-674/
- Measured
- Oct 21, 2026
- Check
- Number found on the source page by our checker
- Stamp
- ZUIl8enHLWxfHuELNhLDQ85Hzc-h63Xs
- Source
- https://tensorust.com/articles/crates-io-download-count/
- Measured
- Oct 17, 2026
- Check
- Number found on the source page by our checker
- Stamp
- W3nPiJOC2p9HAOdZLXUR8pjXD0CPjnXv
Files
- agents/articles/QUALITY.md2 KB
- agents/articles/ROLE.md3 KB
- agents/articles/SITE_PUBLISH.md3 KB
- agents/explainers/QUEUE.example.md1 KB
- agents/explainers/ROLE.md3 KB
- README.md1 KB
- schedule.example.json3 KB
# EXPLAINERS + GUIDES (one run, then exit)
Job: publish 2 to 3 evergreen pages per run that each answer one question people actually search for. Site only: these never go to X, LinkedIn or dev.to.
Why: one data article brought 259 of 677 weekly visitors, and search became the second biggest referrer. Every evergreen page that answers a real question is another door from Google, Bing, DuckDuckGo and AI answer engines.
## What a page is
- Explainer (/explainers/<slug>/): answers ONE question ("why are crates.io download counts inflated"). 600 to 1,500 words. Opens with "Short answer:" (2 to 3 sentences), then a "Key numbers" or "Key facts" table (What | Number | Source), the explanation, "Common misconceptions" (each one: the claim in bold quotes, then the record), an optional "Our take" labeled as opinion, and Related links.
- Guide (/guides/<slug>/): a how-to. Front matter `steps` (3+), `time` (hands-on minutes) and `needs` (what the reader must have before step 1). Headings `## Step N: title` for every step. A `## What goes wrong` section for the errors people hit.
## Cadence
- Hourly, 2 to 3 pages per run, hard cap 30 a day (count today's site-explainer and site-guide entries in posts.json).
- Never pad to hit a count. Search engines demote sites that mass-produce thin pages, and that would cost the traffic this section exists for. No near-duplicates.
## Where topics come from
1. Every published article: each has 3 to 10 sub-questions worth their own page. The article links to each explainer inline; each explainer links back and to 2+ siblings.
2. The articles being written today.
3. Our own projects: the steps, commands and screenshots already exist in notes and repos.
4. Keep QUEUE.md (topic | type | search phrase checked with autocomplete | parent article | status). Refill it every run so it always holds 20+.
## Quality bar
- Every fact true, current, dated and linked to a primary source. Disproven claims get a myth-check: state the claim, show the record, say what part is true.
- One real search phrase per page (autocomplete check). Title about 60 chars, description 140 to 160 chars, no em dashes.
- Hero image plus at least 2 more visuals: our own screenshots, charts from the data, diagrams, or freely licensed photos credited and linked under the image. Never present a generated image as a real photo. No personal data in screenshots.
- At least 3 internal links and one matching offer or free tool where it genuinely fits.
- FAQPage JSON-LD on explainers, HowTo structure on guides.
- Economics or market pages say "not financial advice" once.
## Publishing
- Staged pages go in agents/explainers/staging/<slug>/ with front matter the importer expects; run the importer's --check first. sources.md holds public links only (no local paths, no private emails).
- Batch the run's pages into ONE build and deploy. Take the site build lock, follow SITE_PUBLISH.md, ping IndexNow, verify 200 + listed on the section index + in the sitemap.
- Log each in posts.json (platform site-explainer or site-guide, ts, url, kw, words) and mark it done in QUEUE.md.
- Finish with the titles, URLs, word counts and today's count.
Never sign out, never hunt for credentials, never close tabs you did not open.
README
Two scheduled Claude Code agents that grow a site with search traffic in mind. The flagship article agent writes one article per run that carries data nobody else has, publishes it on your site as the canonical copy, and only sends the strongest 2 or 3 a day to dev.to, X and LinkedIn. The explainers agent publishes 2 or 3 short pages per run, each answering one question people type into a search box, built from the articles and projects you already have.
Why site first: on tensorust.com one data article (a fresh crates.io API pull) brought 259 of 677 weekly visitors and landed in This Week in Rust, while opinion pieces brought almost nothing. Search became the second biggest referrer. So the article agent must run a fresh experiment or pull a fresh dataset every time, and publish the data next to the article.
Layout:
schedule.example.json: both jobs, with the exact prompts. The main session runs a cheap precheck first (counts today's entries in posts.json, checks the gap since the last one) and only spawns an agent when there is room.
agents/articles/ROLE.md: topic selection (shortlist 8, score each, log the scores), the bar for the piece, the publish order.
agents/articles/QUALITY.md: the checklist every article passes before it publishes.
agents/articles/SITE_PUBLISH.md: build lock, catalog entry, build, deploy, verify, IndexNow, canonical URLs on copies, Search Console.
agents/explainers/ROLE.md and QUEUE.example.md: the page formats (explainer and guide), cadence caps, and the topic queue.
How to run it:
1. Set up the shared files from the outreach team build (posts.json, VOICE.md, a NOTES.md per role, a locks/ folder).
2. Replace the build and deploy commands in SITE_PUBLISH.md with your own. The original is a Python static build deployed with the Vercel CLI.
3. Create the two jobs in Claude Code from schedule.example.json.
What to change: your topics, your offers, your site commands, and the caps. Keep the caps on explainers: search engines demote sites that mass-produce thin pages, so the role refuses to pad a count. Keep the full-body gate on social copies (the posted copy must contain 90% or more of the source text and every image), because editors on some platforms silently drop sections.
The dev.to step needs an API key. The agents read it from a local file and never print it; on a 401 they stop and report.