@pathbit/agentdevkit 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/.pbai4devs/COMPATIBILIDADE.md +4 -2
  2. package/.pbai4devs/INSTRUCTIONS.md +4 -0
  3. package/.pbai4devs/commands/sincronizar/COMMAND.md +4 -3
  4. package/.pbai4devs/rules/documentacao/RULE.md +4 -0
  5. package/.pbai4devs/rules/qualidade/RULE.md +4 -2
  6. package/.pbai4devs/scripts/README.md +3 -3
  7. package/.pbai4devs/scripts/inspecionar-projeto/README.md +31 -0
  8. package/.pbai4devs/scripts/inspecionar-projeto/SCRIPT.mjs +142 -1
  9. package/.pbai4devs/scripts/inspecionar-projeto/tests/TEST.mjs +168 -1
  10. package/.pbai4devs/scripts/lib/gitignore.mjs +84 -15
  11. package/.pbai4devs/scripts/lib/native-paths.mjs +35 -0
  12. package/.pbai4devs/scripts/preparar-ferramentas/SCRIPT.mjs +41 -20
  13. package/.pbai4devs/scripts/preparar-ferramentas/tests/TEST.mjs +81 -0
  14. package/.pbai4devs/scripts/sincronizar-agentes/README.md +3 -0
  15. package/.pbai4devs/scripts/sincronizar-agentes/SCRIPT.mjs +193 -49
  16. package/.pbai4devs/scripts/sincronizar-agentes/tests/COEXISTENCE.mjs +190 -0
  17. package/.pbai4devs/scripts/sincronizar-agentes/tests/HUMAN_OWNERSHIP.mjs +151 -0
  18. package/.pbai4devs/scripts/sincronizar-agentes/tests/LOCAL_IGNORE.mjs +145 -1
  19. package/.pbai4devs/scripts/sincronizar-agentes/tests/TEST.mjs +30 -29
  20. package/.pbai4devs/scripts/verificar-recursos/SCRIPT.mjs +56 -8
  21. package/.pbai4devs/scripts/verificar-recursos/tests/TEST.mjs +92 -1
  22. package/.pbai4devs/skills/produto/criar-design-doc/SKILL.md +2 -0
  23. package/.pbai4devs/skills/produto/criar-prd/SKILL.md +2 -0
  24. package/.pbai4devs/skills/produto/criar-ux-ui/SKILL.md +2 -0
  25. package/.pbai4devs/skills/projeto/atualizar-documentacao/SKILL.md +18 -4
  26. package/.pbai4devs/skills/projeto/configurar-projeto/SKILL.md +2 -0
  27. package/.pbai4devs/skills/projeto/criar-recurso/SKILL.md +1 -0
  28. package/.pbai4devs/skills/projeto/sincronizar-agentes/SKILL.md +3 -2
  29. package/.pbai4devs/skills/specs/criar-spec/SKILL.md +1 -0
  30. package/.pbai4devs/skills/specs/gerenciar-roadmap/SKILL.md +2 -1
  31. package/.pbai4devs/templates/README.md +4 -1
  32. package/.pbai4devs/templates/configuracao/TEMPLATE.md +6 -0
  33. package/CHANGELOG.md +19 -0
  34. package/README.en.md +3 -2
  35. package/README.es.md +3 -2
  36. package/README.md +3 -2
  37. package/docs/README.md +1 -0
  38. package/docs/guides/README.md +1 -0
  39. package/docs/guides/cli.md +11 -0
  40. package/docs/guides/documentation.md +63 -0
  41. package/docs/guides/installation.md +18 -5
  42. package/docs/guides/resources.md +6 -5
  43. package/docs/guides/tools-and-testing.md +2 -0
  44. package/docs/guides/troubleshooting.md +6 -6
  45. package/docs/guides/workflow.md +2 -0
  46. package/docs/maintainers/packages.md +1 -1
  47. package/docs/product/design.md +12 -0
  48. package/docs/product/prd.md +4 -1
  49. package/docs/product/roadmap.md +4 -0
  50. package/docs/specs/README.md +2 -0
  51. package/docs/specs/v0.0.8/README.md +10 -0
  52. package/docs/specs/v0.0.8/SPEC.md +62 -0
  53. package/docs/specs/v0.0.9/README.md +9 -0
  54. package/docs/specs/v0.0.9/SPEC.md +68 -0
  55. package/package.json +3 -2
  56. package/src/cli.mjs +13 -4
  57. package/src/i18n.mjs +3 -0
  58. package/src/install.mjs +145 -38
@@ -1,5 +1,6 @@
1
1
  import assert from 'node:assert/strict';
2
- import { mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
2
+ import { lstatSync, mkdirSync, mkdtempSync, readFileSync, readlinkSync, readdirSync, rmSync, symlinkSync, writeFileSync } from 'node:fs';
3
+ import { createHash } from 'node:crypto';
3
4
  import { join, relative } from 'node:path';
4
5
  import { spawnSync } from 'node:child_process';
5
6
  import test from 'node:test';
@@ -40,6 +41,16 @@ function resourceFixture(t) {
40
41
  }
41
42
  const verify = root => verifyResources({ root, synchronize() {}, catalogCheck() {}, lint: () => ['lint=fixture'] });
42
43
 
44
+ function installedFixture(t) {
45
+ const context = resourceFixture(t);
46
+ context.file('.pbai4devs/estado/README.md');
47
+ const generated = '.agents/skills/managed/SKILL.md';
48
+ context.file(generated, document('# Gerado\n'));
49
+ const files = { [generated]: createHash('sha256').update(readFileSync(join(context.root, generated))).digest('hex') };
50
+ context.file('.pbai4devs/estado/agentdevkit.json', JSON.stringify({ schemaVersion: 1, version: '0.0.9', language: 'pt', files, blocks: {} }));
51
+ return { ...context, generated };
52
+ }
53
+
43
54
  function writeCatalog(root) {
44
55
  for (const [path, content] of buildCatalog(root).outputs) { mkdirSync(join(root, path, '..'), { recursive: true }); writeFileSync(join(root, path), content); }
45
56
  }
@@ -96,6 +107,86 @@ test('coleta source-only ignora exemplos gerados e clientes, sem exigir Git', t
96
107
  for (const path of result.files) assert.doesNotMatch(relative(root, path), /examples[\\/]generated|node_modules|TEST-RESULTS|\.github[\\/]skills|\.codex/);
97
108
  });
