@mikefluff/skills
v1.9.0
Published
17 Claude Code skills for editing prose, marketing copy, release notes, RFCs, cold outreach, and AI image/video prompts. Offline regex linter (28 categories) catches LLM-prose tells in EN + RU.
Maintainers
Readme
skills
A small, opinionated collection of Claude Code skills for editing prose without producing text that reads like LLM output. Russian-first, English-capable.
Seventeen skills, one base linter + twelve wrappers + three linters + one meta-skill. Plain markdown, MIT-licensed, no required external deps.
Install
# Curl (5 seconds, no deps)
curl -fsSL https://raw.githubusercontent.com/Mikefluff/skills/main/install.sh | bash
# npm
npm install -g @mikefluff/skills && skills install
# Homebrew (after tap)
brew tap mikefluff/tap https://github.com/Mikefluff/homebrew-tap
brew install mikefluff/tap/skills && skills install
# Docker (for CI — no install into ~/.claude needed)
docker run --rm -v "$PWD:/work" ghcr.io/mikefluff/skills lint /work/draft.mdSkills appear after Claude Code session restart. Discovery is automatic via name: and description: in each skill's frontmatter — no ~/.claude/settings.json edits required.
For all install options + troubleshooting, see docs/INSTALL.md.
First time? Start here
→ User Guide — pick your scenario, walk through it end-to-end.
→ Skill Index — all 17 skills indexed by layer, domain, and language.
→ Composing recipes — 14 named workflows showing how to chain skills.
Quick scenario picker:
| You want to … | Walkthrough | |---|---| | Write a viral social-media post | RU · EN | | Edit a fiction chapter | fiction-chapter | | Draft a long-form essay | non-fiction | | Verify a multilingual translation | translation-parity | | Auto-lint every commit | pre-commit-hook | | Audit a chapter against your story bible | canon-check-audit | | Insert a Pelevin-vector digression | digression-insertion | | Run a read-only quality gate | style-check-gate | | Rewrite text in a different register | USER-GUIDE | | Draft a cold outreach email | USER-GUIDE | | Generate an AI image prompt (Midjourney/DALL-E/Flux) | USER-GUIDE | | Generate an AI video prompt (Kling/Veo/Sora/Runway) | USER-GUIDE | | Write UX microcopy (errors, empty states, tooltips, buttons) | USER-GUIDE | | Write release notes / changelogs | USER-GUIDE | | Write an RFC / ADR / design doc | USER-GUIDE | | Write marketing copy (landing / SEO / ads) | USER-GUIDE |
If something looks wrong: FAQ · Troubleshooting.
What's in the box
| Skill | Layer | Languages | Purpose |
| --- | --- | --- | --- |
| writer | base | ru/en | Base clean-prose editor — antinyeyroslop (28 categories), typography, structural synthetics, RU calques. Invoked by all other prose skills. |
| viral-text | wrapper | ru/en | Write viral social media content — hooks, numbered points, micro-conclusion with NLP question, CTA. 41 viral content rules + platform adaptation. |
| prose-edit | wrapper | ru | Fiction rewrite layer — Pelevin/Manson voice vector, 10-item style drift checklist, no meta-refs / anglicisms in narrator voice, long artistic rewrite (no comma-stitching), ToV pattern, 5-trigger structural-synthesis detector, Postirony depth-pass. |
| essay-write | wrapper | ru | Non-fiction layer — long subordinate sentences (Manson style), source-backed claims, philosophy through humor, biography through scenes, plain-Russian for complex content. |
| style-check | linter | ru/en | Read-only pre-commit lint that stacks writer + prose-edit + essay-write rules. Routes by configurable path patterns (fiction vs non-fic), BLOCKING/WARNING/INFO severity, exit-code semantics for git hook. |
| translation-sync | linter | ru/en/pt-br | Read-only pre-commit parity checker for trilingual book translations (RU↔EN↔PT-BR) — typography per language, terminology canon, anchor-quote drift, names/patronymics/diminutives, cultural realia footnotes, no-smoothing of numbers/brands/dates. BLOCKING/WARNING/INFO severity with exit-code semantics for git hook. |
| canon-check | linter | ru/en | Story-bible consistency auditor for any book series. Greps entities (characters / artifacts / locations) in changed chapters, cross-references the project's story-bible document, flags BLOCKING contradictions / WARNING gaps / INFO new details. Read-only — trust the text, not memory. |
| pelevin-digression | wrapper | ru | Write a Pelevin-style digression for a fiction or non-fiction passage — 12 structural techniques + 5 banned constructions. Wraps prose-edit (fiction) or essay-write (non-fic). Invoked by request, not auto-applied. |
| skills-update | meta | en/ru | User-invocable update check + apply for this collection. Compares local install marker with latest GitHub release, shows CHANGELOG diff, asks for confirmation, runs install.sh --update. |
| tone-shifter | wrapper | en/ru | Rewrite a passage in a different register (formal↔casual, business↔academic, technical↔friendly, plain-explainer) without changing meaning. 6 registers + named transformation deltas. Wraps writer as final cleanup. |
| cold-email | wrapper | en/ru | Write or rewrite cold outreach emails (first-touch, follow-up, intro request, re-engage). 5-block structure, ≤120-word budget, banned ceremony patterns, anti-template subject lines. Wraps writer as final cleanup. |
| image-prompt | wrapper | en/ru | Write prompts for AI image generators (Midjourney, DALL-E, Flux, Nano Banana, Stable Diffusion). 6-part formula (subject + setting + style + lighting + camera + texture), per-model deltas, negative prompts. |
| video-prompt | wrapper | en/ru | Write prompts for AI video generators (Kling, Veo, Sora, Runway, Pika, Hailuo, Luma). CHARACTER FIRST law, beat structure (Beat 1/2/3), exact camera vocabulary, pacing modes (narrative/action/comedy/documentary/timelapse). |
| microcopy | wrapper | en/ru | Write UX microcopy — error messages, empty states, tooltips, button labels, helper text, modals, 404/500 pages, onboarding. Plain language, action-oriented, never blame user, length budgets per element type. Wraps writer for final cleanup. |
| release-notes | wrapper | en/ru | Write user-facing release notes + changelogs. Keep-a-Changelog format, sections Added/Changed/Fixed/Deprecated/Removed/Security. Per-audience tone (user/dev/ops). Anti-marketing-fluff bans. Wraps writer. |
| rfc-writer | wrapper | en/ru | Write engineer-facing design docs — RFCs, ADRs, Tech Specs, Design Docs. Structure: context/problem/proposal/alternatives/consequences/decision. RFC 2119 (MUST/SHOULD/MAY). Review checklist for spotting weak alternatives sections. |
| landing-copy | wrapper | en/ru | Write marketing copy — landing page sections (hero/features/pricing/FAQ), SEO meta (title+description+OG+Twitter), ad copy (Google/Facebook/LinkedIn/X). Julian Shapiro hero formula, char limits per platform. Wraps writer. |
Skills compose: wrappers call writer internally; linters reference the same rule files but don't mutate. See docs/COMPOSING.md for the dependency graph.
Updates
Three ways, increasing in eagerness:
- On demand: invoke
/skills-updateinside Claude Code. - Ambient status-line banner (opt-in):
bash scripts/install-hook.sh. Shows· skills v1.0.1→1.2.0 +1 skillwhen an update exists. - CLI:
bash install.sh --check/bash install.sh --update [--prune].
The banner / /skills-update never updates without explicit user confirmation.
Common install flags
# install a subset
curl -fsSL .../install.sh | bash -s -- --skills writer,viral-text
# install to a custom prefix
curl -fsSL .../install.sh | bash -s -- --prefix /tmp/skills
# pin a specific version
curl -fsSL .../install.sh | bash -s -- --version 1.0.1
# re-install (overwrite existing skills)
bash install.sh --update
# check what's installed vs what's available
bash install.sh --check
# uninstall everything
bash install.sh --uninstallFull installer help: bash install.sh --help.
Repo layout
skills/
├── README.md # this file
├── VERSION # semver, single source of truth
├── CHANGELOG.md # Keep-a-Changelog
├── skills.json # machine-readable manifest used by installer
├── install.sh # pure-bash installer, curl-pipeable
├── Makefile # local dev convenience
├── CONTRIBUTING.md # how to add a skill / report a bug / propose new one
├── docs/
│ ├── USER-GUIDE.md # ← start here as a user
│ ├── walkthroughs/ # detailed per-scenario flows
│ ├── FAQ.md
│ ├── TROUBLESHOOTING.md
│ ├── COMPOSING.md # dependency graph + composition patterns
│ ├── VERSIONING.md # semver policy + release flow
│ └── LINTER-COVERAGE.md # auto-generated regex coverage
├── scripts/
│ ├── validate.sh # frontmatter + cross-link + description-quality check
│ ├── check-docs-consistency.sh # skills.json ↔ README ↔ USER-GUIDE ↔ walkthroughs
│ ├── gen-skills-table.py # regenerate the README skills table from skills.json
│ ├── smoke.sh # validate + writer linter regression + fixture snapshots
│ ├── coverage.py # regenerate docs/LINTER-COVERAGE.md
│ ├── bump.sh # bump VERSION + promote [Unreleased] CHANGELOG section
│ ├── new-skill.sh # bootstrap a new skill folder
│ ├── decide-bump.sh # parse conventional commits since last tag
│ ├── lint-description.py # frontmatter description quality (advisory)
│ └── install-hook.sh # idempotent status-line banner installer
├── hooks/
│ └── skills-update-banner.js
├── tests/ # fixture snapshots for writer/scripts/lint.py
├── .github/ # workflows + issue/PR templates + SECURITY.md
└── <skill-name>/ # the 17 skills, one folder eachLocal development
make help # list all targets
make install # install from this checkout to ~/.claude/skills/
make smoke # validate + linter regression + fixture snapshots
make check-docs # docs-consistency gate
make gen-readme # regenerate skills table
make new-skill NAME=foo-bar DESC="..."Releases are automatic — push a conventional-commit message (feat:, fix:, feat!:, etc.) and .github/workflows/release.yml bumps + tags + publishes. See docs/VERSIONING.md.
Want to contribute? Read CONTRIBUTING.md. PRs welcome.
License
MIT — see LICENSE.
