Media write
npx -y skills add Minara-AI/media-agent --skill media-writeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Guided co-creation writing skill. Interviews the user, drafts content section by section, generates platform-specific variants from shared source. Creates the content manifest. Works with a brief from /media-idea or accepts freeform input.
SKILL.md
6.4 KB, as published. Nobody here has run it
/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 "<title>" | 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 '<title>'. 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 — <N> 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:cat adapters/<name>/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
<post_dir>/variants/<name>.md
Step 7: Create Manifest
Create manifest.yaml following the format in lib/manifest-ops.md:
title: "<title>"
created: <ISO 8601 now>
updated: <ISO 8601 now>
source: source.md
tags: [<from brief or article>]
language: en
canonical_url: ""
assets: []
variants:
<for each adapter>:
file: variants/<name>.md
format: <from adapter.yaml content_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 — <word count> 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