sepia: De-AI Writing That Repairs Narrative Architecture Instead of Surface Style
De-AI writing skill for any Agent Skills-compatible agent (77+ via the Skills CLI), with native plugins for Claude Code, Codex, Grok Build, and Antigravity. Narrative-architecture repair for fiction, venue-matched rules for professional prose. Based on StoryScope (arXiv:2604.03136).
At a glance
- What is it?
- sepia is an Agent Skill that targets the structural tells that give AI fiction away, backed by the StoryScope study, with venue-matched rules for professional prose. It installs across 77+ agents via the Skills CLI and ships native plugins for Claude Code, Codex, Grok Build, and Antigravity.
- Who is it for?
- Adopt sepia if you write or edit fiction with an agent and you are convinced by the StoryScope evidence that structural tells survive surface editing. It is also a fit for professional writers who need venue-specific rules for release notes, postmortems, or technical articles.
- 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 received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What sepia targets and who it serves
sepia addresses a specific failure: popular humanizers edit word choice and syntax, but the StoryScope study (arXiv:2604.03136) found that a classifier using only narrative-structure features detects AI fiction at 93.2% macro-F1. In the study's LAMP-edited condition, where human editors rewrote surface style, detection dropped only from 95.5% to 93.9%. The tells that survive are architectural: themes explained by the narrator, single-track causal plots, emotions rendered only as bodily sensation, no real-world references, no reader, linear time, and endings resolved by protagonist growth. sepia is for writers who use AI agents and want to reduce those detectable patterns, not just remove clichés. It also serves professional prose writers who need venue-matched rules for release notes, PR replies, postmortems, tickets, and technical articles, where the failure modes are different: filler with no information, hedging, chatbot leftovers, and register that ignores the venue.
The three-pass protocol and the calibration principle
sepia structures its fiction revision as a three-pass protocol. Pass 1 addresses narrative architecture: stop explaining the theme, loosen the causal chain, back-load revelations, mix emotion modes, keep character networks sparse, and name real things. Pass 2 covers discourse flow: de-template the paragraph-question sequence, fix the mid-story sag, and vary rhythm and positions. Pass 3 is the classic surface layer: clichés, syntax templates, vocabulary, and register. The governing principle is to calibrate to the human distribution, not invert the AI one. Humans sit at moderate values, so a story with every rule applied becomes a new fingerprint. The skill selects 3 to 5 moves per story and leaves slack. That is a deliberate divergence from tools that apply every heuristic at once, and it means the output should not look maximally 'human' in every dimension.
How the skill is packaged and installed
sepia is a portable Agent Skill that follows the agentskills.io specification. Any agent that speaks the standard can load it, and the Skills CLI, which supports 77+ agents, installs it with one command. Claude Code, Codex, Grok Build, and Antigravity additionally get native plugin packaging. The README stresses one canonical SKILL.md with no per-platform forks. The plugin package provides a general router plus five direct entries: write, review, refactor, recreate, and hemingway. The operation wrappers depend on the sibling canonical skill, so standalone wrapper installation is unsupported; you must install the complete plugin package. The README does not give the exact install command, but it points to the Skills CLI and the Agent Skills specification, so the expected path is to fetch the skill from the repository or a registry and run the CLI's install command. The project is in Python, but the skill itself is a markdown-based instruction set, so the language is for tooling, not for the output.
The review and refactor operations: diagnosis versus minimal change
sepia offers four operations that differ in how much they change the text. review is diagnose only: it produces a report without editing. refactor makes minimal in-place edits. recreate rewrites from the source facts and intent, which implies a fuller transformation. The hemingway operation applies a built-in Hemingway voice profile. The distinction matters because a writer may want a diagnosis before committing to edits. The README describes a 30-feature diagnosis rubric, which suggests the review output is structured and feature-based. The refactor operation is positioned as minimal, which aligns with the calibration principle: it should not over-apply rules. For professional prose, each document type has a thin rule file on top of one shared checklist, so the review output will differ by venue.
Per-model fingerprints: what the research says and what it does not
sepia includes per-model fingerprints in two layers. The first layer uses narrative tells measured by StoryScope for models like Claude, GPT, Gemini, DeepSeek, and Kimi. The second layer uses sentence-level tells taken from vendors' own prompting guides, such as Claude Fable 5.1 and Mythos 5.1, GPT-5.6 and GPT-6 Astra, and Gemini 3 series. These are applied when the writing or executing model is known. Vendors that publish no such guidance are recorded as consulted, not guessed. That is an honest boundary: sepia does not fabricate fingerprints for models without published guidance. The README does not list the specific features in the 30-feature rubric, nor does it show how the fingerprints are encoded in the skill files. A user who wants to verify the mechanism would need to inspect the repository's skill files and the research/ directory, which the README cites but does not reproduce.
Professional prose rules are venue-matched, not one-size-fits-all
sepia's professional prose handling is distinct from its fiction path. The README gives a table of domains and their gist. Release notes and announcements require user impact first, artifacts per claim, and no marketing inflation. PR and issue replies must answer first, cite file:line, avoid reflex praise, and scale length with stakes. Postmortems must be blameless toward people but merciless toward mechanisms, with timestamps, dead ends, and owned action items. Tickets and work orders need a title that states the outcome, testable acceptance criteria, and links instead of repetition. Technical articles should open at the problem, include one real dead end, one committed opinion, and numbers with conditions. These are not generic style tips; they are structural rules that an agent can follow. The thin rule files sit on top of one shared checklist, which means a writer can switch between document types without loading a completely different skill.
Experimental voice stacking and the Hemingway profile
Since v0.4.0, sepia defines an interface for stacking a voice or style skill on top of it. This is opt-in: you must tell sepia that a voice skill is in play, and it then loads references/voice-skills.md over the normal route. No external voice is loaded unless you say so. The contract is that sepia's architecture decisions come first, and the voice's moves are applied selectively, 3 to 5 signature moves per piece, with formula endings deliberately broken sometimes. Review reports the voice's known costs instead of fixing them away, while uniformity findings keep full strength: a voice does not excuse a metronome. On professional routes, the venue still sets the register. The interface is grounded in one blind review experiment on a strict-minimalism specimen, which the README calls a worked example, not measured evidence. The built-in Hemingway profile ships under references/voices/ and applies iceberg omission for fiction and the Kansas City Star rules for professional prose, with each move traced to its source. The /sepia-hemingway command is the direct entry. This is a thin evidence base, so treat the voice stacking as a feature for experimentation rather than a validated method.
Maintenance, licensing, and what to verify before adopting
The project is MIT licensed, which permits commercial use and modification with attribution. The repository is not archived and shows recent releases: v0.9.0 on 2026-09-08, v0.8.0 on 2026-09-05, and v0.7.0 on 2026-09-04. That is a rapid release cadence, which suggests active development but also means the skill interface could change between versions. The README mentions a behavioral eval workflow and a version consistency workflow, which indicates some automated testing, but it does not describe the test coverage or results. The operation wrappers depend on the sibling canonical skill, so you cannot install a single wrapper in isolation. The README states what was verified on each platform under Install, but the cleaned README does not include that section, so I cannot confirm which platforms have been tested. Before adopting, you should check the Install section in the full README to see the verification status for your agent. The project's reliance on the StoryScope study is central, so you should read that paper to judge whether the 93.2% detection rate applies to your writing context. The voice stacking feature is experimental and based on one blind review, so do not expect it to be as robust as the core protocol.
Editorial conclusion
Adopt sepia if you write or edit fiction with an agent and you are convinced by the StoryScope evidence that structural tells survive surface editing. It is also a fit for professional writers who need venue-specific rules for release notes, postmortems, or technical articles. Do not adopt it if you want a one-click humanizer that rewrites every sentence, because sepia deliberately applies only 3-5 moves per piece to avoid creating a new fingerprint. Before adopting, verify that your agent supports the Agent Skills standard or the Skills CLI, and check the research/ directory to see whether the studies cited match your use case. The built-in Hemingway voice is experimental and grounded in one blind review, so treat it as a starting point, not proof. The project is under active development with frequent releases, so pin a version and review the changelog before upgrading.
Community notes