writing-skills
15 writing-style skills for AI agents: 8 measurable frameworks, 7 character voices.
Plain SKILL.md files. Works in any agent that reads skills
(Claude Code, opencode, Codex, Cursor, Kiro, Gemini).
Install
npx skills add writing-skills
One command, every agent on your machine.
Other install methods
| Harness | Command |
|---|---|
| Claude Code plugin | /plugin marketplace add surendranb/writing-skills then /plugin install writing-skills@writing-skills |
| Codex ≥ 0.147 / Kiro | git clone https://github.com/surendranb/writing-skills.git — plugin.json is auto-discovered |
| npm | npm install writing-skills |
| Python | uv add writing-skills or pip install writing-skills |
Use
Ask for the style. The skill loads itself.
"rewrite this in plain language" · "make this a BLUF business update" · "press release in AP style" · "say it like Yoda"
Every skill ends with a Verify checklist the agent must pass before it delivers.
Examples
| You say | Skill that fires | What you get |
|---|---|---|
| "Simplify this insurance letter so anyone can read it" | plain-language |
Sentences ≤25 words, passive voice stripped, jargon replaced — checked against the Plain Writing Act rules |
| "Turn these notes into an update for my VP" | business-writing |
BLUF first line, the ask and deadline explicit, buzzwords deleted |
| "Write the release notes for v2.0" | google-dev-docs |
Active voice, present tense, verb-first headings |
| "Draft the outage announcement" | corporate-communication |
News in line one, reader impact named, zero euphemism |
| "Make this maintenance manual usable by non-native speakers" | asd-ste100 |
Simplified Technical English: one instruction per sentence, no idioms |
| "Press release for the funding round, AP style" | journalism-ap |
AP Stylebook attribution and number rules, no editorializing |
| "Explain recursion like Bob Ross" | bob-ross |
A happy little explanation — calm, encouraging, and technically correct |
| "Rejection email, but make it Paddington" | paddington |
Firm news delivered with unfailing politeness |
The skills
Frameworks — real standards, enforced
| Skill | Enforces |
|---|---|
plain-language |
Plain Writing Act. Sentences ≤25 words, passive ≤10%, jargon ban list. |
business-writing |
BLUF first line, explicit ask + deadline, buzzword ban list. |
corporate-communication |
News first, reader impact named, zero euphemism. |
gov-uk-style |
GOV.UK guide. Keyword-first headings, ≤5-sentence paragraphs. |
asd-ste100 |
Simplified Technical English. One instruction per sentence, no idioms. |
google-dev-docs |
Google style. Active voice, present tense, verb-first headings. |
journalism-ap |
AP Stylebook. Attribution, number rules, zero editorializing. |
scott-adams |
Simplicity-is-persuasion. Curiosity-hook openers, ≤15-word sentences, prune "very/really". |
Voices — characters, rate-limited against caricature
ted-lasso · jack-sparrow · shrek · yoda · winnie-the-pooh · paddington · bob-ross
Contribute
Copy template/SKILL.md, fill it, run
python3 scripts/validate_skills.py. CI enforces the contract — see
CONTRIBUTING.md.
License
MIT — Surendran B
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file writing_skills-0.5.1.tar.gz.
File metadata
- Download URL: writing_skills-0.5.1.tar.gz
- Upload date:
- Size: 33.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9769c8de16f8e76fc8e3b3f5bae783f5bd8e771cf7a2e619e61b85475a417384
|
|
| MD5 |
6b5b54c0ce16dd2804e034df7fef2f1e
|
|
| BLAKE2b-256 |
06a3fbe1f60a3ca8664b482f57eb2d3a5cb1d43723e77279dd125543a1af9041
|
Provenance
The following attestation bundles were made for writing_skills-0.5.1.tar.gz:
Publisher:
release.yml on surendranb/writing-skills
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
writing_skills-0.5.1.tar.gz -
Subject digest:
9769c8de16f8e76fc8e3b3f5bae783f5bd8e771cf7a2e619e61b85475a417384 - Sigstore transparency entry: 2613234271
- Sigstore integration time:
-
Permalink:
surendranb/writing-skills@5908a036c1bef7bc7e6137ce5875f15d0691c900 -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/surendranb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5908a036c1bef7bc7e6137ce5875f15d0691c900 -
Trigger Event:
release
-
Statement type:
File details
Details for the file writing_skills-0.5.1-py3-none-any.whl.
File metadata
- Download URL: writing_skills-0.5.1-py3-none-any.whl
- Upload date:
- Size: 35.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf43bf0b4f6229a7dd9b5f06621902412349a509c75e375766b109697113a699
|
|
| MD5 |
53a0c20500e2c6372929986444a9a9a1
|
|
| BLAKE2b-256 |
6f5c6324b097558090eed7deaea4f12e497a7d078c18af6a6f221c1e4fc3433c
|
Provenance
The following attestation bundles were made for writing_skills-0.5.1-py3-none-any.whl:
Publisher:
release.yml on surendranb/writing-skills
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
writing_skills-0.5.1-py3-none-any.whl -
Subject digest:
bf43bf0b4f6229a7dd9b5f06621902412349a509c75e375766b109697113a699 - Sigstore transparency entry: 2613234311
- Sigstore integration time:
-
Permalink:
surendranb/writing-skills@5908a036c1bef7bc7e6137ce5875f15d0691c900 -
Branch / Tag:
refs/tags/v0.5.1 - Owner: https://github.com/surendranb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5908a036c1bef7bc7e6137ce5875f15d0691c900 -
Trigger Event:
release
-
Statement type: