Changelog
> git log --oneline
▸2026-09-30work voices live in your workspacev1.1.4Marketing skills
/writing-assistant finds work voices in your workspace. A work voice (company blog, employer content) is now a markdown file in the workspace it belongs to, marked pack: voice in its front-matter, with a voice name, an optional company, and an optional extends pointing at a broader voice it builds on (for example a workspace baseline under per-company voices). The skill no longer reads a routing file inside its own folder. With several voices it picks the one for the company the piece is about and asks when that is unclear. Blank sections fall back to the voice it extends, then to a plain professional register, and never to the personal voice. The personal voice is unchanged. Work voices in the old location (references/<client>-voice.local.md) still work during the move, but only from a directory whose path contains the client's name; move them into your workspace with the new front-matter.
▸2026-09-30company packs stay in your workspacev1.1.3Marketing skills
Reporting skills keep company packs in your workspace, not in the library. /pipeline-analysis, /marketing-monthly, and /campaign-report no longer store or list context packs inside their own folders. They search the directory you launch from for markdown files whose front-matter says pack: reporting (with company and optional aliases), take company and period as arguments in any order (/marketing-monthly September Acme, /pipeline-analysis Q3 Acme), and always confirm both in one question. Without arguments they list the companies they found and propose a period. New packs are created in the workspace, with pipeline-analysis's three engine files in a reporting/ folder beside the pack. /marketing-monthly now proposes the last full month instead of the running month. Why: every workspace on a machine could see, and load, every other workspace's pack, and a pack file sitting in the library's working tree was one misnamed file away from a public commit. Packs in the old location (references/<client>-context.local.md) still work during the move, but only from a directory whose path contains the client's name; move them into your workspace and add the front-matter from context-pack.TEMPLATE.md.
/linkedin-ads and /content-strategy follow the same rule. Both already read company context from the launch directory first. Their optional machine-local packs (references/<client>-context.local.md) are now legacy: offered only when the client's name appears in the launch directory's path, with an offer to move them into the workspace. Neither skill saves company context in its own folder.
/cinemagraph: GIF guidance for choreographed loops. The skill no longer says a long choreographed GIF is usually too heavy. With flat art and one beat moving at a time, the GIF stores only the part of each frame that changed and merges identical frames, so 13 s loops at 1080 × 1080 came to 0.6–1.5 MB. Gradients, photos, and whole-canvas motion still call for the WebP or the CSS-animated SVG. The skill now also says to check the destination’s GIF limits before rendering.
▸2026-09-29every beat keeps its colourv1.1.2Marketing skills
Fix: /cinemagraph GIFs keep every beat’s colour. render_loop.py --gif built the GIF’s 256-colour palette from two frames, the first and the middle one. A colour that appeared on neither frame was swapped for the nearest one that did. In a choreographed loop, where each beat has its own accent, that meant whole beats rendered in the wrong hue: in a five-beat test loop, amber came out green, and coral and violet came out blue. The palette is now sampled from frames spread evenly across the loop (as many as fit in about 40 megapixels). A new test, tests/test_gif_palette.py, renders a five-beat loop with one hue per beat and fails if any beat changes colour in the GIF. WebP output was never affected. If you made a GIF of a multi-colour loop with an earlier version, render it again.
/cinemagraph gets a second intensity. Next to ambient (one to three quiet layers, noticed on the second look), choreographed acts the image's own content out one beat at a time, like a product demo loop: each beat lights its part of the image, stages a staggered build, holds the result and resets, so dozens of pieces move per loop but only one beat plays at once. Intake now asks for the intensity next to the mode, and a report that the last loop went unnoticed maps to choreographed. New output: a CSS-animated SVG for vector art, which plays in an <img> and in GitHub READMEs at a few tens of KB whatever the loop length.
▸2026-09-28Marketing skills moves to SkillCraftBoth
▸2026-09-15the Visual aisle, fully stockedv1.1.1Marketing skills
/beautify-github-readme and /frontend-design-anti-slop move from Marketing Ops into skills/Visual/, next to /cinemagraph. No skill content changed.
After pulling, re-run install.ps1 / install.sh once: junctions or symlinks created by an earlier run point at the old paths.
Full notes: CHANGELOG.md
▸2026-09-15the shelf gets a Visual aislev1.1.0Marketing skills
New category: Visual (skills/Visual/) for skills that produce or transform visual assets.
New skill: /cinemagraph — turn a static image (hero, chart, diagram, screenshot) into a subtle seamless loop: animated WebP + static PNG fallback, or GIF for READMEs.
- Light mode keeps the image visually identical and moves only what is already in it (marching dots, a pulsing marker, a drifting hatch, a highlight flowing along a connector).
- Heavy mode may add new moving elements (scan line, drawn path, particles, counter) while keeping ~95% of the original untouched.
Ships with three techniques (overlay, region loop, redraw), a motion vocabulary with phase formulas, a phase-stepping renderer whose --check verifies loop seam, moving region and weight, an image probe, two worked examples and three eval prompts.
Requires Python 3 with Pillow and Playwright (Chromium). No API keys.
Full notes: CHANGELOG.md
▸2026-09-06the shelf, stockedv1.0.0Marketing skills
A working marketer's Claude Code skill library. Type a slash command, or describe the problem in
your own words, and the matching skill asks you a couple of questions, reads your files only when
you say yes, and does the work.
What's in 1.0.0
44 skills in three categories. Writing (drafting, de-slopping, long-form copyedits), SEO (a
router and an orchestrator over 30 specialists, plus a GA4 and Search Console report), and Marketing
Ops (content strategy, customer research, CRO, lead magnets, launches, LinkedIn Ads, a simulated
advisory board, and two presence skills). 18 SEO sub-agents ship alongside them.
One way to install. install.ps1 on Windows, install.sh on macOS and Linux. Each skill is
linked into ~/.claude/skills, so the file Claude Code runs is the file in the repo: a git pull
updates everything, and an edit through the link lands back in version control.
One way to handle your context. No skill assumes a folder layout. Each one scans the directory
you launched from, lists what it found, and asks whether to use it, look elsewhere, take pasted
text, or start with nothing. Nothing is read without a yes.
No API keys to start. Connect Google Analytics 4, Search Console or DataForSEO and the
data-driven skills switch from asking you for numbers to pulling them. A number a skill cannot get
is written as unknown, never invented. Setup is in docs/data-connections.md.
Provenance
Original skills are MIT. Vendored work keeps its upstream license, with the license file inside each
folder: the claude-seo suite by AgriciDaniel (v2.2.5,
MIT), four skills from Corey Haines (MIT), and
beautify-github-readme by oil-oil (MIT).
Methodologies are credited inline where a skill encodes someone's framework. INVENTORY.md has the
per-skill detail and NOTICE maps folders to licenses.
▸2026-08-18Redesign: Clean v2 with Dark + Light ModeSkillCraft
/ in the marketplace focuses the search box.▸2026-06-11Public Skill Pages + Free DownloadsSkillCraft
▸2026-05-13Skill Last-Updated TimestampSkillCraft
updated_at — any content edit (author self-edit, author resubmit after rejection, admin edit) now writes an updated_at timestamp to the database.▸2026-04-09Rejection Feedback FlowSkillCraft
▸2026-04-07Feedback Page + Upvote PerformanceSkillCraft
▸2026-04-06Welcome Page Redesign + CANDORSkillCraft
▸2026-04-06Real Skills + Achievements Overhaul + Toast System + Skill EditingSkillCraft
▸2026-04-06Achievements Overhaul + Toast System + Skill EditingSkillCraft
▸2026-04-05Phase 4 Complete + Hybrid Rarity + MobileSkillCraft
▸2026-04-04Strategy Category + Rarity FixSkillCraft
▸2026-04-03Admin System + GA4SkillCraft
/admin page with Skills, Users, and Analytics tabs▸2026-04-03Leaderboard + Display Names + Social ProofSkillCraft
/leaderboard with 4 ranked tables: skills by downloads, skills by upvotes, users by total upvotes, users by average upvotes/api/stats endpoint▸2026-04-02Rebrand + DeploySkillCraft
▸2026-04-02Changelog + Pixel Font + Welcome PolishSkillCraft
/changelog with collapsible entries, terminal styling, green dates, amber headings▸2026-04-02Phase 3: Welcome Page RedesignSkillCraft
/browse renamed to /marketplace for clarity