Agent skill

Plain Writing

by teddytennant in teddytennant/wizard

Write prose that reads like a person wrote it, not a model. An agent skill from teddytennant/wizard.

Apache-2.0Auto-check passedDevelopment

Install Plain Writing

skills CLI
$ npx skills add teddytennant/wizard --skill plain-writing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install teddytennant/wizard plain-writing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/teddytennant/wizard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/registry/skills/teddytennant/plain-writing .claude/skills/plain-writing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
plain-writing
GitHub stars
53
Token cost
~1.7k tokens
SKILL.md length
939 words
Files
2
Skills in repo
6
Repo updated
First seen
Licence
Apache-2.0

At a glance

Write prose that reads like a person wrote it, not a model. An agent skill from teddytennant/wizard.

  • Works in 3 steps: Who reads this, and what do they already… → What do they do differently after… → What is the shortest form that still…
  • The user says the writing sounds like AI
  • SKILL.md covers Before writing, Rules everywhere, Code comments and Docstrings, tool and API…, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Plain Writing is an agent skill from teddytennant/wizard. Write prose that reads like a person wrote it, not a model. Use before writing or editing any code comment, docstring, README, doc page, tool or API description, config help text, commit message, PR title or body, review reply, issue comment, changelog entry, or release note. Also use when the user says the writing sounds like AI, is slop, is too long, or asks to make it sound human.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.

It sits in Development, covering Technical documentation and Changelog and release notes. The repository describes itself as: The fastest agent in your terminal. The licence is Apache-2.0.

When your agent uses it

  • The user says the writing sounds like AI
  • Asks to make it sound human

Example prompts

  • “/plain-writing”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Who reads this, and what do they already know? Never explain their own
  2. What do they do differently after reading it? If nothing, do not write it.
  3. What is the shortest form that still carries the fact?

What it can do on your machine

Read from SKILL.md and the folder at commit b4290bf. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Plain Writing loads about 1.7k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 939 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~100
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from teddytennant/wizard at commit b4290bf, republished under its Apache-2.0 licence (© teddytennant). 939 words, ~1,699 tokens.

Download SKILL.mdSave it as .claude/skills/plain-writing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
plain-writing
description
Write prose that reads like a person wrote it, not a model. Use before writing or editing any code comment, docstring, README, doc page, tool or API description, config help text, commit message, PR title or body, review reply, issue comment, changelog entry, or release note. Also use when the user says the writing sounds like AI, is slop, is too long, or asks to make it sound human.
version
0.1.0

Plain writing

Someone decides whether to trust the work based on the first two sentences. They also decide, in those two sentences, whether a person wrote it.

The default failure is not being wrong. It is being padded, evenly formatted, and weightless: three paragraphs where one line was needed, a bullet list that restates the thing above it, adjectives about how robust it is. That reads as machine output and people discount everything after it.

Before writing

Answer three questions. If you cannot, you are not ready to write.

  1. Who reads this, and what do they already know? Never explain their own codebase back to them.
  2. What do they do differently after reading it? If nothing, do not write it.
  3. What is the shortest form that still carries the fact?

Rules everywhere

  • No em dashes. Comma, period, or semicolon.
  • No AI-tell vocabulary. delve, leverage (as a verb), robust, seamless, comprehensive, streamlined, moreover, furthermore, "it's worth noting", "in conclusion", "let's dive in", "at its core", "under the hood".
  • No bolded restatement of the title as the first line of the body. No "Key changes:" list that repeats what the reader can see.
  • No bullet walls. Bullets are for things that are genuinely a list: flags, steps, options. Not for splitting one thought into four fragments.
  • No emoji and no emoji headers, unless the surrounding project already uses them.
  • No hedge-and-claim. Do not write "should fix" or "this likely resolves". Either you checked or you say plainly that you did not.
  • Never name a command you did not run, a test you did not see pass, or a file you did not read. One invented detail costs more than the whole document earns.
  • No flattery, no apology, no closing offer to help. "Great question", "Hope this helps", "Happy to elaborate" are filler.
  • No AI attribution. Not in commits, PR text, comments, or docs.
  • A little unevenness is fine. Perfectly sanded prose is itself the tell. A dry aside or a slightly informal sentence reads human. A wrong fact does not.

