For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Normalize supported standalone media links in staged blog posts before commit and enforce the same shape through the shared validator path.
Architecture: Add a new scripts/normalize_post_media_links.py transformer that rewrites standalone YouTube, Twitter/X, and generic bare URL lines in _posts/*.md. Reuse embed rendering from the existing WordPress embed normalizer, call the transformer from the tracked hooks/pre-commit template, and extend the shared validator to catch any leftover supported lines for posts on or after the rollout date.
Tech Stack: Python 3, unittest, git hooks, existing repository scripts
Files:
Create: tests/test_normalize_post_media_links.py
python3 -m unittest tests/test_normalize_post_media_links.py and verify the new tests fail for the missing module or behaviorFiles:
scripts/normalize_post_media_links.pyModify: scripts/normalize_wp_embeds.py
python3 -m unittest tests/test_normalize_post_media_links.py tests/test_normalize_wp_embeds.py and verify the new tests passFiles:
Modify: tests/test_validate_posts.py
python3 -m unittest tests/test_validate_posts.py and verify the new tests fail before validator changesFiles:
scripts/validate_posts.pyModify: hooks/pre-commit
python3 -m unittest tests/test_validate_posts.py tests/test_normalize_post_media_links.py tests/test_normalize_wp_embeds.py and verify all passFiles:
docs/superpowers/specs/2026-03-27-auto-convert-media-links-design.mdModify: docs/superpowers/plans/2026-03-27-auto-convert-media-links-implementation-plan.md
python3 scripts/validate_posts.py --today "$(date +%F)" and verify repository validation still passes#105