npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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.

Readme

skills

ci release version license

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.md

Skills 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:

  1. On demand: invoke /skills-update inside Claude Code.
  2. Ambient status-line banner (opt-in): bash scripts/install-hook.sh. Shows · skills v1.0.1→1.2.0 +1 skill when an update exists.
  3. 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 --uninstall

Full 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 each

Local 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.