Code comments

The line already says what it does. The comment says why, or it does not exist.

Delete: // increment i, // Constructor, # returns the result. Delete banner blocks of ==== around a section name. Delete a comment that repeats the function name back in a sentence.

Keep: the reason a value is 4096, the bug a workaround dodges with a link, the invariant the next person will break, the ordering that matters and looks arbitrary. Match the density and style of the file you are in.

// Retry twice. The upstream API 503s on cold start and recovers by the
// second attempt; more than that and we are papering over a real outage.

TODOs carry a name or an issue, or they are noise: // TODO(#412): drop once the v1 endpoint is gone.

Docstrings, tool and API descriptions

First line does the work: what it does, in one sentence, no restating the signature. Then only what the caller cannot see from the types: what it returns in the odd case, what it raises and when, what it mutates, units, whether it blocks.

For a tool or agent description, the reader is choosing whether to call it. Say what it is for and when to reach for it over the neighbor. Skip the paragraph on how it works internally.

Show full SKILL.md (409 more words)Show less

READMEs and docs

As short as possible but no shorter. What it is, how to install it, how to run it. A real example beats a description of the example.

No badge rows. No feature-bullet marketing. No "Contributing" or "Acknowledgements" boilerplate unless the project actually has that process. No architecture essay in the README when the reader is trying to run the thing.

If a section exists only because READMEs usually have it, cut the section.

Commits, PRs, and comments on other people's repos

Commit. Imperative, present tense, specific, one logical change. Fix panic in Table when a column constraint underflows, not fix bug or [FIX] Panic Issue. Body only when the why is not obvious. Commits are permanent, so keep them dry.

PR body. Three or four short paragraphs: what is broken and what triggers it, how to see it, what you changed and why that layer, how you verified it with the exact commands. No adjectives about how important the fix is.

Review replies. One or two sentences, then act. "Good catch, moved it to layout.rs. Pushed." Never argue past one exchange. If the maintainer says no, "Makes sense, thanks for looking" and close it.

Issue comments. Environment, minimal repro, observed output, expected output. Nothing else.

Put uncertainty at the end as a question. "I put the clamp in column_widths, but layout.rs may be the better home. Happy to move it." That reads as a person and it makes review easier.

Changelog and release notes

One line per change, written for someone deciding whether to upgrade. Lead with what changed for them, not with the internal refactor that caused it. Breaking changes first, with the migration in the same line if it fits.

Slop and the fix

This PR implements a comprehensive fix to address the aforementioned overflow.
It is worth noting that the solution is robust across edge cases and should
improve reliability going forward.

**Key changes:**
- Improved overflow handling
- Enhanced test coverage
Table panics on a one-column terminal when Length is wider than the area. I hit
this resizing a scratch TUI down to nothing, which is a dumb way to find it, but
the subtraction wraps before the clamp.

Moved the clamp above the subtraction. cargo test is green; added
underflow_one_column as a regression test.

Last pass, always

Run this before you hand the text over.

  1. Read it out loud in your head. If you would not send it to a coworker, rewrite it.
  2. Cut every sentence that does not change what the reader does. Usually the first one and the last one.
  3. Search for em dashes and the banned words. Replace, do not soften.
  4. Check the facts against what you actually ran. Title, body, and diff have to agree.
  5. Ask whether half the length would lose anything. If not, ship the half.

Delegating

Subagents default to verbose technical writing and README slop. Any subagent prompt that will produce prose gets these constraints pasted in, not a pointer to them.

© teddytennant, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in registry/skills/teddytennant/plain-writing of teddytennant/wizard.

  • SKILL.md
  • manifest.toml

Open the folder on GitHubat commit b4290bf

Compare with similar skills

Plain Writing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Plain Writing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plain Writing this skillteddytennant/wizard53—~1.7kAutomated safety check: PassApache-2.0
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
Ccb GitHubSeemSeam/claude_codex_bridge3.6k—~4.9kAutomated safety check: PassCustom licence
Golang Documentationunxed/f42443 repos~3.5kAutomated safety check: PassMIT
Simple Englishropensci/ckanr1043 repos~2kAutomated safety check: PassMIT
Opik Documentation Patternscomet-ml/opik22k—~1.3kAutomated safety check: PassApache-2.0

