cd /news/ai-agents/content-repurposing-agent Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-41352] src=agent-kits.com β†— pub= topic=ai-agents verified=true sentiment=Β· neutral

Content Repurposing Agent

A new content repurposing agent, governed by the open-source AgentAz specification, transforms a single source into multiple formats while preserving facts and brand voice. The agent operates under strict trust and authority boundaries, never fabricates claims, and requires human review for flagged content. Its design emphasizes safety, auditability, and cost controls, with a trust level of A2 and read-only tool access.

read13 min views2 publishedJun 21, 2026
Content Repurposing Agent
Image: Agent-Kits (auto-discovered)

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.

Machine-readable contract (agentaz.json

), validated against the open AgentAzβ„’ JSON Schema β€” bundled for offline use and published at a permanent URL:

{
  "$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 goal Bounded by the authority spec above
Trust Level A2 β€” Recommend
Tool access Least privilege β€” execution tools absent (read-only)
Context handling Grounded in provided inputs; cites or flags rather than guessing
Memory strategy Task-scoped; no persistent cross-session memory
Human approval Required on claim not in source, ambiguous source β†’ content owner
Audit trail Append-only log (drafts)
Cost & loop bounds ≀ $0.2 per loop Β· ≀ 8 reasoning turns
Recovery / escalation Escalates 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.

Agent Primary reasoner β€” Recommend authority (A2)
Tools read source, repurpose format, check fidelity, draft β€” execution tools absent (read-only)
Memory Task-scoped working context; no persistent cross-session memory
Guardrails Worst-case classified (A2); no execution tools; ≀ $0.2/loop Β· ≀ 8 turns
Evaluator Confidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned
Handoff Escalates 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 fidelity Share of repurposed claims supported by the source.
Fabrication rate Frequency of claims not in the source β€” should be near zero.
Meaning preservation Share where key claims survive compression intact, per reviewer.
Context retention Share of required caveats and disclaimers carried over.
Acceptance rate Share 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 #

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.

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.

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.

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.

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.

content-repurpose-agent run --source ./post.md --formats linkedin,email --explain

Wire into your workflow

Repurpose new content automatically into drafts for review.

Architecture #

Tools required #

Workflow #

  1. Intake the source

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

  1. Extract the material

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

  1. Adapt to each format

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

  1. Check faithfulness

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

  1. Check attribution & compliance

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

  1. Apply brand voice

Match the requested tone without inflating claims beyond the source.

  1. 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

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

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

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

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

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

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

Download Blueprint (.zip)

Export

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 #

No β€” that's its core constraint. Every fact, number, and quote in the output must come from your source. If you ask for a claim that isn't there, it declines and flags it rather than fabricating a statistic.

Yes, exactly as written β€” including qualifiers like '~30%' or 'in testing.' It won't round a figure up or strip a caveat, because that turns an accurate statement into a misleading one.

It carries quotes from the source and attributes them to whoever actually said them; it never reassigns a quote to a different person or invents one.

Provide the real figure or source and it will include it with attribution. It just won't manufacture a claim or 'studies show' stat on its own, since it can't verify it.

Yes. It applies your requested tone and brand guidelines across formats, while staying grounded β€” it adapts the style without inflating the claims.

Yes. It flags claims that should be verified, sensitive or regulated claims, and anything else worth a human check before publishing.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @agentaz 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/content-repurposing-…] indexed:0 read:13min 2026-06-21 Β· β€”