prose-voice

prose-voice is a skill for Claude Code, Codex from chucklever/cel-kdev. It costs 137 tokens per session (1,659 once invoked), scanned A, original, MIT.

A shared writing guide for developer-facing code comments, commit messages, patch descriptions, and changelogs.

In plain words
What is it for?
Drafting or editing Linux kernel development prose and other developer documentation that needs consistent terminology, structure, and voice.
Why use it?
It keeps technical prose clear, precise, and focused on what the code does and why, instead of vague or promotional wording.

Skill for Claude CodeCodex

Part of the cel-prose plugin — 5 skills shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/chucklever/cel-kdev/prose-voice
Any agent
npx skills add chucklever/cel-kdev --skill prose-voice
Clone the repo
git clone --depth 1 https://github.com/chucklever/cel-kdev

Made for: Claude Code, Codex.

Or install cel-prose, the plugin that ships this one along with the rest of its 5 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for prose-voice

README.md
[![agentmods](https://agentmods.dev/badge/skills/chucklever/cel-kdev/prose-voice.svg)](https://agentmods.dev/skills/chucklever/cel-kdev/prose-voice)
Your own site
<a href="https://agentmods.dev/skills/chucklever/cel-kdev/prose-voice"><img src="https://agentmods.dev/badge/skills/chucklever/cel-kdev/prose-voice.svg" alt="Measured on agentmods" height="20"></a>
Per session 137 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,659 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00137 $0.01659
Opus 5 $0.00068 $0.00830
Sonnet 5 $0.00027 $0.00332
Haiku 4.5 $0.00014 $0.00166

Measured 3d ago against content hash e87e8c637698, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

prose-voice scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugin/cel-prose/skills/prose-voice/SKILL.md · 126 lines

How it starts

The opening of the file, as written. The whole thing — 126 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Prose voice

Voice rules shared by the prose written for other developers -- kernel code comments, commit messages in any repository, and cover letters with their changelogs. The cel-prose:code-comments, cel-prose:commit-message, cel-prose:cover-letter, and cel-prose:version-changelog skills own the per-artifact specifics (line widths, structure, worked examples) and defer here for the voice common to all four. These rules do not apply to LLM-facing text such as skill documentation; a commit message describing a change to that documentation is ordinary prose and does follow them.

  • Describe mechanism and causation: what happens, in what order, why. Make the component the subject ("the encoder drops the reply"), not "we," and not what the code "wants" or "tries to do."
  • ASCII only. US English spelling ("recognize," "behavior," "serialize," not "recognise"/"behaviour"/"serialise"). Single blank between sentences. Text quoted from RFCs or upstream sources keeps its original spelling.
  • Preserve domain-specific terms. "Quiesce" is not "stop": it means refuse new work and wait for in-flight work to drain. "Elide" is not "skip": it means omit something that would otherwise be emitted. The mechanism picks the word, not the register. Do not flatten a precise term to its everyday neighbor, and do not reach for the rarer one when the plain word is accurate.
  • Use the words the subsystem uses: identifiers out of the code, and the vocabulary of its own list traffic. Do not coin an abstraction to sound precise. "The cap supplies the return boundary that a system call would otherwise provide," "the kernel receive context," and "costs the caller its own scheduler time" all drew "terms no kernel developer would use." The words for those things are "the syscall return bounds the loop," "process context," and "costs the caller CPU time." When unsure whether a phrase is coined, grep the subsystem. If neither the code nor the file's existing comments use it, and a plain kernel term covers the same thing, it is coined. Terminology the subsystem does use is not coined however unfamiliar it looks, so read the tree before cutting a term.
  • Subsystem names in prose take their uppercase form: NFSD, SUNRPC, NFS. Others write "nfsd" or "knfsd"; do not match them. This overrides the preceding rule about taking vocabulary from the subsystem's list traffic. Quoted commit subjects keep their original casing.
  • Write for a reader fluent in the subsystem. Do not explain its own mechanics back to it. A paragraph deriving how cond_resched() in __release_sock() lets a syscall path reschedule tells netdev what netdev wrote. A slip in that derivation is what draws the reply. State the change and the constraint it operates under, then stop.
  • Cut throat-clearing and hedges that carry no information. Test: if removing the phrase preserves the meaning, it was filler. "Words to drop" below lists the ones that recur.
  • Do not stack more than three nouns in a row. "RPC transport reconnect completion handler" makes the reader guess which noun modifies which. Break the stack with a preposition or a verb: "the completion handler for a transport reconnect."
  • Short declarative sentences. A causal chain stays connected: "the record delivers no payload, so the loop never exits." One link per sentence, though. Spend "so" or "because" once, and never hang an aside off a sentence that already carries one. A second link is the run-on a maintainer bounces. The countable instance is two or more "so"/"because"/"which" links in a sentence past roughly 40 words. Count them before concluding a long sentence reads clearly. A sentence that enumerates rather than argues does not count, however long it runs. Do not bullet-ize reasoning that already reads clearly, and do not restructure prose that is already clear.
  • Dashes: do not reach for an em dash when drafting. The first choice is always a period. Split the clauses into separate sentences and let each one carry its own subject and verb. Colons, semicolons, and parentheses are not neutral substitutes. A clause bolted on with any of the three is as strong an LLM tell as the em dash it replaced, so reserve them for the cases a period genuinely cannot handle: a colon before a true list, commas around a tight appositive. An occasional "--" aside is fine. Density is the tell.
  • Kernel maintainers increasingly distrust prose that reads as LLM-generated. For the full catalog of tells to avoid -- em-dash overuse, rule-of-three cadence, inflated symbolism, negative parallelism ("not X, but Y"), and the rest -- see Wikipedia's "Signs of AI writing", or a third-party skill that packages it, such as /humanizer.

Read the full file on GitHub · 126 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 126 lines · 0 tokens per session scan A e87e8c637698

Subscribe to this mod's changes

prose-voice is a skill published in the GitHub repository chucklever/cel-kdev (2 stars, last pushed 6d ago), licensed MIT. It adds 137 tokens to every session and 1,659 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

zed-cherry-pick

Cherry-pick one or more merged PRs and/or commits into Zed's preview or stable release branch. Use this whenever the user mentions cherry-picking to preview/stable, a failed cherry-pick run, or wants to manually port fix(es) into a release branch.

zed-industries/zed · 66 tokens

close-task-commit-push-pr

Close the active backlog task (detected from branch name), commit all changes, push to remote, and open a pull request. Use when the user says "close task and ship it", "close task commit push pr", or invokes /close-task-commit-push-pr.

devoxx/DevoxxGenieIDEAPlugin · 64 tokens

git-push

把项目推送到 GitHub,三种模式自动判断:首次推送(大文件扫描 → 生成 .gitignore → git init → gh 建仓 → 推送)、日常更新(commit + push)、版本发布(打 tag + 建 Release,可附下载文件)。核心原则是安全第一:推之前必扫大文件和敏感文件,宁可多问一句也不把不该推的东西推上去。当用户说"推到GitHub""推送到GitHub""git push""上传到GitHub""提交并推送""发版本""打release""打tag""/git-push"时触发。不适用于:规划哪些功能进哪个版本号(用 issue-pool——本 skill 只负责把已经定好的版本号打成…

yunshu0909/yunshu_skillshub · 223 tokens

ship

Commit, push, and create a PR for staged changes, with confirmation at each step. Use when your work is done and you want to ship.

poshan0126/dotclaude · 32 tokens

git-workflow

Git operations: commits, branches, PRs, and conflict resolution.

vstorm-co/pydantic-deepagents · 17 tokens

git-workflow

Langfuse repo Git, GitHub, commit, branch, pull request, issue search, release, and production-promotion workflow. Use when staging, committing, pushing, opening PRs, choosing a Linear git branch name, handling Claude, Greptile, or Codex review comments, searching GitHub issues, or changing release/promotion behavior.

langfuse/langfuse · 77 tokens