seedproject-web/agents/AGENTS.md
Carlos Arias f287f74448 framework(core): per-project agent roster + unified registry
Phase 3.
- server.mjs loads only site.agents.enabled, passing per-agent settings
- each console agent exports a manifest + register(host, settings); QA reads
  heartbeatMin/autofix from settings (env fallback)
- catalog.mjs folds the runtime (console) agents into agents.json/AGENTS.md via
  their manifest exports — one registry for pipeline + runtime agents
Verified: disabling 'qa' in the roster removes /qa/run + the heartbeat.
2026-07-24 08:03:00 -04:00

5.2 KiB

Agent catalog

GENERATED — do not edit. Regenerate with node agents/catalog.mjs (source of truth: the @agent-manifest header in each script).

An agent = an LLM orchestrator script + its role prompt (prompt:) + its skills (MCP servers, skills:) + its tools (api/cli/*.php bridges and lib/*.mjs, tools:). To port an agent to another SeedProject clone, satisfy its manifest: copy its prompts, ensure its tools exist, migrate each table in reads:/writes:, configure its MCP servers. agents.json is the machine-readable version — diff it against a clone to find gaps.

content

Cron/manual-triggered producers of gated drafts (events auto-publishes).

agent trigger model skills tools reads → writes description
news-radar (agents/scripts/news-radar.mjs) manual / cron-capable (maintains news-queue.json for the writer) research=claude-opus-4-8 lib/claude.mjs — → — Discover timely niche news and maintain news-queue.json; the daily writer drains it first.
research (agents/scripts/research.mjs) manual (auto-invoked by writer when the evergreen backlog runs low) research=claude-opus-4-8 lib/claude.mjs, lib/calendar.mjs — → — Top up the evergreen backlog in calendar.json (additive, deduped); timely news is the news radar's job.
reviser (agents/scripts/revise.mjs) manual (auto-invoked when the SEO gate fails and autoRevise is on) writer=claude-sonnet-4-6 lib/claude.mjs — → — Feed the SEO audit's fixes back to the writer and re-audit until the draft passes or attempts run out.
seo-review (agents/scripts/seo-review.mjs) manual (auto-invoked by writer/approve gates) reviewer=claude-opus-4-8 lib/claude.mjs — → — Audit one article for EEAT / spam-policy / on-page SEO / AEO / readability → seo-review.json.
writer (agents/scripts/write-daily.mjs) cron:run.sh write-daily.mjs(daily) writer=claude-sonnet-4-6 mcp__claude_ai_Higgsfield lib/claude.mjs, lib/calendar.mjs — → — Draft one article (MDX + cover + sources) — today's news first, else next evergreen calendar topic.

runtime

HTTP-triggered agents answering live user requests.

agent trigger model skills tools reads → writes description
in-page-console (agents/console/agents/in-page-console.mjs) POST /run; GET /stream; POST /publish; POST /rebuild; POST /discard claude-sonnet-4-6 Read, Write, Edit, Glob, Grep, WebSearch — → — Freeform ▲ editor: describe a change on any page; the agent edits, the console builds an isolated preview, then publish/discard.
project-builder (agents/console/agents/project-builder.mjs) POST /draft; POST /build-project claude-sonnet-4-6 Read cja_projects → cja_projects Drafts copy and authors a full structured project record (reads uploaded images) for the New Project admin form. Returns JSON; never mutates the repo.
qa (agents/console/agents/qa.mjs) POST /qa/run; schedule(heartbeatMin) claude-sonnet-4-6 qa Read, Skill, api/cli/qa-start.php, api/cli/qa-finish.php, api/cli/qa-routes.php, api/cli/qa-autofix.php cja_qa_runs, cja_qa_findings → cja_qa_runs, cja_qa_findings Crawls the live site (links, images, forms, API, SEO/meta, a11y); auto-fixes safe findings via the Web Designer queue; runs on a heartbeat.
web-designer (agents/console/agents/web-designer.mjs) POST /tasks/run claude-sonnet-4-6 brand, ui-ux, changelog Read, Write, Edit, Glob, Grep, WebSearch, Skill, api/cli/tasks-next.php, api/cli/tasks-finish.php, api/cli/seed-changelog.php cja_tasks, cja_changelog, cja_projects → cja_tasks, cja_changelog, cja_projects Durable design queue (cja_tasks): runs the full-builder agent on any page from a brief, auto-publishes (build-gated scoped commit), and self-logs to the changelog. Fed by the admin and by QA autofix.

plumbing

Deterministic helpers — not agents (no LLM), catalogued for completeness.

agent trigger model skills tools reads → writes description
approve (agents/scripts/approve.mjs) manual [--force] - lib/publish.mjs — → — Approve a draft: SEO gate, then promote it into the blog, build, go live. No LLM.
list-drafts (agents/scripts/list-drafts.mjs) manual - — → — List pending drafts awaiting review. No LLM.
publish-tick (agents/scripts/publish-tick.mjs) cron:run.sh publish-tick.mjs(15m) - lib/publish.mjs — → — Once per day after the morning floor, publish ONE eligible draft (SEO-gated) with a randomized earlier-today timestamp. No LLM.