Atomizekit
Skill Karanjot786/atomizekit
Keyless content engine for Claude Code: one idea → blog + 7 platform drafts + image cards + voiced video + AI-citation tracking. Draft-only.
npx -y skills add Karanjot786/atomizekitAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 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
Use when the user wants to create and distribute brand content — a blog post plus native posts for X, LinkedIn, Reddit, Instagram, YouTube, Medium, and Substack, with on-brand image cards and voiced short-form video — or wants to set up a keyless content engine for their brand or codebase, or get their content cited by AI answer engines (ChatGPT, Perplexity, Google AI). Triggers include "set up atomizekit", "make content about X", "turn this blog into posts", "atomize this article", "content for my brand", "AI SEO / GEO / get cited by AI".
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.9 KB, as published. Nobody here has run it
atomizekit — keyless brand content engine
One topic → one canonical blog post → native drafts for every platform + on-brand image cards + a voiced short + a data reel → AI-citation tracking that tells you what to write next. Keyless (no AI/platform API keys — you are the engine via Claude Code). Draft-only: nothing publishes or posts; a human posts each piece.
FIRST-RUN RULE (do this before anything else)
Resolve config in this order: <cwd>/.claude/atomizekit.config.json (host project),
then the skill's brand/brand.json (standalone fallback). If neither exists, or if
cwd is a project (has package.json/.git) and it has no host config of its own,
run commands/setup.md first — do not silently reuse a brand/brand.json left by
a different project. Setup analyzes the host codebase, interviews the user, and writes
<cwd>/.claude/atomizekit.config.json. Never guess brand facts. Scripts fail loud
with this same instruction when config is missing.
Throughout, <skill> = this skill's directory; run scripts from the user's project
root (cwd) so blog/distribution/data land in their repo.
The pipeline (in order)
- Topic. If the user gave one, use it. If not: pull the measured gap queue from
<cwd>/data/geo/next-topics.jsonif it exists (what you're NOT cited for yet), and/or research trends (thelast30daysskill if installed, elseWebSearch); cluster into 4–6 candidates and let the user pick (AskUserQuestion). - Write the blog —
commands/write.md→ a GEO-structured draft at<blogDir>/<slug>.mdx. Draft only; never setstatus: published. - Atomize —
python3 <skill>/scripts/atomize.py --slug <slug>scaffolds the configured platforms under<distributionDir>/<slug>/+ apost.json. Then write each variant natively perreferences/playbook.md(one insight per platform, canonical link in each, one woven feature except Reddit). Fillpost.jsonstat/statLabel(one REAL number from the blog) andscenes[](from the YouTube variant) for the video. - Visuals —
commands/visuals.md. All output lands in<distributionDir>/<slug>/media/in the user's project.node <skill>/scripts/render_cards.mjs <slug>→ 4 PNGs. Keyless, Node-only — always available.- Video needs the hyperframes toolchain: gate on
npx hyperframes doctor --json(FFmpeg 7+, Chrome green) first, and the voiced renders below needpip install kokoro-onnx soundfile(local TTS). If those aren't present, ship the cards + text drafts and tell the user what to install for video — don't fake a render. node <skill>/scripts/render_reel.mjs <slug>→ voiced stat reel.node <skill>/scripts/render_short.mjs <slug>→ voiced kinetic-text short.
- Report every draft + media path. Remind: draft-only, the user posts each by hand. Do NOT commit/publish unless asked.
Separate cadence — Measure (not part of each content job): on a schedule you
choose, node <skill>/scripts/geo/measure.ts runs prompts × N through the (stubbed,
keyless) citation providers and writes data/geo/next-topics.json, which step 1 of
the NEXT job reads. Run it periodically, not at the end of every piece.
Commands & references
| File | What |
|---|---|
commands/setup.md | First-run: codebase analysis + brand interview → config |
commands/write.md | GEO-structured blog draft |
commands/atomize.md | Scaffold platform variants from the blog |
commands/visuals.md | Render image cards + reel + voiced short |
commands/dashboard.md | Local review dashboard: node scripts/dashboard.mjs — see all drafts + media, mark posted |
references/playbook.md | Per-platform voice rules (2026-researched) + brand weave + AI-tell avoidance |
references/geo-writing.md | How content earns AI-answer citations (structure, schema, data) |
Brand config
All brand specifics live in ONE file (.claude/atomizekit.config.json in the host
project, or brand/brand.json in the skill): name, domain, canonicalPattern,
blogDir, distributionDir, audience, voice, author, colors, fonts, logo,
eyebrow, platforms, and features (the advice→product map for the brand weave).
brand/brand.template.json is the annotated contract. /setup writes it; every
script reads it via scripts/lib_brand.mjs (host config wins, so one install serves
many projects).
Prerequisites
- Node ≥ 22.15, Python 3 (always).
- FFmpeg 7+, Chrome (for any video render). Gate on
npx hyperframes doctor --json. - Optional:
pip install kokoro-onnx soundfilefor voiced renders (local Kokoro TTS — still no key).PEXELS_API_KEY(free) for stock VIDEO beds; without it, keyless Openverse CC0 images are the fallback.
Honest limits
- Video needs a doctor-green hyperframes toolchain; images (takumi) need only Node.
- Posting is manual by design — no platform credentials here, ever. This keeps the system inside every platform's 2026 ToS (penalties attach to mass/undisclosed automation, not to human-reviewed native content).
- GEO citation providers are stubbed keyless; wiring real Perplexity/Gemini/GSC keys is optional and left to the user (the stubs are deterministic for testing).
- Test the skill after install:
npm install && npm test(from<skill>) should be green and render 4 demo cards.