docs-audit
Skill41 starsChanged 7 days agoMITView on GitHub
Check the work on this branch (or a PR) for anything a user would need to read about and is not documented, then add or update the page on hivedesktop.com, for Hive Desktop or the hive CLI. Use when asked to audit the docs, to decide whether a change needs a docs page, or as a pre-PR pass over a feature that added a setting, a node, an action type, a CLI command or flag, a TUI keybinding, a surface, or a failure mode.
- Reads credentials
15 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- tstraub89/canon-aitheir own version, first seen Nov 8, 2026
- home-screens/home-screenstheir own version, first seen Nov 8, 2026
- willdady/platypustheir own version, first seen Nov 8, 2026
- lifekit-hq/devclawtheir own version, first seen Oct 21, 2026
- strands-agents/harness-sdktheir own version, first seen Oct 14, 2026
- Seekers2001/docs-governancetheir own version, first seen Oct 13, 2026
Used with
Projects with it also use docs-planner, docs-reviewer and 4 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
strands-agentsSkilldocs-planner
Find the gaps in the Box documentation and produce a prioritized backlog for docs/user/ and docs/design/. Use when planning documentation work, after a feature or a binary ships without a page, for a periodic health check of the docs, or when asked "what docs need writing", "plan the docs work", "prioritize the docs backlog", or "what should we document next".
Also in 3 projects that use this
strands-agentsSkilldocs-reviewer
Review Box drafts in docs/user/ or docs/design/, and wording-only rewrites in docs/dev/. Use after docs-writer, before a docs pull request, or for a requested doc review. Check style and preservation of meaning, then give a Ship it, Tighten, or Rethink verdict. Read-only.
Also in 3 projects that use this
VercelSkilldocs-diagrams
Draw diagrams for the Next.js docs in the style of the ones already published there: the light/dark PNGs an mdx references with `<Image srcLight="/docs/light/<name>.png" srcDark="/docs/dark/<name>.png">`. Use when a guide or API reference needs a new diagram or an existing one needs a change. Hand-written SVG from a primitives library, rendered by headless Chrome at 2x. No AI image generation.
Also in 3 projects that use this
GoogleSkilldocs-writer
Also in 3 projects that use this
MicrosoftSkillwriting-for-agents
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.
Also in 3 projects that use this
GoogleSkilldomain-modeling
Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.
Also in 3 projects that use this
Other versions15 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- hay-kot/hive-desktop★ 486% same
Wrote their own version · 14
- mastra-ai/mastra★ 29ksame name
- strands-agents/sdk-python★ 9.1ksame name
- strands-agents/harness-sdk★ 8.9ksame name
- hiroppy/tmux-agent-sidebar★ 568same name
- me2resh/apexyard★ 542same name
- strands-agents/box★ 503same name
- Seekers2001/docs-governance★ 320same name
- qshanx/docs-governance★ 253same name
- willdady/platypus★ 130same name
- home-screens/home-screens★ 104same name
4 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- cli-autocalibrateSkill
- cli-smokeSkill
- cli-tuiSkill
- desktop-apiSkill
- desktop-commands-auditSkill
- desktop-devserverSkill
- desktop-shipped-skillsSkill
- desktop-ui-auditSkill
- desktop-ui-perfSkill
- docs-pageSkill
- go-enumSkill
- release-notesSkill
- release-prepSkill
- releaseSkill
- sqlcSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
Read the diff for these and write them down before deciding anything:
- Distinctive: line 121
Write the minimum useful page: Keep instructions, requirements, safety constraints, and recovery steps.
- Distinctive: line 127
Avoid generated-sounding prose: Do not use em or en dashes, rhetorical contrast formulas, "Why it matters" headings, staged reveals, or …
- Very specific: line 146
The body starts with
# Title: Add a short task-oriented lede only when the title needs context.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Audit the docs
The docs site is the user's only map of the app, and its failure mode is silent: a setting ships, a node type lands, a surface is renamed, and the page that described it keeps describing the old one. Nothing fails a build over it. This audit is the check.
It covers both products: docs/docs/desktop/ and docs/docs/cli/.
docs/architecture.md, ADRs, and the shipped agent skills are other surfaces
with their own skills; step 3 says which change belongs where.
1. Scope the change
git diff main...HEAD --stat
git diff main...HEAD -- cmd/desktop/internal/app cmd/desktop/frontend/src # desktop
git diff main...HEAD -- cmd/hive internal/config # CLIFor a PR that is not checked out, gh pr diff <number>.
2. Inventory what a user can now see, do, or hit
Read the diff for these and write them down before deciding anything:
- a setting: a field on
settings.Settings, a new mock mode, a new environment variable read anywhere; - a node or action type: a
connector.Descriptor, a flow node, an entry inactions.Doc, a field on any of their configs, a change to a payload contract; - a surface: a new view, area, settings section, drawer, dialog, or a
rename of one the docs refer to by name (
Settings ▸ Integrations,Chats,Code); - a verb or a key: a command in
keybindings/catalog.ts, a default combo, a launcher rule; - an agent-facing thing: a shipped skill, an MCP catalogue entry, a workspace manifest field;
- a CLI or TUI change: a new
hivecommand or flag, a config field ininternal/configorcmd/hive/internal/config, a default indefaultViewsConfigordefaultUserCommands, a template variable, a status indicator; - a failure a user meets: a new error message, a new precondition (a binary on PATH, a permission, a version floor), a removed fallback.
A refactor, a test, an internal rename, and a change to how something is drawn all inventory to nothing. Say so and stop. An audit that finds nothing is a valid outcome and is reported as one.
3. Decide where each one belongs
A user-facing fact goes on the docs site, on the page that already owns
its subject. The site has one tab per product. The Desktop tab mirrors the
app: its sidebar groups are the app's areas (Inbox, Code, Chats), each with
its own directory under docs/docs/desktop/, and Configuration is the
reference. The CLI tab under docs/docs/cli/ has Getting Started,
Configuration, and Recipes.
| Subject | Page |
| a setting, a path, an environment variable | docs/docs/desktop/configuration/settings.md |
| the updater, a release channel | docs/docs/desktop/configuration/settings.md, the ## updates section |
| a command id or a default combo | docs/docs/desktop/configuration/keybindings.md |
| items, feeds, and notifications as one model | docs/docs/desktop/inbox/how-it-works.md |
| a source node, what an account needs, the webhook contract | docs/docs/desktop/inbox/sources.md |
| a flow node type, wiring, the editor | docs/docs/desktop/inbox/flows.md |
| an action type, inputs, targets, launchers | docs/docs/desktop/inbox/actions.md |
| a workspace manifest field, a skill package, an MCP entry | docs/docs/desktop/chats/agent-workspaces.md |
| Code: attach, windows, launchers, typography | docs/docs/desktop/code/terminal-mode.md |
| a failure and its way out | docs/docs/desktop/getting-started/troubleshooting.md |
| the problem reporter and what a report contains | docs/docs/desktop/getting-started/troubleshooting.md, the ## Report a problem section |
| installing a release | docs/docs/desktop/getting-started/index.md, the ## Install section |
| sign-in, notification permission, the starter feeds | docs/docs/desktop/getting-started/sign-in.md, notifications.md, first-feed.md |
| building the app | docs/docs/desktop/getting-started/build-from-source.md |
| CLI: installing, the first session | docs/docs/cli/getting-started/index.md |
| CLI: sessions, clone strategies, lifecycle, status indicators | docs/docs/cli/getting-started/sessions.md |
CLI: messaging, task tracking (hc), todos, context and review | docs/docs/cli/getting-started/<topic>.md |
| CLI: a config field, an environment override | docs/docs/cli/configuration/index.md |
| CLI: a TUI keybinding or palette command | docs/docs/cli/configuration/keybindings.md |
| CLI: user commands, built-in actions | docs/docs/cli/configuration/commands.md |
| CLI: rules, templates, template functions | docs/docs/cli/configuration/rules.md |
| CLI: plugins, sources, themes | docs/docs/cli/configuration/<topic>.md |
| CLI: the Claude Code plugin | docs/docs/cli/getting-started/claude-plugin.md |
A new page is rare. It is right when a subject has no owner in that table and
would not fit as a section of one, not when a feature is big. It goes in the
directory and sidebar group of the area it belongs to; a new area is a new
directory and a new group. Adding a page is the docs-page skill's
procedure: the file, its frontmatter, and its line in the nav in
docs/zensical.toml. A page left out of the nav builds without a warning and
is reachable by URL only, which is the same as not existing.
These are not docs-site changes, and saying so is half the audit:
- How the app is built goes in
docs/architecture.md; why a choice was made goes in an ADR. A user page says what a thing does and what it needs, never how it is implemented. - A change to a config schema also changes what the agent is told. The
shipped skills under
cmd/desktop/internal/app/prompts/templates/and the per-type docs they splice in (flow/docs/*.md,actions/docs/*.md,mcpcatalog/docs/*.md) are the agent's reference. A field documented on the site but not there means the Hive workspace writes it wrong. That is thedesktop-shipped-skillsskill's procedure; run it beside this one. - A user-visible change owes a release-notes fragment in the changelog
of the program it changes. That is the
release-notesskill. - Developer-only facts (mock modes,
launch.env, the devserver) belong on the build page only to the extent a person building the app must know them. The rest isdocs/development.mdandcmd/desktop/AGENTS.md. - A CLI change can also owe the Claude plugin skills under
claude-plugin/hive/skills/(hc,config, the messaging skills) when it changes a command those skills teach. Update them in the same PR.
4. Write it
The docs-page skill covers the mechanics: frontmatter, the nav, the build.
The conventions that keep the pages consistent:
- Write the minimum useful page. Keep instructions, requirements, safety constraints, and recovery steps. Remove implementation details and reasons for ordinary controls.
- Summarize settings and shortcuts. Group visible controls in a sentence or short list. The app owns the complete live list. Show YAML only when a user needs to edit a file manually.
- Avoid generated-sounding prose. Do not use em or en dashes, rhetorical contrast formulas, "Why it matters" headings, staged reveals, or marketing filler. State the fact or instruction directly.
- Keep one owner for each fact. Link to the owner page instead of copying provider lists, action types, settings, or key tables onto another page.
- Name things what the app names them. Settings sections are
Settings ▸ Integrations; the areas are Inbox, Code, and Chats; a workspace is a flow. ReadsectionMeta.tsand the catalog'sgroupvalues rather than guessing. - Say what a thing needs before what it does. tmux 3.2, an agent on PATH, a scope on a token, a permission: the precondition goes first, in an admonition if a user would otherwise discover it by failing.
- Point at the Hive workspace where an agent could do the work. Every
config page carries a short
!!! tip "Ask the Hive workspace"naming the skill the seededHiveworkspace has for that file. Add one to a page that gains a config surface; do not add one to a page about a thing an agent cannot drive. - A callout is an admonition:
!!! tip "Title"on its own line, body indented four spaces.tip,note, andinfoare the types in use. - The body starts with
# Title. Add a short task-oriented lede only when the title needs context. The frontmatter isicon:anddescription:and its description is not repeated in the body. - Internal links are relative Markdown-file links
(
../configuration/settings.md#updates), which the strict build validates. - Do not hand-maintain what is derived. The tabs, the sidebar and its
groups, the prev/next footer, search, the sitemap,
llms.txt,llms-full.txt, and each page's.mdtwin all come from the nav and the pages. A page in the nav appears everywhere with no further edit.
A fact you cannot verify in the code does not go on the page. Read the struct, the descriptor, or the component; the docs are reviewed as a spec.
5. Verify
mise run docs:build(mise run docs:install first in a fresh worktree; both run from anywhere in
the repo.) The build runs zensical build --strict and aborts on any warning: a link to
a page that does not exist, an anchor that is not a heading on its target, or
a nav entry whose file is missing. Then check the two things the build
cannot:
- Every new page is in the nav in
docs/zensical.toml. The build does not warn about a page that is not. - The page says what the code does. Re-read the diff beside the page. A default, a range, a scope name, and a key are the four things most often wrong.
PR CI runs the same build (the site job), so a broken link fails the PR. It
cannot tell a wrong default from a right one; only this step can.
Report
Say what you added or changed, page by page, and say what you decided not to document and why. "This is internal shape and belongs in architecture.md", "the shipped skill needs the same field", and "no user can see this" are all conclusions worth writing down, because the next audit re-asks the same questions.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

