O que docmd — Habilidade para Agente (Desenvolvedor) faz?
Use esta habilidade quando o usuário desejar modificar o framework docmd em si, e não um site que o consome. Esta habilidade é carregada por npx docmd-skills dev <dir> e adiciona docmd-dev/ junto a uma instalação existente de docmd-skills/.
Quando usar esta habilidade
Use-a quando qualquer um destes sinais for verdadeiro:
- O diretório de trabalho atual do usuário é um clone do monorepo docmd. O diretório do clone local é nomeado apenas
docmd/(o caminho no GitHub édocmd-io/docmd/). Marcadores típicos:pnpm-lock.yaml,packages/core/src/,packages/ui/src/,packages/api/src/,packages/plugins/<nome>/,packages/engines/. Para cloná-lo:git clone https://github.com/docmd-io/docmd.git docmd && cd docmd. - O usuário diz explicitamente que quer "escrever um plugin", "escrever um template", "estender o engine", "modificar o core", "adicionar um hook" ou similar.
- O usuário está editando arquivos dentro de
packages/core/src/,packages/api/src/,packages/ui/src/,packages/plugins/*/src/oupackages/engines/*/do monorepo docmd.
Se o usuário quer ajuda com o framework, mas não existe um clone docmd/ no diretório de trabalho, pergunte antes de fazer qualquer coisa: ele gostaria que você clonasse o monorepo (git clone https://github.com/docmd-io/docmd.git docmd) ou atualizasse um existente (git -C docmd pull)? Não comece a editar o código fonte do framework sem um clone local atualizado.
Não use para: configuração de site ou operações (use docmd-skills), ou para qualidade de prosa em páginas (use docmd-writer).
Regras de carregamento
- Carregue esta habilidade apenas quando o usuário estiver ativamente trabalhando dentro do monorepo docmd ou perguntar explicitamente sobre componentes internos do framework.
- Em caso de dúvida, prefira docmd-skills (usuário). Mudar para esta habilidade implica que o usuário está confortável em executar comandos
pnpmcontra o monorepo.
Índice de referências
Cada linha é um arquivo de referência. A coluna CLI mostra qual subcomando de instalação adiciona este arquivo.
| Referência | Subcomando CLI de instalação | Use para |
|---|---|---|
references/api-dev.md | docmd-skills dev | API Node pública para autores do framework: EngineLoader, utilitários de URL, createActionDispatcher, TemplateSlot, contratos de hook/action |
references/plugin-development.md | docmd-skills dev | Criação de um plugin docmd: estrutura do pacote, manifesto, ciclo de vida apply(), capacidade template, hooks, teste |
references/template-development.md | docmd-skills dev | Criação de um tema/template docmd: 12 slots de template, pipeline de assets, manifest.json, plugins de template |
references/engines.md | docmd-skills dev | Engines de build JS vs Rust, troca de engines, configuração específica de engine, trade-offs de desempenho |
Fluxos de trabalho
1. Clonando ou atualizando o monorepo
Ainda sem clone — clone e instale:
git clone https://github.com/docmd-io/docmd.git docmd
cd docmd
pnpm install
Clone existente — atualize e reinstale dependências se necessário:
git -C docmd pull
pnpm install
Para verificar se um clone está desatualizado antes de decidir, execute git -C docmd status (procure por "Your branch is behind") ou git -C docmd log -1 --oneline e compare com https://github.com/docmd-io/docmd/commits/main.
O diretório do clone local é docmd/ (não docmd-io/docmd/). Dentro dele você encontrará a estrutura de pacotes canônica referenciada ao longo desta habilidade.
2. Escrevendo um plugin
- Leia
references/plugin-development.mddo início ao fim antes de criar a estrutura. - Escolha o plugin existente mais próximo em
packages/plugins/<nome>/e copie sua estrutura. - Verifique
references/api-dev.mdpara o tipoPlugin, nomes de hooks e a capacidadetemplateintroduzida na versão 0.8.7. - Adicione testes no próprio diretório
tests/do plugin; opnpm prepdo monorepo executa o failsafe universal.
3. Escrevendo um template
- Leia
references/template-development.mdpara os 12 slots de template e o pipeline de assets. - Corresponda a estrutura do manifesto usada por um template existente (
packages/templates/summer/é a referência). - Valide contra
references/api-dev.mdpara a uniãoTemplateSlot(não há slotheader— existem 12).
4. Trabalho com engines
references/engines.mdprimeiro — confirma qual engine você está segmentando e suas chaves de configuração.- Para alterações no nível Node do carregador de engine, veja
references/api-dev.md§ "Engine Loader API".
Navegação entre habilidades
- docmd-skills — para trabalho em nível de site; carregue como padrão primeiro.
- docmd-writer — carregue quando a tarefa migrar para qualidade de prosa dentro de demos de template ou documentos de exemplo.