name: xpz-doc-builder description: Gera e atualiza documentação Markdown a partir de acervo XML GeneXus/XPZ e moldes sanitizados, usando scripts locais do repositório ativo
xpz-doc-builder
Gera, recompõe e atualiza documentação Markdown a partir do acervo XML do repositório e de moldes sanitizados. Usa scripts locais do repositório ativo e evita depender de caminhos absolutos privados.
GUIDELINE
Identificar a raiz do repositório pelo contexto, localizar os scripts documentais em scripts\, resolver caminhos de entrada e saída a partir do cenário atual e delegar a geração ou atualização aos scripts apropriados. Evitar edição manual de .md longos quando houver fluxo automatizável. Se não houver script documental apropriado para o tipo de contrato, roteiro ou exemplo a registrar, edição manual pequena de Markdown é aceitável; a edição deve ser local, ancorada por seção, sem substituição ampla em .md longo, e seguida de releitura do início do arquivo, da seção alterada e da transição seguinte. Ao documentar acervo XML, distinguir snapshot oficial de artefato local de trabalho.
Se a documentação depender da pasta paralela da KB e essa estrutura ainda não estiver montada ou validada, parar e usar xpz-kb-parallel-setup antes de gerar ou atualizar documentação.
PATH RESOLUTION
- Este
SKILL.mdfica dentro de uma subpasta de skill sob a raiz do repositório. - Toda referência
../arquivo.mddeve ser resolvida a partir da pasta desteSKILL.md, e não do diretório de trabalho corrente. - Na prática,
../aponta para a base metodológica compartilhada na pasta-pai desta skill.
TRIGGERS
Use esta skill para:
- Usuário quer gerar inventário documental da KB a partir do acervo XML
- Usuário quer produzir documentação analítica ou matrizes a partir dos XMLs
- Usuário quer recompor uma seção Markdown com moldes sanitizados completos
- Usuário quer atualizar documentação a partir de exemplos reais de uma KB
- Usuário quer manter a base documental que alimenta humanos e outras skills
- Usuário quer gerar documentação a partir de fonte técnica validada do KB Intelligence, preservando a distinção entre evidência direta e inferência
Do NOT use this skill for:
- Sincronizar XMLs a partir de um XPZ exportado pela IDE (use
xpz-sync) - Analisar um XML isolado sem intenção de atualizar a documentação (use
xpz-reader) - Gerar ou clonar objetos XPZ para empacotamento (use
xpz-builder) - Tratar o SQLite do KB Intelligence como fonte normativa no lugar dos XMLs oficiais
- Localizar objetos no acervo da KB por nome ou tipo (usar
xpz-index-triageprimeiro quando houver índice KbIntelligence disponível)
MODOS
| Modo | Quando usar |
|---|---|
inventory |
Gerar inventário bruto do acervo XML |
advanced-docs |
Produzir documentação analítica, matrizes e catálogos estruturais |
update-section |
Recriar ou atualizar uma seção Markdown com exemplos XML completos |
O KB Intelligence pode alimentar documentação em fase posterior, mas o índice SQLite é artefato derivado. Ao usá-lo, rotule a origem como índice técnico derivado e preserve links para XML oficial e evidência quando possível.
SCRIPTS ESPERADOS
O repositório deve conter em <repo_root>\scripts\:
| Script | Papel |
|---|---|
generate-kb-inventory.ps1 |
Gera inventário bruto da KB a partir do acervo XML |
generate-kb-advanced-docs.ps1 |
Gera documentação analítica a partir do acervo XML |
Update-XpzDocSection.ps1 |
Recompõe uma seção Markdown com exemplos XML e notas editoriais |
Se o repositório ainda mantiver wrappers especializados, eles devem ser tratados como compatibilidade transitória, não como interface principal da skill.
LOCALIZAÇÃO DO REPOSITÓRIO
- Usar o diretório de trabalho atual como ponto de partida
- Se necessário, subir até encontrar a raiz Git (
git rev-parse --show-toplevel) - Localizar
scripts\ - Confirmar que os scripts documentais esperados existem
- Se não existirem, relatar o problema antes de tentar alternativa manual
PARÂMETROS COMUNS
Geração de inventário
-SourceRoot(obrigatório) — raiz do acervo XML-OutputPath(obrigatório) — arquivo Markdown de saída
Geração analítica
-SourceRoot(obrigatório) — raiz do acervo XML-OutputRoot(obrigatório) — pasta onde os Markdown serão gerados
Atualização de seção
-TargetMarkdown(obrigatório) — arquivo Markdown a atualizar-SectionTitle(obrigatório) — título exato da seção a recompor-IntroLines(opcional) — linhas introdutórias da seção-XmlExamplePaths(obrigatório) — lista de XMLs que serão incorporados-ExampleTitles(opcional) — títulos por exemplo-ExampleNotes(opcional) — notas por exemplo
WORKFLOW
- Identificar se o pedido é
inventory,advanced-docsouupdate-section - Se a pasta paralela da KB ainda não estiver montada, validada ou mapeada para este repositório → ABORT e usar
xpz-kb-parallel-setup- Quando houver índice KbIntelligence disponível e a tarefa exigir selecionar ou localizar objetos do corpus para documentar, invocar
xpz-index-triageantes de abrir XMLs para orientar a seleção
- Quando houver índice KbIntelligence disponível e a tarefa exigir selecionar ou localizar objetos do corpus para documentar, invocar
- Resolver a raiz do repositório pelo contexto
- Localizar
scripts\e confirmar a existência do script adequado - Confirmar ou derivar caminhos de entrada e saída
- Executar o script com parâmetros explícitos
- Se usar casos de validação derivados do KB Intelligence, identificar primeiro o formato do caso antes de escolher o executor:
- casos com
source,targeteexpected_rule→ validar no gerador/indexador comBuild-KbIntelligenceIndex.ps1 -ValidationCasesPath - casos com
query→ validar no executor de consultas comTest-KbIntelligenceQueries.ps1 -ValidationCasesPath
- casos com
- Se a documentação citar XML vindo de
ObjetosGeradosParaImportacaoNaKbNoGenexus, rotular isso como artefato de trabalho e não como snapshot oficial - Quando a documentação gerar ou preservar links de linha para XML GeneXus, rotular o papel do trecho citado:
Source efetivo,Rules/parm,metadado XML,chamada no chamadorouassinatura no chamado - Se a documentação afirmar que objeto A chama objeto B, validar que o link de linha aponta para o
Sourceefetivo de A ou para metadado explícito de chamada em A; linha deparm(...)em B deve ser descrita apenas como assinatura do chamado - Se usar saída do KB Intelligence, declarar que a fonte imediata é índice técnico derivado e que a fonte normativa continua sendo o XML oficial em
ObjetosDaKbEmXml; quando houver evidência citada, preservar referência ao XML oficial, papel do trecho citado e nível de confiança - Quando a documentação tiver natureza funcional, separar explicitamente
Evidência direta,Leitura adicional do XML,Inferência forteeHipótese - Reler o início do arquivo gerado ou alterado, a seção modificada e a transição seguinte
- Reportar o que foi criado, atualizado ou substituído
CONSTRAINTS
- NUNCA assumir caminhos absolutos privados
- NUNCA gerar documentação operacional dependente da pasta paralela da KB enquanto essa estrutura ainda estiver indefinida ou não validada
- NUNCA editar
.mdlongos manualmente se houver script apropriado - NUNCA reescrever uma seção sem identificar corretamente o título-alvo
- NUNCA esconder que o conteúdo foi gerado a partir de XMLs sanitizados ou acervo real quando isso for relevante
- NUNCA tratar
ObjetosGeradosParaImportacaoNaKbNoGenexuscomo se fosse snapshot oficial da KB sem rotulagem explícita - NUNCA editar
ObjetosDaKbEmXmlesperando que a documentação ou o empacotamento use essa versão; o acervo é somente leitura para agentes (ver02-regras-operacionais-e-runtime.md, anti-padrão "editar acervo esperando que o pacote pegue") - NUNCA documentar uma linha de
parm(...)do objeto chamado como se fosse o ponto de chamada no objeto chamador - NUNCA tratar o SQLite do KB Intelligence como prova funcional ou runtime; ele é índice técnico derivado de evidências extraídas
- NUNCA escolher o executor de validação do KB Intelligence só pelo nome da fase; o formato do caso (
expected_ruleversusquery) é que define o executor compatível - Se o script esperado não existir, reportar o problema antes de improvisar uma edição manual ampla