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.
# 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.
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.
# new post published -> repurpose -> drafts to your scheduler for human review
Architecture
Tools required
Workflow
1. Intake the source
Receive the source content and the formats and voice to produce.
2. Extract the material
Pull the source's key points, real stats, and real quotes — the only allowed inputs.
3. Adapt to each format
Rewrite into each requested format with the right structure, length, and voice.
4. Check faithfulness
Verify every output fact, number, and quote traces to the source; drop anything unsupported.
5. Check attribution & compliance
Attribute quotes correctly and flag sensitive/regulated claims and copyright concerns.
6. Apply brand voice
Match the requested tone without inflating claims beyond the source.
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
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
Export
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.