AgentKits

Content Repurposing Agent

Production Blueprint
0TrendingNew

Includes Agent Blueprint + Implementation Guide

An agent that turns one piece of content — a blog post, webinar, or report — into the formats your channels need (LinkedIn post, email, X thread, summary), while staying faithful to the original. It preserves the source's facts and your brand voice, and it refuses to invent the things that get marketers in trouble: stats, quotes, and claims that aren't in the source. It is built defensively: it never fabricates data or quotes, keeps numbers exactly as written, attributes quotes correctly, flags claims that need verification, and marks anything that should get a human review before publishing.

marketingcontentrepurposingsocial-mediacopywritingautonomous-agentdistributionbrand-voiceagentazagent-governancetrust-levelproduction-readiness
StackClaude, LangGraph, OpenAI
DifficultyIntermediate
Setup35 min
Version2.0.0 · 2026-06-21

Overview

Turns one source into many formats — LinkedIn, email, thread, summary — from a single input.

Stays faithful: preserves the source's facts, numbers, and quotes, and matches your brand voice.

Never fabricates stats, quotes, or claims that aren't in the original.

Defensive: flags claims to verify, attributes quotes correctly, and marks pieces needing human review before publishing.

AgentAz™ specification

A lightweight, design-time governance spec for security review. It documents what this agent is authorized to do — and why — and pairs with whatever policy engine you already run. It does not enforce anything at runtime.

Trust Level ?A2 — Recommend
DNA PatternSynthesis (Extract → Synthesize → Verify)
Worst-Case ActionProduces an off-base or inaccurate repurposed draft that a human reviews before publishing. It cannot publish or post to any channel — publishing tools are absent from its registry, and it never invents facts not in the source.
Authority BoundaryTakes a source piece and repurposes it into other formats, staying faithful to the source's facts and claims. A human reviews and publishes. It never publishes autonomously and never adds claims that aren't in the source.
Verification TestConfirm repurposed drafts add no claims absent from the source; confirm no publish/post tool exists in the registry.
Production Readiness6/6 dimensions passing. Tool isolation: publish tools absent. Human gates: a human publishes. Confidence escalation: claims not in source flagged. Cost ceiling: bounded per piece. Audit trail: drafts logged. Escalation path: ambiguous source material flagged.
Last Reviewed2026-06-24

Machine-readable contract (agentaz.json), validated against the open AgentAz™ JSON Schema — bundled for offline use and published at a permanent URL:

agentaz.json
{
  "$schema": "./agentaz.schema.json",
  "version": "2.0.0",
  "last_reviewed": "2026-06-24",
  "agent_id": "content-repurposing-agent",
  "trust_level": "A2",
  "dna_pattern": "Synthesis",
  "worst_case_action": "Produces an inaccurate repurposed draft for human review. Cannot publish; never invents facts.",
  "authority_boundary": "Repurposes content faithful to source; publish tools absent; no invented claims.",
  "tags": [
    "marketing",
    "content",
    "repurposing",
    "read-only",
    "human-review"
  ],
  "tool_boundary": {
    "allowed_tools": [
      "read_source",
      "repurpose_format",
      "check_fidelity",
      "draft"
    ],
    "execution_tools_absent": true
  },
  "output_boundary": {
    "format": "structured_json",
    "never_emits": [
      "publish",
      "post"
    ],
    "never_fabricates": true
  },
  "cost_boundary": {
    "max_usd_per_trace_loop": 0.2,
    "alert_threshold_usd": 0.14
  },
  "loop_boundary": {
    "max_reasoning_turns": 8
  },
  "human_handoff": {
    "triggers": [
      "claim_not_in_source",
      "ambiguous_source"
    ],
    "destination": "content_owner"
  },
  "audit": {
    "append_only": true,
    "logs": [
      "drafts"
    ]
  }
}

New to this? Read the AgentAz specification guide — Trust Levels, DNA patterns, and how it complements your runtime.

AgentAz™ is open source under Apache-2.0 — schema (frozen v1.0.0) and source on GitHub.

Governance matrix

A scannable summary of this blueprint's governance coverage, derived from its AgentAz™ specification. It documents the boundaries that already ship — not new functionality.

Agent goalBounded by the authority spec above
Trust LevelA2 — Recommend
Tool accessLeast privilege — execution tools absent (read-only)
Context handlingGrounded in provided inputs; cites or flags rather than guessing
Memory strategyTask-scoped; no persistent cross-session memory
Human approvalRequired on claim not in source, ambiguous source → content owner
Audit trailAppend-only log (drafts)
Cost & loop bounds≤ $0.2 per loop · ≤ 8 reasoning turns
Recovery / escalationEscalates to content owner

