The voice
SkillDev toolsLets your agent rewrite project documentation so each section explains what, why, and how instead of listing bare commands.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the The voice skill
About this skill
Rewrite ArkEnv docs and site copy in the product voice: Turbo-shaped what/why/how, not skinny command lists and not marketing hype. Use when the user says "fix the voice", "/the-voice", "too skinny", "too terse", "needs meat", "match turborepo", or when writing, reviewing, or editing docs/MDX/homepa
What this skill tells your AI
The instructions your AI receives, as published by yamcodes/arkenv in skills/the-voice/SKILL.md and read by ahel’s review.
ArkEnv docs sound like turborepo.dev plus
the pages already in that register: getting-started, Introduction,
Installation, Community, and a framework guide (for example Vite).
docs-writer is Gemini CLI boilerplate for mechanics. This skill is the
register. stop-slop cuts AI tells after the meat is in; it must not
strip why.
Read references/canons.md before rewriting a page. Read references/examples.md when the task is a voice pass (the AI guide is the worked example).
What "fix the voice" means
Rewrite how the page sounds. Keep facts, IA, APIs, and deep-link headings unless the user also asked to change those.
Each section needs what, why, and how. Skinny pages fail on
what/why ("do this, do that"). Inflated pages fail by dumping internals
(marketplace.json, diagnostic field lists) that belong in reference.
A good H2 starts in the reader's world, then what ArkEnv provides.
Do not open with "@scope/pkg is the [category noun]" unless the page
is API reference.
- Name the ecosystem thing (plugins, skills) and what it is made of.
- Say what ArkEnv provides and why.
- Show the command or snippet.
- Bullet what it teaches or enables, not only what it runs.
Pick a default path. Fallbacks are "instead," not "or also." Put that
fork in a fumadocs <Callout> (usually type="info" with a title),
not a body sentence. Match
apps/www/content/docs/core-concepts/defining-your-schema.mdx
(title="Already on ArkType?"). Use warn / error for risk, not
for navigation. Do not use GitHub > [!NOTE] alerts on the docs site.
The page lead is two sentences, product name in both, like Turbo:
Turborepo is designed to work seamlessly with AI coding assistants. Turborepo provides features that help AI understand your repository and work more efficiently.
Do not open with commands, "It gives them…", or a feature list. Name
the outcome; let H2s name the features. Keep "seamlessly" in this
cadence. stop-slop must not flatten that lead.
House terms
- Typesafe (one word), not "Type-safe".
- Headings and SEO: "environment variables". Body: "env vars" is fine.
- "Zero runtime dependencies" only for
@arkenv/core(peer arktype) and@arkenv/standard. Never "zero dependencies" for the CLI or plugins. - Nub is a real Node runner. Do not "correct" it to Bun.
- Address the reader as you. Present tense, contractions, US English. No "please", no Latin abbreviations in running copy, no anthropomorphism.
Install fences
Commands the reader runs (init, npm install, npx …) use
fumadocs package-install fences, not bash. Author npm form only:
npx … or npm install …. Never npm i, pnpm add, yarn add,
bun add, or nub add in the source. The site tabs the other managers
(including Nub as nubx / nub add). See
apps/www/content/docs/frameworks/nextjs.mdx and
apps/www/lib/package-install-fences.test.ts.
Leave bash for non-install shell (git, curl, file copies) and for
Nub-only runner examples that are not package-install tabs. Leave
json MCP configs as JSON even if a field is "npx". Prompt fences
stay text.
Not this voice
| Surface | Voice |
|---|---|
CHANGELOG.md / changesets | User-facing past tense ("The plugin now…"), not imperatives |
| Boundary access errors | Next.js taint string; do not restyle |
| Hallmark / UI | Visual register, not docs prose |
Prompts inside fenced text | Agent instructions; leave them tight |
Workflow
- Load the canons, then the target page.
- Diagnose: skinny, stuffed, slop, or wrong surface.
- Rewrite in the Turbo H2 shape. Add why with product facts, not filler. Do not invent features to add meat.
- Point at reference for shapes, flags, and APIs.
- Pass
stop-slopwithout deleting the why bullets.
Signals
- GitHub stars
- 144
- Forks
- 6
- Last commit
- Sep 2026
ahel review
K1binfo
installs-packages
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
the-voice- Source
- github.com/yamcodes/arkenv