Sandbox
@Nanako0129/sepia

Writing skill pack for Agent Skills and Claude Code

sepia gives agents a shared writing system for fiction and professional prose. One canonical skill handles the rules, and small wrappers expose fixed actions like write, review, refactor, recreate, and hemingway across supported platforms.

2,524 stars161 forksPythonUpdated 7d ago
GitHub Trending Today #47: 4DAnyone, microduck, boop, PRAXIST, acryl, pgterm, sepia, OpenInstinct
Github Awesome14k views • 17 days ago

Videos about this repo

Who it's for

Builders who use an agent to draft, revise, or review prose across fiction and workplace writing.

What it delivers

You can get writing feedback and rewrites that follow the same rules every time instead of starting from scratch.

What it does

Shared canonical skill

One `SKILL.md` acts as the main router and rule set for all supported agents.

Four writing operations

`write`, `review`, `refactor`, and `recreate` give fixed modes for drafting, diagnosis, light edits, and full rewrites.

Fiction-specific narrative repair

The fiction path works on narrative architecture first, then discourse flow, then surface style.

Venue-matched prose rules

Separate guidance covers release notes, PR replies, postmortems, tickets, and technical articles.

Native plugin packaging

Claude Code and Codex get platform-specific plugin files, with a top-level plugin package for installation.

Research-backed rule base

The `research/` folder collects digested papers and citations that inform the writing rules.

Built-in Hemingway mode

`sepia-hemingway` applies the bundled voice profile for fiction and professional prose.

How to get it

  1. 1Run
    npx skills add Nanako0129/sepia -g     # -g = user scope; the default is project
    npx skills update sepia -g             # update
    npx skills remove sepia -g             # uninstall
  2. 2Run
    # install
    claude plugin marketplace add Nanako0129/sepia
    claude plugin install sepia@sepia --scope user
    
    # update
    claude plugin marketplace update sepia
    claude plugin update sepia
  3. 3Run
    # install
    codex plugin marketplace add Nanako0129/sepia
    codex plugin add sepia@sepia
    
    # update — refresh the marketplace snapshot, then re-add to pick up the new version
    codex plugin marketplace upgrade sepia
    codex plugin add sepia@sepia
  4. 4Run
    # install
    grok plugin install Nanako0129/sepia --trust
    
    # update
    grok plugin update
  5. 5Run
    # install directly from GitHub
    agy plugin install https://github.com/Nanako0129/sepia

README

sepia

English | 繁體中文 | 简体中文

behavioral eval version consistency release license: MIT

De-AI writing at the layer that actually gives AI away. Fiction gets its narrative architecture repaired before anyone touches word choice; professional documents (release notes, PR replies, postmortems, tickets, technical articles) each get rules matched to their venue.

A portable Agent Skill: 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. One canonical SKILL.md, no per-platform forks. Four operations: write, review (diagnose only), refactor (minimal edits), recreate (full rewrite).

Why another humanizer

Every popular humanizer edits word choice and syntax. StoryScope (Russell et al., 2026: 61,608 stories, human + 5 frontier LLMs) showed that a classifier using narrative-structure features alone detects AI fiction at 93.2% macro-F1. In the same study's LAMP-edited condition, where human editors had rewritten the surface style, detection dropped only from 95.5% to 93.9%. The tells that survive are architectural: themes explained by the narrator, single-track causally-tidy plots, emotions rendered only as bodily sensation, no real-world references, no reader, linear time, endings resolved by protagonist growth and acceptance.

sepia turns those measured gaps, together with the related studies digested in research/, into a three-pass writing and revision protocol for fiction:

PassLayerExamples
1Narrative architecture (fiction)stop explaining the theme, loosen the causal chain, back-load revelations, mix emotion modes, sparse character networks, name real things
2Discourse flowde-template the paragraph-question sequence, fix the mid-story sag, vary rhythm and positions
3Surface stylethe classic layer: clichés, syntax templates, vocabulary, register

Plus a 30-feature diagnosis rubric and per-model fingerprints in two layers: narrative tells measured by StoryScope (Claude, GPT, Gemini, DeepSeek, Kimi) and sentence-level tells taken from the vendors' own prompting guides (Claude Fable 5.1 and Mythos 5.1, Fable 5 and Mythos 5, Opus 5, Opus 4.8; GPT-5.6, GPT-6 Astra; Gemini 3 series), applied when the writing or executing model is known. Vendors that publish no such guidance are recorded as consulted, not guessed.

