Adk Style Guide
BrainDAO/adk-ts
ADK-TS brand voice, terminology, and writing conventions. An agent skill from BrainDAO/adk-ts.
Use before producing any English text the user signs — READMEs, PRs, issues, PR and issue comments, code comments, emails, blog posts, human-facing docs — drafted or rewritten at native fluency in…
$ npx skills add vinta/hal-9000 --skill write-like-me -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install vinta/hal-9000 write-like-me --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/vinta/hal-9000.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/write-like-me .claude/skills/write-like-me && 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 "write-like-me" agent skill from https://github.com/vinta/hal-9000/tree/main/skills/write-like-me into .claude/skills/write-like-me/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-like-me", 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/vinta/hal-9000/tree/main/skills/write-like-meType 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 vinta/hal-9000 --skill write-like-me -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install vinta/hal-9000 write-like-me --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinta/hal-9000.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/write-like-me .agents/skills/write-like-me && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "write-like-me" agent skill from https://github.com/vinta/hal-9000/tree/main/skills/write-like-me into .agents/skills/write-like-me/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-like-me", 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 vinta/hal-9000 --skill write-like-me -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install vinta/hal-9000 write-like-me --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinta/hal-9000.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/write-like-me .cursor/skills/write-like-me && 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 "write-like-me" agent skill from https://github.com/vinta/hal-9000/tree/main/skills/write-like-me into .cursor/skills/write-like-me/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-like-me", 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/vinta/hal-9000.git --path skills/write-like-me--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 vinta/hal-9000 --skill write-like-me -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install vinta/hal-9000 write-like-me --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinta/hal-9000.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/write-like-me .gemini/skills/write-like-me && 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 "write-like-me" agent skill from https://github.com/vinta/hal-9000/tree/main/skills/write-like-me into .gemini/skills/write-like-me/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-like-me", 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 vinta/hal-9000 write-like-meInstalls 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 vinta/hal-9000 --skill write-like-me -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/vinta/hal-9000.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/write-like-me .github/skills/write-like-me && 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 "write-like-me" agent skill from https://github.com/vinta/hal-9000/tree/main/skills/write-like-me into .github/skills/write-like-me/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-like-me", 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 vinta/hal-9000 --skill write-like-me -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install vinta/hal-9000 write-like-me --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/vinta/hal-9000.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/write-like-me .opencode/skills/write-like-me && 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 "write-like-me" agent skill from https://github.com/vinta/hal-9000/tree/main/skills/write-like-me into .opencode/skills/write-like-me/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-like-me", 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.
write-like-meUse before producing any English text the user signs — READMEs, PRs, issues, PR and issue comments, code comments, emails, blog posts, human-facing docs — drafted or rewritten at native fluency in…
Write Like Me is an agent skill from vinta/hal-9000. Use before producing any English text the user signs — READMEs, PRs, issues, PR and issue comments, code comments, emails, blog posts, human-facing docs — drafted or rewritten at native fluency in the voice of the skill's author, Vinta Chen. Fires mid-task too: a comment drafted inside another skill's workflow, or text the user will approve before it ships. Not for text addressed to agents unless the user asks
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/README.md`, `references/exemplars.md` and `references/style-spec.md`).
It sits in Writing & Content, covering Technical documentation and Blog and article writing. The repository describes itself as: Opinionated AI coding agent and dev environment automation for macOS. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0a2005a. 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.
No scripts in the folder and no shell commands in SKILL.md.
From 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.
Write Like Me loads about 2.6k tokens when it runs, and up to ~9.4k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 1,471 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 vinta/hal-9000 at commit 0a2005a, republished under its MIT licence (© vinta). 1,471 words, ~2,551 tokens.
.claude/skills/write-like-me/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Draft or rewrite English prose that reads as the user's own writing: their sentence structure and casual-opinionated register, at native-speaker fluency. The target is the user, but fluent — never a ghostwriter. One voice for everything the user signs, in every channel. English only: never output Chinese.
Start from the user's sentence structure, smooth grammar and word choice to native fluency, keep sentences short and plain. Every other rule in this skill loses to this one.
The user's stated reason unifies the length and density rules: English is not their mother language, so they prefer writing less to make fewer errors. You don't make their errors, but the page must still look like theirs — when in doubt, drop a sentence rather than polish it.
| Instead of | Write |
|---|---|
| an em-dash chain | two short sentences |
| packed caveats ("Two caveats: ...") | drop them, or one plain sentence |
| a tricolon over unlike items | a list, or the single item that matters; a three-beat over matched cases stays (style spec section 8) |
| a template phrase over unlike list items | each item standing alone; matched phrasing stays where the items are matched cases (style spec section 8) |
| bold or CAPS for excitement | plain words — CAPS only on a weighted bare negation ("NEVER", "NO INDEX") or irreversible-harm warns |
| three or more nouns in a row | a preposition or a verb between them; proper names, fixed terms, and a tagline's leading search phrase stay — name the cost once, the user picks |
Load the voice. Read references/style-spec.md and references/exemplars.md in full. Done when you can name the target register (blog, README or its one-line tagline, issue/PR/email, or code comments) and the sentence-length cap that applies to it.
Collect the source. For a rewrite, gather the user's draft from the conversation or the files they pointed at. Prose already in the user's files is facts, never voice, unless the user vouched it line by line: an unvouched comment or doc is rewritten from what it states, not from its phrasing. For a fresh draft, gather the facts to state, and keep every sentence the user already wrote about the topic — those sentences are the skeleton. The ask is the user's sentence, never the invoker's paraphrase: when you wrote the skill arguments yourself, re-read the user's message and drop every goal it does not state — a request for fancy AI words asked for discoverability nouns, and the invented "keep the humor" produced three rejected jokes. Before naming a feature or picking a term, grep the user's docs in the current repo: reuse a named feature verbatim, capitals included, and prefer a word those docs already use over the style spec's vocabulary or a search term; the sentences around that word stay facts. Done when everything to say is in hand and nothing will need inventing mid-draft.
Write from the user's structure. Rewrites keep the user's clause order and sentence boundaries, changing only what native fluency requires: grammar, agreement, articles, unnatural word choice. That holds for prose the user wrote as prose; a sentence they typed in chat to explain something is raw material, so keep its facts and terms and build the sentence fresh. Fresh drafts build short plain sentences in the user's stance: direct "you" to the reader, plain verbs, digits for numbers, a colon and a list wherever 2 or more items line up. Say what the reader gets, never how the tool works: "A shortcut to answer ... very quickly" beat "from what the model already knows", and "(UMD)" beat "for <script>". Add facts the user didn't write only as brief plain sentences in the same tone. Reach into the signature-move menu only where a move fits the content. When offering words for a feature phrase, check what each head noun implies about the rest of the product before ranking by sound: fixes blamed the regex rules, fallback made the AI optional, smarts hyped it. Rank options by exactness and concreteness, never by plainness: plain is not vague, and the user's pick has been the exact verb over the generic one (distinguish over handle), the casual word over the formal (totally over completely), and the concrete fragment over the hedge against staleness (in seconds on a cheap model). Done when every output sentence traces to a sentence the user wrote or a pattern in the style spec — none to your default register.
Self-check the full draft. Long drafts drift near the end, so scan the last third twice. Hunt for: hedged verdicts where the user would write a plain "No."; adjacent sentences restating one idea; ornament the facts don't need; a joke that had to be manufactured; bold, CAPS, or exclamation marks doing enthusiasm; caveats sneaking back in; sentences past 30 words; any tell from the substitution table. Then check the paragraph architecture, which sentence-level scanning misses: the lead paragraph does one job in 1-2 sentences, and each paragraph after it carries exactly one idea. Done when the closing section reads as much like the user as the opening and no paragraph packs two ideas.
Deliver. When another skill's workflow invoked you, hand the exact text back to that workflow and continue with its next step in the same turn: the draft is that workflow's input, not your final answer, and the rest of this step does not apply. Otherwise, present the exact text and stop; never ask whether to apply it, since the proposal is the question and the user answers by saying so or by writing their own version. Edit files in place only when the user asked for that; blog drafts are approval-gated and never applied without the user's OK in the current conversation. When the source sentence was the user's own, name the grammar fixes you made in the reply: they want to learn them. A fresh draft has nothing to name. When the user answers with their own version, often followed by a lone "?", they want a review, never a redraft: verdict first, at most 2 nits on facts and grammar, then the exact line to paste. Style is not a nit: the user rejected matching sibling bullets' verb-first shape, ignored "for any topic is slack", and raises symmetry themselves. Fit each fix inside their shape: they took the missing "?" and skipped splitting their quote in two. A grammar or native check on the user's own line fixes the slip and keeps their verb and noun: offer objects that pair with their word, never an idiom that replaces it ("distinguish semantic" came back as "tell apart" twice and the user restored their words both times; published: "distinguish semantic nuances"). "Shorter?" means one notch shorter with the sentence shape kept; the bare minimum got "too short". For code comments that is the normal path, since the user writes the final version. Done when the user has the text.
Harvest (optional). When the user rewrites your draft before using it, often in a later turn and also when another skill's workflow invoked you, offer to save the drafted-vs-sent pair to their local corpus, in the format of the pairs already there: the diff is calibration data for the next round. Ask where the corpus lives if you don't know, and skip this step for the rest of the session when they keep none. Done when the pair is saved, or the user declined or keeps no corpus.
© vinta, 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 3 other files (references) in skills/write-like-me of vinta/hal-9000.
Open the folder on GitHubat commit 0a2005a
Write Like Me 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 |
|---|---|---|---|---|---|---|
| Write Like Me this skillvinta/hal-9000 | 138 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Adk Style GuideBrainDAO/adk-ts | 119 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Writewaynesutton/markdown-site | 628 | — | ~3k | Automated safety check: Pass | MIT | |
| Write News Articlegambitph/Stackable | 350 | — | ~2.3k | Automated safety check: Pass | GPL-3.0 | |
| Write Evlog Contentevloghq/evlog | 1.9k | — | ~386 | Automated safety check: Pass | MIT | |
| Writerrileyhilliard/claude-essentials | 130 | — | ~2k | Automated safety check: Pass | MIT |
BrainDAO/adk-ts
ADK-TS brand voice, terminology, and writing conventions. An agent skill from BrainDAO/adk-ts.
waynesutton/markdown-site
Writing style guide for technical content, social media, blog posts, READMEs, git commits, and developer documentation.
gambitph/Stackable
Drafts a Stackable release news article and the matching readme.txt News Article Updates link.
evloghq/evlog
The evlog content doctrine, for anyone drafting or judging evlog prose: a docs page, the landing, a blog post, a package README, a skill, an AGENTS.md, a changeset.
rileyhilliard/claude-essentials
Writing style and tone guide for human-sounding content. An agent skill from rileyhilliard/claude-essentials.
chrispangg/deepagentsdk
Writing content across different platforms and styles. An agent skill from chrispangg/deepagentsdk.
vinta/hal-9000
Finds which plugins in the repository changed, bumps only the ones not already bumped since origin/main, and checks that each plugin's two manifests stay in sync.
vinta/hal-9000
Audits your Claude Code settings and environment variables against the current official docs and returns a ranked list of changes tied to how you actually work.
vinta/hal-9000
Commits everything in the working tree as one logical change per commit, splitting files by hunk, with bodies that say what was wrong before and never an invented reason.
vinta/hal-9000
A skill your agent uses when the user explicitly asks to push the current branch and open a PR, rewrite an open PR's body from its commits, or wait for CI and merge it
vinta/hal-9000
Keeps Ansible install tasks in line with upstream docs by fixing version, install-method and link drift one tool at a time, with a commit for each.
vinta/hal-9000
Rewrites docs, READMEs, issues, comments or UI text in plain Global English that translates well and still sounds native, keeping every fact intact.
Categories
Use before producing any English text the user signs — READMEs, PRs, issues, PR and issue comments, code comments, emails, blog posts, human-facing docs — drafted or rewritten at native fluency in…. Write Like Me is an agent skill from vinta/hal-9000. Use before producing any English text the user signs — READMEs, PRs, issues, PR and issue comments, code comments, emails, blog posts, human-facing docs — drafted or rewritten at native fluency in the voice of the skill's author, Vinta Chen.
Write Like Me fits situations like: tasks that involve Technical documentation; tasks that involve Blog and article writing.
Run `npx skills add vinta/hal-9000 --skill write-like-me -a claude-code`. Or copy the skill folder (skills/write-like-me in vinta/hal-9000) into .claude/skills/write-like-me in your project. Claude Code loads it when a task matches its description.
Run `npx skills add vinta/hal-9000 --skill write-like-me -a codex`. Or copy the skill folder (skills/write-like-me in vinta/hal-9000) into .agents/skills/write-like-me 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 vinta/hal-9000 --skill write-like-me -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/write-like-me, .gemini/skills/write-like-me, .github/skills/write-like-me and .opencode/skills/write-like-me in your project.
SKILL.md names no scripts, command-line tools or credentials: Write Like Me is instructions for the agent only.
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.
Write Like Me is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Write Like Me: Adk Style Guide (BrainDAO/adk-ts, 119 stars), Write (waynesutton/markdown-site, 628 stars), Write News Article (gambitph/Stackable, 350 stars) and Write Evlog Content (evloghq/evlog, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
vinta (a GitHub user) maintains it in vinta/hal-9000, which has 138 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 5, 2026.
Source: vinta/hal-9000 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.