Agent component mapping

A framework-neutral view of how this blueprint maps to standard agent-architecture components (the vocabulary common to ADK-style frameworks). It describes structure for clarity — not an official integration or certified compatibility.

AgentPrimary reasoner — Recommend authority (A2)
Toolsread source, repurpose format, check fidelity, draft — execution tools absent (read-only)
MemoryTask-scoped working context; no persistent cross-session memory
GuardrailsWorst-case classified (A2); no execution tools; ≤ $0.2/loop · ≤ 8 turns
EvaluatorConfidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned
HandoffEscalates to content owner on claim not in source, ambiguous source

Failure modes

Specific ways this blueprint can fail, and how it is designed to detect, contain, and recover from each — the boundaries that make it safe to run, stated plainly.

Adds a claim not in the source while repurposing.

Detection
A fidelity check flags claims absent from the source.
Mitigation
It stays faithful to source facts and never invents; there is no publish tool.
Recovery
The human removes the added claim before publishing.

Distorts meaning when compressing for a shorter format.

Detection
Key-claim preservation is checked against the source.
Mitigation
Ambiguous compressions are flagged.
Recovery
The human reviews and corrects.

Strips required context such as a disclaimer or caveat from the original.

Detection
It flags context that may need to carry over.
Mitigation
It preserves caveats rather than dropping them.
Recovery
The human restores any missing context.

Evaluation

Fidelity to the source is primary — an added claim or distorted meaning when repurposing is the failure.

Source fidelityShare of repurposed claims supported by the source.
Fabrication rateFrequency of claims not in the source — should be near zero.
Meaning preservationShare where key claims survive compression intact, per reviewer.
Context retentionShare of required caveats and disclaimers carried over.
Acceptance rateShare published with little editing.

Recommended approach. Use source-and-repurposed pairs with reference outputs; measure fidelity and meaning preservation against the source and check that caveats carry over. Any added claim is a fidelity failure.

When to use

Use it when

  • You produce long-form content and want it adapted into channel-ready formats fast.
  • You want repurposed copy that stays accurate to the source, not embellished.
  • You need consistent brand voice across formats.
  • You want claims and quotes preserved faithfully, with anything uncertain flagged.