Professional prose fails differently. The studies digested in research/ point at filler that carries no information, hedging where a judgment was needed, chatbot leftovers, register that ignores the venue, and formatting that looks stamped out. Each document type gets a thin rule file on top of one shared checklist:

DomainThe gist
Release notes / announcementsuser impact first, artifacts per claim, no marketing inflation
PR / issue repliesanswer first, cite file:line, no reflex praise, length ∝ stakes
Postmortemsblameless toward people, merciless toward mechanisms; timestamps, dead ends, owned action items
Tickets / work orderstitle = outcome, testable acceptance criteria, link don't repeat
Technical articlesopen at the problem, one real dead end, one committed opinion, numbers with conditions

The governing principle throughout: calibrate to the human distribution, don't invert the AI one. Humans sit at moderate values; a story with every rule applied is a new fingerprint. The skill selects 3–5 moves per story and leaves slack.

Operation entries

The complete plugin package gives Claude Code, Codex, Grok Build, and Antigravity a general router plus five direct entries:

OperationClaude CodeCodexGrok BuildAntigravityMeaning
write/sepia-write$sepia-write/sepia-write/sepia-writeCreate new prose
review/sepia-review$sepia-review/sepia-review/sepia-reviewDiagnose without editing
refactor/sepia-refactor$sepia-refactor/sepia-refactor/sepia-refactorMake minimal in-place edits
recreate/sepia-recreate$sepia-recreate/sepia-recreate/sepia-recreateRewrite from the source facts and intent
hemingway/sepia-hemingway$sepia-hemingway/sepia-hemingway/sepia-hemingwayWrite or refactor fiction with the built-in Hemingway voice applied

The general /sepia (Claude Code, Grok Build, and Antigravity) or $sepia (Codex) router remains available. The operation wrappers depend on their sibling canonical skill, so standalone wrapper installation is unsupported; install the complete plugin package. What was verified on each platform is stated under Install.

Experimental: composing with voice skills

Since v0.4.0, sepia defines an interface for stacking a voice or style skill on top of it — a minimalism method, a brand voice, a persona guide. It is opt-in: tell sepia the voice skill is in play, and it loads references/voice-skills.md over the normal route. No external voice is loaded unless you say so.

