@pathbit/agentdevkit 0.0.13 → 0.0.15
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.
- package/.pbai4devs/INSTRUCTIONS.md +16 -1
- package/.pbai4devs/agents/README.md +5 -0
- package/.pbai4devs/agents/analista-performance/AGENT.md +12 -0
- package/.pbai4devs/agents/analista-performance/antigravity.yaml +8 -0
- package/.pbai4devs/agents/analista-performance/claude.yaml +5 -0
- package/.pbai4devs/agents/analista-performance/cursor.yaml +5 -0
- package/.pbai4devs/agents/analista-performance/gemini.yaml +6 -0
- package/.pbai4devs/agents/analista-performance/github.yaml +5 -0
- package/.pbai4devs/agents/analista-performance/kimi-code.yaml +5 -0
- package/.pbai4devs/agents/analista-performance/mimocode.yaml +8 -0
- package/.pbai4devs/agents/analista-performance/opencode.yaml +11 -0
- package/.pbai4devs/agents/arquiteto/AGENT.md +14 -0
- package/.pbai4devs/agents/arquiteto/antigravity.yaml +8 -0
- package/.pbai4devs/agents/arquiteto/claude.yaml +5 -0
- package/.pbai4devs/agents/arquiteto/cursor.yaml +5 -0
- package/.pbai4devs/agents/arquiteto/gemini.yaml +6 -0
- package/.pbai4devs/agents/arquiteto/github.yaml +5 -0
- package/.pbai4devs/agents/arquiteto/kimi-code.yaml +5 -0
- package/.pbai4devs/agents/arquiteto/mimocode.yaml +8 -0
- package/.pbai4devs/agents/arquiteto/opencode.yaml +11 -0
- package/.pbai4devs/agents/engenheiro-qa/AGENT.md +16 -0
- package/.pbai4devs/agents/engenheiro-qa/antigravity.yaml +8 -0
- package/.pbai4devs/agents/engenheiro-qa/claude.yaml +5 -0
- package/.pbai4devs/agents/engenheiro-qa/cursor.yaml +5 -0
- package/.pbai4devs/agents/engenheiro-qa/gemini.yaml +6 -0
- package/.pbai4devs/agents/engenheiro-qa/github.yaml +5 -0
- package/.pbai4devs/agents/engenheiro-qa/kimi-code.yaml +5 -0
- package/.pbai4devs/agents/engenheiro-qa/mimocode.yaml +8 -0
- package/.pbai4devs/agents/engenheiro-qa/opencode.yaml +11 -0
- package/.pbai4devs/agents/especialista-backend/AGENT.md +14 -0
- package/.pbai4devs/agents/especialista-backend/antigravity.yaml +8 -0
- package/.pbai4devs/agents/especialista-backend/claude.yaml +5 -0
- package/.pbai4devs/agents/especialista-backend/cursor.yaml +5 -0
- package/.pbai4devs/agents/especialista-backend/gemini.yaml +6 -0
- package/.pbai4devs/agents/especialista-backend/github.yaml +5 -0
- package/.pbai4devs/agents/especialista-backend/kimi-code.yaml +5 -0
- package/.pbai4devs/agents/especialista-backend/mimocode.yaml +8 -0
- package/.pbai4devs/agents/especialista-backend/opencode.yaml +11 -0
- package/.pbai4devs/agents/especialista-frontend/AGENT.md +14 -0
- package/.pbai4devs/agents/especialista-frontend/antigravity.yaml +8 -0
- package/.pbai4devs/agents/especialista-frontend/claude.yaml +5 -0
- package/.pbai4devs/agents/especialista-frontend/cursor.yaml +5 -0
- package/.pbai4devs/agents/especialista-frontend/gemini.yaml +6 -0
- package/.pbai4devs/agents/especialista-frontend/github.yaml +5 -0
- package/.pbai4devs/agents/especialista-frontend/kimi-code.yaml +5 -0
- package/.pbai4devs/agents/especialista-frontend/mimocode.yaml +8 -0
- package/.pbai4devs/agents/especialista-frontend/opencode.yaml +11 -0
- package/.pbai4devs/agents/revisor/AGENT.md +3 -2
- package/.pbai4devs/agents/revisor/opencode.yaml +10 -3
- package/.pbai4devs/agents/validador/AGENT.md +4 -1
- package/.pbai4devs/commands/implementar-entrega/COMMAND.md +7 -0
- package/.pbai4devs/commands/planejar-entrega/COMMAND.md +8 -2
- package/.pbai4devs/commands/revisar-entrega/COMMAND.md +6 -3
- package/.pbai4devs/commands/validar-entrega/COMMAND.md +10 -1
- package/.pbai4devs/rules/qualidade/RULE.md +5 -6
- package/.pbai4devs/scripts/lib/README.md +2 -3
- package/.pbai4devs/scripts/lib/gitignore.mjs +129 -43
- package/.pbai4devs/scripts/sincronizar-agentes/README.md +1 -1
- package/.pbai4devs/scripts/sincronizar-agentes/SCRIPT.mjs +2 -1
- package/.pbai4devs/scripts/sincronizar-agentes/tests/LOCAL_IGNORE.mjs +94 -53
- package/.pbai4devs/skills/README.md +7 -0
- package/.pbai4devs/skills/arquitetura/avaliar-arquitetura/SKILL.md +21 -0
- package/.pbai4devs/skills/desenvolvimento/implementar-backend/SKILL.md +20 -0
- package/.pbai4devs/skills/desenvolvimento/implementar-frontend/SKILL.md +20 -0
- package/.pbai4devs/skills/projeto/verificar-trabalho/SKILL.md +3 -0
- package/.pbai4devs/skills/qualidade/avaliar-performance/SKILL.md +20 -0
- package/.pbai4devs/skills/qualidade/planejar-qa/SKILL.md +21 -0
- package/.pbai4devs/skills/qualidade/revisar-codigo/SKILL.md +19 -0
- package/.pbai4devs/skills/qualidade/validar-adversarial/SKILL.md +22 -0
- package/.pbai4devs/skills/seguranca/revisar-seguranca/SKILL.md +2 -0
- package/.pbai4devs/skills/specs/implementar-spec/SKILL.md +5 -0
- package/.pbai4devs/templates/gitignore/TEMPLATE.md +5 -5
- package/CHANGELOG.md +16 -0
- package/README.en.md +2 -2
- package/README.es.md +2 -2
- package/README.md +3 -2
- package/docs/README.md +2 -0
- package/docs/guides/README.md +1 -0
- package/docs/guides/installation.md +9 -5
- package/docs/guides/recursos-na-pratica.md +103 -0
- package/docs/guides/resources.md +29 -0
- package/docs/maintainers/maintenance.md +1 -1
- package/docs/maintainers/packages.md +2 -1
- package/docs/specs/README.md +3 -0
- package/docs/specs/development-ecosystem/SPEC.md +32 -0
- package/docs/specs/project-ignore/SPEC.md +26 -0
- package/package.json +1 -1
- package/src/cli.mjs +9 -4
- package/src/i18n.mjs +6 -0
- package/src/install.mjs +2 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implementar-frontend
|
|
3
|
+
description: Implementa interfaces web conforme a spec, o design e as provas de uso.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Implementar frontend
|
|
7
|
+
|
|
8
|
+
Siga a spec e o plano aprovados, o design e os componentes existentes.
|
|
9
|
+
Esclareça comportamento, conteúdo e acessibilidade
|
|
10
|
+
quando faltarem decisões; não escolha framework nem crie telas fora do escopo.
|
|
11
|
+
|
|
12
|
+
Considere estados de carregamento, vazio, erro e sucesso; navegação por teclado,
|
|
13
|
+
semântica acessível e diferentes tamanhos de tela. Preserve contratos com o
|
|
14
|
+
backend e evite expor segredos ou dados de outras pessoas.
|
|
15
|
+
|
|
16
|
+
Execute os testes apropriados e abra a interface real em navegador disponível.
|
|
17
|
+
Percorra os fluxos alterados em desktop e celular quando aplicável; confira
|
|
18
|
+
resultado, console e rede. Testes automáticos de acessibilidade são parciais:
|
|
19
|
+
inclua inspeção por teclado e relate o que não foi verificado. Uma captura ou
|
|
20
|
+
fixture isolada não prova o produto. Veja [Playwright](https://playwright.dev/docs/accessibility-testing).
|
|
@@ -8,6 +8,9 @@ description: Verifica alterações com ferramentas reais e registra evidências
|
|
|
8
8
|
Reúna os critérios e o impacto da alteração. Use `executar-script` para
|
|
9
9
|
identificar ferramentas disponíveis e selecione os níveis aplicáveis. Use
|
|
10
10
|
`usar-skills-externas` para referências pertinentes, sem adotar uma stack nova:
|
|
11
|
+
[planejar-qa](../../qualidade/planejar-qa/SKILL.md) organiza casos por risco;
|
|
12
|
+
[validar-adversarial](../../qualidade/validar-adversarial/SKILL.md) questiona
|
|
13
|
+
as hipóteses e provas relevantes, no ambiente autorizado.
|
|
11
14
|
|
|
12
15
|
1. **Estrutura:** para recursos dos agentes, execute `verificar-recursos`;
|
|
13
16
|
ele confere espelhos, frontmatter/H1 e links, além do Markdown lint quando
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: avaliar-performance
|
|
3
|
+
description: Mede e investiga desempenho com carga, comparação e limites explícitos.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Avaliar performance
|
|
7
|
+
|
|
8
|
+
Defina o fluxo, a métrica e o ambiente autorizados. Identifique meta existente
|
|
9
|
+
ou registre sua ausência; não invente orçamento nem simule carga em produção
|
|
10
|
+
sem autorização. Reúna volume de dados, concorrência e condições reproduzíveis.
|
|
11
|
+
|
|
12
|
+
Meça uma linha de base e compare a mudança nas mesmas condições; registre
|
|
13
|
+
comandos, repetições, latência, erros, throughput e recursos conforme o caso.
|
|
14
|
+
Investigue o gargalo antes de otimizar e prove que o comportamento permanece.
|
|
15
|
+
Para web, use métricas pertinentes como LCP, INP e CLS e distinga medições
|
|
16
|
+
locais de dados reais de usuários: veja [Core Web Vitals](https://web.dev/articles/vitals).
|
|
17
|
+
|
|
18
|
+
Informe variação, limitações e resultado em relação à meta. Sem ambiente,
|
|
19
|
+
carga ou dados adequados, marque como não verificado; não extrapole uma medição
|
|
20
|
+
local para produção. Salve relatórios em diretório ignorado.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planejar-qa
|
|
3
|
+
description: Planeja e executa verificações de QA orientadas a riscos e critérios de aceite.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planejar QA
|
|
7
|
+
|
|
8
|
+
Para cada critério de aceite, identifique o comportamento observável, riscos,
|
|
9
|
+
dados, pré-requisitos e ambiente. Se uma decisão impedir a prova, esclareça-a;
|
|
10
|
+
não invente acesso, dados ou resultados.
|
|
11
|
+
|
|
12
|
+
Escolha casos positivos, negativos, limites, transições e regressões relevantes.
|
|
13
|
+
Combine testes unitários, integração, API, navegador ou desktop conforme o
|
|
14
|
+
produto e o risco; use ferramentas existentes e fixtures isoladas. Testes de
|
|
15
|
+
contrato ou mocks não substituem uma integração real não executada.
|
|
16
|
+
|
|
17
|
+
Registre para cada critério comando ou ação, resultado observado e estado
|
|
18
|
+
**passou**, **falhou** ou **não verificado**, com evidência e limitações.
|
|
19
|
+
Versione o código dos testes e salve resultados em `.agent-tests/` ou diretório
|
|
20
|
+
ignorado. Encaminhe hipóteses de falha à
|
|
21
|
+
[validação adversarial](../validar-adversarial/SKILL.md).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: revisar-codigo
|
|
3
|
+
description: Revisa alterações de código em busca de defeitos, regressões e provas insuficientes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Revisar código
|
|
7
|
+
|
|
8
|
+
Examine o diff, o contexto necessário, os critérios e as evidências; preserve
|
|
9
|
+
as alterações de outras pessoas. Trabalhe em leitura quando atuar como
|
|
10
|
+
[revisor](../../../agents/revisor/AGENT.md) e peça o que faltar.
|
|
11
|
+
|
|
12
|
+
Investigue correção, contratos, dados, concorrência, falhas, segurança e efeitos
|
|
13
|
+
de implantação pertinentes. Use [validação adversarial](../validar-adversarial/SKILL.md)
|
|
14
|
+
para refutar suposições e identifique testes de regressão ausentes. Priorize
|
|
15
|
+
defeitos reproduzíveis, não preferências de estilo ou mudanças fora do escopo.
|
|
16
|
+
|
|
17
|
+
Para cada achado, informe arquivo, linha, cenário, impacto e evidência; distinga
|
|
18
|
+
certeza de hipótese. Indique o que foi verificado e os limites. Se não houver
|
|
19
|
+
achados, diga isso sem afirmar que o código está livre de defeitos.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: validar-adversarial
|
|
3
|
+
description: Busca e verifica falhas plausíveis em requisitos, mudanças e evidências autorizadas.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Validar adversarialmente
|
|
7
|
+
|
|
8
|
+
Leia o escopo, a mudança e as provas existentes. Formule hipóteses concretas
|
|
9
|
+
que possam contrariar cada resultado relevante: dados inválidos, limites,
|
|
10
|
+
permissões, estados ausentes, falhas de dependências ou concorrência aplicável.
|
|
11
|
+
Priorize pelo impacto e pela chance, não pela quantidade de cenários.
|
|
12
|
+
|
|
13
|
+
Tente reproduzir ou refutar cada hipótese em ambiente e dados autorizados,
|
|
14
|
+
preferindo isolamento e verificações não destrutivas. Use uma revisão
|
|
15
|
+
independente quando houver agente disponível e permitido; caso contrário,
|
|
16
|
+
registre a limitação e faça uma segunda leitura crítica. Não acesse sistemas,
|
|
17
|
+
segredos ou serviços externos sem autorização.
|
|
18
|
+
|
|
19
|
+
Relate cenário, observação, impacto, localização e confiança; diferencie falha
|
|
20
|
+
confirmada, hipótese e teste não executado. Para segurança, encaminhe à
|
|
21
|
+
[revisão de segurança](../../seguranca/revisar-seguranca/SKILL.md); correções
|
|
22
|
+
exigem nova prova. Não declare ausência de falhas a partir de uma amostra.
|
|
@@ -18,6 +18,8 @@ Revise também autenticação, autorização por recurso, isolamento de dados,
|
|
|
18
18
|
segredos e entradas conforme o [guia](../REFERENCE.md).
|
|
19
19
|
Use [revisar-autorizacao](../revisar-autorizacao/SKILL.md) para permissões e
|
|
20
20
|
[modelar-ameacas](../modelar-ameacas/SKILL.md) quando houver novas fronteiras.
|
|
21
|
+
Use [validação adversarial](../../qualidade/validar-adversarial/SKILL.md) para
|
|
22
|
+
testar hipóteses de abuso dentro do escopo autorizado.
|
|
21
23
|
|
|
22
24
|
Registre achado, evidência, impacto, confiança e estado da triagem, sem valores
|
|
23
25
|
secretos. Diferencie vulnerabilidade confirmada, suspeita e falso positivo.
|
|
@@ -27,6 +27,11 @@ antes de implementar.
|
|
|
27
27
|
5. Implemente só a spec. Em trabalho delegado, use worktrees e branches próprias;
|
|
28
28
|
integre somente trabalho completo e verificado, sem sobrescrever alterações.
|
|
29
29
|
Esclareça novos impedimentos antes de avançar na parte afetada.
|
|
30
|
+
Quando disponíveis e autorizados, divida tarefas independentes entre
|
|
31
|
+
especialistas com arquivos atribuídos e provas esperadas. Use as skills de
|
|
32
|
+
[backend](../../desenvolvimento/implementar-backend/SKILL.md) e
|
|
33
|
+
[frontend](../../desenvolvimento/implementar-frontend/SKILL.md) conforme o
|
|
34
|
+
escopo. Se não houver delegação, prossiga em sequência e informe o limite.
|
|
30
35
|
6. Por tarefa concluída, atualize tarefas/release e a documentação afetada com
|
|
31
36
|
`atualizar-documentacao`. Execute o comando `revisar-entrega`, incluindo
|
|
32
37
|
provas e revisão independente. Só então crie o commit do checkpoint conforme
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Exemplo opcional de regras de ignore para o projeto.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
# Custom ignore
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
O `.gitignore` da raiz pertence ao projeto; o kit não o cria nem o altera.
|
|
8
|
+
O projeto pode adotar este exemplo e seus próprios padrões se desejar.
|
|
9
9
|
Regras de artefatos locais vêm de [shared.ignore](shared.ignore) e
|
|
10
10
|
[agents.ignore](agents.ignore). As saídas calculadas usam
|
|
11
|
-
[local.ignore](local.ignore) em `.git/info/exclude`; sem Git,
|
|
12
|
-
|
|
11
|
+
[local.ignore](local.ignore) em `.git/info/exclude`; sem Git, essa proteção
|
|
12
|
+
fica pendente até `git init` e sincronização, antes de adicionar arquivos.
|
|
13
13
|
O sincronizador mantém o bloco `BEGIN AGENT IGNORE` / `END AGENT IGNORE`;
|
|
14
14
|
regras próprias ficam fora dele, com exceções depois do bloco. Para permitir
|
|
15
15
|
novos arquivos compartilhados, ajuste as fontes e sincronize. Raízes dedicadas
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ description: Alterações verificáveis por versão do AgentDevKit.
|
|
|
4
4
|
|
|
5
5
|
# Changelog
|
|
6
6
|
|
|
7
|
+
## 0.0.15 — 2026-11-13
|
|
8
|
+
|
|
9
|
+
- Especialistas e skills para arquitetura, backend, frontend, QA e performance.
|
|
10
|
+
- Revisão de código e validação adversarial orientadas por evidências.
|
|
11
|
+
- Delegação de tarefas independentes com responsabilidades e limites claros.
|
|
12
|
+
- Preservação de arquivos e configurações existentes coberta por integração.
|
|
13
|
+
- Permissões de somente leitura do revisor compatíveis com OpenCode V2.
|
|
14
|
+
- Testes portáveis com concorrência limitada e diagnóstico de falhas da CLI.
|
|
15
|
+
|
|
16
|
+
## 0.0.14 — 2026-11-12
|
|
17
|
+
|
|
18
|
+
- O `.gitignore` da raiz pertence ao projeto e não é alterado pelo kit.
|
|
19
|
+
- Exclusões locais ficam no Git e conflitos são informados antes da instalação.
|
|
20
|
+
- Projetos sem Git recebem orientação para ativar a proteção após `git init`.
|
|
21
|
+
- Negação ambígua, blocos antigos e artefatos rastreados recebem diagnóstico.
|
|
22
|
+
|
|
7
23
|
## 0.0.13 — 2026-11-12
|
|
8
24
|
|
|
9
25
|
- Proteção de caches de agentes mesmo com negações genéricas no `.gitignore`.
|
package/README.en.md
CHANGED
|
@@ -43,7 +43,7 @@ Then open the project in your coding agent and ask:
|
|
|
43
43
|
|
|
44
44
|
See [installation](docs/guides/installation.md) for runtime preparation, previews
|
|
45
45
|
and updates. Both [package registries][packages] provide the same version;
|
|
46
|
-
the [
|
|
46
|
+
the [latest release][release] retains artifacts and checksums for verification.
|
|
47
47
|
No global installation is required.
|
|
48
48
|
The CLI supports `pt`, `en` and `es`; it saves your selection per project.
|
|
49
49
|
|
|
@@ -90,7 +90,7 @@ forms. See [how to participate](docs/maintainers/community.md).
|
|
|
90
90
|
agent to read `AGENTS.md`.
|
|
91
91
|
|
|
92
92
|
[clients]: .pbai4devs/COMPATIBILIDADE.md
|
|
93
|
-
[release]: https://github.com/pathbit/AgentDevKit/releases/
|
|
93
|
+
[release]: https://github.com/pathbit/AgentDevKit/releases/latest
|
|
94
94
|
[npm-package]: https://www.npmjs.com/package/@pathbit/agentdevkit
|
|
95
95
|
[npm-badge]: https://img.shields.io/npm/v/%40pathbit%2Fagentdevkit
|
|
96
96
|
[license-badge]: https://img.shields.io/badge/license-MIT-blue
|
package/README.es.md
CHANGED
|
@@ -44,7 +44,7 @@ Después, abre el proyecto en tu agente y pide:
|
|
|
44
44
|
La [guía de instalación](docs/guides/installation.md) incluye preparación del
|
|
45
45
|
runtime, simulación y actualización. Los dos [registros][packages] ofrecen
|
|
46
46
|
la misma versión;
|
|
47
|
-
la [release
|
|
47
|
+
la [última release][release] conserva artefactos y checksums para verificarlos.
|
|
48
48
|
No requiere instalación global.
|
|
49
49
|
La CLI guarda el idioma `pt`, `en` o `es` por proyecto.
|
|
50
50
|
|
|
@@ -92,7 +92,7 @@ formularios. Consulta [cómo participar](docs/maintainers/community.md).
|
|
|
92
92
|
al agente que lea `AGENTS.md`.
|
|
93
93
|
|
|
94
94
|
[clients]: .pbai4devs/COMPATIBILIDADE.md
|
|
95
|
-
[release]: https://github.com/pathbit/AgentDevKit/releases/
|
|
95
|
+
[release]: https://github.com/pathbit/AgentDevKit/releases/latest
|
|
96
96
|
[npm-package]: https://www.npmjs.com/package/@pathbit/agentdevkit
|
|
97
97
|
[npm-badge]: https://img.shields.io/npm/v/%40pathbit%2Fagentdevkit
|
|
98
98
|
[license-badge]: https://img.shields.io/badge/license-MIT-blue
|
package/README.md
CHANGED
|
@@ -46,7 +46,7 @@ Depois, abra o projeto no seu agente e peça:
|
|
|
46
46
|
|
|
47
47
|
Windows, instalação sem Node, simulação e atualização estão no
|
|
48
48
|
[guia de instalação](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/installation.md). A distribuição usa a
|
|
49
|
-
versão publicada no [npm e GitHub Packages][packages] e na [release
|
|
49
|
+
versão publicada no [npm e GitHub Packages][packages] e na [release][release],
|
|
50
50
|
sem instalação global. Instalação e atualização usam o pacote do registro;
|
|
51
51
|
os arquivos da release servem para conferir os artefatos publicados.
|
|
52
52
|
O idioma da CLI pode ser `pt`, `en` ou `es`.
|
|
@@ -60,6 +60,7 @@ O idioma da CLI pode ser `pt`, `en` ou `es`.
|
|
|
60
60
|
| Planejar ou retomar um projeto | [Fluxo de trabalho](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/workflow.md) |
|
|
61
61
|
| Evoluir documentos existentes | [Inventário e complementos](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/documentation.md) |
|
|
62
62
|
| Criar uma skill ou comando | [Recursos](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/resources.md) |
|
|
63
|
+
| Entender agentes, skills e comandos | [Recursos na prática](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/recursos-na-pratica.md) |
|
|
63
64
|
| Instalar ferramentas e comprovar uma entrega | [Ferramentas e testes][tests] |
|
|
64
65
|
| Revisar segurança sem serviços externos | [Segurança local](https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/security.md) |
|
|
65
66
|
| Consultar opções ou resolver um erro | [CLI][cli] · [Soluções][help] |
|
|
@@ -106,7 +107,7 @@ ao seu agente para ler `AGENTS.md`.
|
|
|
106
107
|
[help]: https://github.com/pathbit/AgentDevKit/blob/master/docs/guides/troubleshooting.md
|
|
107
108
|
[issues]: https://github.com/pathbit/AgentDevKit/issues/new/choose
|
|
108
109
|
[packages]: https://github.com/pathbit/AgentDevKit/blob/master/docs/maintainers/packages.md
|
|
109
|
-
[release]: https://github.com/pathbit/AgentDevKit/releases/
|
|
110
|
+
[release]: https://github.com/pathbit/AgentDevKit/releases/latest
|
|
110
111
|
[npm-package]: https://www.npmjs.com/package/@pathbit/agentdevkit
|
|
111
112
|
[npm-badge]: https://img.shields.io/npm/v/%40pathbit%2Fagentdevkit
|
|
112
113
|
[license-badge]: https://img.shields.io/badge/license-MIT-blue
|
package/docs/README.md
CHANGED
|
@@ -27,6 +27,8 @@ pode trocar de agente sem manter várias cópias das mesmas instruções.
|
|
|
27
27
|
| Projeto em andamento | [Instalar com simulação][install] → [retomar][flow] |
|
|
28
28
|
| Evoluir documentação existente | [Inventariar e complementar](guides/documentation.md) |
|
|
29
29
|
| Personalizar agentes | [Recursos][resources] → [compatibilidade][clients] |
|
|
30
|
+
| Entender cada peça com um exemplo | [Recursos na prática](guides/recursos-na-pratica.md) |
|
|
31
|
+
| Escolher especialistas e distribuir trabalho | [Perfis e colaboração](guides/resources.md#especialistas-e-colaboração) |
|
|
30
32
|
| Revisar segurança | [Scanners locais e controles](guides/security.md) |
|
|
31
33
|
| Executar ou verificar algo | [CLI](guides/cli.md) → [ferramentas e testes][tests] |
|
|
32
34
|
| Corrigir uma dificuldade | [Soluções e recuperação](guides/troubleshooting.md) |
|
package/docs/guides/README.md
CHANGED
|
@@ -10,6 +10,7 @@ description: Guias de instalação, uso e verificação do AgentDevKit.
|
|
|
10
10
|
- [Fluxo de trabalho](workflow.md)
|
|
11
11
|
- [Evoluir documentação existente](documentation.md)
|
|
12
12
|
- [Recursos dos agentes](resources.md)
|
|
13
|
+
- [Recursos na prática: do pedido à entrega](recursos-na-pratica.md)
|
|
13
14
|
- [Segurança local](security.md)
|
|
14
15
|
- [Ferramentas e testes](tools-and-testing.md)
|
|
15
16
|
- [Solução de problemas](troubleshooting.md)
|
|
@@ -105,20 +105,24 @@ identifica a licença dos recursos do AgentDevKit, sem redefinir a do projeto.
|
|
|
105
105
|
Um `.gitignore` dentro de `.pbai4devs` só controla essa árvore. Para os
|
|
106
106
|
apontamentos externos, o kit gera exclusões locais do Git, sem ignorar
|
|
107
107
|
workflows, formulários de issues ou configurações humanas em `.github`.
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
O kit não cria nem altera o `.gitignore` da raiz. Sem Git, a exclusão local
|
|
109
|
+
fica pendente; execute `git init` e `npx @pathbit/agentdevkit sync` antes de
|
|
110
|
+
usar `git add`. No GitHub Packages, use o prefixo de registry da instalação.
|
|
110
111
|
|
|
111
112
|
O bloco local também protege `.agent-tests`, `tmp`, `temp`, `.playwright*`
|
|
112
113
|
e relatórios de testes, inclusive com letras maiúsculas e em subpastas.
|
|
113
114
|
O conteúdo do `.gitignore` existente e os arquivos rastreados são preservados.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
Uma exceção que reabra arquivo privado ou artefato é informada como conflito;
|
|
116
|
+
o projeto decide como ajustar suas próprias regras.
|
|
117
|
+
Negativas com curingas também podem ser recusadas preventivamente, mesmo antes
|
|
118
|
+
de existir um arquivo correspondente. Examine a regra indicada no diagnóstico.
|
|
117
119
|
Nomes próprios de artefatos e arquivos existentes também são conferidos;
|
|
118
120
|
a validação fica restrita ao projeto e aos ignores de seus ancestrais.
|
|
119
121
|
|
|
120
122
|
Arquivos já rastreados exigem migração do índice: apenas saídas identificadas
|
|
121
123
|
do kit podem deixar de ser rastreadas, preservando seus bytes no disco.
|
|
124
|
+
Artefatos já rastreados são informados por `doctor` e `sync --check` para
|
|
125
|
+
revisão; não são removidos automaticamente do índice.
|
|
122
126
|
Revise o plano e os conflitos em um projeto existente; use `--dry-run` antes
|
|
123
127
|
de aplicar. Conteúdo humano não deve ser classificado como saída do gerador.
|
|
124
128
|
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Como usar os recursos do AgentDevKit no desenvolvimento de software.
|
|
3
|
+
language: pt
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Recursos na prática
|
|
7
|
+
|
|
8
|
+
O AgentDevKit organiza o trabalho de desenvolvimento de software com agentes
|
|
9
|
+
que você escolhe. O kit reúne instruções e ferramentas; decisões de produto,
|
|
10
|
+
revisão humana e testes continuam necessários no projeto atendido.
|
|
11
|
+
|
|
12
|
+
## Qual recurso usar?
|
|
13
|
+
|
|
14
|
+
| Recurso | Para que serve | Exemplo concreto |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| [Skill][skills] | Orienta decisões e passos de uma tarefa recorrente. | [Criar uma spec][spec] com dúvidas e critérios. |
|
|
17
|
+
| [Comando][commands] | Dá entrada a um caso de uso e encaminha o trabalho. | [Validar entrega][validar] com provas. |
|
|
18
|
+
| [Agente][agents] | Define responsabilidades e limites de um papel. | [Revisor][reviewer] examina a mudança em leitura. |
|
|
19
|
+
| [Regra][rules] | Registra uma convenção aplicável a um contexto. | [Qualidade][quality] orienta os cuidados da entrega. |
|
|
20
|
+
| [Template][templates] | Oferece uma estrutura para registrar decisões. | Preencher a [spec][spec-template] de um incremento. |
|
|
21
|
+
| [Script][scripts] | Executa uma automação reutilizável. | [Sincronizar][sync] os apontamentos. |
|
|
22
|
+
| [Ferramenta][tools] | Fornece uma capacidade técnica verificável. | [agent-browser][browser] exercita uma interface web. |
|
|
23
|
+
| [Testes e evidências][tests] | Comprovam comportamento e registram resultados. | Versionar o teste e manter relatório local. |
|
|
24
|
+
|
|
25
|
+
Os links levam às fontes e aos catálogos. Uma instrução em Markdown não inicia
|
|
26
|
+
um processo sozinha; o cliente de IA decide como descobrir e executar recursos
|
|
27
|
+
conforme suas capacidades e permissões. Consulte a
|
|
28
|
+
[compatibilidade por cliente][compat] antes de depender de um atalho.
|
|
29
|
+
|
|
30
|
+
## Exemplo: entregar uma funcionalidade
|
|
31
|
+
|
|
32
|
+
1. Peça ao agente para ler `AGENTS.md` e usar
|
|
33
|
+
[proximos-passos][next]. Ele identifica a fase e as pendências do projeto.
|
|
34
|
+
2. Defina produto, experiência quando aplicável e design técnico com o usuário.
|
|
35
|
+
Os [templates][templates] são pontos de partida, não decisões prontas.
|
|
36
|
+
3. Use [criar-spec][spec] para esclarecer dúvidas, limitar o incremento e
|
|
37
|
+
registrar critérios verificáveis. Planeje e obtenha a aprovação necessária.
|
|
38
|
+
4. Use [implementar-entrega][implement] com a spec e o plano. O perfil
|
|
39
|
+
[implementador][developer] segue a skill e respeita o escopo aprovado.
|
|
40
|
+
5. Execute as verificações adequadas: testes automatizados, navegador para um
|
|
41
|
+
fluxo web ou desktop para uma aplicação desktop, quando aplicáveis. Registre
|
|
42
|
+
o resultado de cada critério, incluindo o que não pôde ser executado.
|
|
43
|
+
6. Atualize a documentação afetada e encaminhe a mudança à
|
|
44
|
+
[revisão independente][review]. A equipe decide quando integrar a entrega.
|
|
45
|
+
|
|
46
|
+
Quando houver trabalho independente, o agente principal pode distribuí-lo
|
|
47
|
+
entre os [especialistas][specialists] disponíveis, com responsáveis por arquivos,
|
|
48
|
+
dependências e provas. Se o cliente não oferecer subagentes, o trabalho segue
|
|
49
|
+
em sequência e a ausência de revisão independente fica explícita.
|
|
50
|
+
|
|
51
|
+
Escolha provas pelo escopo: contratos, validação e dados no backend; interação,
|
|
52
|
+
acessibilidade, estados de erro e navegador ou desktop no frontend. QA inclui
|
|
53
|
+
casos de limite e falha; segurança considera ameaças e permissões; performance
|
|
54
|
+
compara medições com metas e carga definidas. Registre ambiente, comandos e
|
|
55
|
+
resultados por critério, inclusive falhas e verificações não executadas.
|
|
56
|
+
|
|
57
|
+
Para um projeto existente, comece pelo inventário e preserve suas decisões;
|
|
58
|
+
consulte o [fluxo de trabalho][workflow] e a
|
|
59
|
+
[instalação em projetos existentes][install].
|
|
60
|
+
|
|
61
|
+
## Onde ficam os arquivos?
|
|
62
|
+
|
|
63
|
+
`.pbai4devs/` contém as fontes compartilhadas. Pastas como `.claude/` ou
|
|
64
|
+
`.codex/` recebem apenas os recursos de integração dos clientes selecionados;
|
|
65
|
+
os arquivos humanos existentes continuam pertencendo ao projeto. A seleção pode
|
|
66
|
+
ser consultada ou alterada pela [CLI][cli].
|
|
67
|
+
|
|
68
|
+
O código dos testes e as fixtures necessárias são versionáveis. Relatórios,
|
|
69
|
+
capturas, downloads e resultados locais ficam fora do versionamento. O
|
|
70
|
+
`.gitignore` da raiz pertence ao projeto; com Git inicializado, o kit mantém
|
|
71
|
+
suas exclusões locais em `.git/info/exclude` e informa conflitos. Sem Git,
|
|
72
|
+
execute a sincronização após `git init`, antes de adicionar arquivos ao índice.
|
|
73
|
+
Veja [instalação][install] e [ferramentas e testes][tests].
|
|
74
|
+
|
|
75
|
+
Para criar ou mudar um recurso, use o [guia de recursos][resources] e depois
|
|
76
|
+
sincronize e verifique os apontamentos. Para dúvidas de operação, consulte
|
|
77
|
+
[solução de problemas](troubleshooting.md).
|
|
78
|
+
|
|
79
|
+
[skills]: ../../.pbai4devs/skills/README.md
|
|
80
|
+
[commands]: ../../.pbai4devs/commands/README.md
|
|
81
|
+
[agents]: ../../.pbai4devs/agents/README.md
|
|
82
|
+
[rules]: ../../.pbai4devs/rules/README.md
|
|
83
|
+
[templates]: ../../.pbai4devs/templates/README.md
|
|
84
|
+
[scripts]: ../../.pbai4devs/scripts/README.md
|
|
85
|
+
[tools]: ../../.pbai4devs/tools/README.md
|
|
86
|
+
[spec]: ../../.pbai4devs/skills/specs/criar-spec/SKILL.md
|
|
87
|
+
[spec-template]: ../../.pbai4devs/templates/spec/TEMPLATE.md
|
|
88
|
+
[validar]: ../../.pbai4devs/commands/validar-entrega/COMMAND.md
|
|
89
|
+
[reviewer]: ../../.pbai4devs/agents/revisor/AGENT.md
|
|
90
|
+
[developer]: ../../.pbai4devs/agents/implementador/AGENT.md
|
|
91
|
+
[quality]: ../../.pbai4devs/rules/qualidade/RULE.md
|
|
92
|
+
[sync]: ../../.pbai4devs/scripts/sincronizar-agentes/README.md
|
|
93
|
+
[browser]: ../../.pbai4devs/tools/agent-browser/README.md
|
|
94
|
+
[tests]: tools-and-testing.md
|
|
95
|
+
[compat]: ../../.pbai4devs/COMPATIBILIDADE.md
|
|
96
|
+
[next]: ../../.pbai4devs/skills/projeto/proximos-passos/SKILL.md
|
|
97
|
+
[implement]: ../../.pbai4devs/commands/implementar-entrega/COMMAND.md
|
|
98
|
+
[review]: ../../.pbai4devs/commands/revisar-entrega/COMMAND.md
|
|
99
|
+
[workflow]: workflow.md
|
|
100
|
+
[install]: installation.md
|
|
101
|
+
[cli]: cli.md
|
|
102
|
+
[resources]: resources.md
|
|
103
|
+
[specialists]: resources.md#especialistas-e-colaboração
|
package/docs/guides/resources.md
CHANGED
|
@@ -14,6 +14,9 @@ O hub permanece completo mesmo com poucos clientes selecionados. Apenas os
|
|
|
14
14
|
apontamentos necessários são gerados; consulte ou altere a seleção com `agents`
|
|
15
15
|
na [CLI](cli.md). Pastas compartilhadas podem atender mais de um cliente.
|
|
16
16
|
|
|
17
|
+
Para um exemplo de cada tipo aplicado ao desenvolvimento de software, veja
|
|
18
|
+
[recursos na prática](recursos-na-pratica.md).
|
|
19
|
+
|
|
17
20
|
## Escolher o tipo certo
|
|
18
21
|
|
|
19
22
|
Os caminhos abaixo são relativos a `.pbai4devs/`.
|
|
@@ -53,6 +56,24 @@ O agente principal reúne resultados e mantém o contexto. Quando um cliente
|
|
|
53
56
|
não permite delegação aninhada, o especialista devolve o próximo passo ao
|
|
54
57
|
principal. Markdown e links não criam processos nem executam código sozinhos.
|
|
55
58
|
|
|
59
|
+
## Especialistas e colaboração
|
|
60
|
+
|
|
61
|
+
| Perfil | Quando contribui |
|
|
62
|
+
| --- | --- |
|
|
63
|
+
| [Arquiteto][architect] | Fronteiras, alternativas, riscos e decisões técnicas. |
|
|
64
|
+
| [Backend][backend] | Contratos, dados, integrações e falhas do servidor. |
|
|
65
|
+
| [Frontend][frontend] | Interação, acessibilidade, estados e experiência real. |
|
|
66
|
+
| [QA][qa] e [validador][validator] | Casos, critérios e evidências executadas. |
|
|
67
|
+
| [Auditor de segurança][auditor] | Ameaças e controles no contexto da mudança. |
|
|
68
|
+
| [Performance][performance] | Carga, métricas e comparação com metas definidas. |
|
|
69
|
+
| [Revisor][reviewer] | Revisão independente da mudança e das provas. |
|
|
70
|
+
|
|
71
|
+
Use apenas os perfis relevantes à tarefa e à fase do projeto. Quando o cliente
|
|
72
|
+
permitir, distribua tarefas independentes entre subagentes com arquivos de
|
|
73
|
+
escrita exclusivos, dependências explícitas e evidências esperadas. O principal
|
|
74
|
+
integra os resultados. Sem delegação, execute sequencialmente e informe o que
|
|
75
|
+
não teve revisão independente; links não garantem execução automática.
|
|
76
|
+
|
|
56
77
|
## Três fluxos completos
|
|
57
78
|
|
|
58
79
|
| Etapa | Comando | Resultado |
|
|
@@ -167,3 +188,11 @@ Para provas reais, consulte [ferramentas e testes](tools-and-testing.md).
|
|
|
167
188
|
[compatibilidade]: ../../.pbai4devs/COMPATIBILIDADE.md
|
|
168
189
|
[externas]: ../../.pbai4devs/external-skills/README.md
|
|
169
190
|
[ignore]: ../../.pbai4devs/templates/gitignore/TEMPLATE.md
|
|
191
|
+
[architect]: ../../.pbai4devs/agents/arquiteto/AGENT.md
|
|
192
|
+
[backend]: ../../.pbai4devs/agents/especialista-backend/AGENT.md
|
|
193
|
+
[frontend]: ../../.pbai4devs/agents/especialista-frontend/AGENT.md
|
|
194
|
+
[qa]: ../../.pbai4devs/agents/engenheiro-qa/AGENT.md
|
|
195
|
+
[validator]: ../../.pbai4devs/agents/validador/AGENT.md
|
|
196
|
+
[auditor]: ../../.pbai4devs/agents/auditor-seguranca/AGENT.md
|
|
197
|
+
[performance]: ../../.pbai4devs/agents/analista-performance/AGENT.md
|
|
198
|
+
[reviewer]: ../../.pbai4devs/agents/revisor/AGENT.md
|
|
@@ -91,7 +91,7 @@ existente, mesmo em rascunho. Remova somente o rascunho incompleto dessa
|
|
|
91
91
|
tentativa após conferir a origem; nunca apague uma release publicada para
|
|
92
92
|
repetir o fluxo.
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
Se a release ainda não existe, use **Re-run failed jobs** ou
|
|
95
95
|
`gh workflow run release.yml --ref vX.Y.Z` com a tag real. A publicação prioriza
|
|
96
96
|
o secret `NPMJS_TOKEN` do repositório; sem ele, usa OIDC, conforme
|
|
97
97
|
[publicação](packages.md).
|
|
@@ -103,7 +103,8 @@ publicados. Assim, a verificação comprova o acesso de um usuário comum.
|
|
|
103
103
|
Confirme também que `latest` aponta para a versão estável e que o tarball é
|
|
104
104
|
baixável; metadados visíveis sozinhos não comprovam uma instalação funcional.
|
|
105
105
|
Se o registro ainda não disponibilizar o pacote, aguarde a verificação sem
|
|
106
|
-
republicar automaticamente a mesma versão.
|
|
106
|
+
republicar automaticamente a mesma versão. Durante a propagação, `E404` e
|
|
107
|
+
`ETARGET` do download do tarball são repetidos dentro da mesma janela limitada.
|
|
107
108
|
|
|
108
109
|
O GitHub Packages verifica os mesmos comandos com autenticação. Metadados
|
|
109
110
|
devem indicar visibilidade pública e associação ao repositório correto.
|
package/docs/specs/README.md
CHANGED
|
@@ -17,8 +17,11 @@ description: Incrementos verificáveis do AgentDevKit.
|
|
|
17
17
|
- [Dois registries](dual-registry/SPEC.md): versão e bytes iguais no npm e GitHub.
|
|
18
18
|
- [v0.0.10](v0.0.10/SPEC.md): release com instalação pelos dois registries e pré-requisitos.
|
|
19
19
|
- [Ecossistema de segurança](security-ecosystem/SPEC.md): fluxos e scanners locais.
|
|
20
|
+
- [Ecossistema de desenvolvimento](development-ecosystem/SPEC.md):
|
|
21
|
+
especialistas, colaboração e provas.
|
|
20
22
|
- [Integração sem substituição][additive]: acréscimos em arquivos existentes.
|
|
21
23
|
- [Compatibilidade com projetos reais][oss]: projetos públicos e exemplos reproduzíveis.
|
|
24
|
+
- [Ignore do projeto](project-ignore/SPEC.md): preservar o arquivo da raiz.
|
|
22
25
|
|
|
23
26
|
Cada incremento vincula requisitos, critérios, testes e evidências locais.
|
|
24
27
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Especialistas, colaboração e provas para desenvolvimento de software.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Ecossistema de desenvolvimento
|
|
6
|
+
|
|
7
|
+
O kit orienta equipes e agentes em arquitetura, backend, frontend, QA,
|
|
8
|
+
segurança, revisão e performance, sem determinar a tecnologia do projeto.
|
|
9
|
+
Os recursos são instruções: sua existência não executa agentes ou ferramentas.
|
|
10
|
+
|
|
11
|
+
## Critérios de aceite
|
|
12
|
+
|
|
13
|
+
- AC-001: Skills e perfis especializados são descobertos pelos clientes
|
|
14
|
+
selecionados e apontam para as fontes compartilhadas.
|
|
15
|
+
- AC-002: O fluxo distribui tarefas independentes quando há subagentes
|
|
16
|
+
permitidos e disponíveis, define responsabilidades e integra os resultados.
|
|
17
|
+
Sem delegação ou revisão independente, informa a limitação.
|
|
18
|
+
- AC-003: As orientações selecionam provas reais por risco e critério,
|
|
19
|
+
incluindo falhas, acessibilidade e análise adversarial quando aplicáveis;
|
|
20
|
+
distinguem resultados observados e verificações não executadas.
|
|
21
|
+
- AC-004: A instalação preserva configurações, conteúdo existente, o índice
|
|
22
|
+
Git e o `.gitignore` da raiz do projeto.
|
|
23
|
+
- AC-005: Documentação e catálogos explicam o uso dos recursos e seus limites;
|
|
24
|
+
as verificações de fontes, integração e distribuição são executadas.
|
|
25
|
+
- AC-006: O perfil de revisão do OpenCode V2 nega edição, shell e delegação
|
|
26
|
+
no frontmatter gerado.
|
|
27
|
+
|
|
28
|
+
## Verificação
|
|
29
|
+
|
|
30
|
+
Execute os testes de integração e a pipeline local completa. Verifique os
|
|
31
|
+
adaptadores gerados, a preservação de conteúdo e o resultado da revisão
|
|
32
|
+
independente. Registre provas e pendências conforme o gate de entrega.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Preservar o ignore do projeto ao instalar o AgentDevKit.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Ignore do projeto
|
|
6
|
+
|
|
7
|
+
O arquivo `.gitignore` da raiz pertence ao projeto. Instalação, atualização e
|
|
8
|
+
sincronização preservam seus bytes, permissões e estado no índice Git, inclusive
|
|
9
|
+
quando um estado antigo do kit registra esse arquivo.
|
|
10
|
+
|
|
11
|
+
## Critérios de aceite
|
|
12
|
+
|
|
13
|
+
- AC-001: O kit não cria, altera, remove ou desindexa o `.gitignore` da raiz.
|
|
14
|
+
- AC-002: Derivados e artefatos locais são protegidos via `.git/info/exclude`.
|
|
15
|
+
- AC-003: Conflitos com regras humanas são informados antes das alterações; exceções
|
|
16
|
+
ambíguas não são consideradas seguras apenas por ausência do arquivo.
|
|
17
|
+
- AC-004: Sem Git, a instalação informa a pendência e orienta a executar a
|
|
18
|
+
sincronização depois de `git init` e antes de `git add`.
|
|
19
|
+
- AC-005: Arquivos humanos e configurações existentes são preservados.
|
|
20
|
+
- AC-006: Instalação e atualização são verificadas em projetos pelo pacote.
|
|
21
|
+
|
|
22
|
+
## Verificação
|
|
23
|
+
|
|
24
|
+
Os testes de exclusão local cobrem negações, migração, arquivos rastreados,
|
|
25
|
+
permissões e worktrees. Os testes de instalação e compatibilidade conferem a
|
|
26
|
+
preservação do projeto e o comportamento com e sem Git.
|
package/package.json
CHANGED
package/src/cli.mjs
CHANGED
|
@@ -59,6 +59,7 @@ export function parseArgs(argv) {
|
|
|
59
59
|
function print(result, options, output) {
|
|
60
60
|
if (options.json) { output.write(`${JSON.stringify(result)}\n`); return; }
|
|
61
61
|
output.write(`${result.message}\n`);
|
|
62
|
+
if (result.warnings?.length) for (const warning of result.warnings) output.write(`${warning}\n`);
|
|
62
63
|
if (result.clients) output.write(`${text(result.language, 'clientsCurrent')}: ${result.clients.join(', ')}\n`);
|
|
63
64
|
if (result.availableClients) output.write(`${text(result.language, 'clientsAvailable')}: ${result.availableClients.map(client => client.id).join(', ')}\n`);
|
|
64
65
|
if (result.toolOutput) output.write(`${result.toolOutput.trimEnd()}\n`);
|
|
@@ -125,9 +126,11 @@ export async function main(argv = process.argv.slice(2), context = {}) {
|
|
|
125
126
|
if (found.installed && !found.issues.length) {
|
|
126
127
|
const plan = planInstallation({ target, language, mode: 'sync' });
|
|
127
128
|
result.preserved = plan.preserved;
|
|
129
|
+
if (plan.localIgnore.status === 'no-git') { found.issues.push({ code: 'git-pending', path: '.git/info/exclude' }); result.warnings = [text(language, 'gitPending')]; }
|
|
128
130
|
found.issues.push(...plan.changes.map(change => ({ code: 'outdated', path: change.path })));
|
|
129
131
|
found.issues.push(...plan.localIgnoreCheck.missing.map(path => ({ code: 'unignored', path })));
|
|
130
|
-
|
|
132
|
+
found.issues.push(...plan.localIgnoreCheck.trackedOutputs.map(path => ({ code: 'tracked-local-output', path })));
|
|
133
|
+
if (plan.localIgnore.edits.length || plan.untrack?.paths.length) found.issues.push({ code: 'local-ignore', path: 'Git info/exclude' });
|
|
131
134
|
}
|
|
132
135
|
result.issues = found.issues; result.ok = found.installed && found.issues.length === 0;
|
|
133
136
|
result.message = text(language, result.ok ? 'healthy' : found.installed ? 'unhealthy' : 'missing'); exitCode = result.ok ? 0 : 1;
|
|
@@ -149,13 +152,15 @@ export async function main(argv = process.argv.slice(2), context = {}) {
|
|
|
149
152
|
result.preserved = plan.preserved;
|
|
150
153
|
result.plan = plan.changes.map(({ path, action }) => ({ path, action, conflict: plan.conflicts.includes(path) }));
|
|
151
154
|
result.untrackedPaths = [...(plan.untrack?.paths || [])];
|
|
152
|
-
result.localIgnore = { status: plan.localIgnore.status, edits: plan.localIgnore.edits.map(({ path, before }) => ({ path, action: before === null ? 'create' : 'update' })), missing: plan.localIgnoreCheck.missing };
|
|
153
|
-
if (plan.localIgnore.
|
|
155
|
+
result.localIgnore = { status: plan.localIgnore.status, edits: plan.localIgnore.edits.map(({ path, before }) => ({ path, action: before === null ? 'create' : 'update' })), missing: plan.localIgnoreCheck.missing, trackedOutputs: plan.localIgnoreCheck.trackedOutputs };
|
|
156
|
+
if (plan.localIgnore.status === 'no-git') result.warnings = [text(language, 'gitPending')];
|
|
157
|
+
if (plan.localIgnoreCheck.trackedOutputs.length) (result.warnings ||= []).push(`${text(language, 'trackedLocal')} ${plan.localIgnoreCheck.trackedOutputs.join(', ')}`);
|
|
158
|
+
if (plan.localIgnore.edits.length) result.plan.push({ path: 'Git info/exclude', action: 'update', conflict: false });
|
|
154
159
|
if (plan.untrack?.paths.length) result.plan.push({ path: 'Git index (generated files)', action: 'update', conflict: false });
|
|
155
160
|
result.conflicts = plan.conflicts;
|
|
156
161
|
const preview = options.dryRun || (options.command === 'sync' && options.check);
|
|
157
162
|
if (!plan.canApply || preview) {
|
|
158
|
-
result.ok = plan.canApply && (!options.check || result.plan.length === 0);
|
|
163
|
+
result.ok = plan.canApply && (!options.check || result.plan.length === 0 && plan.localIgnore.status !== 'no-git' && !plan.localIgnoreCheck.trackedOutputs.length);
|
|
159
164
|
result.message = text(language, plan.canApply ? 'plan' : 'conflict'); exitCode = result.ok ? 0 : 1;
|
|
160
165
|
} else {
|
|
161
166
|
Object.assign(result, applyPlan(plan)); result.message = text(language, result.changed ? options.command : 'unchanged');
|