docs-style
Write and review READMEs and docs pages in the Agent IX house style. Use when writing a README or docs page. Use it when asked to review docs for filler, "Claude-ish" wording, sprawl, indirect framing or implementation status. Use it when a README or docs folder must be brought to the agent-ix standard. Gives a page-type guide, a rule catalog, a Vale style and a structure checker. Figures are made with docs-figures.
- License 许可
- MIT
- 最近更新
- 2026-11-15
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- docs-style
- description
- Write and review READMEs and docs pages in the Agent IX house style. Use when writing a README or docs page. Use it when asked to review docs for filler, "Claude-ish" wording, sprawl, indirect framing or implementation status. Use it when a README or docs folder must be brought to the agent-ix standard. Gives a page-type guide, a rule catalog, a Vale style and a structure checker. Figures are made with docs-figures.
- compatibility
- Python 3.9+ for scripts/docs_lint.py. Vale 3 for the prose rules (MDX also needs mdx2vast).
02 资源文件 42
- 参考文档references/framing.md5.7 KB
- 参考文档references/navigation.md1.4 KB
- 参考文档references/page-types.md10.0 KB
- 参考文档references/phrasing.md4.3 KB
- 参考文档references/readme.md1.7 KB
- 参考文档references/status-and-internals.md3.5 KB
- 参考文档references/tables.md3.0 KB
- 参考文档rules/catalog.yaml21.8 KB
- 脚本scripts/docs_lint.py24.9 KB
- 脚本scripts/gen_vale_scripts.py5.4 KB
- 其他vale/.vale.ini1.7 KB
- 参考文档vale/AgentIX/BannedHeading.yml383 B
- 参考文档vale/AgentIX/ContrastFraming.yml466 B
- 参考文档vale/AgentIX/CrateNameInProse.yml382 B
- 参考文档vale/AgentIX/FigurativeWords.yml473 B
- 参考文档vale/AgentIX/HedgingStack.yml540 B
- 参考文档vale/AgentIX/IssueRefInProse.yml321 B
- 参考文档vale/AgentIX/LeadIns.yml537 B
- 参考文档vale/AgentIX/MaintainerProcess.yml503 B
- 参考文档vale/AgentIX/NoCommandRuns.yml355 B
- 参考文档vale/AgentIX/OnMainBranch.yml429 B
- 参考文档vale/AgentIX/PageSelfReference.yml596 B
- 参考文档vale/AgentIX/QuestionHeading.yml282 B
- 参考文档vale/AgentIX/RequirementIdInProse.yml696 B
- 参考文档vale/AgentIX/RustPathInProse.yml324 B
- 参考文档vale/AgentIX/SentenceTooLong.yml229 B
- 参考文档vale/AgentIX/SourcePathInProse.yml394 B
- 参考文档vale/AgentIX/StatusInProse.yml644 B
- 参考文档vale/AgentIX/TableCodeCellLong.yml382 B
- 参考文档vale/AgentIX/TableTooWide.yml344 B
- 参考文档vale/AgentIX/TestNameInProse.yml359 B
- 参考文档vale/AgentIX/TrustWords.yml521 B
- 参考文档vale/AgentIX/UnconnectedSystems.yml479 B
- 参考文档vale/AgentIX/UndefinedAcronym.yml920 B
- 参考文档vale/AgentIX/UsSpelling.yml791 B
- 参考文档vale/AgentIX/VersionPin.yml435 B
- 其他vale/config/scripts/crate-name-in-prose.tengo2.6 KB
- 其他vale/config/scripts/no-command-runs.tengo2.7 KB
- 其他vale/config/scripts/source-path-in-prose.tengo2.6 KB
- 其他vale/config/scripts/table-code-cell-long.tengo2.6 KB
- 其他vale/config/scripts/table-too-wide.tengo2.6 KB
- 其他vale/config/scripts/test-name-in-prose.tengo2.7 KB
03 SKILL.md 正文
Docs Style
If this plugin is not initialized or an Agent IX command fails, read the dev-tools setup guide.
One rule covers most of this: say what the thing does and what it helps the reader do. Everything else needs a reason to be there.
The reader is a software engineer who is new to the field. Pages are short,
direct and literal. Figures are made with the docs-figures skill; this skill
covers the words, the page types and the structure.
<skill> below is this skill's base directory. Every rule has a stable id in
rules/catalog.yaml; reviews and lint output cite those ids.
Workflow
- Pick the page type. A page is one of concept, tutorial, how-to, reference
or status. A README has its own layout. Put
type:in the frontmatter. page-types.md, readme.md. - Write to the guide. Framing first (reader, task, one idea, one running example), then phrasing, tables, and what stays out. framing.md, phrasing.md, tables.md, status-and-internals.md, navigation.md.
- Run the checks.
- Prose:
vale --config=<ini> <paths>. Copy bothAgentIX/andconfig/from<skill>/vale/into your ValeStylesPath(the script rules needconfig/), and start from vale/.vale.ini. MDX needsmdx2vastonPATH. Vale applies a rule to every page; the sample ini shows per-path sections forapplies_to, for thetrust-wordsand contrast rules, and for status pages. - Structure:
python3 <skill>/scripts/docs_lint.py --check <paths>. It reads the page type from frontmatter and runs the page-self-reference, lead-in, contrast and sentence-length rules over the frontmatterdescription.--type Tfills it in for files without one.--level suggestionshows everything;--ignore idsskips rules.
- Prose:
- Judge the
reviewrules in the catalog (check: review). No tool checks them. Read the page as someone who has never heard of the project. - Report findings, then fix them.
Review procedure
-
Read the page as the target reader. For each sentence ask: does this help me understand or use the thing? If not, cut it.
-
Run Vale and
docs_lint.py. Keep a hit unless the sentence states a plain fact the reader needs (for example, "does not allocate"). To suppress a rule for a block, write<!-- vale AgentIX.LeadIns = NO -->before it and<!-- vale AgentIX.LeadIns = YES -->after it (MDX:{/* vale AgentIX.LeadIns = NO */}). -
Go through the
reviewrules for the page's type: lede, one idea per section, running example, repetition, two-dimensional tables, navigation. -
Check that fenced code blocks are unchanged, every relative link resolves, and doctest READMEs (
include_str!) still passcargo test --doc. -
Report one line per finding, keyed by rule id:
path:line: rule-id: what is wrong -> the rewriteGive a before and after for each cut and a rewritten lede. Do not apply edits until asked, unless the task is to apply them.
The rules in short
- Concept, reference and README pages open with
<name> is <what it is>.A how-to opens with the task, a tutorial with the result, a status page with what it lists. The second paragraph says what the reader can do, with no sourcing, version or release state. - Examples run: taken from tests, executed in CI, output generated. A teaching page shows the command and a short result, with no shell plumbing, and never presents a tool gap as a rule.
- One vocabulary for results per page set; every term in shown output is defined or cut.
- A learning track introduces terms in order; each page says what to know first.
- One fact per sentence, under 30 words. Literal headings. US spelling.
- No figurative words, no contrast framing, no lead-ins, no page self-reference.
- Tables only for two-dimensional data: 4 columns at most, cells of 12 words at most, one introducing sentence.
- No requirement ids, crate or module names, test names, issue numbers, branch or version pins in prose. Status lives on the generated status page.
- No lists of what the thing does not do, unconnected systems, disclaimers, maintainer process or history.
Full text and examples are in the references. Every rule is in the catalog.
Layout
references/: the guide (page types, framing, phrasing, tables, status and internals, navigation, README layout).rules/catalog.yaml: every rule, with severity, check kind, examples.vale/: theAgentIXVale style,config/scripts/(rules that skip fenced code), and a sample.vale.ini.scripts/docs_lint.py: the structure checker.scripts/gen_vale_scripts.pygenerates the Tengo scripts from one template (--checkfinds stale ones).
Run python3 -m pytest tests/docs-style for the tests.
04 同仓库更多 Skills
assurance-onboarding
Capture a generic handoff in the fixture host.
writing-tests-typescript
Instructions for writing TypeScript tests (Jest), including typed mocks and testing patterns.
writing-tests-react
Index to React component testing guides.
writing-tests-python
Instructions for writing Python tests (pytest), including mocking, fixtures, and golden path standards.
writing-tests-pg-data
Instructions for writing tests for PG Data services, likely involving database fixtures and integration tests.
security-deepsec
Run a generic DeepSec-backed security review and remediation burndown for one or more target repositories. Use when asked to audit a repo, app area, service family, frontend/backend/client/SDK surface, infrastructure, or security-sensitive workflow with DeepSec; when asked to create local audit artifacts, GitHub security issues, checksite coverage, finding reports, spec/AC/test traceability, or a repeatable security burndown process.