{ "agents": [ { "file": "agents/scripts/approve.mjs", "name": "approve", "title": "Draft Approver", "class": "plumbing", "trigger": "manual [--force]", "description": "Approve a draft: SEO gate, then promote it into the blog, build, go live. No LLM.", "model": "-", "prompt": [], "skills": [], "tools": [ "lib/publish.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/list-drafts.mjs", "name": "list-drafts", "title": "Draft Lister", "class": "plumbing", "trigger": "manual", "description": "List pending drafts awaiting review. No LLM.", "model": "-", "prompt": [], "skills": [], "tools": [], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/news-radar.mjs", "name": "news-radar", "title": "News Radar", "class": "content", "trigger": "manual / cron-capable (maintains news-queue.json for the writer)", "description": "Discover timely niche news and maintain news-queue.json; the daily writer drains it first.", "model": "research=claude-opus-4-8", "prompt": [ "prompts/news-radar.system.md" ], "skills": [], "tools": [ "lib/claude.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/publish-tick.mjs", "name": "publish-tick", "title": "Auto-Publisher Tick", "class": "plumbing", "trigger": "cron:run.sh publish-tick.mjs(15m)", "description": "Once per day after the morning floor, publish ONE eligible draft (SEO-gated) with a randomized earlier-today timestamp. No LLM.", "model": "-", "prompt": [], "skills": [], "tools": [ "lib/publish.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/research.mjs", "name": "research", "title": "Editorial Calendar Researcher", "class": "content", "trigger": "manual (auto-invoked by writer when the evergreen backlog runs low)", "description": "Top up the evergreen backlog in calendar.json (additive, deduped); timely news is the news radar's job.", "model": "research=claude-opus-4-8", "prompt": [ "prompts/research.system.md" ], "skills": [], "tools": [ "lib/claude.mjs", "lib/calendar.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/revise.mjs", "name": "reviser", "title": "Draft Reviser", "class": "content", "trigger": "manual (auto-invoked when the SEO gate fails and autoRevise is on)", "description": "Feed the SEO audit's fixes back to the writer and re-audit until the draft passes or attempts run out.", "model": "writer=claude-sonnet-4-6", "prompt": [ "prompts/reviser.system.md" ], "skills": [], "tools": [ "lib/claude.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/seo-review.mjs", "name": "seo-review", "title": "SEO Reviewer", "class": "content", "trigger": "manual (auto-invoked by writer/approve gates)", "description": "Audit one article for EEAT / spam-policy / on-page SEO / AEO / readability → seo-review.json.", "model": "reviewer=claude-opus-4-8", "prompt": [ "prompts/seo-review.system.md" ], "skills": [], "tools": [ "lib/claude.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" }, { "file": "agents/scripts/write-daily.mjs", "name": "writer", "title": "Daily Blog Writer", "class": "content", "trigger": "cron:run.sh write-daily.mjs(daily)", "description": "Draft one article (MDX + cover + sources) — today's news first, else next evergreen calendar topic.", "model": "writer=claude-sonnet-4-6", "prompt": [ "prompts/writer.system.md", "prompts/image.md" ], "skills": [ "mcp__claude_ai_Higgsfield" ], "tools": [ "lib/claude.mjs", "lib/calendar.mjs" ], "reads": [], "writes": [], "created": "2026-07-04" } ] }