The contract in short: sepia's architecture decisions come first. The voice's moves are applied selectively (3–5 signature moves per piece, 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. Direct conflicts come back to you. The interface is grounded in one blind review experiment on a strict-minimalism specimen — a worked example, not measured evidence. One built-in profile ships under references/voices/ (Hemingway: iceberg omission for fiction, the Kansas City Star rules for professional prose, each move traced to its source). The built-in profile follows the same rule. On fiction, a review only reports when your text's recorded findings fit the Hemingway profile; it loads nothing. Asking for strong de-AI on a story counts as opting in, and sepia then says which profile it is applying and how to decline. /sepia-hemingway is the direct entry.

Sentence rhythm and Chinese calibration

The style pass checks the spread of sentence lengths, the one syntactic measure on which every study that measured it agrees (human text varies more within a passage, in English and in Chinese); mean sentence length, punctuation counts, and paragraph length are not treated as signals because the measured directions contradict each other. Chinese text loads references/languages/zh.md, a calibration built on the one measured Chinese corpus (HC3, 2023) with its limits stated in the file; evidence and numbers are in research/rhythm-syntax.md.

Install

Every command below is written for user scope — install once, use it in every project.

Any agent (Skills CLI, 77+ agents)

npx skills add Nanako0129/sepia -g     # -g = user scope; the default is project
npx skills update sepia -g             # update
npx skills remove sepia -g             # uninstall

Installs on every agent the Skills CLI supports — Cursor, Cline, Windsurf, Copilot, OpenCode, goose, and more. Pick your agents when prompted. Runtime behavior outside the four platforms below has not been exercised by us; the skill is plain markdown under the Agent Skills standard, so file an issue if your agent trips on it.

The four platforms below have native plugin installers, each exercised with a live install. Verified means the install completes and the sepia entries appear. Whether the entries then behave as documented has not been checked platform by platform.

Claude Code

# install
claude plugin marketplace add Nanako0129/sepia
claude plugin install sepia@sepia --scope user

# update
claude plugin marketplace update sepia
claude plugin update sepia

The in-session /plugin install dialog asks you to pick a scope — choose User there.

Codex

# install
codex plugin marketplace add Nanako0129/sepia
codex plugin add sepia@sepia

# update — refresh the marketplace snapshot, then re-add to pick up the new version
codex plugin marketplace upgrade sepia
codex plugin add sepia@sepia

Grok Build

# install
grok plugin install Nanako0129/sepia --trust

# update
grok plugin update

Grok also auto-discovers a Claude Code install of sepia if you have one; either route works.

Antigravity

# install directly from GitHub
agy plugin install https://github.com/Nanako0129/sepia

Project scope (alternative)

When one repo should pin its own copy, commit skills/sepia/ into that repo as .agents/skills/sepia (Codex + Antigravity) or .claude/skills/sepia (Claude Code).

Uninstall

Each tool uses its native command:

# Claude Code
claude plugin uninstall sepia@sepia --scope user

# Codex
codex plugin remove sepia@sepia

# Grok Build
grok plugin uninstall sepia

# Antigravity
agy plugin uninstall sepia

Layout

sepia/
├── plugin.json              # Antigravity packaging
├── skills/
│   ├── sepia/                # canonical skill (Agent Skills standard)
│   │   ├── SKILL.md          # routing, operations, calibration rules, guardrails
│   │   └── references/       # passes, rubric, fingerprints, domain rules, languages/zh.md, voice-skills (experimental)
│   ├── sepia-write/SKILL.md  # thin fixed-operation wrappers
│   ├── sepia-review/SKILL.md
│   ├── sepia-refactor/SKILL.md
│   ├── sepia-recreate/SKILL.md
│   └── sepia-hemingway/SKILL.md  # fiction write/refactor with the built-in voice
├── .claude-plugin/          # Claude Code packaging (plugin.json, marketplace.json)
├── .codex-plugin/           # Codex packaging
├── .agents/                 # Codex/Antigravity workspace-mode discovery + Antigravity workflow
└── research/                # digested evidence base with sources

Star History

Star History ChartStar History Chart

Sources

Full digests with links in research/. Primary: StoryScope (arXiv:2604.03136); LAMP (CHI 2025); Measuring AI Slop (arXiv:2509.19163); Reinhart et al. (PNAS 2025); Russell et al. (ACL 2025); NarraBench (arXiv:2510.09869); Echoes in AI (PNAS 2025); QUDsim (COLM 2025); Beguš (2024); Beyond Checkmate (EMNLP 2025); Nonaka & Perry (2025); Chakrabarty et al. (2026); Shan, Lee & Hao (2026); Rohrbacher et al. (2026).

Support

You can use sepia for free without an account. The research behind every rule is open. Ongoing costs are just maintainer time and two kinds of model quota: delegating literature surveys to research agents that read primary papers, and running live models to test rule changes on A/B stories and cross-platform end-to-end reviews before shipping. You can support the project on Patreon.

Support sepia on Patreon

License

MIT

Files in the repo

Repository payload16 top-level entries
  • .agents
  • .claude-plugin
  • .codex-plugin
  • .github
  • evals
  • research
  • scripts
  • skills
  • tests
  • .gitignore
  • CONTRIBUTING.md
  • LICENSE
  • plugin.json
  • README.md
  • README.zh-CN.md
  • README.zh-TW.md

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More skills

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.

117k
1 add
Vincentwei1021/
anything2explainer

Topic in, narrated explainer video out. A Claude Code / Codex skill that turns any topic into a black-canvas motion-graphics explainer video with TTS voiceover, subtitles and a chapter progress bar. Chinese or English; every frame drawn in code with Remotion.

666

Open-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)

71k

Agent skill for beautiful, verifiable architecture, workflow, sequence, data-flow, and lifecycle diagrams—self-contained HTML with motion and crisp export.

57k
ayghri/
i-have-adhd

A skill to stop your coding agent from burying the answer. ADHD-friendly output.

38k