Similar skills

  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • Ccb GitHub

    SeemSeam/claude_codex_bridge

    Maintain this CCB project's GitHub-facing release and npm publication surface.

    3.6k GitHub stars~4.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt.

    244 GitHub starsUsed in 3 repos~3.5k tokens
    DevelopmentAuto-check passed
  • Simple English

    ropensci/ckanr

    Write or rewrite text in plain, layman-readable English in the spirit of ASD-STE100 Simplified Technical English: short sentences, active voice, simple tenses, one word one meaning, condition before…

    104 GitHub starsUsed in 3 repos~2k tokens
    DevelopmentAuto-check passed
  • Rules for writing PR descriptions, changelog entries and feature documentation in the Opik repository, including the exact headings that CI requires.

    22k GitHub stars~1.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release

    jrswab/axe

    Prepare code for release (version bumps, changelog, README updates) and create an annotated tag to trigger the GoReleaser workflow.

    897 GitHub stars~1.4k tokensUpdated 5 days ago
    DevelopmentAuto-check passed

More from teddytennant/wizard

  • Conventional Commit

    teddytennant/wizard

    Write a conventional commit subject and body from the current diff.

    53 GitHub stars~501 tokensUpdated 2 days ago
    Auto-check passed
  • Evolve

    teddytennant/wizard

    How to extend Wizard via /evolve. An agent skill from teddytennant/wizard.

    53 GitHub stars~835 tokensUpdated 2 days ago
    Auto-check passed
  • PR Description

    teddytennant/wizard

    Write a pull-request title and body from the current branch against its base.

    53 GitHub stars~484 tokensUpdated 2 days ago
    Auto-check passed
  • Undercover

    teddytennant/wizard

    Keep git history clean in public repos. An agent skill from teddytennant/wizard.

    53 GitHub stars~335 tokensUpdated 2 days ago
    Auto-check passed
  • Coding

    teddytennant/wizard

    Baseline coding workflow. An agent skill from teddytennant/wizard.

    53 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check passed

Categories

Questions about Plain Writing

What does Plain Writing do?

Write prose that reads like a person wrote it, not a model. An agent skill from teddytennant/wizard. Plain Writing is an agent skill from teddytennant/wizard. Write prose that reads like a person wrote it, not a model.

When should I use Plain Writing?

Plain Writing fits situations like: the user says the writing sounds like AI; asks to make it sound human.

How do I install Plain Writing in Claude Code?

Run `npx skills add teddytennant/wizard --skill plain-writing -a claude-code`. Or copy the skill folder (registry/skills/teddytennant/plain-writing in teddytennant/wizard) into .claude/skills/plain-writing in your project. Claude Code loads it when a task matches its description.

How do I install Plain Writing in Codex?

Run `npx skills add teddytennant/wizard --skill plain-writing -a codex`. Or copy the skill folder (registry/skills/teddytennant/plain-writing in teddytennant/wizard) into .agents/skills/plain-writing in your project. Codex loads it when a task matches its description.

Can I use Plain Writing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add teddytennant/wizard --skill plain-writing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/plain-writing, .gemini/skills/plain-writing, .github/skills/plain-writing and .opencode/skills/plain-writing in your project.

What does Plain Writing need to run?

SKILL.md names no scripts, command-line tools or credentials: Plain Writing is instructions for the agent only.

Does Plain Writing access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Plain Writing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Plain Writing use?

Plain Writing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Plain Writing use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Plain Writing?

Skills that share tags, products or a category with Plain Writing: Simple English (moeru-ai/airi, 50k stars), Ccb GitHub (SeemSeam/claude_codex_bridge, 3.6k stars), Golang Documentation (unxed/f4, 244 stars) and Simple English (ropensci/ckanr, 104 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plain Writing?

teddytennant (a GitHub user) maintains it in teddytennant/wizard, which has 53 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.

Source: teddytennant/wizard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.