Codymaster cm-dockit
Knowledge systematization engine — analyze codebases, generate Personas, JTBD, Process Flows, technical docs, SOP user guides, API references. Output as Markdown or VitePress Premium. SEO-optimized, AI/LLM-readable. One scan = complete knowledge base.
git clone https://github.com/tody-agent/codymaster
T=$(mktemp -d) && git clone --depth=1 https://github.com/tody-agent/codymaster "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cm-dockit" ~/.claude/skills/tody-agent-codymaster-cm-dockit && rm -rf "$T"
skills/cm-dockit/SKILL.mdCM DocKit: Knowledge Systematization Engine
A professional knowledge systematization engine powered by codebase analysis and UX design principles. One source scan = one complete knowledge base — Personas, JTBD, Process Flows, Technical Docs, SOPs, API Reference. Supports plain Markdown output or a premium VitePress site. Includes SEO optimization, sitemap generation, and AI/LLM-readable content.
When to Activate
- User asks to "create documentation", "generate docs"
- User mentions "SOP", "user guide", "manual"
- User wants technical docs from a codebase
- User runs
/DocKit Master
Document Types
| Type | Skill File | Description |
|---|---|---|
| knowledge | + + (files pending) | Personas, JTBD, Process Flows — knowledge foundation |
| tech | | Architecture, database, deployment, data flow |
| sop | | Step-by-step user guides (enriched with knowledge) |
| api | | API endpoint reference with examples |
| all | All above | Full knowledge base + documentation suite |
| Support Skill | File | Purpose |
|---|---|---|
| SEO Checklist | | Per-page SEO audit (title, meta, headings, robots) |
| Content Writing | | SEO copywriting, keywords, active voice, FAQ |
| LLM Optimization | | AI-readable structure, NotebookLM-friendly |
Output Formats
| Format | Workflow | Description |
|---|---|---|
| markdown | | Plain files in folder |
| vitepress | | Premium VitePress static site (default) — built-in Mermaid, search, dark mode |
Procedure
Step 1: Gather Input (Single Consolidated Prompt)
CRITICAL: Ask ALL questions in ONE message. Do NOT ask one at a time. Present the following intake form to the user, using this 📚 DocKit Master — Configuration
Please answer the following questions so I can automatically create an execution plan:
| # | Question | Options | Default |
|---|---|---|---|
| 1 | 📑 Document type? | · · · · | |
| 2 | 🎨 Output format? | (plain) · (premium site) | |
| 3 | 📂 Code scan scope? | (entire project) · (specific folder/feature) | |
| 4 | 🎯 Focus area? (only if ) | Folder name, module, or specific feature | — |
| 5 | 🌏 Writing language? | Auto-detect from chat language (see below) | auto-detect |
| 6 | 🌐 Add multi-language? | (add English + source language) · | |
| 7 | 📹 Record video demo? | (record browser walkthrough) · | |
| 8 | 📁 Project path? | (absolute path) | current workspace |
| 9 | 🔍 SEO optimization? | (SEO frontmatter + checklist + sitemap) · | |
| 10 | 🤖 Optimize for AI/LLM? | (AI-readable + NotebookLM sitemap) · | |
You can answer briefly, e.g.: "all, vitepress, full, yes, no, yes, yes"
🌏 Smart language rules:
- Auto-detect: Determine default language from the user's chat language
- User chats in Vietnamese → default
vi - User chats in Chinese → default
zh - User chats in Japanese → default
ja - User chats in English → default
en - (Applies similarly for any other language)
- User chats in Vietnamese → default
- Multi-language (
): Automatically add English (yes
) as secondary languageen- Example: Vietnamese user + multi-language →
+vien - Example: Chinese user + multi-language →
+zhen - If user already chats in English + multi-language → ask which secondary language
- Example: Vietnamese user + multi-language →
- Override: User can override by specifying explicitly, e.g.: "write in Japanese"
Step 1b: Auto-Generate Execution Plan
After receiving answers, immediately create an execution plan (do NOT ask more questions).
Map the answers to this execution config:
DOC_TYPE = [knowledge | tech | sop | api | all] FORMAT = [markdown | vitepress] SCOPE = [full | focused] FOCUS_TARGET = [directory/module name if focused, else null] LANGUAGE = [vi | en | vi+en] I18N = [yes | no] (only relevant for vitepress) RECORD = [yes | no] PROJECT_PATH = [absolute path] SEO = [yes | no] (default: yes) LLM_OPTIMIZE = [yes | no] (default: yes)
Then present the plan to user as a checklist artifact, like:
## 🚀 Execution Plan - [ ] Scan code: [full/focused → target] - [ ] Generate documents: [type] in [language] - [ ] Export format: [markdown/vitepress] - [ ] [If vitepress + i18n] Configure multi-language - [ ] [If record] Record video walkthrough - [ ] [If seo] Run SEO checklist + generate sitemap - [ ] [If llm_optimize] Apply LLM optimization rules - [ ] Review and deliver
After presenting the plan → proceed to Step 2 immediately (auto-execute). Do NOT wait for approval unless the plan has ambiguity.
Step 2: Analyze Codebase
Read and follow
skills/analyze-codebase.md in this directory.
Output: structured analysis saved to
docs/analysis.md (NOT _analysis.md) including:
- Project type, languages, frameworks
- Directory structure and architecture layers
- Entry points, routes, database schema
- Key business logic modules
- Dependencies overview
- Test coverage
Step 3: Apply Content Guidelines
MANDATORY — Read
skills/content-guidelines.md before generating any content.
Key rules to enforce:
- Filenames: kebab-case, no underscores, no dots
- Frontmatter: Every
file must have.md
,title
,description
,keywordsrobots - Quick Reference: Every doc starts with a summary box
- Progressive Disclosure: Use
for advanced content<details> - Admonitions: Use
,:::tip
,:::info
,:::warning
for callouts:::danger - Mermaid: NO hardcoded colors — VitePress auto-adapts to light/dark
- Code Groups: Use
for multi-platform examples:::code-group - Internal Links: ≥2 cross-links per page
Step 3b: Apply SEO & LLM Guidelines (If enabled)
If SEO = yes: Read
skills/content-writing.md for:
- Keyword placement (title, H1, first paragraph, H2s, meta)
- Inverted pyramid structure (answer first, details later)
- Active voice (≥80%), transition words (≥30%)
- FAQ in schema-ready format for rich snippets
If LLM_OPTIMIZE = yes: Read
skills/llm-optimization.md for:
- Clean heading hierarchy (no skipped levels)
- Text descriptions alongside all Mermaid diagrams
- Self-contained sections (≤500 words per H2)
- Consistent terminology (glossary section in index)
- UTF-8 clean output
Step 4: Generate Documents
Based on the chosen type, read and follow the corresponding skill file:
-
knowledge → Run 3 skills sequentially:
- Read
→skills/persona-builder.md
(Buyer & User Personas)docs/personas/ - Read
→skills/jtbd-analyzer.md
(JTBD Canvases)docs/jtbd/ - Read
→skills/flow-mapper.md
(Workflow, Sequence, Lifecycle, Journey)docs/flows/
- Read
-
tech → Read
, generate:skills/tech-docs.md
— System architecture + ADRdocs/architecture.md
— Database schema & data modeldocs/database.md
— Deployment & infrastructuredocs/deployment.md
— Data flow diagramsdocs/data-flow.md
-
sop → Auto-run
first if not yet generated, then:knowledge- Read
, generate:skills/sop-guide.md
— Onedocs/sop/
per feature/module.md- Each file: Persona Context → Process Flow → Steps → Journey → Troubleshooting → FAQ
- Read
-
api → Read
, generate:skills/api-reference.md
— Organized by resourcedocs/api/- Each file: Quick Ref → Endpoints table → Multi-language examples
-
all → Run
→knowledge
→tech
→sop
sequentiallyapi
Step 5: Export
Based on the chosen format, read and follow the corresponding workflow:
-
markdown → Read
workflows/export-markdown.md- Create
as indexdocs/README.md - Organize into clean folder structure
- Create
-
vitepress → Read
workflows/setup-vitepress.md- Scaffold VitePress with premium template
- Auto-sidebar from folder structure
- Built-in Mermaid, search, dark mode
- Build and verify
Step 5b: Generate Sitemap (If SEO = yes)
Read and follow
workflows/generate-sitemap.md:
- VitePress: Sitemap auto-generated via
config option. Generatesitemap
, extractrobots.txtsitemap-urls.txt - Markdown: Generate
(link index) +docs/sitemap.mddocs/sitemap-urls.txt - Both formats produce a NotebookLM-ready URL list for AI research
Step 5c: Run SEO Audit (If SEO = yes)
Read
skills/seo-checklist.md and audit every generated page:
- Title (50–60 chars, keyword) ✔️
- Meta description (150–160 chars) ✔️
- Single H1, no skipped levels ✔️
- ≥2 internal links ✔️
- Robots directive set ✔️
- All images have alt text ✔️
Step 6: Summary
Present to user:
- List of generated files with sizes
- How to view/serve the docs
- Next steps (customize, deploy, etc.)
If generated docs > 30 files, also suggest:
💡 **Pro Tip: Deep Search** The documentation set just created has [X] files. You can index them using [qmd](https://github.com/tobi/qmd) for semantic search by AI across all future sessions: \`\`\`bash npm install -g @tobilu/qmd qmd collection add ./docs --name project-docs qmd context add qmd://project-docs "Project documentation for [project-name]" qmd embed \`\`\` See also: `cm-deep-search` skill.
CLI Quick Start
For a fast interactive experience, users can run the doc generation script from the skill root:
# Run from the cm-dockit skill directory bash scripts/doc-gen.sh
Note: The
directory andscripts/script need to be created. For now, trigger this skill by invokingdoc-gen.shdirectly via the AI assistant.cm-dockit
UX Principles Applied
| UX Law | Application |
|---|---|
| Hick's Law | ≤7 TOC items, progressive disclosure for advanced content |
| Miller's Law | Information chunked into groups of 5-9 |
| Doherty Threshold | Tables for structured data, scannable summaries |
| Jakob's Law | Standard doc layout (sidebar + content + TOC) |
| Fitts's Law | Touch-friendly navbar links (≥44px) |
| WCAG 2.1 AA | Focus-visible rings, high contrast, reduced motion |
Constraints
- All Mermaid diagrams use NO hardcoded inline styles — VitePress theming handles light/dark
- Every technical claim cites
(file_path:line_number) - SOP docs use
for troubleshooting (progressive disclosure)<details> - All generated files include YAML frontmatter with
,titledescription - Pure Markdown — no MDX, no special escaping needed
- No underscore-prefixed filenames — breaks auto-sidebar detection
- VitePress output must pass
without errorsnpx vitepress build - SEO default:
unless page is internal/draftrobots: "index, follow" - ≥2 internal links per page (never orphan pages)
- Text fallback for every Mermaid diagram (LLM readability)
- Self-contained sections — each H2 makes sense read alone
generated for NotebookLM importsitemap-urls.txt
CM DocKit Development Rules
If you are an AI agent asked to modify or upgrade this skill (CM DocKit):
- Test Gate Enforcement: You MUST run the backend test suite located in the
skill directory by executingcm-dockit
or$ npm run test:gate
. Do NOT claim "task completed" unless tests pass.$ vitest - Boilerplate Integrity: If modifying
, ensure the frontend test suite (templates/vitepress-premium
) still works.tests/frontend.test.ts - No Direct Copying: Never hardcode file-copy commands that copy
content into[project_root]/docs/
. Always rely ondocs-site/
insrcDir: '../docs'
.config.mts