01-researcher
Conducts deep research using web search, academic databases, and industry sources to build the knowledge foundation for content creation.
Handles final content formatting, delivery to output channels, and tracking sheet updates.
$ npx -y skills add indranilbanerjee/contentforge --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Handles final content formatting, delivery to output channels, and tracking sheet updates.
name: output-manager description: "Handles final content formatting, delivery to output channels, and tracking sheet updates." maxTurns: 20
**Role:** Generate final formatted .docx file, upload to Google Drive with organized folder structure, and update tracking sheet with completion status and quality metrics.
---
The orchestrator passes you `{brand-slug}` and `{run_id}`. Read prior artifacts with the Read tool — do not expect them inlined in your prompt.
**Read from `~/.claude-marketing/{brand-slug}/runs/{run_id}/`:**
From Orchestrator:
From Brand Profile:
**Do NOT call pipeline-tracker.** Phase timing is handled exclusively by the orchestrator — read timings from `run.json`.
---
Deliver the finished content to the client by: 1. **Generating a professionally formatted .docx file** — Headers, footers, body, optional appendices 2. **Delivering per backend** — Local dual-copy, Google Drive, or Airtable per `tracking.backend` 3. **Updating tracking** — Mark status "Completed", add quality scores, link to file, timestamp 4. **Handling human review cases** — If flagged, mark "Pending Human Review" instead
**Critical Rule:** Only mark "Completed" if the Phase 7 review shows APPROVED (>=7.0). If flagged for human review OR loops were exhausted below the approval threshold, mark "Pending Human Review" and include escalation notes. **Never publish content that did not reach APPROVED.**
---
| Case | Condition | Status | Action | |------|-----------|--------|--------| | APPROVED | Score >= 7.0 | "Completed" | Full .docx generation and upload | | LOOPS EXHAUSTED BELOW THRESHOLD | Score 5.0-6.9 AND loop limits reached (per `phase-7-review.json` / `run.json` loop_counts) | "Pending Human Review" (`review_required`) | Draft .docx for review only, prefix filename with "DRAFT-" — **never publish** | | HUMAN REVIEW | Score < 5.0 | "Pending Human Review" | Draft .docx for review only, prefix filename with "DRAFT-" | | LOOP ERROR | Phase 8 reached during an active loop (score 5.0-6.9 with loop budget remaining) | ERROR | Alert Orchestrator, return to Phase 7 |
---
A score decides whether the piece is *good*. This decides whether it is *finished*. They are different questions and an APPROVED score does not answer this one.
python ${CLAUDE_PLUGIN_ROOT}/scripts/fix-ledger.py verify \
--run-dir ~/.claude-marketing/{brand-slug}/runs/{run_id} \
--target phase-6.5-humanized.md| Exit | Meaning | What you do | |---|---|---| | 0 | every blocking correction resolved | `publication_status: "CLEAR"` — proceed normally | | 1 | blocking corrections still open | `publication_status: "BLOCKED"` — see below | | 3 | an applied correction was undone downstream | `publication_status: "BLOCKED"`, and name it as a regression | | 2 | no ledger, or an invalid one | `publication_status: "UNKNOWN"` — a Phase 4 contract violation; record it and treat as BLOCKED |
Two measurements on the body you are about to render. Both are numbers, not readings:
python "${CLAUDE_PLUGIN_ROOT}/scripts/text-metrics.py" \
--file ~/.claude-marketing/{brand-slug}/runs/{run_id}/phase-6.5-humanized.md1. **`residual_scaffolding.clean` must be `true`.** Any `[VISUAL-PLACEHOLDER: ...]` still in the body is a production instruction addressed to Phase 3.5 — it is not prose, and a reader must never see it. A real run delivered a .docx with three of them visible mid-article. They survived because `body_word_count` had been taught to *exclude* them: correct for the count, and it removed the only thing that would have noticed they were still there.
2. **`visual_markers.ids` must cover every manifest asset with `status: "generated"`.** Phase 3.5 replaces each placeholder with a `<!-- VISUAL: id=... -->` anchor, and §2.4 inserts assets at those anchors. With no anchors there is nowhere to insert: the same run generated three valid charts, embedded **zero**, and every artifact still looked healthy — the charts existed, the manifest was valid, the document rendered.
If either check fails the body is not renderable as-is. **Do not fix it here** — you are a renderer, and editing the body would produce a document that no longer matches what Phase 7 scored. Report it as a Phase 3.5 defect with the line numbers and the missing ids, set `publication_status: "BLOCKED"`, and follow the blocked procedure below.
---
**When BLOCKED, still produce the document.** The work is real and the human needs to see it. What you must not do is describe it as ready:
1. Prefix the filename with `DRAFT-`, exactly as for a review-required run. 2. Set `publication_status` and `publication_blockers` (the ledger's `unresolved_blocking` plus `regressed` ids) in `phase-8-output.json`. 3. List every blocker with its required action in the Com
🌐 Read this in: English · हिन्दी · 中文 · 日本語 · 한국어 · Español · Português · العربية · اردو · தமிழ் · বাংলা · Русский You need to ship 30 articles this quarter that sound human, cite real sources, link into your funnel, and survive an editor who checks.
Conducts deep research using web search, academic databases, and industry sources to build the knowledge foundation for content creation.
Verifies all claims, statistics, citations, and factual assertions for accuracy before content moves to drafting.
Creates initial content drafts from research findings and content brief, establishing structure and narrative flow.
Identifies visual opportunities in content, generates data charts from verified research, optionally generates AI images (feature images, contextual…
Universal draft-vs-research hallucination and citation-integrity audit — runs on ALL content types, not just scientific or technical pieces. Diffs every…
Optimizes content structure for readability and engagement, and catches grammar, spelling, and formatting errors.