{
  "agents": [
    {
      "file": "agents/scripts/approve.mjs",
      "name": "approve",
      "title": "Draft Approver",
      "class": "plumbing",
      "trigger": "manual <slug> [--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 <slug> (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 <slug> (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"
    }
  ]
}
