Brewdoc Overview
Brewdoc is a documentation toolkit plugin (a set of utilities for working with documents) for Claude Code. It keeps documentation in sync with the codebase, optimizes content for LLM consumption, and exports documents to ready-made formats.
The -setup naming rule
A -setup suffix marks a skill that installs a mechanism you afterwards use instead of the skill β project-local hooks, or a generated /memory-sync command. Recurring tools you run again and again keep bare names (md-to-pdf, publish, my-claude). Every -setup skill shares one canonical mode set, in this order: status | install | upgrade | enable | disable | uninstall | purge. No argument means status when it is installed and install when it is not. Every brewdoc skill β -setup and bare tool alike β is user-invoked only: user-invocable: true plus disable-model-invocation: true, so the model never fires any of them on its own and none of their descriptions occupy its context. That holds for all 28 skills in the suite, and it is a deliberate trade about context cost rather than an oversight β see the FAQ.
Installation
Install prompt
Execute these commands in this Claude Code session, one by one, show full output for each, do not skip any, do not summarize:
1. claude plugin marketplace add https://github.com/kochetkov-ma/claude-brewcode
2. claude plugin install brewdoc@claude-brewcode
After all commands succeed, run `/reload-plugins`. If `/reload-plugins` is unavailable, tell me to type `exit` and run `claude` again. Run the commands now. Install the entire suite:
Install prompt
Execute these commands in this Claude Code session, one by one, show full output for each, do not skip any, do not summarize:
1. claude plugin marketplace add https://github.com/kochetkov-ma/claude-brewcode
2. claude plugin install brewcode@claude-brewcode
3. claude plugin install brewdoc@claude-brewcode
4. claude plugin install brewtools@claude-brewcode
5. claude plugin install brewui@claude-brewcode
After all commands succeed, run `/reload-plugins`. If `/reload-plugins` is unavailable, tell me to type `exit` and run `claude` again. Run the commands now. Skills (recipes)
Brewdoc contains 5 skills, each handling a separate documentation task.
docsync-setup
Track doc staleness by frontmatter date, not INDEX files.
Installs three project-local hooks that watch touched Markdown and nag once when a doc goes stale.
Modes: status, install, upgrade, enable, disable, uninstall, purge β plus the extras sync (--all forces every in-scope doc), reread, frontmatter.
My-Claude
Generate documentation about your Claude Code installation. Three modes: internal (local configuration), external (hooks and context architecture), research (search across forums, GitHub, marketplaces).
memory-sync-setup
Generator: analyzes the target repo, then writes a project-local /memory-sync skill into it β repo-specific batches, checkable-fact catalogue, non-growth sync, independent verify.
Modes: status, install, upgrade, enable, disable, uninstall, purge.
md-to-pdf
Convert Markdown to professional PDF. Two engines: reportlab (lightweight) and weasyprint (full CSS support). Style customization, test mode, LLM preprocessing.
Publish
Publish text, markdown, JSON, files, or a whole multi-file site (directory or .zip) to brewpage.app.
Interactive namespace and password selection. Owner token saved locally for later delete. Needs jq (and zip for directory uploads).
Commands
| Command | Purpose | Model | Arguments |
|---|---|---|---|
/brewdoc:docsync-setup | Track and fix stale project docs via hooks | sonnet | [status|install|upgrade|enable|disable|uninstall|purge] [sync [--all]|reread|frontmatter] |
/brewdoc:my-claude | Generate documentation about Claude Code installation | opus | [ext [context]] | [r <query>] β no args = internal installation docs |
/brewdoc:memory-sync-setup | Generate a project-tailored /memory-sync skill into the target repo | opus | [status|install|upgrade|enable|disable|uninstall|purge] [fine-tune-prompt] |
/brewdoc:md-to-pdf | Convert Markdown to PDF | sonnet | <file.md> [--engine name] ["prompt"] | styles | test | no args = help |
/brewdoc:publish | Publish to brewpage.app β returns public URL | haiku | <text|file_path|directory_path|zip_path> [--ttl N] [--entry filename] |
Architecture
Brewdoc has a minimal architecture compared to Brewcode:
brewdoc/
βββ .claude-plugin/
β βββ plugin.json # Plugin manifest
βββ hooks/
β βββ hooks.json # no hooks registered ({"hooks":{}})
βββ skills/
βββ docsync-setup/ # Doc-staleness tracker
βββ my-claude/ # Installation documentation
βββ memory-sync-setup/ # Memory-sync generator (references/: SKILL.md.template, memory-guide, agent-audit, hard-sync)
βββ md-to-pdf/ # PDF conversion
βββ publish/ # brewpage.app publishing
Brewdoc ships no runtime hooks of its own β docsync-setup installs project-local hooks
on demand, into the target project, not into brewdoc itself. Skills in the main
conversation use ${CLAUDE_SKILL_DIR} to access their own files.
Brewdoc vs Brewcode
Brewdoc is a set of documentation utilities: sync, memory sync, PDF export. Each skill is self-contained and independent of the others.
Brewcode covers the projectβs own engineering surface: conventions, rules, domain agent teams, semantic code search and deep review β 9 skills, 5 agents, 2 lifecycle hooks.
Both plugins install from the same claude-brewcode marketplace but operate independently.
Artifact metadata
Every artifact a brewdoc -setup skill installs now carries the same provenance fields, resolved from the pluginβs own .claude-plugin/plugin.json and never hardcoded β never the literal unknown.
| Surface | Fields, in order | Notes |
|---|---|---|
.md frontmatter | doc_type (llm | user | skip, unquoted), version (βX.Y.Zβ), generated_by (βplugin:skillβ), last_updated (βYYYY-MM-DDβ) | After the fileβs own keys. doc_type never appears in JSON |
JSON artifacts (config.json, etc.) | version, generated_by, last_updated | Same three snake_case keys at the top level, on every writing mode |
/brewcode:setup-status reads these fields back across all eleven -setup skills and reports a setup installed at an older plugin version as stale. docsync-setup is the reference implementation this canon was modelled on β see its doc page for the full mechanics.
Latest Release
Download, changelog, and installation instructions.
Installation Guide
Full setup, update, and troubleshooting instructions.
View on GitHub
Source code, README, and configuration files.