Write prose people will actually read. An agent skill from agentic-community/mcp-gateway-registry.

Apache-2.0Auto-check passedDevelopment

Install Writing

skills CLI
$ npx skills add agentic-community/mcp-gateway-registry --skill writing -a claude-code

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

GitHub CLI
$ gh skill install agentic-community/mcp-gateway-registry 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/agentic-community/mcp-gateway-registry.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/writing .claude/skills/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
writing
GitHub stars
962
Token cost
~3.5k tokens
SKILL.md length
2,303 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
Apache-2.0

At a glance

Write prose people will actually read. An agent skill from agentic-community/mcp-gateway-registry.

  • Works in 6 steps: No stock figures of speech → Short words → Cut words → …
  • Any prose you produce - docs
  • SKILL.md covers Orwell's rules, How to apply each rule, Extra rules for LLM prose and Sentence-shape tells, plus 4 more sections
  • Calls uv

What it does

Writing is an agent skill from agentic-community/mcp-gateway-registry. Write prose people will actually read. Use for any prose you produce - docs, READMEs, release notes, blog posts, PR descriptions, issue text, commit bodies, design docs, emails, chat answers. Applies Orwell's six rules and strips the LLM tells - passive voice, dead metaphors, and -ly padding.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Pull requests, Architecture decision records and Technical documentation. The repository describes itself as: Enterprise-ready MCP Gateway & Registry that centralizes AI development tools with secure OAuth authentication, dynamic tool discovery, and unified access for both autonomous AI… The licence is Apache-2.0.

When your agent uses it

  • Any prose you produce - docs
  • PR descriptions

Example prompts

  • “/writing”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. No stock figures of speech
  2. Short words
  3. Cut words
  4. Active voice
  5. Everyday English
  6. Sound like a person

What it can do on your machine

Read from SKILL.md and the folder at commit ec3a197. 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

    Shell commands in SKILL.md call:

    • uv

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

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    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

Writing loads about 3.5k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 2,303 words of instructions outside code blocks.

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

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 agentic-community/mcp-gateway-registry at commit ec3a197, republished under its Apache-2.0 licence (© agentic-community). 2,303 words, ~3,487 tokens.

