Docmd dev
A modular skill set for AI agents to understand and work with docmd documentation projects.
npx -y skills add docmd-io/docmd-skills --skill docmd-devAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use this skill when contributing to the docmd framework itself — working in the cloned `docmd/` monorepo. Covers plugin authoring, template authoring, engine loaders, the public Node API, and the hooks/action system. docmd is Node.js and TypeScript only, so it enforces a security and quality gate (see the security-and-regression-checklist reference) before any framework change ships.
SKILL.md
6.7 KB, as published. Nobody here has run it
docmd — Agent Skill (Developer)
Use this skill when the user wants to modify the docmd framework itself, not a site that consumes it. This skill is loaded by npx docmd-skills dev <dir> and adds docmd-dev/ alongside an existing docmd-skills/ install.
When to use this skill
Use it when any one of these signals is true:
- The user's current working directory is a clone of the docmd monorepo. The local clone directory is named just
docmd/(the GitHub path isdocmd-io/docmd/). Telltale markers:pnpm-lock.yaml,packages/core/src/,packages/ui/src/,packages/api/src/,packages/plugins/<name>/,packages/engines/. To clone it:git clone https://github.com/docmd-io/docmd.git docmd && cd docmd. - The user explicitly says they want to "write a plugin", "write a template", "extend the engine", "modify the core", "add a hook", or similar.
- The user is editing files inside
packages/core/src/,packages/api/src/,packages/ui/src/,packages/plugins/*/src/, orpackages/engines/*/of the docmd monorepo.
If the user wants framework help but no docmd/ clone exists in the working directory, ask before doing anything: would they like you to clone the monorepo (git clone https://github.com/docmd-io/docmd.git docmd) or refresh an existing one (git -C docmd pull)? Do not start editing framework source without an up-to-date local clone.
Do not use it for: site-level configuration or operations (use docmd-skills), or for page-prose quality (use docmd-writer).
Loading rules
- Only load this skill when the user is actively working inside the docmd monorepo or asks explicitly about framework internals.
- When in doubt, default to docmd-skills (user). Switching to this skill implies the user is comfortable running
pnpmcommands against the monorepo.
Reference index
Each row is a reference file. The CLI column shows which install subcommand adds this file.
| Reference | CLI install subcommand | Use it for |
|---|---|---|
references/api-dev.md | docmd-skills dev | Public Node API for framework authors: EngineLoader, URL utilities, createActionDispatcher, TemplateSlot, hook/action contracts |
references/plugin-development.md | docmd-skills dev | Authoring a docmd plugin: package shape, manifest, apply() lifecycle, template capability, hooks, testing |
references/template-development.md | docmd-skills dev | Authoring a docmd theme/template: 12 template slots, asset pipeline, manifest.json, template plugins |
references/engines.md | docmd-skills dev | JS vs Rust build engines, swapping engines, engine-specific config, performance trade-offs |
references/security-and-regression-checklist.md | docmd-skills dev | docmd-specific security and quality gate: container parser invariants, plugin HTML-injection contract, public API honesty, i18n/versioning silent-failure rules, deploy/Docker hardening, migration correctness, CLI honesty, loud fallbacks. Load before any framework change ships. Builds on ai-dev's nodejs-cautions.md and security-must-checks.md. |
Workflows
1. Cloning or refreshing the monorepo
No clone yet — clone and install:
git clone https://github.com/docmd-io/docmd.git docmd
cd docmd
pnpm install
Existing clone — refresh and re-install dependencies if needed:
git -C docmd pull
pnpm install
To check whether a clone is behind before deciding, run git -C docmd status (look for "Your branch is behind") or git -C docmd log -1 --oneline and compare to https://github.com/docmd-io/docmd/commits/main.
The local clone directory is docmd/ (not docmd-io/docmd/). Inside it you will find the canonical package layout referenced throughout this skill.
2. Writing a plugin
- Read
references/plugin-development.mdend-to-end before scaffolding. - Pick the closest existing plugin under
packages/plugins/<name>/and copy its shape. - Cross-check
references/api-dev.mdfor thePlugintype, hook names, and thetemplatecapability introduced in 0.8.7. - Add tests under the plugin's own
tests/; the monorepo'spnpm prepruns the universal failsafe.
3. Writing a template
- Read
references/template-development.mdfor the 12 template slots and the asset pipeline. - Match the manifest shape used by an existing template (
packages/templates/summer/is the reference). - Validate against
references/api-dev.mdfor theTemplateSlotunion (noheaderslot — there are 12).
4. Engine work
references/engines.mdfirst — confirms which engine you're targeting and its config keys.- For Node-level changes to the engine loader,
references/api-dev.md§ "Engine Loader API".
5. Hard checks before any framework change ships
docmd is Node.js and TypeScript only, so the generic Node rules always apply. Run this gate before declaring a framework change done:
- Generic Node triage from
ai-dev:references/nodejs-cautions.md§1.1 grep checklist, the Appendix 5-minute review, and Part 12 (contract honesty and silent failures). ai-devreferences/security-must-checks.mdRules 1 to 7, with docmd's common-miss spots in mind (plugins, MCP tools, container blocks, deploy templates).references/security-and-regression-checklist.md— run every section that touches the area you changed. This is the docmd-only layer and the direct output of the v0.8.x battle test (battle-test-reports/unified-issues.md).pnpm prepfor anything non-trivial.- One regression test per bug class fixed, named after the report ID where possible.
If any MUST in those references is unresolved, the change is not done.
Cross-skill navigation
- docmd-skills — for site-level work; load it as the default first.
- docmd-writer — load it when the task drifts into prose quality inside template demos or example docs.