Kiterlin/anti-defensive-writing: a Codex skill for hedging-free academic prose
Codex skill for removing defensive writing and strengthening prose.
At a glance
- What is it?
- An MIT-licensed agent skill and prompt standard that strips preemptive apologies, stacked modal hedges and negative framing from papers and proposals, while keeping real methodological limits in place.
- Who is it for?
- Adopt it if you write papers, grant proposals or technical briefs and you keep catching yourself opening with what the work does not claim. Skip it if you want a general de-AI-ification pass over blog posts and marketing copy: the rules are tuned to academic register, and the skill has no release tags to pin, so you are tracking main.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly PowerShell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The drafting habit this skill targets
The README names the failure mode directly: authors who anticipate reviewer objections and pre-protect their arguments end up with what it calls defensive writing. Four patterns are listed. Opening a contribution with a self-limiting disclaimer. Stacking weak modal hedges so a sentence reads "might cautiously suggest that X could potentially". Explaining what the paper does not do instead of what it does. And diluting a finding with apologetic caveats before the evidence arrives.
The intended audience is narrow and identifiable: people writing academic papers, research proposals and professional briefs, plus anyone editing that prose. It is not a general style checker for blog posts or product copy. The distinction matters because the skill's fourth principle is to preserve legitimate precision. Sample limits, assumptions and scope bounds stay in the text; they move to Methods or Limitations rather than disappearing. A tool that simply deleted every hedge would break a methods section. This one is built around relocating them.
Four principles and a substitution table
The mechanism is a prompt standard, not a linter. SKILL.md is the skill definition, and skill.json sits beside it in the repository root, with the skill/ directory and an agents/ directory also present at top level. The README states that the skill and prompt standard exist to eliminate the hedging patterns, and the rules themselves are four numbered principles.
Lead with the claim: open paragraphs with the insight, not an anticipatory defense. Define scope positively: state what the study examines and contributes rather than listing what it ignores. Preserve legitimate precision: keep real constraints in their proper analytical sections instead of scattering them through abstracts and introductions. Calibrate evidence, not apologies: express uncertainty through objective empirical boundaries rather than timid language.
The README also carries a two-column table mapping each discouraged pattern to a preferred one. Preemptive apology becomes direct contribution. Starting with limitations becomes leading with findings. Stacked modal hedging becomes calibrated evidence strength. Negative framing becomes positive analytical interaction. That table is the most reusable part of the project, because it gives an editor a concrete before and after rather than an adjective. The third principle is where the design earns its keep and where it is easiest to misapply: "calibrate evidence" is a judgement call, and the skill supplies examples rather than a threshold.
Installing the skill and running a first revision
The README documents a one-line install. On macOS, Linux or WSL it pipes install.sh from the main branch into sh. On Windows it fetches install.ps1 and pipes it into iex. Both scripts live in the repository root, so you can read them before running them.
curl -fsSL https://raw.githubusercontent.com/Kiterlin/anti-defensive-writing/main/install.sh | shirm https://raw.githubusercontent.com/Kiterlin/anti-defensive-writing/main/install.ps1 | iexBoth accept a custom destination when your agent reads skills from somewhere other than the default. The README gives the flag as --dest for the shell script and -Dest for the PowerShell one.
curl -fsSL https://raw.githubusercontent.com/Kiterlin/anti-defensive-writing/main/install.sh | sh -s -- --dest <skills-dir>& ([scriptblock]::Create((irm https://raw.githubusercontent.com/Kiterlin/anti-defensive-writing/main/install.ps1))) -Dest <skills-dir>For web chat interfaces and code editors there is no install at all. The README tells you to paste a block of instructions into Custom Instructions, a system prompt or project knowledge. That block asks the model to identify and eliminate unnecessary caveats, preemptive apologies, excessive modal hedging (it names may, might, could and potentially) and negative self-limiting statements, then lead with claims and findings, then preserve methodological constraints in their proper analytical context. For Cursor and Windsurf the README shows a .cursorrules or .windsurfrules file with three bullets that point back to SKILL.md. The repository ships three worked case studies under examples/: academic-introduction.md, methods-and-contributions.md and grant-proposal.md. Read one of those before your own draft; the README's showcase pairs a defensive sentence with its direct rewrite, and the examples go to paragraph level.
Where the rules fight the venue
The README's own showcase is the clearest statement of the risk. A defensive methods sentence is rewritten into "On standard 32k-token benchmarks, SparseBlock achieves a 2.4x throughput improvement while maintaining baseline perplexity." That is a strong sentence. It is also a specific numeric claim, and the transformation from "we attempt to offer preliminary insights" to a throughput figure is not a copy edit. The skill pushes you toward committing to numbers you may not have. Nothing in the README prevents an author from manufacturing the confidence the rules reward.
There is a second boundary. Some fields treat hedged register as the expected genre, and a reviewer who reads a calibrated "the empirical evidence demonstrates" where the design supports only association will treat it as overclaiming, not as authority. The skill's answer is its third principle, but the README does not tell you how to decide which constraints are legitimate and which are defensive, and it does not document any checking step that catches a constraint you deleted by mistake. There is also no release history: the repository has no tags, so pinning means pinning a commit on main yourself. The last push was on 2026-09-17.
How it differs from a general anti-AI-style prompt
The obvious alternative is a generic "do not sound like AI" prompt, the kind people paste into a chat window after a draft reads flat. The two overlap on surface symptoms, since stacked modal hedging is both a defensive habit and a common model tic, but the targets differ. A generic style prompt aims at the whole register: uniform sentence length, list-shaped paragraphs, stock transitions, tidy summaries. Anti-Defensive Writing is a rhetorical intervention aimed at one move, the preemptive retreat from a claim, and it is explicit that constraints should survive the edit and move to Methods or Limitations.
That difference shows up in the artifact. A style prompt is text you paste and forget. This project ships an installable skill with a skill.json, an agents/ directory and a SKILL.md the editor rules refer back to, so the standard lives in the repository and updates when you pull. It also means the generic prompt is easier to apply to a README or a launch post, where nothing needs to be relocated to a methods section. If your problem is that everything you write sounds machine-generated, a broad style prompt is the better fit. If your problem is that your introductions apologize for themselves, this is the more precise instrument.
Licence, maintenance and upgrade cost
The licence is MIT, stated in the README badge and present as a LICENSE file in the repository root. For a prompt standard that is about as permissive as it gets: you can copy the instruction block into a commercial product's system prompt, adapt the rules and ship the result, provided you keep the copyright notice and permission notice with the copies. That is a summary of the licence text, not legal advice; read LICENSE before you redistribute.
The upgrade path is a git pull or a re-run of the install script, and the cost of an upgrade is the cost of re-reading SKILL.md. Because the rules are prose, a change to them changes model behaviour without any version number to warn you. With no releases and no tags, there is nothing to diff between. The practical mitigation is to keep your own edited copy of the rules in your repository if you depend on a specific wording, rather than pointing at main. The last push was on 2026-09-17.
Editorial conclusion
Adopt it if you write papers, grant proposals or technical briefs and you keep catching yourself opening with what the work does not claim. Skip it if you want a general de-AI-ification pass over blog posts and marketing copy: the rules are tuned to academic register, and the skill has no release tags to pin, so you are tracking main. Verify two things before you rely on it: read SKILL.md to confirm the rules match your target venue's conventions, and check whether your editor or agent actually reads the skill/ directory, because the README's web and editor setups are paste-in prompts, not the installed skill.
Frequently asked questions
What is the anti-AI writing style?
In this project it is a set of rules for prose that reads as machine-generated or over-cautious: stacked modal hedges such as may, might, could and potentially, preemptive apologies, and negative self-limiting statements. The README frames the goal as direct, claim-forward prose that still keeps real methodological constraints in their proper sections.
How to get Claude to not sound like AI?
The README's route for web interfaces is to paste its instruction block into Custom Instructions, a system prompt or project knowledge. That block tells the model to strip unnecessary caveats and excessive modal hedging, lead with claims, and preserve methodological constraints without apologetic framing.
Is there a Claude Code skill that removes AI writing?
The project describes itself as an open agent skill and prompt standard, with SKILL.md in the repository root and an install script for macOS, Linux, WSL and Windows. The README says it targets Codex and Agent CLI installs; it does not claim a Claude Code specific integration.
How not to write like AI?
The README's answer is to lead with the claim rather than an anticipatory defense, define scope by what the study examines and contributes, and calibrate uncertainty through empirical boundaries instead of timid language. Its before-and-after table turns each pattern into a concrete rewrite.
Community notes