Book Publisher
dmccreary/ibook-skills
Publishes and promotes a finished intelligent textbook - GitHub README with badges and site statistics, LinkedIn announcement posts, LinkedIn carousel document posts (PPTX/PDF slideshows), and…
Edit prose into a clear, specific, source-grounded version that preserves the author's meaning and voice.
$ npx skills add udaysharmadev/Not-Ai --skill not-ai -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install udaysharmadev/Not-Ai not-ai --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/udaysharmadev/Not-Ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/not-ai/skills/not-ai .claude/skills/not-ai && rm -rf skills-srcUse ~/.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/
Install the "not-ai" agent skill from https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-ai into .claude/skills/not-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "not-ai", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-aiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add udaysharmadev/Not-Ai --skill not-ai -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install udaysharmadev/Not-Ai not-ai --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udaysharmadev/Not-Ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/not-ai/skills/not-ai .agents/skills/not-ai && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "not-ai" agent skill from https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-ai into .agents/skills/not-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "not-ai", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add udaysharmadev/Not-Ai --skill not-ai -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install udaysharmadev/Not-Ai not-ai --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udaysharmadev/Not-Ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/not-ai/skills/not-ai .cursor/skills/not-ai && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "not-ai" agent skill from https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-ai into .cursor/skills/not-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "not-ai", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/udaysharmadev/Not-Ai.git --path plugins/not-ai/skills/not-ai--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add udaysharmadev/Not-Ai --skill not-ai -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install udaysharmadev/Not-Ai not-ai --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udaysharmadev/Not-Ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/not-ai/skills/not-ai .gemini/skills/not-ai && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "not-ai" agent skill from https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-ai into .gemini/skills/not-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "not-ai", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install udaysharmadev/Not-Ai not-aiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add udaysharmadev/Not-Ai --skill not-ai -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/udaysharmadev/Not-Ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/not-ai/skills/not-ai .github/skills/not-ai && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "not-ai" agent skill from https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-ai into .github/skills/not-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "not-ai", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add udaysharmadev/Not-Ai --skill not-ai -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install udaysharmadev/Not-Ai not-ai --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/udaysharmadev/Not-Ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/not-ai/skills/not-ai .opencode/skills/not-ai && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "not-ai" agent skill from https://github.com/udaysharmadev/Not-Ai/tree/main/plugins/not-ai/skills/not-ai into .opencode/skills/not-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "not-ai", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
not-aiEdit prose into a clear, specific, source-grounded version that preserves the author's meaning and voice.
Not AI is an agent skill from udaysharmadev/Not-Ai. Edit prose into a clear, specific, source-grounded version that preserves the author's meaning and voice. Use for humanizing stiff writing, removing generic phrasing, matching a supplied voice sample, diagnosing robotic prose, or drafting from the user's notes. Do not optimize for AI-detector scores or claim to prove authorship.
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 17 other files (for example `reference/asd-ste100.md`, `reference/cultural-and-language-variation.md` and `reference/detector-literacy.md`).
It sits in Writing & Content, covering Humanizing AI text, Copy editing and proofreading and Source-grounded notebooks. It works with GitHub and LinkedIn. The repository describes itself as: Not Ai isn’t just about bypassing AI detectors. It puts good writing first, creating clear, honest prose shaped by human writing standards. It’s perfect for college and school…. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 66c9fcf. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Not AI loads about 4.7k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 2,141 words of instructions outside code blocks.
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.
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.
The full file from udaysharmadev/Not-Ai at commit 66c9fcf, republished under its MIT licence (© udaysharmadev). 2,141 words, ~4,656 tokens.
.claude/skills/not-ai/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Not Ai is an editorial skill, not an authorship test or detector-bypass tool. Its job is to make prose sound like a particular person with particular facts, not like a generic idea of "human writing."
Answer: given this writer, source material, audience, genre, purpose, culture, and task, what should this piece actually sound like? Edit because a change improves meaning, purpose, structure, cohesion, genre fit, syntax, lexicon, stance, voice, rhythm, cultural identity, clarity, or usability — never because a pattern allegedly "looks AI."
scripts/unicode_hygiene.py; measure the normalized view and deliver clean raw text.Rule 8 is HOUSE_STYLE for this project (explicit preference), not a scientific human-writing principle. Dashes are valid in many publications; keep protected author choices.
Default to the fullest useful result supported by the user's material. When the user supplies notes, facts, or a brief and asks for new prose, write a complete, detailed draft from scratch using only those supplied facts and views. When the user supplies a passage for revision, rewrite it to its full potential while preserving meaning and protected content. Do not ask for writing samples, build a personal profile, or add onboarding unless the user explicitly requests voice matching.
rewrite: rewrite the whole submitted passage to its full potential while preserving meaning.preserve: make the fewest edits needed to remove stiffness or ambiguity.diagnose: identify issues and quote the relevant spans; do not rewrite.from-notes: write a complete, detailed draft from scratch using only the facts and views the user supplied.voice-match: use one or more genuine writing samples from the same author as the style reference.Detector-focused requests do not change the method. Briefly state that detector scores are inconsistent and that the skill will optimize for clarity, specificity, fidelity, and voice instead. When someone received a detector flag on genuine writing, explain what the score means using detector literacy, run the prevalence math with scripts/flag_response.py --tpr [stated] --fpr [stated], and list process evidence for an appeal. Never predict what a detector will say about a draft, and never rewrite a passage to lower a score.
Separate voice from purpose when they conflict. Voice is whose habits the prose carries. Purpose is what the content type demands. When the two pull apart, satisfy the purpose first and keep as much of the voice as fits. Never resolve the tension by inventing voice evidence.
For documents over roughly 500 words, build a document map first (purpose, claims, section purposes, defined terms, protected facts, chronology), work section by section under one heading at a time, then run a global pass for terminology drift, duplicates, contradictions, lost definitions, heading mismatch, and repeated conclusions. scripts/longdoc.py automates the sectioning, the map, and the cross-section review.
Code blocks, inline code, blockquotes, and markdown link markup are masked before measurement, so identifiers and quoted examples do not count as the author's diction. Fidelity checks still run on the full deliverable.
Do not rewrite sentence by sentence first. Understand, then edit, then verify.
[bracketed need].student when running the bundled gate.scripts/diagnose.py (MTLD/HD-D, phrase patterns, cohesion, plain-language dimensions, variety, Unicode hygiene preflight). Metrics are diagnostic, never targets. Never compare a regex proxy numerically with a parsed research rate (nominalization_suffix_proxy vs parsed_nominalization_count).not_ai_core.fidelity.check_fidelity.reference_quality: insufficient/weak/usable/strong). See voice persistence.python3 tools/gate.py draft.txt --genre <genre> with --protect per literal, --ascii-punctuation only on explicit house-style request, --explain <rule> for provenance. Findings are prompts; review in context.purpose: what the reader should understand, feel, decide, or do
audience: who the reader is and what they already know
genre: the closest supported profile
register: evidence from the draft or supplied voice sample
protected: facts, claims, quotes, citations, terms, code, and constraints
unknowns: details only the writer can supplyWork paragraph by paragraph, not with global synonym replacement.
Each paragraph should do something identifiable (see step 5 roles). If it does none of these, cut it or combine it with the paragraph that does.
Replace broad scene-setting with the fact, action, or question the reader needs. Prefer "The deploy failed at 2:14 a.m." to a generic introduction about reliable systems.
Use details already in the source ledger. If the source lacks the detail, leave a bracketed prompt. Apply the genericity counterfactual: could this sentence survive unchanged if names, setting, and subject were swapped? If yes, inspect its job.
Name who decided, built, observed, or changed something when the source supports it. Passive voice is fine when the actor is unknown or irrelevant; academic/technical genres legitimately keep more.
Cut phrases that delay the point without changing it (It is worth noting that, In today's fast-paced world, plays a crucial role in, serves as a testament to). Do not ban individual words. Keep any word that is precise, idiomatic for the author, or required by the field.
Split sentences carrying unrelated jobs; join choppy ones clearer together. Vary length only when meaning creates the variation; never manufacture length, fragments, contractions, or asides to satisfy a numeric target.
But for real contrast, Because for real cause, For example for real evidence. Delete Moreover/Additionally only as decoration. See discourse cohesion: classify additive/contrastive/causal/temporal/conditional/exemplifying/reformulating/conclusive, then ask whether the relation is real.
Do not turn may into will, suggests into proves, or impression into fact. Keep genuine hedges; remove ceremonial ones postponing the claim.
Prefer the final consequence, decision, image, result, or next action over a summary repeating the paragraph.
All profiles, measures, and vocabulary lists are English-optimized. For other languages, keep fidelity and no-invention rules and treat stylistic findings as suspect until a native reader confirms them. Never flag plain or second-language English as suspicious: constrained style is a writer's reality, not a defect. See multilingual scope and cultural variation.
student when running the bundled gate.technical-ste-inspired applies public principles (review only, labelled provisional). technical-ste-verified requires the user's authorized Issue 9 --dictionary and project --glossary; without both, never claim compliance. See ASD-STE100 and run scripts/ste_check.py --mode inspired|verify.Use only when the user explicitly requests voice-match with genuine samples. Infer style from repeated evidence, never stereotypes. Record sentence/paragraph shape, formality and contractions, directness and temperature, transitions and idioms, punctuation habits, opening/qualifying/closing moves. Copy tendencies, not memorable phrases. Compare with scripts/voice_profile.py; treat drift as a re-read prompt with reference_quality (insufficient/weak/usable/strong) and per-dimension minimums. See voice persistence.
Review every deliverable: fidelity, no invention, purpose, specificity, voice, logic, restraint, register, protected content, mechanics.
— character and replace every instance with punctuation that preserves the sentence's meaning. Do not alter protected source quotations solely to remove an existing em dash.The bundled deterministic gate supports the last review:
python3 tools/gate.py draft.txt --genre linkedin
python3 tools/gate.py draft.txt --genre student --jsonIts findings are editorial prompts. They do not determine authorship, factual fidelity, writing quality, or a detector outcome. Review every finding in context; do not obey it mechanically.
Use --protect once for each literal fact or term that must appear. Use --ascii-punctuation only when the writer or publication explicitly requested that house style. Use --explain to print the research note behind each reported rule, or --explain <rule> for one rule's provenance (category, evidence, limitations, genre caveat):
python3 tools/gate.py draft.txt --genre technical --protect "API v2"
python3 tools/gate.py draft.txt --genre readme --ascii-punctuation
python3 tools/gate.py draft.txt --genre linkedin --explain
python3 tools/gate.py draft.txt --explain nominalization-densityCompanions: scripts/diagnose.py (diagnosis shape below, --json available), scripts/voice_profile.py (--reference author.txt --draft draft.txt), scripts/longdoc.py (500+ words, document map + global pass), scripts/ste_check.py (STE-inspired/verified).
Provide a short receipt when asked, for audit, or when ambiguity remains. Include only categories that apply:
Kept: protected fact, quote, term, or position (including intentionally kept flagged items)
Moved: source detail brought forward, with the reader-facing reason
Cut: framing or repetition adding no claim or evidence
Clarified: actor, relationship, request, or qualification supported by source
Needs input: detail or judgment only the writer can supplyDo not claim the receipt proves authorship.
Read only the reference relevant to the current problem:
For a normal rewrite, return the revised text without a long preamble. Add a short note only when needed to disclose:
For diagnosis, use (scripts/diagnose.py produces this shape with --json available for tooling):
Genre: [genre]
Keep: [strong choices worth preserving]
Revise: [issue, quoted span, and reason]
Missing: [information needed for a stronger draft]
Intervention: [none, light, moderate, heavy, or blocked]
Measured: [sentence, rhythm, vocabulary, and stance figures]For an explanation request, summarize the few changes that most improved purpose, clarity, specificity, or voice. Do not report a fabricated quality score.
© udaysharmadev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 16 other files in plugins/not-ai/skills/not-ai of udaysharmadev/Not-Ai.
Open the folder on GitHubat commit 66c9fcf
Not AI 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Not AI this skilludaysharmadev/Not-Ai | 132 | — | ~4.7k | Automated safety check: Pass | MIT | |
| Book Publisherdmccreary/ibook-skills | 105 | — | ~1.3k | Automated safety check: Pass | CC-BY-NC-4.0 | |
| Writewaynesutton/markdown-site | 627 | — | ~3k | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 24k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Chinese Text Humanizerop7418/Humanizer-zh | 19k | — | ~2k | Automated safety check: Pass | MIT | |
| Natural Japanese Business Writingcoji/natural-japanese | 1.9k | — | ~2.1k | Automated safety check: Pass | MIT |
dmccreary/ibook-skills
Publishes and promotes a finished intelligent textbook - GitHub README with badges and site statistics, LinkedIn announcement posts, LinkedIn carousel document posts (PPTX/PDF slideshows), and…
waynesutton/markdown-site
Writing style guide for technical content, social media, blog posts, READMEs, git commits, and developer documentation.
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
op7418/Humanizer-zh
Edits Chinese articles, comments and documents to remove filler, repetition and template phrasing while keeping the facts, the level of certainty and the author's voice.
coji/natural-japanese
Writes and edits Japanese business documents so they read clearly and naturally, removes AI-sounding phrasing and can score how AI-like a text reads.
iflytek/skillhub
Audits and rewrites formulaic, AI-sounding prose while keeping facts, voice and format, using a local Python scorer and inspect-only, rewrite or embedded-gate modes.
Categories
Edit prose into a clear, specific, source-grounded version that preserves the author's meaning and voice. Not AI is an agent skill from udaysharmadev/Not-Ai. Edit prose into a clear, specific, source-grounded version that preserves the author's meaning and voice.
Not AI fits situations like: humanizing stiff writing; removing generic phrasing; matching a supplied voice sample; diagnosing robotic prose.
Run `npx skills add udaysharmadev/Not-Ai --skill not-ai -a claude-code`. Or copy the skill folder (plugins/not-ai/skills/not-ai in udaysharmadev/Not-Ai) into .claude/skills/not-ai in your project. Claude Code loads it when a task matches its description.
Run `npx skills add udaysharmadev/Not-Ai --skill not-ai -a codex`. Or copy the skill folder (plugins/not-ai/skills/not-ai in udaysharmadev/Not-Ai) into .agents/skills/not-ai in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add udaysharmadev/Not-Ai --skill not-ai -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/not-ai, .gemini/skills/not-ai, .github/skills/not-ai and .opencode/skills/not-ai in your project.
Going by SKILL.md and its folder, Not AI needs the command-line tools its instructions call (python3). Our summary lists: Python 3.
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.
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.
Not AI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Not AI: Book Publisher (dmccreary/ibook-skills, 105 stars), Write (waynesutton/markdown-site, 627 stars), User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 24k stars) and Chinese Text Humanizer (op7418/Humanizer-zh, 19k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
udaysharmadev (a GitHub user) maintains it in udaysharmadev/Not-Ai, which has 132 GitHub stars. The repository was last updated on October 4, 2026.
Source: udaysharmadev/Not-Ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.