technical-writing
Skill4 starsChanged 43 days agoApache-2.0View on GitHub
Use when writing, drafting, or reviewing technical prose such as docs, READMEs, tutorials, how-tos, reference pages, or engineering blog posts under the author's name. Interviews the author, sources every claim, lints, and tests the result on a fresh reader.
142 other projects use a version of this.
Adopted by
Most recently taken up by
- Yeachan-Heo/oh-my-claude-sisyphustheir own version, first seen Nov 8, 2026
- Loner1024/skillstheir own version, first seen Nov 8, 2026
- lklimek/claudiustheir own version, first seen Nov 8, 2026
- justinyoo/skillstheir own version, first seen Nov 8, 2026
- thrillmade/agent-skillstheir own version, first seen Nov 8, 2026
- metraton/gaiatheir own version, first seen Nov 8, 2026
Used with
Projects with it also use ketchup-video, principle-explain-the-number and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
tristanphvnSkillketchup-video
Catch the user up like /keel:ketchup, with a short silent video of slides for what happened and the waiting calls as text under it. Use for /keel:ketchup-video.
Also in 14 projects that use this
ianclearySkillprinciple-explain-the-number
Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.
Also in 29 projects that use this
eryzerzSkillmake-bot-ui
Use when building a custom UI (page, dashboard, buttons) that should wake a Grok Bot over a webhook, when the user must provide a webhook sender key, or when exposing that UI on Tailscale.
Also in 20 projects that use this
jaydubya818Skillprinciple-attack-the-premise
Apply when repeated fixes fail and a shared assumption may be wrong.
Also in 35 projects that use this
jaydubya818Skillprinciple-test-behavior-not-implementation
Apply when tests mirror internals instead of asserting observable outcomes.
Also in 36 projects that use this
ianclearySkillpoteto-help
Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.
Also in 14 projects that use this
- +5 more from jaydubya818
Other versions142 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 142
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- vercel/eve★ 5.8ksame name
- backnotprop/pstack★ 3.8ksame name
- chattocorp/chatto★ 2.9ksame name
- cashew-labs/libretto★ 898same name
- saffron-health/libretto★ 883same name
- moeru-ai/xsai★ 667same name
- proffesor-for-testing/agentic-qe★ 524same name
- NPC-Worldwide/npcsh★ 502same name
132 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository13 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- cost-analysisSkill
- designSkill
- leadSkill
- remote-setupSkill
- researchSkill
- reviewerSkill
- securitySkill
- skill-authoringSkill
- soloSkill
- workerSkill
The file
Files
Technical writing
Technical readers abandon text that reads as generated, and LLM drafts rarely carry the author's actual ideas. So split the content by who can supply it:
- Experience, decisions, opinions, surprises, and voice come only from the author. Never invent them.
- Technical facts can come from the author or from primary sources you find (code, specs, docs, on-chain data, measurements). Record a source for every one.
The author must be able to explain every technical claim in their own words before it ships under their name.
Process
Scale to the job. A README section needs steps 1, 2, 6, 7, and 8. A review of an existing draft needs step 1 (the reader, the job, and a length budget) and then steps 7-10, and it reports its findings as a list, not as edits. Lead the findings with length: the word count against the budget, the longest paragraphs, and what the reader could skip. End with the target shape in 2-3 lines. If the author wants a fast draft without the interview, draft from sources only and mark every author-owned gap [TK]. Keep working notes in one notes.md (format under Reference).
- Write a brief: the reader, the job in one sentence ("after reading, the reader can …"), the type, and a length budget. For a rewrite, set the budget below the current length. Infer what's obvious and ask only for the rest. For docs, use Diátaxis and keep one type per page. For posts, pick a pattern (both are listed under Reference). For pieces under the author's name, ask for 1-3 samples of their writing so you can match their rhythm and vocabulary.
- Research before asking. Read the code, PRs, logs, specs, and data. Record each finding with its source, marked established or inferred. Don't ask the author anything the sources answer.
- If the author is still learning the subject (reverse engineering, learning in public), teach it from first principles, Socratically, one question at a time. Have them explain each mechanism back in their own words, and correct them by pointing at evidence rather than lecturing. Capture their reactions. Those are often the strongest lines in the piece.
- Interview one question at a time. Bring your findings ("the code retries with no backoff; does that match what you saw in prod?") and ask for what only the author has: what happened, what failed, the numbers, what surprised them, what they'd change, what they believe. Push vague answers toward specifics. Log answers verbatim, because their phrasing is the draft's raw material. If they don't know a fact, research it (step 2) or teach it (step 3) instead of pressing.
- Outline. Each heading answers a question the reader has and is backed by notes, or else marked
[GAP]. Open with the problem or the result, not background. Cut filler sections ("why this matters", challenges, the future, a conclusion that restates). Get the author's approval before anyone drafts. - Draft one section at a time, the most uncertain first and the intro last. Use the author's words. Write
[TK: what's needed]instead of filling a gap. Stay within the budget; a sentence that doesn't serve the job is cut, even if it's true. Edit surgically. Never reprint the whole document or revert the author's edits. For opinion pieces under their name, prefer that they draft and you edit. - Verify. List every factual claim with its origin (author, research, or inferred) and its source. Check APIs, flags, and defaults against the code at the documented version. Run commands and samples only in a scratch environment (a throwaway directory, devnet or testnet). Never run anything that spends money, touches production or mainnet, or deletes data. Mark those claims unverified instead. Resolve every link. Inferences must read as inferences in the text. Ask about, narrow, or cut anything unverified.
- Lint with tools, not judgment. Use the project's Vale config if it has one. Otherwise, write the config under Reference into a scratch directory and run
vale --config=<dir>/.vale.ini sync, thenvale --config=<dir>/.vale.ini <files>, so nothing is added to the author's repo unless they ask. Also runmarkdownlint-cli2 "<dir>/**/*.md"andlychee --no-progress --offline --include-fragments <dir>(tested with markdownlint-cli2 0.23 and lychee 0.24). Drop--offlineto check external URLs, but treat timeouts, 403, and 429 as unverified rather than broken. Linters over-flag, so fix the real problems, ignore the false positives, and send stock-phrase hits to step 10. If the tools can't run, say so. - Test on a fresh reader. Give a subagent with no conversation context only the document, the reader persona, 5-10 questions that reader would bring (ask the author for theirs too), and the prompt under Reference. For tutorials, also run the steps in a scratch environment if you can. Fix the gaps by replacing or cutting text rather than adding to it, keep the budget, and retest until the main point matches the job, which usually takes one or two rounds. Without subagents, give the prompt to the author to run in a fresh chat.
- Audit for AI tells: inflated significance, vague attribution ("experts say"),
serves aswhere "is" works, "not just X but Y", reflexive groups of three, synonym cycling, stacked hedges, bold-label bullets, and a closing summary that restates the intro, plus the stock phrases in the Vale rule'stokenslist. In the author's prose, flag tells and don't rewrite, because a rewrite erases the voice and adds new tells. In prose you drafted, fix them by adding the specific detail, not by swapping synonyms. A tell usually marks missing substance, so get that detail from the author. Never polish text just to evade detection. The author's house style overrides this list.
Reference
Diátaxis (one type per page):
- Tutorial: a guided lesson for a newcomer. One path, every step works, expected output shown.
- How-to: steps to a real goal for someone competent. Title it with the goal and list prerequisites first.
- Reference: complete, austere facts structured like the code. Describe, don't explain.
- Explanation: the why, meaning context, design decisions, and tradeoffs. No steps.
Post patterns (from Writing for Developers, by Sarna and Dunlop):
- Bug hunt: symptom, false leads, root cause, fix, lesson.
- Rewrote it in X: the pain in numbers, why X, surprises, an honest before and after.
- How we built it: constraints, architecture, non-obvious tradeoffs.
- Lessons learned: one real story per lesson.
- Thoughts on trends: an arguable thesis, evidence, the best counterargument.
- Product perspective: limitations, and who it's not for.
- Benchmarks: exact setup, method, raw numbers, caveats, how to reproduce.
notes.md:
## Brief reader / job / type / voice samples
## Findings finding | source | established or inferred
## Interview verbatim Q&A
## Claims claim | origin | source | verified?
## Open [TK] and [GAP] itemsReader-test prompt:
You are [persona]. You have only the document below. If it doesn't say, say so.
1. Answer each question from the document alone, quoting what you relied on.
2. State the main point in one sentence.
3. List where you got confused, where you'd stop reading, terms used before they're defined, unstated assumptions, and unsupported claims.
4. For a tutorial or how-to: follow the steps literally. Where do you get stuck?Vale (v3), tested:
# .vale.ini
StylesPath = .vale/styles
MinAlertLevel = warning
Packages = Google, proselint
Vocab = Project
[*.{md,mdx}]
BasedOnStyles = Vale, Google, proselint, House
Google.We = NO # for first-person posts# .vale/styles/House/AITells.yml
extends: existence
message: "AI tell: '%s'"
level: warning
ignorecase: true
tokens: [delve, tapestry, testament to, landscape, leverage, robust, seamless, unlock the, harness the, navigate the, "it's worth noting", in conclusion, serves as, plays a crucial role, "let's dive in"]StylesPath is resolved relative to the config file. Always create .vale/styles/config/vocabularies/Project/accept.txt next to it, with one project term per line. Vale errors if the file is missing, so create it even if it's empty.
Handoff
Deliver the document, the claim list, any open [TK] or [GAP] items, and a two-line summary of the reader test if you ran one. If you drafted much of the prose, mention once that disclosing AI involvement is the author's call.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

