Create and maintain a consistent set of project documentation under a docs/ folder: an
index, an architecture doc, a domain-model doc, a brandbook/design system, and one doc per
major feature. All diagrams use Mermaid.
The logic lives in a single Agent Skill (SKILL.md) so it works on both surfaces:
- Claude Code (CLI, IDE extensions, Claude Code desktop app) — installed as a plugin;
the skill is auto-available and a
/docsslash command wraps it. - Claude Desktop (the Claude app) — the same skill folder is added under Settings → Capabilities → Skills.
In every project, under docs/ (it reuses an existing docs/ or doc/ folder if present):
| Doc | Contents |
|---|---|
index.md |
Short project description + a link table to every other doc |
architecture.md |
Components, responsibilities, data flow + a Mermaid diagram |
domain-model.md |
Entities, relationships, invariants + a Mermaid ER diagram |
brandbook.md |
Brand voice, color palette, typography, tokens, components |
legal.md |
Legal/compliance posture — GDPR primary, extensible to other frameworks |
owasp.md |
Security posture mapped to the OWASP Top 10 — code-derived, not a live findings log |
features/<name>.md |
One doc per major feature |
/plugin marketplace add https://github.com/Maks417/claude-docs-plugin
/plugin install docs-keeper@docs-tools
docs-tools is the marketplace name; docs-keeper is the plugin. /plugin is typed at
the interactive Claude Code prompt (terminal claude, the IDE extension, or the Claude
Code desktop app) — not in a shell.
Updates: git pull (or it auto-updates), then /plugin update docs-keeper.
Every tagged version is published to GitHub Releases
with a claude-docs-plugin-vX.Y.Z.zip asset — a self-contained marketplace bundle
(.claude-plugin/marketplace.json + plugins/).
- Download and unzip the latest
claude-docs-plugin-vX.Y.Z.zipfrom the Releases page. - Point the marketplace at the extracted folder:
/plugin marketplace add /path/to/claude-docs-plugin-vX.Y.Z /plugin install docs-keeper@docs-tools
Updates: download the newer release zip and re-run /plugin marketplace add against it, or
re-point it and /plugin update docs-keeper.
| Command | Action |
|---|---|
/docs init |
Set up docs/ and generate the four core docs |
/docs feature <name> |
Create/update docs/features/<name>.md |
/docs architecture |
Refresh the architecture doc |
/docs domain |
Refresh the domain-model doc |
/docs brand |
Refresh the brandbook |
/docs legal |
Refresh the legal & compliance doc (GDPR, etc.) |
/docs owasp |
Refresh the OWASP security posture doc |
/docs sync |
Rebuild the index.md link tables from what's on disk |
/docs |
Report the current docs state and suggest the next step |
Or just ask in natural language — "document this project", "add a feature doc for billing".
Claude Desktop doesn't load Claude Code plugins, but it supports the same skill:
- Download
docs-keeper-skill-vX.Y.Z.zipfrom the Releases page (or zip theplugins/docs-keeper/skills/docs-keeper/folder yourself — the zip must containSKILL.mdat its root). - Open Settings → Capabilities → Skills, choose to add a skill, and upload the zip.
- In a chat, ask to "document this project" or "write the architecture doc".
To write files into a real repo from Claude Desktop, enable a filesystem connector (MCP) or
work inside a Project with file access. Without that, the skill outputs each document's
Markdown in the conversation, labeled by file path, for you to save into docs/ yourself.
.claude-plugin/marketplace.json marketplace "docs-tools"
plugins/docs-keeper/
.claude-plugin/plugin.json plugin manifest
commands/docs.md /docs command (Claude Code)
skills/docs-keeper/SKILL.md the portable skill (both surfaces)
.github/workflows/release.yml builds and publishes release zips on tag push
Release zips (claude-docs-plugin-vX.Y.Z.zip, docs-keeper-skill-vX.Y.Z.zip) are build
artifacts, not committed to the repo — they're generated by CI and attached to each
GitHub Release.
Push a tag matching vX.Y.Z (after bumping version in
plugin.json):
git tag vX.Y.Z
git push origin vX.Y.Z
The Release workflow then builds both zip assets and publishes a GitHub Release with
auto-generated notes. workflow_dispatch (with an existing tag as input) can be used to
rebuild a release manually from the Actions tab.
- Content is derived from the actual codebase; genuinely unknown sections are marked
_TBD_rather than guessed. - Editing an existing doc updates it in place; the
index.mdlink tables are kept in sync.