- 310 registry:skill items, 1528 files, 7 categories (hub tags) - registry.json generated by @kortix/registry buildRegistry - nested SKILL.md in sn-da-* renamed SUBSKILL.md (no phantom skills) - provenance + licenses: SOURCES.md
2.8 KiB
2.8 KiB
Blog Write Delivery Checklist
Writer-specific companion to skills/blog/references/blog-delivery-contract.md.
Gate Steps
- Capability discovery and hero:
- Run
python3 scripts/blog_preflight.py --draft <folder> --gate 1. - If a valid local hero already exists, keep it.
- If generation is needed, use
blog-imageorpython3 scripts/generate_hero.py --topic "<title>" --tags "<tags>" --out <folder>. - Record provider, model ID, prompt, license, and attribution.
- Run
- Format completeness:
- Run
python3 scripts/blog_render.py --md <slug>.md --out-dir <folder>. - Require markdown, HTML, PDF, and a local hero asset when the deliverable requires a hero.
- Run
- Content review:
- Dispatch the
blog-revieweragent with the rendered HTML. - Require score 90/100 or higher and zero P0 issues.
- Save the review to
<folder>/review.mdending withBLOCKING: true|false (reason).
- Dispatch the
- Visual and asset gates:
- Run
python3 scripts/blog_preflight.py --draft <folder> --strict. - Strict delivery requires renderer support for visual checks. If the renderer is unavailable, mark the output non-shippable instead of treating it as passed.
- Run
- Iteration:
- Use
<folder>/preflight-report.jsonas the diagnostic input. - Stop after 3 failed iterations and present the diagnostic.
- Use
URL And Asset Safety
- Allow
httpandhttpsonly. - Reject
javascript:,data:, andfile:URLs. - Resolve DNS and reject loopback, private, link-local, multicast, and reserved IP ranges.
- Disable redirects or validate the final URL with the same rules.
- Use tight timeouts and response-size caps.
- Prefer official provider APIs and Openverse so license and creator metadata are preserved.
- Download assets locally and store attribution with the draft.
Completion Summary
## Blog Post Complete: [Title]
### Template Used
- [Template name] or "generic outline"
### Statistics
- [N] sourced statistics from tier 1-3 sources
- [N] unique sources cited
### Visual Elements
- Cover image: [local path, source, model ID or license]
- [N] inline images
- [N] SVG charts
- [N] YouTube video embeds
### Dual-Optimization Elements
- Summary box: present
- Information gain markers: [N]
- Evidence-backed sections: [N]
- Internal linking zones: [N]
### Structure
- [N] H2 sections with answer-first formatting
- [N] FAQ items when warranted
- Word count: ~[N] words
### Optional Editorial Style Diagnostics
- Sentence-length variation: [descriptive observation]
- Configured style-list terms: [N found]
- Voice fit: [brief observation]
- These diagnostics do not infer authorship or affect Google/readiness scoring.
### Next Steps
- Resolve [INTERNAL-LINK] placeholders with actual URLs
- Run `/blog analyze <file>` to verify quality score
- Generate VideoObject schema with `/blog schema <file>` when videos are present