Download SKILL.mdSave it as .claude/skills/writing/SKILL.md (or your agent's skills folder).
name
writing
description
Write prose people will actually read. Use for any prose you produce - docs, READMEs, release notes, blog posts, PR descriptions, issue text, commit bodies, design docs, emails, chat answers. Applies Orwell's six rules and strips the LLM tells - passive voice, dead metaphors, and -ly padding.
license
Apache-2.0
metadata.author
mcp-gateway-registry
metadata.version
1.2

Writing Skill

If you want people to read your stuff, follow Orwell's rules.

LLMs are not your friends. They write in passive voice, mix figures of speech that do not fit together, and pad every sentence with -ly words. Cut all of it.

Orwell's rules

  1. Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.
  2. Never use a long word where a short one will do.
  3. If it is possible to cut a word out, always cut it out.
  4. Never use the passive where you can use the active.
  5. Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.
  6. Break any of these rules sooner than say anything outright barbarous.

Rule 6 outranks the other five. A stiff sentence that obeys rules 1-5 is worse than a plain one that breaks one of them.

How to apply each rule

1. No stock figures of speech

Kill any phrase you have read a hundred times. If two images sit in one sentence, they will clash and the reader sees nothing.

Ban list, not exhaustive: game changer, at the end of the day, low-hanging fruit, moving the needle, paradigm shift, deep dive, unlock value, seamless, robust, journey, landscape, ecosystem (unless you mean living things), leverage as a verb, delve, tapestry, testament to, navigate the complexities.

Use a plain statement, or invent an image that fits the thing you are describing.

  • Bad: This release is a game changer that unlocks seamless value across the ecosystem.
  • Good: This release cuts registry startup from 40 seconds to 3.
2. Short words

Prefer the short word every time: use not utilize, help not facilitate, start not commence, about not approximately, use not leverage, get not obtain, show not demonstrate, need not necessitate, before not prior to, after not subsequent to, so not accordingly, most not the majority of, can not possesses the capability to.

3. Cut words

Delete every word that carries no weight. Common padding: in order to, the fact that, it should be noted that, it is important to note, as previously mentioned, in terms of, with respect to, a number of, at this point in time, basically, essentially, actually, really, very, quite, simply, just.

Delete throat-clearing openers. Start with the fact.

  • Bad: It is important to note that, in terms of performance, the cache basically helps quite a lot.
  • Good: The cache cuts p99 latency by half.

Aim to cut a first draft by a third. Then read it again and cut more.

4. Active voice

Name the actor, then the verb. Passive voice hides who did what, and hidden actors are how bugs and bad decisions escape review.

  • Bad: The token is validated by the auth service and errors are logged.
  • Good: The auth service validates the token and logs errors.

Hunt for is/are/was/were/been/being next to a past participle. Also hunt "there is", "there are", and "it is" - each one usually buries the real subject.

Keep the passive only when the actor is unknown or truly beside the point: "The row was deleted at some point before the migration."

5. Everyday English

Say the thing in words a competent reader knows. Drop the Latin and the jargon: use for example not e.g., that is not i.e., by itself not per se, the opposite not vice versa, so far not to date, roughly not circa.

Keep the technical term when it is the precise name of the thing. JWT, Fargate, idempotent, and race condition earn their place. synergy, holistic, and operationalize do not.

Write out an acronym on first use, then use it.

6. Sound like a person

Read the sentence aloud. If no one would say it, rewrite it. Break any rule above rather than write something ugly, stilted, or unclear.

Extra rules for LLM prose

  • Cut -ly adverbs. Pick a stronger verb instead. significantly improved -> doubled. carefully validates -> validates.
  • No "not only X but also Y". No "X isn't just Y - it's Z". No "this isn't just about X", in any form.
  • No em-dashes at all, anywhere, and no double hyphen standing in for one. This repo bans the character outright, so there is no "reveal at the end of a sentence" exception to argue about. Use a comma, a colon, parentheses, or two sentences.
  • No lists of three when two facts will do.
  • No summary paragraph that repeats what you just said.
  • No praise of the reader, the code, or yourself. No "great question", no "powerful and flexible".
  • One idea per sentence. Short sentences beat long ones with semicolons.
  • Concrete over abstract: exact numbers, file paths, symbol names, commands.
  • Say what changed and what breaks. Skip the vision.
  • Do not hedge twice. "may possibly" -> "may". Pick one level of certainty and own it.
  • Use present tense for how the system behaves, past tense for what you did.
  • Never open with "In today's fast-paced world" or any variant.

Sentence-shape tells

Word-level fixes are not enough. LLMs lean on a handful of sentence shapes that read as machine-made even when every word is plain. Kill these.

  • No antithesis. Do not pair "X, but Y" or "not X, rather Y" for rhythm. Say the one thing you mean.
    • Bad: The cache is not a workaround, it is the design.
    • Good: The cache is the design.
  • No corrective negation. Do not define a thing by first saying what it is not.
    • Bad: This isn't about speed, it's about correctness.
    • Good: This fixes a correctness bug.
  • No contrasting pairs or negative parallelism. Drop the "not just X, but Y" and "less A, more B" frames.
    • Bad: We didn't add a feature, we removed a footgun.
    • Good: We removed the retry loop that double-charged users.
  • No negative anaphora. Do not open three sentences in a row with "No..." or "Never..." for effect. (This list is a list, not prose.)
  • No setup/payoff or landing sentences. Do not build a sentence whose only job is to tee up the next one, and do not end a paragraph on a short punchy line meant to resonate.
    • Bad: There was one thing left to fix. The timeout.
    • Good: The last fix was the 30-second timeout.
  • No parataxis for drama. Do not stack short clauses to build rhythm ("It compiles. It ships. It works.").
  • No parallel sentence structures within a paragraph. If two sentences share the same skeleton, rewrite one.
  • No paragraph pinning. Do not top and tail a paragraph with the same idea to frame it.
  • No summary beats. Do not restate the point you just made in different words.
  • No stacked noun phrases. Break "a cloud-native observability data ingestion pipeline" into words that do work.
  • No nominalization. Turn the noun back into its verb: "perform a validation of" -> "validate", "make a decision" -> "decide", "provide support for" -> "support".
  • No significance flags. Do not tell the reader that something matters; give the reason and let them judge. Ban: matters more than it looks, worth noticing, worth knowing, the part worth knowing, this is the important bit, note that, importantly, it is not obvious, and that is not a small thing.
    • Bad: The regex already handles the exact-match form, which is worth knowing because it is not obvious.
    • Good: The regex already handles the exact-match form, so the new block is covered without changing it.
  • No stage directions. Do not open a sentence by pointing at the next one: "Now look at", "Watch what happens", "Here is the thing", "Consider", "Notice that", "Let us walk through". Start with the fact.
    • Bad: Now look at what this does to the config.
    • Good: Two identical exact-match locations stop nginx from loading the config at all.
  • No closing flourishes. "That is the whole interface", "and the rest is variations on it", "end of story", "in conclusion", "ultimately" are applause lines. Stop when the information stops.
  • No teaser openers. Do not open a section by announcing how many things are coming, and do not assert a dramatic dependency between them. Start with the first thing and let the count emerge.
    • Bad: Two things, and the second exists because the first failed.
    • Good: This PR adds a skill that turns an issue into an explainer. It also adds a prose linter, because the skill's own output broke the writing rules.
    • Announcing a count is fine when it is doing real work, as in "Four properties make this safe" followed by four named properties. It is not fine as a drum roll.
  • No appended reassurance clause. Do not count the items and then add a clause asserting they are all fine. The clause carries no information and reads as padding.
    • Bad: Four properties make this safe, and each one is checkable.
    • Good: Four properties make this safe.
    • Bad: Three facts have to line up for the bug to exist, and all three are in place today.
    • Good: The bug needs three things to be true at once, and they are.
  • No decorative bolding. Bold a word only to mark a real term or a genuine warning. Bolding the first clause of every paragraph is a layout tic, and once every paragraph is bold nothing is.
  • No connective padding. Cut "that said", "with that in mind", "having said that", "it is also worth adding". If the next sentence follows, it does not need a ramp.
  • No headline fragments. Write sentences with a subject and a verb, not telegraph headings. This is the most common way a bulleted answer stops sounding human: every bullet becomes a topic label plus a clipped noun phrase, and the reader has to reconstruct who does what.
    • Bad: Supported today, two mechanisms.
    • Good: This is supported today, and there are two ways to do it.
    • Bad: Lifecycle: force new assets to draft, then promote by PATCH.
    • Good: On lifecycle, you can force every new asset to land in draft, then promote it with a PATCH.
    • A leading label is fine when it is a real heading. It is not fine as a substitute for the sentence's subject.
  • Vary sentence length on purpose, not on a pattern. Mix short and long so the rhythm is unpredictable. Do not alternate long-short-long-short.
Show full SKILL.md (604 more words)Show less

Replying to a person

Everything above applies to a reply. These are the few things a reply needs that a document does not. Use them for email, chat answers, issue and PR comments, and review responses.

  • Answer in the order they asked. Echo their own words in the heading of each answer so they can match your reply to their question.
  • Write full sentences, not headlines. A reply is one side of a conversation, so the headline-fragment tell above hits hardest here. Read it aloud as if you were saying it to them.
  • Name yourself as the actor. A recommendation belongs to someone: "I would keep production on its own cluster", not "production isolation is recommended".
  • Answer the question before you qualify it. Lead with yes, no, or the recommendation, then the detail.
  • State the limits you know about. A reply that only lists what works reads like a sales sheet and costs you the next conversation.
  • Close with who does what next. Name the one thing you want back from them.
  • Contractions are fine. So is a short sentence that sounds like speech. Formality is not the goal, clarity is.

Do not pad a reply to sound warm. No "great question", no restating their question back at them before answering, no summary paragraph at the end.

Revision pass

Run this on every draft before you ship it:

  1. Read it aloud. Fix anything you stumble on.
  2. Search for is/are/was/were + participle. Flip each to active or justify it.
  3. Search for ly and delete or replace each hit.
  4. Delete every phrase from the ban lists above.
  5. Cut the first sentence of each paragraph if the second one already says it.
  6. Run the mechanical scan below and fix every hit.
  7. Scan by eye for the shape tells the scan cannot catch: parallel structure, paragraph pinning, summary beats, setup/payoff, parataxis, decorative bolding.
  8. Check every bullet has a subject and a verb. A bullet that opens with a topic label and a colon usually does not.
  9. Count words. Cut a third.
  10. Check every claim against something real - a file, a command output, a number.
  11. Apply rule 6 last: read once more and undo anything that now sounds wrong.

Run the pass. Loading this skill and then skipping the pass is how the tells survive into the draft.

Mechanical scan

A prose rule you have to remember is a rule you will skip under deadline. Run the scanner before you hand anything over, the same way you would run a linter:

bash
uv run python scripts/prose-scan.py <file> [<file> ...]

It covers the phrase-level tells and prints path:line for each hit. Add --strict to exit non-zero on any hit, which is what a generated document should be held to. The shape-level tells still need your eyes: parallel structure, paragraph pinning, summary beats, setup/payoff, parataxis, decorative bolding.

Every hit is a candidate, not a verdict. robust is fine inside a quotation and ultimately, is sometimes load-bearing. Read each one and decide. What you may not do is leave a hit unexamined.

When you add a new tell to this file, add its pattern to TELLS in that script so the next draft gets caught instead of reviewed.

Example

Before:

It should be noted that a significant number of performance improvements have been implemented in this release, which fundamentally transforms the observability landscape by leveraging a robust new telemetry pipeline that seamlessly facilitates the collection of metrics at scale.

After:

This release adds a telemetry pipeline. The collector batches metrics every 10 seconds and cuts registry CPU use by 30%.

62 words to 22. Named the actor. Gave the numbers.

© agentic-community, 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

Just SKILL.md in .claude/skills/writing of agentic-community/mcp-gateway-registry.

Open the folder on GitHubat commit ec3a197

Compare with similar skills

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.

Writing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Writing this skillagentic-community/mcp-gateway-registry962—~3.5kAutomated safety check: PassApache-2.0
Opik Documentation Patternscomet-ml/opik22k—~1.3kAutomated safety check: PassApache-2.0
Maintain DisCatSharpAiko-IT-Systems/DisCatSharp140—~1.2kAutomated safety check: PassMIT
Prosestatic-web-server/static-web-server2.4k—~971Automated safety check: PassApache-2.0
Vibe Slop Filterash1794/vibe-engineering162—~2.3kAutomated safety check: PassMIT
Outward Prosestylelint-stylistic/stylelint-stylistic106—~2.9kAutomated safety check: PassCustom licence

Similar skills

  • 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 today
    DevelopmentAuto-check passed
  • Maintain DisCatSharp

    Aiko-IT-Systems/DisCatSharp

    Guides changes to the DisCatSharp C# Discord library: tracing a payload field through parsing, serialization and caches, then validating across target frameworks.

    140 GitHub stars~1.2k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Prose

    static-web-server/static-web-server

    Author or edit any prose for the Static Web Server (SWS) project — documentation, design docs, READMEs, PR descriptions, issue bodies, commit message bodies, or other human-readable text — following…

    2.4k GitHub stars~971 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Vibe Slop Filter

    ash1794/vibe-engineering

    Strips AI-generation "smell" from prose before it ships (READMEs, docs, release notes, PR descriptions, posts, emails).

    162 GitHub stars~2.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Outward Prose

    stylelint-stylistic/stylelint-stylistic

    Write a commit body, a changelog entry, a PR body, an issue comment or a code comment so that no sentence in it is a claim nobody ran.

    106 GitHub stars~2.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Google Devdocs Style

    EpicenterHQ/epicenter

    Write and review developer documentation in Google Developer Documentation Style.

    4.8k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed

More from agentic-community/mcp-gateway-registry

All 17 skills in this repo
  • Explainer

    agentic-community/mcp-gateway-registry

    Explain a GitHub issue or pull request at 100, 200, and 300 level.

    962 GitHub stars~3.8k tokensUpdated yesterday
    Auto-check passed
  • Debug

    agentic-community/mcp-gateway-registry

    Debug issues in the MCP Gateway Registry using first-principles thinking.

    962 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check: notes
  • Infra Sync

    agentic-community/mcp-gateway-registry

    Keep Terraform and CDK infrastructure in sync. An agent skill from agentic-community/mcp-gateway-registry.

    962 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Search Benchmark

    agentic-community/mcp-gateway-registry

    Generate a search quality benchmark for the AI Registry. An agent skill from agentic-community/mcp-gateway-registry.

    962 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Agentcore Register

    agentic-community/mcp-gateway-registry

    Given an MCP server URL, probe the server via curl to discover its metadata and tools, then generate a markdown file with copy-pasteable content for each field in the Amazon Bedrock AgentCore…

    962 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Benchmark Report

    agentic-community/mcp-gateway-registry

    Generate a benchmark report from stress test results (registration, API performance, search concurrency).

    962 GitHub stars~590 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Writing

What does Writing do?

Write prose people will actually read. An agent skill from agentic-community/mcp-gateway-registry. Writing is an agent skill from agentic-community/mcp-gateway-registry. Write prose people will actually read.

When should I use Writing?

Writing fits situations like: any prose you produce - docs; PR descriptions.

How do I install Writing in Claude Code?

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

How do I install Writing in Codex?

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

Can I use 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 agentic-community/mcp-gateway-registry --skill 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/writing, .gemini/skills/writing, .github/skills/writing and .opencode/skills/writing in your project.

What does Writing need to run?

Going by SKILL.md and its folder, Writing needs the command-line tools its instructions call (uv).

Does Writing access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is 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 Writing use?

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

How many tokens does Writing use?

About 3.5k tokens (SKILL.md is roughly 14k 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 Writing?

Skills that share tags, products or a category with Writing: Opik Documentation Patterns (comet-ml/opik, 22k stars), Maintain DisCatSharp (Aiko-IT-Systems/DisCatSharp, 140 stars), Prose (static-web-server/static-web-server, 2.4k stars) and Vibe Slop Filter (ash1794/vibe-engineering, 162 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Writing?

agentic-community (a GitHub organization) maintains it in agentic-community/mcp-gateway-registry, which has 962 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 6, 2026.

Source: agentic-community/mcp-gateway-registry on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.