autograph
Schema-as-code memory for AI agents that write to an Obsidian vault. One schema.json keeps the vault typed, linked, deduplicated, and decaying — automatically. autograph is a memory engine for Obsidian vaults that AI agents write to.
Make Claude talk like a human: 17 installable output styles for Claude Code, built on credited methodologies.
$ npx -y skills add smixs/awesome-claude-output-styles --agent claude-code
Output styles are the right layer for fixing Claude's voice: they rewrite the
system prompt itself and reframe the agent's identity around your voice —
unlike CLAUDE.md rules, which are injected as context alongside everything
else. Every style here mirrors the exact structure of Anthropic's built-in
styles (identity line, Style Active marker, procedural rules), and the
optional --enforce hook gives them the same per-turn reminder the built-ins
get from the harness. One markdown file each, correct 2026 frontmatter,
MIT-licensed, with the original author credited in the table below.
Jesus. I had to lookup almost every word to make sense of this.
He's not alone — the August 2026 complaint threads run hundreds of upvotes, and the word "Claudisms" now has its own field guide. The model is brilliant; the register is exhausting. Pick a voice below and fix it in one command.
Real, unedited Opus 5 voice, July 2026 threads:
The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle, which breaks React's referential equality check, so you may want to consider memoization…
The same answer, seven voices:
wait-whatafter Matt Pocock (@mattpocockuk) — context first, ASD-STE100, your project's vocabulary
We are hunting the extra re-renders in your list view. Your code creates a new object on each render. React sees a new object and draws again. Wrap the object in
useMemo. Then React gets the same object and does not draw again.
cavemanafter Julius Brussee (@julius_brussee), 95k★
New object ref each render. Inline object prop = new ref = re-render. Wrap in
useMemo. Done.
no-ai-slopafter Peter Yang (@petergyang) — direct, opinionated, zero filler
The inline object is new on every render, and React compares props by identity — so it re-renders each time. Wrap it in
useMemo. Don't reach forReact.memohere: it treats the symptom, this fixes the cause.
no-slopthe school of Siqi Chen (@blader) — the anti-Claudism voice
The component re-renders because the prop object is new each time, not because its contents changed. React checks identity, not contents. Wrap the object in
useMemoand the identity stays stable.
unslopafter Lauren Tan's unslop skill (cursor/plugins) — surface tells out, an opinion in
React compares props by identity, not by contents, so a fresh object literal on every render is a new reference and any memoized child sees a changed prop. Wrap it in
useMemowith the values it depends on and the reference stays stable. If it holds no render-dependent state at all, hoist it to module scope so it is created once.
adhdafter Ayoub Ghriss's i-have-adhd, 17k★
Wrap the inline object in
useMemo— that stops the re-renders (~2 min). Why: a new object every render makes React think the prop changed.
gen-z
found it, no cap: you hand React a brand-new object every render, so it thinks something changed and redraws. wrap it in
useMemoand it's a clean W.
┌──────────────────────────────────────────────────┐
│ styles 20 │
│ credited authors & standards 20+ │
│ code touched by any persona never │
│ jargon left unexplained 0, by spec │
└──────────────────────────────────────────────────┘
One style (installs and activates it):
curl -fsSL https://raw.githubusercontent.com/smixs/awesome-claude-output-styles/main/install.sh | bash -s -- eli15
Everything (installs all 20 + the style-maker skill; activate later via /config):
curl -fsSL https://raw.githubusercontent.com/smixs/awesome-claude-output-styles/main/install.sh | bash -s -- --all
After install — 3 steps. Styles only load at session start, so nothing changes until you restart Claude Code:
/clear)./config and find the Output style setting.If you installed a single style, it's already selected — you only need step 1.
Switching back: /config → Output style → Default.
[!TIP] The old
/output-stylecommand was removed in Claude Code v2.1.91 — most guides online still mention it and are outdated./configis the way.
/config: the /style commandTwenty styles do not fit a settings menu comfortably. --all installs the
/style command; on its own:
curl -fsSL https://raw.githubusercontent.com/smixs/awesome-claude-output-styles/main/install.sh | bash -s -- style-command
/style opens a picker over every style you have installed, four at a time,
with Default always one click away. /style caveman switches straight to
one. User styles are written to ~/.claude/settings.json, project styles to
.claude/settings.local.json, so a personal preference never lands in a
teammate's checkout.
--enforceClaude Code reinforces its built-in styles every single turn — but never
custom ones, so custom voices fade over a long session. Add --enforce to any
install command and a tiny UserPromptSubmit hook
gives whatever style you have active the same per-turn reinforcement:
curl -fsSL https://raw.githubusercontent.com/smixs/awesome-claude-output-styles/main/install.sh | bash -s -- eli15 --enforce
The hook is silent for built-in styles (no double reminders) and for
default. Remove it anytime by deleting the entry from
~/.claude/settings.json → hooks.UserPromptSubmit.
A style body is plain markdown; only the frontmatter is Claude Code's.
--body prints the body without it, ready to paste into any agent's rules
file:
curl -fsSL https://raw.githubusercontent.com/smixs/awesome-claude-output-styles/main/install.sh | bash -s -- --body caveman
Copy-paste commands for Codex, Cursor, Windsurf and AGENTS.md / GEMINI.md
agents: docs/other-agents.md. Nothing is added to the
style files to make this work — no markers, no version stamps. Those bytes
would compete with the instructions in every session.
| Style | What it does | Method · author |
|---|---|---|
wait-what | Context first, Simplified Technical English, your project's own vocabulary | Matt Pocock (@mattpocockuk) — his wait-what skill as an always-on style |
plain-english | ≤20-word sentences, one word one meaning, active voice | ASD-STE100 (aerospace, 1983) · Amin Boulegroun |
eli15 | Smart-teenager explanations: one analogy, its breaking point, a line to remember | ELI5 prompt research · r/explainlikeimfive house rules |
analogy-engine | One sustained analogy with part-by-part mapping | IEEE ProComm · Reijnierse et al. (JCOM 2025) · CMU metaphor checklist |
feynman | Teaches, names the hard part, checks understanding with questions | Richard Feynman's technique |
thing-explainer | Only the ten hundred most common words | Randall Munroe (xkcd, Thing Explainer) |
ladder | Every answer at 3 levels: like I'm 5 → 15 → pro | the classic r/PromptEngineering pattern |
| Style | What it does | Method · author |
|---|---|---|
executive | Answer first, ≤3 reasons, evidence on request | Barbara Minto's Pyramid Principle · BLUF · Sruthi Reddy · Joe Cotellese (@jcotellese) |
smart-brevity | 6-word tease, "Why it matters:", "Go deeper:" | Smart Brevity · Jim VandeHei, Mike Allen, Roy Schwartz (Axios) |
Schema-as-code memory for AI agents that write to an Obsidian vault. One schema.json keeps the vault typed, linked, deduplicated, and decaying — automatically. autograph is a memory engine for Obsidian vaults that AI agents write to.
Скилл для AI-агентов: Claude Code, Codex, OpenClaw, Hermes и любых других, читающих SKILL.md. Берёт русский текст после нейросети и убирает всё, по чему его палят: канцелярит, «не просто X, а Y», длинные тире, штампы, воду. Факты и цифры не трогает.
An always-on second brain you talk to. Voice notes in Telegram → typed, linked knowledge in your Obsidian vault. Runs 24/7 on the Claude subscription you already have.
awesome-claude-output-styles is a Claude Code plugin with 1 hand-picked skill, indexed on Flowy in the Writing category. Install it with the command on its page. It includes style-maker. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it