98
109
 
110
+ test('instalação valida somente fontes e Markdown próprio, preservando conteúdo humano', t => {
111
+ const { root, file, generated } = installedFixture(t);
112
+ const own = ['README.md', 'AGENTS.md', 'docs/product.md', 'src/README.md', '.codex/README.md', '.codex/templates/custom.md', '.codex/skills/human/SKILL.md'];
113
+ for (const path of own) file(path, '# Texto humano sem frontmatter\n\n[Link próprio](missing-human-file.md)\n');
114
+ let linted;
115
+ const result = verifyResources({ root, synchronize() {}, catalogCheck() {}, lint(_root, files) { linted = files; return ['lint=fixture']; } });
116
+ assert.ok(result.files.includes(join(root, generated)));
117
+ assert.ok(result.files.includes(join(root, '.pbai4devs/skills/exemplo/SKILL.md')));
118
+ for (const path of own) assert.equal(result.files.includes(join(root, path)), false, path);
119
+ assert.deepEqual(linted, result.files);
120
+ file('.pbai4devs/skills/exemplo/SKILL.md', '# Fonte do kit inválida\n');
121
+ assert.throws(() => verify(root), /Frontmatter\/H1 invalido: .pbai4devs\/skills\/exemplo\/SKILL.md/);
122
+ });
123
+
124
+ test('instalação não atravessa links humanos de entradas e skills', t => {
125
+ const { root, file } = installedFixture(t);
126
+ file('AGENTS.md', '# Instrução humana sem frontmatter\n');
127
+ file('own-docs/README.md', '# README humano\n');
128
+ file('own-skills/human/SKILL.md', '# Skill humana\n');
129
+ rmSync(join(root, '.codex/skills'), { recursive: true });
130
+ const links = [['CLAUDE.md', 'AGENTS.md', 'file'], ['README.md', 'own-docs/README.md', 'file'], ['.codex/skills', '../own-skills', 'dir']];
131
+ for (const [path, target, type] of links) {
132
+ try { symlinkSync(type === 'dir' && process.platform === 'win32' ? join(root, 'own-skills') : target, join(root, path), process.platform === 'win32' && type === 'dir' ? 'junction' : type); }
133
+ catch (error) {
134
+ if (process.platform === 'win32' && ['EPERM', 'EACCES'].includes(error.code)) { t.skip('Sem permissão para criar links no Windows.'); return; }
135
+ throw error;
136
+ }
137
+ }
138
+ const before = links.map(([path]) => readlinkSync(join(root, path)));
139
+ const result = verify(root);
140
+ for (const [path] of links) {
141
+ assert.equal(lstatSync(join(root, path)).isSymbolicLink(), true);
142
+ assert.equal(result.files.includes(join(root, path)), false);
143
+ }
144
+ assert.deepEqual(links.map(([path]) => readlinkSync(join(root, path))), before);
145
+ });
146
+
147
+ test('instalação recusa caminho gerenciado substituído por link', t => {
148
+ const { root, file, generated } = installedFixture(t);
149
+ const target = file('external.md', '# Conteúdo externo\n');
150
+ rmSync(join(root, generated));
151
+ try { symlinkSync(target, join(root, generated), 'file'); }
152
+ catch (error) {
153
+ if (process.platform === 'win32' && ['EPERM', 'EACCES'].includes(error.code)) { t.skip('Sem permissão para criar links no Windows.'); return; }
154
+ throw error;
155
+ }
156
+ assert.throws(() => verify(root), /Link simbolico: .agents\/skills\/managed\/SKILL.md/);
157
+ assert.equal(readFileSync(target, 'utf8'), '# Conteúdo externo\n');
158
+ });
159
+
160
+ test('instalação confere entradas derivadas sem aplicar lint a blocos humanos', t => {
161
+ const { root, file } = installedFixture(t);
162
+ const contents = document('# Entrada gerada\n');
163
+ file('GEMINI.md', contents);
164
+ file('.pbai4devs/estado/derived.json', JSON.stringify({ schemaVersion: 1, entries: { 'GEMINI.md': createHash('sha256').update(contents).digest('hex') } }));
165
+ file('AGENTS.md', '# Instruções humanas sem frontmatter\n\n<!-- BEGIN AGENTDEVKIT -->\nLeia as fontes.\n<!-- END AGENTDEVKIT -->\n');
166
+ const statePath = join(root, '.pbai4devs/estado/agentdevkit.json');
167
+ const state = JSON.parse(readFileSync(statePath, 'utf8'));
168
+ state.blocks['AGENTS.md'] = createHash('sha256').update('bloco registrado').digest('hex');
169
+ state.files['.pbai4devs/skills/exemplo/SKILL.md'] = createHash('sha256').update('fonte anterior').digest('hex');
170
+ writeFileSync(statePath, JSON.stringify(state));
171
+ const result = verify(root);
172
+ assert.ok(result.files.includes(join(root, 'GEMINI.md')));
173
+ assert.equal(result.files.includes(join(root, 'AGENTS.md')), false);
174
+ assert.ok(result.files.includes(join(root, '.pbai4devs/skills/exemplo/SKILL.md')));
175
+ file('GEMINI.md', document('# Fonte sincronizada com hash de instalação anterior\n'));
176
+ assert.ok(verify(root).files.includes(join(root, 'GEMINI.md')));
177
+ });
178
+
179
+ test('instalação também protege manifestos registrados em derived.outputs', t => {
180
+ const { root, file } = installedFixture(t);
181
+ const manifest = '.agents/skills.json';
182
+ const contents = '{"entries":[]}\n';
183
+ file(manifest, contents);
184
+ file('.pbai4devs/estado/derived.json', JSON.stringify({ schemaVersion: 1, entries: {}, outputs: { [manifest]: createHash('sha256').update(contents).digest('hex') } }));
185
+ assert.ok(!verify(root).files.includes(join(root, manifest)));
186
+ rmSync(join(root, manifest));
187
+ assert.throws(() => verify(root), /Arquivo gerenciado ausente: .agents\/skills.json/);
188
+ });
189
+
99
190
  test('catalogo derivado cobre recursos e detecta JSON editado sem reescrever', t => {
100
191
  const { root, file } = resourceFixture(t);
101
192
  file('.pbai4devs/commands/inspecionar/COMMAND.md', document('# Inspecionar\n\n[Script](../../scripts/inspecionar/SCRIPT.mjs).\n'));
@@ -6,6 +6,8 @@ description: Define e revisa o design técnico do produto com o usuário.
6
6
  # Criar design técnico
7
7
 
8
8
  Siga `.pbai4devs/rules/qualidade/RULE.md` ao criar arquivos Markdown.
9
+ Antes de escrever, use `atualizar-documentacao` para ler e reaproveitar documentos
10
+ existentes; aplique o template somente às lacunas.
9
11
 
10
12
  Consulte `.pbai4devs/estado/configuracao/ESTADO.md` e confira o PRD aprovado
11
13
  e UX/UI aprovado ou não aplicável com justificativa,
@@ -6,6 +6,8 @@ description: Define e revisa o documento de requisitos do produto com o usuário
6
6
  # Criar PRD
7
7
 
8
8
  Siga `.pbai4devs/rules/qualidade/RULE.md` ao criar arquivos Markdown.
9
+ Antes de escrever, use `atualizar-documentacao` para ler e reaproveitar documentos
10
+ existentes; aplique o template somente às lacunas.
9
11
 
10
12
  Confira a preparação em `.pbai4devs/estado/configuracao/ESTADO.md`. Se não estiver
11
13
  concluída e comprovada, encaminhe a `configurar-projeto` para a fase
@@ -6,6 +6,8 @@ description: Define ou justifica a não aplicação de UX e interface com o usu
6
6
  # Criar UX/UI
7
7
 
8
8
  Siga `.pbai4devs/rules/qualidade/RULE.md` ao criar arquivos Markdown.
9
+ Antes de escrever, use `atualizar-documentacao` para ler e reaproveitar documentos
10
+ existentes; aplique o template somente às lacunas.
9
11
 
10
12
  Consulte `.pbai4devs/estado/configuracao/ESTADO.md` e confira o PRD
11
13
  com `status: aprovado` e a
@@ -5,9 +5,21 @@ description: Atualiza documentos afetados e sua coerência com a entrega.
5
5
 
6
6
  # Atualizar documentação
7
7
 
8
- Leia o diff, os critérios e o comportamento comprovado. Reúna no início as
9
- dúvidas que mudam contratos; use o [catálogo](../../../templates/README.md) para
10
- escolher modelos da fase atual, sem criar documentos de produto antecipados.
8
+ Antes de escrever, execute `inspecionar-projeto` por `executar-script` e consulte
9
+ `documentation`. Abra os documentos relevantes: o inventário não substitui a
10
+ leitura nem comprova aprovação. Confira também o diff e os critérios da tarefa.
11
+ Reúna no início somente dúvidas que os arquivos não respondem.
12
+
13
+ Proponha por caminho: manter, complementar uma seção ou criar arquivo ausente.
14
+ Reutilize nomes, formatos, decisões, links e estrutura existentes; um documento
15
+ como `ARCHITECTURE.md` pode cumprir o papel de design sem ser renomeado.
16
+ Organize primeiro por índices e links. Não apague, mova ou substitua arquivos
17
+ para padronizá-los. Acrescente apenas fatos comprovados e preserve o conteúdo
18
+ anterior; trate contradições com o usuário antes de editar.
19
+
20
+ Use o [catálogo](../../../templates/README.md) como lista de lacunas, nunca como
21
+ substituto de um documento existente. Crie somente o que a fase e o pedido
22
+ exigem; ausência de respostas não autoriza inventar PRD, design ou aprovação.
11
23
 
12
24
  Confira README da raiz/pastas, AGENTS/CLAUDE/GEMINI, contribuição, notas de versão,
13
25
  produto/design/specs, ADRs, configuração/exemplos e comentários/docstrings
@@ -17,7 +29,9 @@ Segurança pública depende de suporte e canal confirmado, sem dados fictícios.
17
29
 
18
30
  Registre por caminho a decisão `updated`, `no-impact` ou `not-applicable`, com
19
31
  justificativa, no relatório da entrega ou no resultado da tarefa. Verifique
20
- links e exemplos; código de teste é versionado, evidências ficam ignoradas.
32
+ links e exemplos; compare o conteúdo anterior e confirme que arquivos fora
33
+ do plano permanecem intactos. Repetir a tarefa não deve duplicar seções.
34
+ Código de teste é versionado, evidências ficam ignoradas.
21
35
 
22
36
  Acione o [revisor](../../../agents/revisor/AGENT.md) em leitura com o diff,
23
37
  documentos, critérios e provas. Aplique os achados pertinentes e peça nova
@@ -17,6 +17,8 @@ as ferramentas e rode o diagnóstico. Isso não escolhe a stack da aplicação.
17
17
 
18
18
  ## Preparar o projeto
19
19
 
20
+ Antes de criar estado ou documentos, faça o inventário de `atualizar-documentacao`.
21
+ Mapeie os documentos já existentes aos seus papéis, sem reiniciar o produto.
20
22
  Reúna dúvidas no início e aproveite decisões existentes. Quando o projeto
21
23
  começar, crie ou retome `.pbai4devs/estado/configuracao/ESTADO.md` pelo modelo.
22
24
  Combine os arquivos `prd`, `ux_ui`, `design`, `roadmap` e diretórios `releases`,
@@ -7,6 +7,7 @@ description: Encaminha criações e cria documentos, modelos ou novos recursos.
7
7
 
8
8
  Se o pedido for um modelo, trabalhe em `.pbai4devs/templates/` sem iniciar a
9
9
  definição do produto. Encaminhe documentos reais à skill correspondente.
10
+ Para documentos, comece pelo inventário e plano de `atualizar-documentacao`.
10
11
 
11
12
  Confira se o recurso já existe e use a skill específica quando disponível:
12
13
  `criar-skill`, `criar-agente`, `criar-comando`, `criar-regra`, `criar-prd`,
@@ -21,8 +21,9 @@ com as fontes, detectando inclusões, alterações, remoções e links inválido
21
21
  Os `.gitignore` de `.pbai4devs` e dos clientes também são gerados dos
22
22
  [modelos](../../../templates/gitignore/TEMPLATE.md). Preserve regras próprias
23
23
  fora do bloco gerenciado; `--check` identifica blocos ausentes ou divergentes.
24
- `--force` repara os destinos gerenciados, sobrescreve conflitos e limpa extras
25
- nesses destinos, com backup local do conteúdo próprio em `.agent-tests/`.
24
+ `--force` repara conflitos gerenciados com backup local em `.agent-tests/`.
25
+ Preserve recursos nativos humanos, inclusive colisões de nomes; links humanos
26
+ são opacos e nunca devem ser atravessados. Confira `preserved` no JSON da CLI.
26
27
  Não apague raízes inteiras: workflows, configurações nativas e a origem ficam
27
28
  fora da limpeza. `--check` só confere, sem corrigir nem criar backups.
28
29
 
@@ -5,6 +5,7 @@ description: Cria uma spec de incremento, esclarecendo requisitos e dúvidas com
5
5
 
6
6
  # Criar spec
7
7
 
8
+ Antes de escrever, aplique o inventário e plano de `atualizar-documentacao`.
8
9
  Leia os caminhos em `.pbai4devs/estado/configuracao/ESTADO.md`. Exija PRD/design
9
10
  aprovados e UX/UI aprovado ou não aplicável com justificativa aprovada.
10
11
  Confira evidências, atualidade e decisões essenciais ao incremento; se faltar
@@ -10,7 +10,8 @@ mostre preparação, releases, specs e tarefas com dependências e bloqueios.
10
10
  Use `[ ]`, `[-]` e `[x]` conforme evidências; informe estados desconhecidos.
11
11
  Sem roadmap, diga que ainda não foi criado. Não conclua entregas sem prova.
12
12
 
13
- Ao planejar ou atualizar, use o modelo de roadmap no caminho acordado. Registre
13
+ Antes de alterar documentos, aplique o inventário de `atualizar-documentacao`.
14
+ Ao planejar ou atualizar, use o modelo só para lacunas no caminho acordado. Registre
14
15
  objetivos, prioridades, etapas, dependências e pendências de PRD, UX/UI e design.
15
16
  Mantenha referências e estados coerentes ao aprovar ou revisar documentos;
16
17
  não invente escopo, datas ou releases. Identifique as specs do primeiro entregável
@@ -30,7 +30,10 @@ enquanto o usuário estiver preparando somente a estrutura dos agentes.
30
30
  | [SECURITY][security] | Suporte público | Política/suporte mudar. |
31
31
  | [Comando][comando] | Recurso agêntico | Entrada ou fluxo mudar. |
32
32
 
33
- Copie só artefatos aplicáveis, remova instruções/placeholders e confirme fatos.
33
+ Antes, inventarie e leia os documentos existentes com `atualizar-documentacao`.
34
+ Use os modelos como lista de lacunas. Copie somente artefatos aplicáveis ainda
35
+ ausentes; nunca substitua documentos existentes. Remova placeholders e confirme
36
+ fatos nos novos arquivos; preserve nomes, formatos, seções e decisões anteriores.
34
37
  README acompanha o projeto desde a preparação; documentos de produto surgem
35
38
  após descoberta. Segurança depende de suporte e canal realmente definidos.
36
39
 
@@ -24,6 +24,12 @@ documentos:
24
24
 
25
25
  # Configuração do projeto
26
26
 
27
+ ## Documentos existentes
28
+
29
+ - Inventário e leitura inicial: a registrar antes de criar documentos.
30
+ - Caminhos e papéis reaproveitados: a definir; não impor novos nomes.
31
+ - Lacunas e complementos acordados: a definir, preservando o conteúdo anterior.
32
+
27
33
  ## Preparação
28
34
 
29
35
  - Evidências e pendências: a definir.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,25 @@ description: Alterações verificáveis por versão do AgentDevKit.
4
4
 
5
5
  # Changelog
6
6
 
7
+ ## 0.0.9 — 2026-11-12
8
+
9
+ - Links e configurações humanos preservados na instalação dos agentes.
10
+ - Colisões com recursos nativos próprios não são sobrescritas pelo kit.
11
+ - Sincronização mantém recursos humanos, inclusive com `--force`.
12
+ - Caminhos preservados são informados sem registrar propriedade indevida.
13
+ - Matriz OSS verifica agentes preexistentes e sincronização independente.
14
+ - Inventário e fluxo documental exigem leitura e complementos sem substituição.
15
+ - Exercícios documentais cobrem projetos reais e um projeto vazio.
16
+
17
+ ## 0.0.8 — 2026-11-11
18
+
19
+ - Preservação de arquivos humanos que parecem apontamentos gerados.
20
+ - Conflitos de ignore recusados antes das gravações e rollback revisado.
21
+ - Permissões mantidas em atualização, backup e restauração de arquivos.
22
+ - Caminhos simbólicos de ferramentas bloqueados antes de escrita externa.
23
+ - Argumentos de ferramentas preservados após `--`; ajuda sem projeto válido.
24
+ - Verificação de artefatos com nomes próprios, arquivos e regras aninhadas.
25
+
7
26
  ## 0.0.7 — 2026-11-11
8
27
 
9
28
  - Artefatos de testes e pastas temporárias protegidos em projetos existentes.
package/README.en.md CHANGED
@@ -34,7 +34,7 @@ Then open the project in your coding agent and ask:
34
34
 
35
35
  See [installation](docs/guides/installation.md) for Windows, missing Node, previews
36
36
  and updates. Install and update through the [public npm package][packages]; the
37
- [v0.0.7 release][release] retains artifacts and checksums for verification.
37
+ [v0.0.9 release][release] retains artifacts and checksums for verification.
38
38
  No global installation is required.
39
39
  The CLI supports `pt`, `en` and `es`; it saves your selection per project.
40
40
 
@@ -44,6 +44,7 @@ The CLI supports `pt`, `en` and `es`; it saves your selection per project.
44
44
  | --- | --- |
45
45
  | Understand the kit | [Documentation wiki](docs/README.md) |
46
46
  | Plan or resume a project | [Workflow](docs/guides/workflow.md) |
47
+ | Improve existing documentation | [Inventory and additions](docs/guides/documentation.md) |
47
48
  | Create a skill or command | [Resources](docs/guides/resources.md) |
48
49
  | Install tools and verify work | [Tools and tests][tests] |
49
50
  | Look up options or fix an error | [CLI][cli] · [Troubleshooting][help] |
@@ -78,7 +79,7 @@ forms. See [how to participate](docs/maintainers/community.md).
78
79
  agent to read `AGENTS.md`.
79
80
 
80
81
  [clients]: .pbai4devs/COMPATIBILIDADE.md
81
- [release]: https://github.com/pathbit/AgentDevKit/releases/tag/v0.0.7
82
+ [release]: https://github.com/pathbit/AgentDevKit/releases/tag/v0.0.9
82
83
  [npm-package]: https://www.npmjs.com/package/@pathbit/agentdevkit
83
84
  [npm-badge]: https://img.shields.io/npm/v/%40pathbit%2Fagentdevkit
84
85
  [license-badge]: https://img.shields.io/badge/license-MIT-blue
package/README.es.md CHANGED
@@ -35,7 +35,7 @@ Después, abre el proyecto en tu agente y pide:
35
35
  La [guía de instalación](docs/guides/installation.md) incluye Windows, Node ausente,
36
36
  simulación y actualización. Instala y actualiza mediante el
37
37
  [paquete npm público][packages];
38
- la [release v0.0.7][release] conserva artefactos y checksums para verificarlos.
38
+ la [release v0.0.9][release] conserva artefactos y checksums para verificarlos.
39
39
  No requiere instalación global.
40
40
  La CLI guarda el idioma `pt`, `en` o `es` por proyecto.
41
41
 
@@ -45,6 +45,7 @@ La CLI guarda el idioma `pt`, `en` o `es` por proyecto.
45
45
  | --- | --- |
46
46
  | Entender el kit | [Wiki](docs/README.md) |
47
47
  | Planificar o retomar un proyecto | [Flujo](docs/guides/workflow.md) |
48
+ | Mejorar documentación existente | [Inventario y complementos](docs/guides/documentation.md) |
48
49
  | Crear una skill o comando | [Recursos](docs/guides/resources.md) |
49
50
  | Instalar herramientas y verificar | [Herramientas y pruebas][tests] |
50
51
  | Consultar opciones o resolver un error | [CLI][cli] · [Soluciones][help] |
@@ -80,7 +81,7 @@ formularios. Consulta [cómo participar](docs/maintainers/community.md).
80
81
  al agente que lea `AGENTS.md`.
81
82
 
82
83
  [clients]: .pbai4devs/COMPATIBILIDADE.md
83
- [release]: https://github.com/pathbit/AgentDevKit/releases/tag/v0.0.7
84
+ [release]: https://github.com/pathbit/AgentDevKit/releases/tag/v0.0.9
84
85
  [npm-package]: https://www.npmjs.com/package/@pathbit/agentdevkit
85
86
  [npm-badge]: https://img.shields.io/npm/v/%40pathbit%2Fagentdevkit
86
87
  [license-badge]: https://img.shields.io/badge/license-MIT-blue
package/README.md CHANGED
@@ -32,7 +32,7 @@ Depois, abra o projeto no seu agente e peça:
32
32
 
33
33
  Windows, instalação sem Node, simulação e atualização estão no
34
34
  [guia de instalação](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/installation.md). A distribuição usa a
35
- versão publicada no [npm público][packages] e na [release v0.0.7][release],
35
+ versão publicada no [npm público][packages] e na [release v0.0.9][release],
36
36
  sem instalação global. Instalação e atualização usam o pacote do registro;
37
37
  os arquivos da release servem para conferir os artefatos publicados.
38
38
  O idioma da CLI pode ser `pt`, `en` ou `es`.
@@ -43,6 +43,7 @@ O idioma da CLI pode ser `pt`, `en` ou `es`.
43
43
  | --- | --- |
44
44
  | Entender e começar | [Wiki](https://github.com/pathbit/AgentDevKit/blob/master/docs/README.md) |
45
45
  | Planejar ou retomar um projeto | [Fluxo de trabalho](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/workflow.md) |
46
+ | Evoluir documentos existentes | [Inventário e complementos](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/documentation.md) |
46
47
  | Criar uma skill ou comando | [Recursos](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/resources.md) |
47
48
  | Instalar ferramentas e comprovar uma entrega | [Ferramentas e testes][tests] |
48
49
  | Consultar opções ou resolver um erro | [CLI][cli] · [Soluções][help] |
@@ -89,7 +90,7 @@ ao seu agente para ler `AGENTS.md`.
89
90
  [help]: https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/troubleshooting.md
90
91
  [issues]: https://github.com/pathbit/AgentDevKit/issues/new/choose
91
92
  [packages]: https://github.com/pathbit/AgentDevKit/blob/master/docs/maintainers/packages.md
92
- [release]: https://github.com/pathbit/AgentDevKit/releases/tag/v0.0.7
93
+ [release]: https://github.com/pathbit/AgentDevKit/releases/tag/v0.0.9
93
94
  [npm-package]: https://www.npmjs.com/package/@pathbit/agentdevkit
94
95
  [npm-badge]: https://img.shields.io/npm/v/%40pathbit%2Fagentdevkit
95
96
  [license-badge]: https://img.shields.io/badge/license-MIT-blue
package/docs/README.md CHANGED
@@ -24,6 +24,7 @@ pode trocar de agente sem manter várias cópias das mesmas instruções.
24
24
  | --- | --- |
25
25
  | Primeiro uso | [Instalar][install] → [seguir o fluxo][flow] |
26
26
  | Projeto em andamento | [Instalar com simulação][install] → [retomar][flow] |
27
+ | Evoluir documentação existente | [Inventariar e complementar](guides/documentation.md) |
27
28
  | Personalizar agentes | [Recursos][resources] → [compatibilidade][clients] |
28
29
  | Executar ou verificar algo | [CLI](guides/cli.md) → [ferramentas e testes][tests] |
29
30
  | Corrigir uma dificuldade | [Soluções e recuperação](guides/troubleshooting.md) |
@@ -7,6 +7,7 @@ description: Guias de instalação, uso e verificação do AgentDevKit.
7
7
  - [Instalação](installation.md)
8
8
  - [Comandos da CLI](cli.md)
9
9
  - [Fluxo de trabalho](workflow.md)
10
+ - [Evoluir documentação existente](documentation.md)
10
11
  - [Recursos dos agentes](resources.md)
11
12
  - [Ferramentas e testes](tools-and-testing.md)
12
13
  - [Solução de problemas](troubleshooting.md)
@@ -63,11 +63,22 @@ e `unlock`. Consultar ou executar não instala silenciosamente.
63
63
  `setup` prepara as ferramentas compatíveis; outros comandos podem receber
64
64
  um nome ou grupo. Consulte [ferramentas e testes](tools-and-testing.md).
65
65
 
66
+ Em `tools`, use `--` antes dos argumentos que pertencem à ferramenta:
67
+
68
+ ```console
69
+ npx @pathbit/agentdevkit tools run agent-browser -- --json --help
70
+ ```
71
+
72
+ Nesse exemplo, `--json` pertence ao agent-browser. Opções do kit ficam antes
73
+ do separador. `--help` e `--version` do kit não exigem um projeto instalado.
74
+
66
75
  ## JSON e retorno
67
76
 
68
77
  As respostas incluem `ok`, `command`, `version`, `language`, `target` e
69
78
  `next`. Conforme a operação, há seleção, plano, conflitos, backup e erros.
70
79
  Leia os campos estruturados, não dependa da tradução da mensagem.
80
+ `preserved` lista caminhos nativos humanos mantidos pelo projeto, com o motivo.
81
+ Eles não integram os arquivos gerenciados e não são substituídos por `--force`.
71
82
 
72
83
  | Código | Significado |
73
84
  | --- | --- |
@@ -0,0 +1,63 @@
1
+ ---
2
+ description: Evoluir documentos existentes e criar somente o que falta.
3
+ ---
4
+
5
+ # Documentação sem perder o contexto
6
+
7
+ O pacote instala as skills e suas ferramentas. O agente usa esses recursos
8
+ para ler o projeto, propor complementos e editar os documentos autorizados.
9
+
10
+ ## Começar pelo que existe
11
+
12
+ Depois de instalar o kit, peça ao seu agente:
13
+
14
+ ```text
15
+ Use atualizar-documentacao. Primeiro inventarie e leia os documentos existentes.
16
+ Proponha complementos por arquivo, preservando conteúdo, nomes e decisões.
17
+ Organize por índices e links; crie apenas documentos que realmente faltam.
18
+ ```
19
+
20
+ O inventário pode ser consultado na raiz do projeto:
21
+
22
+ ```console
23
+ node .pbai4devs/scripts/inspecionar-projeto/SCRIPT.mjs
24
+ ```
25
+
26
+ O campo `documentation` lista documentos encontrados, possíveis papéis e
27
+ limitações da busca. Os papéis são indícios: o agente ainda precisa ler e
28
+ confirmar o conteúdo. Um nome como `ARCHITECTURE.md` pode servir ao design;
29
+ não é necessário renomeá-lo nem recriá-lo em outra pasta.
30
+
31
+ ## Planejar o complemento
32
+
33
+ | Situação | Ação |
34
+ | --- | --- |
35
+ | Documento já suficiente | Manter e registrar ausência de impacto. |
36
+ | Falta uma informação comprovada | Acrescentar à seção apropriada. |
37
+ | Documentos difíceis de encontrar | Criar ou completar índices e links. |
38
+ | Documento necessário não existe | Combinar caminho e criar só o necessário. |
39
+ | Decisão não encontrada ou contraditória | Perguntar antes de escrever. |
40
+
41
+ Os templates ajudam a identificar lacunas. Não substituem documentos
42
+ existentes. Preserve suas seções, âncoras, fatos e decisões; repetir o fluxo
43
+ não deve duplicar conteúdo. Não mova nem exclua arquivos para padronizar.
44
+
45
+ ## Projeto novo ou existente
46
+
47
+ Em projeto existente, aproveite README, guias, ADRs e documentos de produto.
48
+ Preparar o ambiente ou melhorar a documentação não exige reiniciar o produto.
49
+
50
+ Em projeto novo, descubra produto e experiência antes de arquitetura e specs.
51
+ Enquanto o objetivo for apenas configurar agentes, mantenha os modelos sem
52
+ inventar PRD, tecnologia ou aprovação. Siga o [fluxo de trabalho](workflow.md).
53
+
54
+ ## Conferir o resultado
55
+
56
+ Revise o diff e os links. Confirme que o conteúdo anterior foi preservado,
57
+ que arquivos fora do plano não mudaram e que não surgiram decisões inventadas.
58
+ Use `verificar-trabalho` e `revisar-entrega`; salve as provas em `.agent-tests/`.
59
+
60
+ [Wiki](../README.md) · [Skill compartilhada][skill] · [Testes][tests]
61
+
62
+ [skill]: ../../.pbai4devs/skills/projeto/atualizar-documentacao/SKILL.md
63
+ [tests]: ../../tests/README.md
@@ -64,6 +64,8 @@ O bloco local também protege `.agent-tests`, `tmp`, `temp`, `.playwright*`
64
64
  e relatórios de testes, inclusive com letras maiúsculas e em subpastas.
65
65
  O `.gitignore` existente e seus arquivos rastreados são preservados;
66
66
  uma exceção humana que conflite com essa proteção é informada como conflito.
67
+ Nomes próprios de artefatos e arquivos existentes também são conferidos;
68
+ a validação fica restrita ao projeto e aos ignores de seus ancestrais.
67
69
 
68
70
  Arquivos já rastreados exigem migração do índice: apenas saídas identificadas
69
71
  do kit podem deixar de ser rastreadas, preservando seus bytes no disco.
@@ -82,14 +84,25 @@ gerenciados alterados geram conflito; use `--force` somente após revisar o
82
84
  backup e o conteúdo que será substituído. Preserve os dados locais, as
83
85
  configurações próprias e os commits do projeto.
84
86
 
85
- Links simbólicos em caminhos usados pela instalação podem bloquear a operação.
86
- O kit informa o caminho e não converte nem remove o link automaticamente.
87
- Use a simulação para identificar esse caso antes de aplicar.
87
+ Entradas, configurações, skills e agentes humanos permanecem intactos, mesmo
88
+ quando seus nomes coincidem com os do kit. Links simbólicos preexistentes nas
89
+ entradas ou nos clientes são preservados sem leitura ou escrita pelo link.
90
+ O campo `preserved` do JSON informa os caminhos que o kit deixou sob controle
91
+ do projeto; os apontamentos são gerados nas demais rotas disponíveis.
92
+
93
+ Essa preservação não autoriza trocar arquivos gerenciados por links. Links
94
+ em caminhos já pertencentes ao kit, no hub, no estado ou em ferramentas
95
+ continuam sujeitos à recusa de segurança. Nenhum link humano é adotado como
96
+ propriedade do kit, e `--force` não o substitui.
97
+
98
+ Arquivos humanos não se tornam gerenciados apenas por conterem um link.
99
+ As alterações de arquivos existentes preservam permissões, inclusive em backup
100
+ e restauração após falha.
88
101
 
89
102
  O [fluxo de trabalho](workflow.md) orienta a próxima etapa do projeto.
90
103
  Se houver erro, consulte [solução de problemas](troubleshooting.md).
91
104
 
92
- [Wiki](../README.md) · [Spec v0.0.7][spec]
105
+ [Wiki](../README.md) · [Spec v0.0.9][spec]
93
106
 
94
107
  [bootstrap]: ../../.pbai4devs/scripts/preparar-ferramentas/BOOTSTRAP.md
95
- [spec]: ../specs/v0.0.7/SPEC.md
108
+ [spec]: ../specs/v0.0.9/SPEC.md
@@ -84,18 +84,19 @@ node .pbai4devs/scripts/verificar-recursos/SCRIPT.mjs
84
84
  O primeiro comando atualiza apontamentos e índices; `--check` só compara.
85
85
  O manifesto instalado respeita os clientes escolhidos. Não o substitua por uma
86
86
  lista de todos para reparar recursos; altere a seleção pela CLI se necessário.
87
- Conflitos de conteúdo próprio exigem revisão. Quando a substituição for
87
+ Conflitos em arquivos gerenciados exigem revisão. Quando a substituição for
88
88
  intencional, `--force` faz backup local antes de reparar caminhos gerenciados.
89
89
  Não apague pastas inteiras para contornar um conflito.
90
90
 
91
- O `--force` desse script pode limpar extras nas quatro áreas dos clientes,
92
- com backup. Ele não equivale a `agentdevkit sync --force`: a CLI controla sua
93
- própria lista de arquivos e preserva recursos locais não registrados por ela.
94
- Escolha a operação pelo escopo; não prometa preservação indistinta.
91
+ Recursos nativos humanos são preservados, inclusive com `--force` e nomes
92
+ iguais aos do kit. Links humanos são tratados como caminhos opacos; o gerador
93
+ não os atravessa. A CLI informa essas rotas em `preserved` no JSON.
95
94
 
96
95
  Não edite ou versione `catalog.json`, `skills.json`, `rules.json` ou
97
96
  `agents.json`: são derivados locais. Configurações nativas e documentos
98
97
  do projeto não devem ser substituídos por cópias desses índices.
98
+ Em uma instalação existente, `verificar-recursos` confere o hub e as derivações
99
+ registradas, sem exigir frontmatter nos documentos humanos do projeto.
99
100
 
100
101
  ## O que permanece fora dos espelhos
101
102
 
@@ -32,6 +32,8 @@ node .pbai4devs/scripts/preparar-ferramentas/SCRIPT.mjs setup
32
32
  `setup` reutiliza instalações saudáveis e verifica as compatíveis. Um nome
33
33
  ou grupo limita a seleção. `check`, `info` e `run` não trocam uma consulta
34
34
  por instalação. Downloads, caches e recibos permanecem locais e ignorados.
35
+ O gerenciador recusa links simbólicos nos caminhos que escreve ou usa como
36
+ estado local; a atualização não segue esses links para fora da instalação.
35
37
 
36
38
  ## Escolher a prova
37
39
 
@@ -84,15 +84,15 @@ peça ao agente para comparar as fontes e planejar o reparo com `init`/`sync`.
84
84
  Entradas humanas permanecem separadas das geradas. Na migração de versões
85
85
  antigas, o kit retira somente seu bloco reconhecido e preserva o texto humano.
86
86
  Não altere os marcadores dos blocos que ainda serão migrados.
87
- Não transforme diretórios de agentes ou o hub em links simbólicos.
87
+ Links humanos preexistentes nas entradas e nos clientes são mantidos sem
88
+ atravessá-los. Consulte `preserved` no JSON para ver as rotas que não receberam
89
+ apontamentos. Não transforme o hub ou caminhos já gerenciados em links.
88
90
  Destinos dentro de `.git`, `node_modules` ou `.pbai4devs` são recusados,
89
91
  inclusive com variações de maiúsculas/minúsculas.
90
92
 
91
- Na CLI, `sync --force` substitui conflitos identificados, com backup, e
92
- preserva arquivos nativos próprios que não são do kit. O script compartilhado
93
- `sincronizar-agentes` tem um modo `--force` mais amplo: pode limpar conteúdo
94
- extra nas áreas de skills, agents, commands e rules. Prefira a CLI para manter
95
- a instalação; não trate esses dois comandos como equivalentes.
93
+ Na CLI e no script `sincronizar-agentes`, `--force` repara conflitos gerenciados
94
+ com backup. Recursos nativos humanos e links preservados continuam intactos.
95
+ Para manter a instalação e sua seleção de clientes, prefira a CLI.
96
96
 
97
97
  ## Download, plataforma ou ferramenta falhando
98
98
 
@@ -41,6 +41,8 @@ documentos, não comprova comportamento e não autoriza substituir decisões.
41
41
 
42
42
  ## 2. Reunir as perguntas no início
43
43
 
44
+ Antes de criar documentos, [inventarie e leia o que existe](documentation.md).
45
+ Reutilize os caminhos e complemente lacunas, sem substituir pelo template.
44
46
  Antes de escrever documentos ou código, leia o contexto já disponível.
45
47
  Reúna as dúvidas que alteram objetivo, escopo, dependências ou critérios.
46
48
  Não pergunte novamente o que o usuário já decidiu ou o projeto já registra.
@@ -64,7 +64,7 @@ existir; a primeira publicação pode usar o secret `NPMJS_TOKEN`.
64
64
  Para publicar somente o pacote de uma tag que já tem artefato aprovado:
65
65
 
66
66
  ```console
67
- gh workflow run release.yml --ref master -f tag=v0.0.7 -F package_only=true
67
+ gh workflow run release.yml --ref master -f tag=v0.0.9 -F package_only=true
68
68
  ```
69
69
 
70
70
  Se o artefato expirou, reexecute o CI original da tag antes da publicação.
@@ -66,6 +66,18 @@ O estado registra versão, escolha e propriedade local. Índices e manifesto
66
66
  podem ser reconstruídos. Downloads, credenciais e relatórios ficam fora do
67
67
  pacote e do Git.
68
68
 
69
+ ## Inventário e evolução documental
70
+
71
+ O inspetor inclui metadados de documentação no JSON: caminhos, tipo, papel
72
+ provável, origem da indicação, tamanho e hash quando couber nos limites.
73
+ Ele não escreve arquivos, não emite conteúdo e não lê destinos simbólicos.
74
+ Limites e avisos impedem interpretar uma busca parcial como ausência de docs.
75
+
76
+ A skill `atualizar-documentacao` usa esse inventário antes dos templates.
77
+ O agente lê o material, propõe ações por arquivo e aplica complementos
78
+ autorizados. Organização usa índices e links, preservando caminhos e conteúdo.
79
+ Produto e aprovações dependem das decisões reais do usuário.
80
+
69
81
  ## Runtime
70
82
 
71
83
  O launcher aceita Node 18+ e prepara Node 24+ antes de carregar o núcleo.