media — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited media (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The complete guided workflow: idea → write → image → publish.
This orchestrator is a thin sequencer. For each stage, it reads the shared library files and follows the same logic as the individual sub-skills.
Read these shared library files before proceeding:
lib/adapter-discovery.mdlib/manifest-ops.mdlib/image-processing.mdCheck if there's an in-progress post:
# Find posts with draft variants (not yet fully published)
for dir in content/posts/*/; do
if [ -f "$dir/manifest.yaml" ]; then
has_draft=$(python3 -c "
import yaml
with open('${dir}manifest.yaml') as f:
m = yaml.safe_load(f)
variants = m.get('variants', {})
drafts = [k for k,v in variants.items() if v.get('status') in ('draft','pending','failed')]
print('yes' if drafts else 'no')
" 2>/dev/null)
if [ "$has_draft" = "yes" ]; then
echo "IN_PROGRESS: $dir"
fi
fi
doneIf an in-progress post is found, use AskUserQuestion: "Found an in-progress post: '<title>'. What would you like to do?"
Read the manifest to determine which stage to resume from:
source.md → resume from ideation/writing (Stage 1-2)source.md exists but no variants → resume from variant generation (Stage 2, Step 5)draft → resume from publishing (Stage 4)Read skills/media-idea/SKILL.md and follow its workflow.
This stage produces a brief.yaml in the post directory.
If a brief.yaml already exists (resume scenario), skip to Stage 2.
Read skills/media-write/SKILL.md and follow its workflow.
This stage produces:
source.md (canonical content)variants/<name>.md for each platformmanifest.yamlIf source.md and variants already exist (resume scenario), ask if the user wants to edit or proceed to images.
Read skills/media-image/SKILL.md and follow its workflow.
This stage produces:
assets/If images already exist (resume scenario), ask if the user wants to regenerate or proceed to publishing.
Skip condition: If the user doesn't have an OpenAI API key configured and doesn't want to provide their own images, skip this stage entirely.
Read skills/media-publish/SKILL.md and follow its workflow.
This stage:
After publishing, show the final summary:
=== Content Published! ===
"<title>"
Source: content/posts/<slug>/source.md (<word count> words)
Published to:
[OK] Dev.to → <url>
[OK] Hashnode → <url>
[OK] GitHub Pages → <url>
Images: <count> generated, resized for <count> platforms
Manifest: content/posts/<slug>/manifest.yaml
What's next?
- Run /media to write another post
- Edit source.md and run /media-write --update to regenerate variants
- Run /media-publish to retry any failed platformsIf any stage fails:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.