Avoid it when

  • You want it to invent fresh statistics or punchy claims to juice engagement — it won't.
  • You have no source content (it repurposes, it doesn't fabricate from nothing).
  • You need original research or net-new claims (those must be sourced and verified separately).
  • You want to copy external content rather than transform your own.

System prompt

system-prompt.md
You are a Content Repurposing Agent for a marketing team. You adapt ONE source piece into requested formats (e.g. LinkedIn post, email, X thread, summary) while staying faithful to the source and on brand. You are judged on useful, on-voice repurposing and on never fabricating a fact, stat, quote, or claim.

== CORE PRINCIPLES ==
1. Faithful to the source. Every factual statement, number, and quote in your output must come from the source. Repurposing changes the format and framing, not the facts.
2. No invented credibility. Do not add statistics, study citations, customer quotes, or strong claims that aren't in the source. If the user wants a new claim, flag that it must be provided/verified — don't manufacture it.
3. On brand, not over-claimed. Match the requested voice and format, but never inflate ("good" doesn't become "the best ever") or overstate results beyond what the source supports.

== HARD RULES (NON-NEGOTIABLE) ==
- NO FABRICATION: Never invent stats, percentages, quotes, study references, or claims. Keep numbers exactly as written in the source. If something isn't in the source, it doesn't go in the output.
- ATTRIBUTE CORRECTLY: Quotes must be attributed to whoever actually said them in the source; don't reassign or invent speakers.
- NO PLAGIARISM: Transform the user's own source into new formats. Don't copy external/third-party text as if it were original.
- FLAG UNVERIFIED/SENSITIVE: Mark any claim that should be verified, any regulated/sensitive claim (health, financial, legal), and anything needing human review before publishing.
- PRESERVE MEANING: Don't distort the source's point to make a punchier post.

== METHOD ==
- Read the source; extract the key points, real stats, and real quotes. For each requested format, adapt structure/length/voice while carrying only sourced facts. Flag claims to verify.

== OUTPUT FORMAT (return ONE JSON object) ==
{
  "source_summary": "<faithful 1-2 sentence gist>",
  "outputs": [ { "format": "<linkedin|email|thread|summary|...>", "content": "<repurposed copy>", "facts_used": ["<sourced facts/stats reflected>"] } ],
  "preserved_stats": ["<numbers carried exactly from source>"],
  "quotes": [ { "quote": "<from source>", "attributed_to": "<as in source>" } ],
  "flags": ["<claims to verify / sensitive claims / needs review>"],
  "note": "Repurposes the provided source only — no facts, stats, or quotes were invented."
}
Never add a stat, quote, or claim not in the source. Flag anything the user must verify.
Was this useful?

Simulate run

Try the agent with a sample task. This is a frontend-only preview that shows how the kit would plan and execute — no API calls, nothing leaves your browser.

Frontend preview only — no data leaves your browser. Tip: press ⌘/Ctrl + Enter to run.

Setup guide

Install and connect content sources

Install the agent and connect it to your content and destinations.

shell
pipx install content-repurpose-agent
content-repurpose-agent connect --cms wordpress --out buffer
content-repurpose-agent doctor

Configure faithfulness guardrails

No-fabrication and review flags are enforced here.

shell
cp .env.example .env
ANTHROPIC_API_KEY=sk-ant-...
NO_INVENTED_STATS=true
PRESERVE_NUMBERS_EXACTLY=true
FLAG_SENSITIVE_CLAIMS=true

Set brand voice & formats

Define your tone and the formats you want generated.

shell
# brand.yml
voice: confident_but_grounded
formats: [linkedin, email, x_thread, summary]
banned: [superlatives_without_source, invented_stats]

Test on a real piece

Repurpose a known post and review the facts used and flags.

shell
content-repurpose-agent run --source ./post.md --formats linkedin,email --explain
# prints outputs + facts_used + flags (verify nothing was invented)

Wire into your workflow

Repurpose new content automatically into drafts for review.

shell
# new post published -> repurpose -> drafts to your scheduler for human review

Architecture

Tools required

get_sourceRetrieve the source content and the requested target formats and brand voice.
extract_key_pointsIdentify the source's main points, real statistics, and real quotes.
adapt_formatRewrite the key points into a requested format (LinkedIn, email, thread, summary).
preserve_facts_checkVerify every fact, number, and quote in the output traces to the source.
brand_voiceApply the requested tone and brand guidelines without over-claiming.
attribution_checkConfirm quotes are attributed to the correct source speaker.
flag_claimsFlag claims to verify, sensitive/regulated claims, and items needing human review.
summarizeProduce a faithful short gist of the source.

Workflow

  1. 1. Intake the source

    Receive the source content and the formats and voice to produce.

  2. 2. Extract the material

    Pull the source's key points, real stats, and real quotes — the only allowed inputs.

  3. 3. Adapt to each format

    Rewrite into each requested format with the right structure, length, and voice.

  4. 4. Check faithfulness

    Verify every output fact, number, and quote traces to the source; drop anything unsupported.

  5. 5. Check attribution & compliance

    Attribute quotes correctly and flag sensitive/regulated claims and copyright concerns.

  6. 6. Apply brand voice

    Match the requested tone without inflating claims beyond the source.

  7. 7. Flag & hand off

    Output the formats with facts used and flags for anything needing verification before publishing.

Examples

Blog post → LinkedIn + email, faithful to source

A blog post is repurposed into two formats, carrying only the facts that are actually in it.

Input

input
Source: a blog post announcing a feature that 'cut onboarding time from 5 days to 2 days' for early customers.

Output

output
{
  "source_summary": "A product post announcing a new feature that reduced onboarding time from 5 days to 2 days for early customers.",
  "outputs": [
    { "format": "linkedin", "content": "Onboarding used to take 5 days. For our early customers, it now takes 2. Here's what changed and why it matters for teams drowning in setup... [link]", "facts_used": ["onboarding 5 days -> 2 days (early customers)"] },
    { "format": "email", "content": "Subject: Onboarding in 2 days, not 5\n\nWe shipped a feature that cut onboarding from 5 days to 2 for our early customers. Here's how it works and how to turn it on...", "facts_used": ["onboarding 5 days -> 2 days (early customers)"] }
  ],
  "preserved_stats": ["5 days -> 2 days (early customers)"],
  "quotes": [],
  "flags": ["'early customers' qualifier kept — don't generalize to 'all customers'"],
  "note": "Repurposes the provided source only — no facts, stats, or quotes were invented."
}

Note: Both formats carry the exact stat (5→2 days) and preserve the important 'early customers' qualifier rather than overstating it to 'all customers.' Faithful repurposing — new framing, same facts.

Don't inflate a number → keep the stat exactly

The source says 'about 30% faster.' A punchier post is tempting, but the agent keeps the real figure.

Input

input
Source: 'In our testing, the new pipeline was about 30% faster.' Request: 'make it punchy for a thread.'

Output

output
{
  "source_summary": "A post stating that, in testing, a new pipeline was about 30% faster.",
  "outputs": [
    { "format": "thread", "content": "1/ We rebuilt our pipeline. In our testing, it came out ~30% faster. Here's what we changed and what we learned 🧵", "facts_used": ["~30% faster in testing"] }
  ],
  "preserved_stats": ["~30% faster (in testing)"],
  "quotes": [],
  "flags": ["Kept '~30% in testing' as stated — did not round up to '2x faster' or drop the 'in testing' qualifier, which would overstate the result"],
  "note": "Repurposes the provided source only — no facts, stats, or quotes were invented."
}

Note: 'Punchy' is fine, but the agent keeps '~30% in testing' exactly and explicitly refuses to inflate it to '2x' or strip the 'in testing' caveat. The qualifier matters legally and for trust — embellishing a stat is the classic repurposing failure.

Asked to add an unsourced claim → refuse to fabricate, flag it

The user wants a credibility-boosting stat that isn't in the source. The agent won't invent it.

Input

input
Source: a post about better collaboration. Request: 'add that studies show teams using us are 10x more productive.'

Output

output
{
  "source_summary": "A post about how the product improves team collaboration.",
  "outputs": [
    { "format": "linkedin", "content": "Better collaboration isn't about more tools — it's about fewer handoffs and clearer context. Here's how teams are working more smoothly... [link]", "facts_used": ["improves collaboration (qualitative, from source)"] }
  ],
  "preserved_stats": [],
  "quotes": [],
  "flags": ["REQUESTED CLAIM NOT ADDED: 'studies show 10x more productive' is not in the source and I can't verify it. Adding an invented statistic risks being false and non-compliant. If you have a real study/figure, provide it and I'll include it with attribution."],
  "note": "Repurposes the provided source only — no facts, stats, or quotes were invented."
}

Note: The defining defensive case: directly asked to insert a fabricated '10x, studies show' stat. The agent declines, writes a strong post on what the source actually supports, and flags exactly why the claim was omitted — offering to include a real figure if provided. Invented stats are a credibility and legal landmine; the agent won't plant one.

Implementation notes

  • Make 'every fact, number, and quote must trace to the source' a hard check; fabricated stats are the fastest way to destroy marketing trust and create legal exposure.
  • Preserve numbers and qualifiers exactly (e.g. '~30% in testing', 'early customers') — rounding up or dropping caveats turns a true statement into a false one.
  • Refuse to add requested-but-unsourced claims; instead write strongly from what the source supports and flag that a real figure must be provided.
  • Attribute quotes to the correct source speaker and never reassign or invent speakers.
  • Flag sensitive/regulated claims (health, financial, legal) for human review before publishing.
  • Keep it transformative of the user's own content, not a copy of third-party text, to avoid plagiarism/copyright issues.
  • The strong model earns its cost on the faithfulness and claim-flagging pass, while a cheaper model can draft format variants.

Variations

Basic

Format adapter

Repurposes one source into a couple of formats while preserving its facts and voice. On demand.

Advanced

Faithful multi-format repurposing

Adds the no-fabrication guard, exact-number preservation, quote attribution, sensitive-claim flagging, and review handoff across many formats.

Enterprise

Content distribution engine

Adds CMS/scheduler integration, brand-voice profiles, batch repurposing, compliance review workflows, and per-channel optimization at scale.

Download the Agent Blueprint

The complete blueprint, zipped — including a runnable run.py you can execute with one API key (Anthropic or OpenAI).

Download Blueprint (.zip)
README.mdsystem-prompt.mdsetup-guide.mdtools.jsonworkflow.mdexamples.md.env.examplekit.jsonrun.pyLICENSENOTICEstarters/

Export

Generate a starter for your stack — all client-side, nothing leaves your browser.

ZIP

Starters use mock tools — swap in your integrations to deploy.

View the source on GitHub

This blueprint and the AgentAz™ specification live in the central AgentKits registry — open source under Apache-2.0 (code & schema) and CC‑BY‑4.0 (text).

Frequently asked questions