Docmd dev
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.From its SKILL.md
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.
2 things 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.
- runs commandsInstructs the agent to run 6 commands, including `git clone https://github.com/docmd-io/docmd.git docmd` and 5 more.
SKILL.md
6.7 KB, ~1.5k tokens by cl100k_base, 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.
What ships with it: 5 files
47.2 KB alongside SKILL.md
references/
- api-dev.md8.8 KB
- engines.md4.3 KB
- plugin-development.md9.6 KB
- security-and-regression-checklist.md11.0 KB
- template-development.md13.6 KB