Skip to content

Repository files navigation

Docs Editing Plugin

An AI plugin by Cadasto B.V. that teaches AI coding assistants documentation, editing, and content standards — technical writing, copy editing, marketing copy, SEO, and AI citability — through skills, two report-only review agents, session-start and prose-lint hooks, and a Cursor rule. It targets both Claude Code and Cursor from a single shared component set.

Pure Markdown + JSON. No build step and no MCP server to wire up.

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. Those are the conventional ingredients of landing-page copy, which is exactly why they get fabricated.

For a technical audience they also backfire. Developers, engineers, and clinicians read an unsourced number as evidence of unseriousness, so the growth-copy move that lifts conversion on a consumer page lowers trust here. Every skill in this plugin substitutes the same thing instead — the observable mechanism:

❌ "Cuts documentation review time by 40%." ✅ "Flags unsourced statistics, doc-kind bleed, and inventories that no longer match the tree."

Specific, checkable, and more convincing to this reader than a number they assume was invented. Hedging is not an escape hatch: "up to", "designed to", and "teams report" preserve the violation. The full rule, including the never-invent list and the repair pattern, is references/claims-and-evidence.md.

Install

Claude Code — from the Cadasto marketplace:

/plugin marketplace add Cadasto/plugin-marketplace
/plugin install docs-editing@cadasto

Or load a local working copy for one session: claude --plugin-dir /path/to/docs-editing-plugin.

Cursor: add this repository as a plugin (Settings → Plugins). See docs/install.md for both hosts.

Prerequisites — none. The skills apply the standards by judgment with no tooling installed. To make the prose rules machine-enforced, install Vale and run /docs-lint-setup in your repo; see Host toolchain.

Component surface

Component Status Purpose
Skill docs-editing shipped Auto-invoked router: sends each prose task to the skill that owns it, and to the canonical rule in references/.
Skill /technical-writing shipped Author new documentation — picks exactly one document kind, reads the code before drafting, runs the commands it writes.
Skill /copy-editing shipped Tighten existing prose. Establishes the proofread / line-edit / structural contract first, then works large-to-small; claims pass runs first.
Skill /marketing-copy shipped Landing, feature, and announcement copy for technical audiences, with the anti-fabrication guardrails applied before drafting.
Skill /seo-audit shipped Technical and on-page audit of the published output — titles, descriptions, headings, canonicals, sitemap, redirects, orphans.
Skill /ai-seo shipped Citability by AI search — llms.txt, Markdown twins, validated JSON-LD, chunk-level self-containment.
Skill /docs-lint-setup shipped Scaffold .vale.ini and seed the vocabulary; never overwrites an existing config unprompted.
Agent prose-reviewer shipped Report-only prose review for what linters cannot see: unsourced claims, doc-kind bleed, stale inventories, terminology drift. Ranked findings.
Agent seo-auditor shipped Report-only discoverability sweep over a docs tree or live site, with a mandatory coverage statement.
Session-start hook shipped Detects a docs/content workspace and prints one standards line plus the surface; dual-host. Silent in a repo with only a README.md.
Prose-lint hook shipped After each .md edit, reports vale alerts. Advisory — never rewrites — and opt-in: silent unless the repo carries its own .vale.ini.
References shipped The canonical rules, cited by every component: claims and evidence, house style, document kinds, SEO checklist, plus the reference vale.ini and its vocab-accept.txt seed.
Cursor rule docs-editing-context.mdc shipped Markdown- and docs-scoped guidance mirroring the router for Cursor.

What it covers

Prose written for people — documentation, guides, references, page and marketing copy, changelogs, release notes, site metadata, llms.txt.

Not agent-instruction files. AGENTS.md, CLAUDE.md, .cursorrules, rule files, and skill or agent definitions are read for a repo's conventions and never authored or rewritten by these components. They address a model rather than a reader, which inverts three of the rules here — repetition becomes deliberate, hard constraints must stay hard, rigid parallel structure becomes a feature. A prose editor tuned for human readers quietly degrades them, so that genre belongs to tooling built for it. Also out of scope: source-code review, and specification/traceability authoring.

How it decides

Three principles, in priority order:

  1. Evidence before persuasion — the rule above. It outranks every stylistic preference.
  2. One document kind per file — most bad documentation is a tutorial and a reference merged into one page. Decide the kind first (Diátaxis-based; see references/doc-types.md), then write only that kind.
  3. Deterministic beats prose — whatever vale enforces, run the tool rather than reasoning it out by hand. Markdown structure has no shipped enforcer; those conventions are applied by judgment.

And one constraint above all three: the repository being worked on outranks this plugin. Every skill reads the target repo's AGENTS.md, style guide, and linter config first, and reports a conflict rather than silently overriding it — including any named ground-truth source for domain facts.

Development

No build step — the plugin is pure Markdown + JSON. Validate locally:

./scripts/validate.sh        # manifests, parity, frontmatter, references, links, tool grants, doc sync
claude plugin validate .     # manifest + component structure

Beyond the shared checks, the validator enforces four invariants specific to this plugin:

  • Reference resolution — every references/<file> a component cites exists. The bundled references sit at the plugin root, so a stale path fails silently at load time instead of erroring.
  • Markdown links — every relative link resolves, and every #anchor matches a heading in the file it points at.
  • Tool grants — a component whose body prescribes a shell command declares Bash, and no agent declares Write or Edit. Advice a component cannot act on is a defect, not a nuance.
  • Doc sync — every skill and agent is named in both the router body and the session-start surface.

See docs/testing.md for the full validation story and AGENTS.md for contributor conventions.

Documentation

License

MIT © 2026 Cadasto B.V.

About

Cadasto DOCS editing plugin

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages