docmd — 代理技能(开发者)
当用户想要修改 docmd 框架本身,而不是消费它的站点时使用此技能。此技能由 npx docmd-skills dev <dir> 加载,并且会在现有的 docmd-skills/ 安装旁添加 docmd-dev/。
何时使用此技能
当任意一个信号为真时使用:
- 用户当前工作目录是 docmd 单体仓库的克隆。本地克隆目录命名为
docmd/(GitHub 路径为docmd-io/docmd/)。标志性文件:pnpm-lock.yaml、packages/core/src/、packages/ui/src/、packages/api/src/、packages/plugins/<name>/、packages/engines/。克隆方法:git clone https://github.com/docmd-io/docmd.git docmd && cd docmd。 - 用户明确表示想要“编写插件”、“编写模板”、“扩展引擎”、“修改核心”、“添加钩子”或类似内容。
- 用户在 docmd 单体仓库的
packages/core/src/、packages/api/src/、packages/ui/src/、packages/plugins/*/src/或packages/engines/*/内编辑文件。
如果用户需要框架帮助但工作目录中没有 docmd/ 克隆,在操作前先询问:是否希望克隆单体仓库(git clone https://github.com/docmd-io/docmd.git docmd)或刷新现有克隆(git -C docmd pull)?不要在未更新本地克隆的情况下开始编辑框架源码。
不要将其用于:站点级配置或操作(使用 docmd-skills),或页面散文质量(使用 docmd-writer)。
加载规则
- 仅当用户正在 docmd 单体仓库中积极工作或明确询问框架内部时加载此技能。
- 如有疑问,默认使用 docmd-skills(用户)。切换到此技能意味着用户已准备好对单体仓库运行
pnpm命令。
参考索引
每行对应一个参考文件。CLI 列显示哪个安装子命令添加此文件。
| 参考文件 | CLI 安装子命令 | 用途 |
|---|---|---|
references/api-dev.md | docmd-skills dev | 框架作者的公共 Node API:EngineLoader、URL utilities、createActionDispatcher、TemplateSlot、钩子/动作合约 |
references/plugin-development.md | docmd-skills dev | 编写 docmd 插件:包结构、manifest、apply() 生命周期、template 能力、钩子、测试 |
references/template-development.md | docmd-skills dev | 编写 docmd 主题/模板:12 个模板插槽、资源管道、manifest.json、模板插件 |
references/engines.md | docmd-skills dev | JS 与 Rust 构建引擎、引擎切换、引擎特定配置、性能权衡 |
工作流
1. 克隆或刷新单体仓库
尚无克隆 — 克隆并安装:
git clone https://github.com/docmd-io/docmd.git docmd
cd docmd
pnpm install
已有克隆 — 刷新并重新安装依赖(如有必要):
git -C docmd pull
pnpm install
如需在决定前检查克隆是否落后,运行 git -C docmd status(查找“Your branch is behind”)或 git -C docmd log -1 --oneline 并与 https://github.com/docmd-io/docmd/commits/main 比较。
本地克隆目录是 docmd/(不是 docmd-io/docmd/)。在其内部,您将找到本技能中引用的规范包布局。
2. 编写插件
- 在搭建前通读
references/plugin-development.md。 - 选择
packages/plugins/<name>/下最接近的现有插件并复制其结构。 - 对照
references/api-dev.md检查Plugin类型、钩子名称以及 0.8.7 版本引入的template能力。 - 在插件自己的
tests/下添加测试;单体仓库的pnpm prep会运行通用安全网。
3. 编写模板
- 阅读
references/template-development.md了解 12 个模板插槽和资源管道。 - 匹配现有模板(
packages/templates/summer/是参考)使用的 manifest 结构。 - 对照
references/api-dev.md中的TemplateSlot联合类型验证(没有header插槽 — 共有 12 个)。
4. 引擎工作
- 首先阅读
references/engines.md— 确认目标引擎及其配置键。 - 对于引擎加载器的 Node 级别更改,查阅
references/api-dev.md§ “Engine Loader API”。
跨技能导航
- docmd-skills — 用于站点级别工作;默认优先加载。
- docmd-writer — 当任务涉及模板演示或示例文档中的散文质量时加载。