Install
$ agentstack add skill-minara-ai-media-agent-media-write ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
/media-write — Guided Writing & Variant Generation
Write content collaboratively, then generate platform-specific variants.
Prerequisites
Before starting, read these shared library files:
- Read
lib/adapter-discovery.mdfor adapter format.md location - Read
lib/manifest-ops.mdfor manifest creation - Read
lib/humanize.mdfor de-AI writing rules (MUST read before any writing)
Step 1: Get the Brief
Check if a brief exists from /media-idea:
ls -t content/posts/*/brief.yaml 2>/dev/null | head -1
If a brief exists, read it and show the user:
- Topic, angle, outline, target platforms
If no brief exists, ask the user via AskUserQuestion:
- "What do you want to write about?"
- "Who is the audience?" (developers, beginners, specific community)
- "Which platforms should we target?" (show configured platforms)
Step 2: Create Post Directory
SLUG=$(echo "" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g' | sed 's/--*/-/g' | sed 's/^-//' | sed 's/-$//')
DATE=$(date +%Y-%m-%d)
POST_DIR="content/posts/${DATE}-${SLUG}"
mkdir -p "$POST_DIR/assets" "$POST_DIR/variants"
Step 3: Guided Section-by-Section Writing
Work through the article section by section:
Interaction model
- Propose an outline based on the brief/topic. Use AskUserQuestion:
"Here's my proposed outline for ''. Approve or suggest changes?" Show 4-7 sections with one-line descriptions.
- For each section:
- Propose the section content in chat (2-4 paragraphs)
- Use AskUserQuestion: "How does this section look?"
- A) Approve — move to next section
- B) Shorter / more concise
- C) More technical / add code examples
- D) Different angle (provide feedback)
- On approval, append the section to
source.mdusing the Write or Edit tool - User can say "go back to section N" to revise earlier sections
- The file is the source of truth. All approved content lives in
source.md.
Chat is the collaboration channel for drafting and feedback.
Writing guidelines
- Apply
lib/humanize.mdrules from the start. Do not draft in AI-speak and fix later. - Write in the user's voice (if brand voice is configured in
content/config/voice.yaml, read it first) - Include code examples where relevant for a developer audience
- Use clear headers (## for sections, ### for subsections)
- Keep paragraphs concise (3-5 sentences)
- Add image placeholders where visuals would help: ``
- Avoid the 29 AI patterns listed in
lib/humanize.md— no significance inflation, no AI vocabulary, no filler phrases - For Chinese content, follow the 中文去AI味 section: use 口语化 tone, avoid 成语堆砌, add personal perspective
Step 4: Finalize Source
Once all sections are approved, read the complete source.md back to confirm.
Use AskUserQuestion: "Here's the complete article. Ready to generate platform variants?"
- A) Yes, generate variants
- B) I want to edit more (specify which section)
Step 5: Humanization Audit
After the user approves the full draft, run a dedicated de-AI pass before generating variants.
Process
- Re-read
lib/humanize.mdto refresh the pattern list. - Read the complete
source.md. - Scan for each of the 29 AI writing patterns. For Chinese content, also apply the 中文去AI味 checks.
- For each flagged passage, rewrite it following the "Fix" column in the pattern table.
- Show the user a summary of changes:
``` Humanization audit — patterns found and fixed:
- Section 2: removed significance inflation ("pivotal moment" → "useful")
- Section 4: replaced AI vocabulary ("leverage" → "use")
- Section 5: removed filler phrase ("It's worth noting that")
```
- Use AskUserQuestion:
"Here are the humanization edits. Accept all, or review individually?"
- A) Accept all
- B) Review each change
- C) Skip humanization (keep original)
- Apply accepted changes to
source.md.
Voice calibration (optional)
If content/config/voice.yaml exists:
- Compare the draft against the user's writing samples
- Adjust sentence length, vocabulary level, and tone to match
- Voice.yaml traits take priority over generic humanization rules
Step 6: Generate Platform Variants
For each configured platform adapter:
- Read the adapter's
format.md:
``bash cat adapters//format.md ``
- Following the adaptation rules in
format.md, generate the variant fromsource.md:
- Apply frontmatter template
- Adapt content structure (length, tone, format)
- Convert image paths as needed
- Add platform-specific elements (canonical URL, tags, etc.)
- Write the variant to
/variants/.md
Step 7: Create Manifest
Create manifest.yaml following the format in lib/manifest-ops.md:
title: ""
created:
updated:
source: source.md
tags: []
language: en
canonical_url: ""
assets: []
variants:
:
file: variants/.md
format:
status: draft
error: null
Use the atomic write pattern from lib/manifest-ops.md.
Step 8: Summary
Article written and variants generated:
source.md — words
variants/devto.md — Dev.to format (draft)
variants/hashnode.md — Hashnode format (draft)
variants/github-pages.md — GitHub Pages format (draft)
Next steps:
- Run /media-image to generate illustrations
- Run /media-publish to publish to all platforms
- Or run /media-publish --dry-run to preview first
Updating Existing Content
When invoked with --update flag or on a post that already has source.md:
- Read the existing
source.mdandmanifest.yaml - Ask what the user wants to change
- Edit the relevant sections
- Regenerate ONLY the variant files (re-read each adapter's
format.mdand re-adapt) - Reset variant statuses to
draftfor regenerated variants - Do NOT overwrite variants with status
publishedunless the user explicitly confirms
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Minara-AI
- Source: Minara-AI/media-agent
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.