Repository navigation
v0.1.0
First build of the Docs Editing Plugin — documentation, editing, and content standards for AI coding assistants, targeting both Claude Code and Cursor from a single shared component set. Pure Markdown + JSON: no build step, no MCP server.
The rule that defines it
A claim that cannot be traced to a source does not ship.
Generative copy tooling fails in one predictable way: asked to make a page more persuasive, it invents the persuasion — statistics, customer counts, testimonials, awards, urgency. Every component here substitutes the observable mechanism instead, and treats hedging ("up to", "designed to", "teams report") as still a violation rather than a repair.
Scope
Prose written for people — documentation, guides, references, page and marketing copy, changelogs, release notes, site metadata, llms.txt.
Agent-instruction files (AGENTS.md, CLAUDE.md, .cursorrules, rule and skill definitions) are read for a repository's conventions and never authored or rewritten. That genre addresses a model rather than a reader, which inverts several rules here — repetition becomes deliberate, hard constraints must stay hard.
Components
Skills (7) — docs-editing (always-on router) plus /technical-writing, /copy-editing, /marketing-copy, /seo-audit, /ai-seo, /docs-lint-setup.
Agents (2, read-only) — prose-reviewer for what linters cannot see (unsourced claims, doc-kind bleed, stale inventories); seo-auditor for a discoverability sweep with a mandatory coverage statement.
References (4 + 2 configs) — the canonical rules every component cites: claims and evidence, house style, document kinds (Diátaxis), SEO checklist; plus reference vale.ini and markdownlint.jsonc.
Hooks (2, dual-host) — a session-start context line, and a prose-lint-on-save reporter that is advisory and never rewrites the file, and stays silent unless the repo carries its own linter config.
Cursor rule — docs-editing-context.mdc.
Install
Claude Code:
/plugin marketplace add Cadasto/plugin-marketplace
/plugin install docs-editing@cadasto
Cursor: add this repository as a plugin (Settings → Plugins). See docs/install.md.
Prerequisites: none. Installing Vale and markdownlint-cli2 and running /docs-lint-setup makes the mechanical half of the house style machine-enforced.
Validation
scripts/validate.py is stdlib-only and enforces manifest parity, frontmatter (including the YAML trap that silently drops all metadata, and the allowed-tools: foot-gun that would leave an agent inheriting every tool), plus three project invariants: reference citations resolve, every relative Markdown link and #anchor resolves, and every skill and agent is wired into both the router and the session-start surface.
Known limitation: references/vale.ini names rules from upstream style packages, and vale warns but exits 0 on an unknown rule name — so an upstream rename silently stops that rule applying. This is not yet checked automatically; see docs/versioning.md.