@fontdata/ai-harness 2.0.0 → 2.1.0

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 (131) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +9 -2
  3. package/LICENSE +21 -0
  4. package/README.md +174 -140
  5. package/{src → dist}/catalog.js +5 -12
  6. package/dist/cli.js +174 -0
  7. package/dist/comentarios/command.js +74 -0
  8. package/dist/comentarios/instalar.js +33 -0
  9. package/dist/config/config.js +98 -0
  10. package/dist/contratos/artefatos.js +284 -0
  11. package/dist/contratos/eventos.js +103 -0
  12. package/dist/doctor/checks.js +424 -0
  13. package/dist/init.js +240 -0
  14. package/dist/install/atomic.js +51 -0
  15. package/dist/install/flags.js +99 -0
  16. package/dist/install/hooks.js +47 -0
  17. package/dist/install/lock.js +39 -0
  18. package/dist/install/plan.js +209 -0
  19. package/dist/install/selection.js +77 -0
  20. package/dist/install/settings.js +108 -0
  21. package/dist/memoria/indice.js +195 -0
  22. package/dist/migrar/migrar.js +426 -0
  23. package/dist/rastro/command.js +46 -0
  24. package/dist/run.js +86 -0
  25. package/dist/types.js +1 -0
  26. package/dist/update/legado.js +74 -0
  27. package/dist/update/update.js +284 -0
  28. package/package.json +17 -8
  29. package/templates/CLAUDE.md +59 -30
  30. package/templates/agents/auditor-plano.md +42 -0
  31. package/templates/agents/investigador.md +32 -0
  32. package/templates/agents/qa.md +44 -0
  33. package/templates/agents/revisor-testes.md +40 -0
  34. package/templates/catalog.json +24 -61
  35. package/templates/commands/atualizar-deps.md +43 -9
  36. package/templates/commands/diagrama.md +35 -10
  37. package/templates/commands/gerar-env.md +39 -10
  38. package/templates/commands/gerar-testes.md +42 -10
  39. package/templates/commands/git-commit-push.md +0 -0
  40. package/templates/commands/onboarding.md +44 -15
  41. package/templates/commands/refatorar.md +50 -10
  42. package/templates/commands/revisar-pr.md +56 -12
  43. package/templates/commands/sincronizar-claude-md.md +177 -9
  44. package/templates/commands/versao.md +0 -0
  45. package/templates/hooks/comentarios/check.mjs +210 -0
  46. package/templates/hooks/hooks.json +34 -0
  47. package/templates/hooks/lembrete.mjs +29 -0
  48. package/templates/hooks/lib/config.mjs +40 -0
  49. package/templates/hooks/lib/hook.mjs +85 -0
  50. package/templates/hooks/lib/rastro.mjs +130 -0
  51. package/templates/hooks/lib/segredos.mjs +91 -0
  52. package/templates/hooks/lib/temas.mjs +111 -0
  53. package/templates/hooks/lib/trabalho.mjs +94 -0
  54. package/templates/hooks/proteger-contratos.mjs +56 -0
  55. package/templates/hooks/segredo-no-commit.mjs +76 -0
  56. package/templates/hooks/sem-jargao.mjs +58 -0
  57. package/templates/hooks/task-so-fecha-verde.mjs +33 -0
  58. package/templates/legado/manifesto.json +1267 -0
  59. package/templates/rules/comentarios.md +166 -0
  60. package/templates/rules/harness-projeto.md +41 -0
  61. package/templates/skills/auditar-performance/SKILL.md +53 -0
  62. package/templates/skills/auditar-performance/references/pontos-quentes.md +35 -0
  63. package/templates/skills/auditar-performance/templates/relatorios/CLIENTE.md +26 -0
  64. package/templates/skills/auditar-performance/templates/relatorios/TECNICO.md +27 -0
  65. package/templates/skills/auditar-seguranca/SKILL.md +67 -0
  66. package/templates/skills/auditar-seguranca/references/seguranca-tecnica.md +23 -0
  67. package/templates/skills/auditar-seguranca/templates/relatorios/CLIENTE.md +30 -0
  68. package/templates/skills/auditar-seguranca/templates/relatorios/TECNICO.md +38 -0
  69. package/templates/skills/auditar-ui/SKILL.md +64 -0
  70. package/templates/skills/auditar-ui/references/lentes.md +33 -0
  71. package/templates/skills/auditar-ui/templates/relatorios/CLIENTE.md +26 -0
  72. package/templates/skills/auditar-ui/templates/relatorios/TECNICO.md +31 -0
  73. package/templates/skills/evoluir-harness/SKILL.md +81 -0
  74. package/templates/skills/evoluir-harness/references/agent.md +83 -0
  75. package/templates/skills/evoluir-harness/references/auditoria.md +107 -0
  76. package/templates/skills/evoluir-harness/references/code-reviewer.md +68 -0
  77. package/templates/skills/evoluir-harness/references/design-system.md +56 -0
  78. package/templates/skills/evoluir-harness/references/hook.md +95 -0
  79. package/templates/skills/evoluir-harness/references/rule.md +67 -0
  80. package/templates/skills/evoluir-harness/references/skill.md +63 -0
  81. package/templates/skills/executar-plan/SKILL.md +114 -0
  82. package/templates/skills/executar-plan/references/delegacao.md +43 -0
  83. package/templates/skills/executar-plan/references/retomada.md +33 -0
  84. package/templates/skills/executar-plan/templates/BLOQUEIOS.md +30 -0
  85. package/templates/skills/harness/SKILL.md +75 -0
  86. package/templates/skills/harness/references/auto-tag.md +118 -0
  87. package/templates/skills/harness/references/ignores.md +40 -0
  88. package/templates/skills/harness/references/scaffold.md +29 -0
  89. package/templates/skills/harness/references/validar-ideia.md +42 -0
  90. package/templates/skills/memoria/SKILL.md +52 -0
  91. package/templates/skills/nova-tarefa/SKILL.md +97 -0
  92. package/templates/skills/nova-tarefa/references/isso-ja-existe.md +24 -0
  93. package/templates/skills/nova-tarefa/references/regras-do-plano.md +33 -0
  94. package/templates/skills/nova-tarefa/templates/DECISOES.md +20 -0
  95. package/templates/skills/nova-tarefa/templates/PLAN.md +58 -0
  96. package/templates/skills/nova-tarefa/templates/SPEC.md +37 -0
  97. package/templates/skills/resolver-bug/SKILL.md +104 -0
  98. package/templates/skills/resolver-bug/references/relatorio-para-cliente.md +26 -0
  99. package/templates/skills/resolver-bug/templates/PLAN.md +62 -0
  100. package/templates/skills/resolver-bug/templates/relatorios/CLIENTE.md +29 -0
  101. package/templates/skills/resolver-bug/templates/relatorios/TECNICO.md +32 -0
  102. package/bin/cli.js +0 -122
  103. package/src/init.js +0 -317
  104. package/src/installer.js +0 -92
  105. package/src/run.js +0 -99
  106. package/templates/commands/auditar-performance.md +0 -27
  107. package/templates/commands/auditar-seguranca.md +0 -64
  108. package/templates/commands/auditar-ui.md +0 -38
  109. package/templates/commands/codigo-morto.md +0 -22
  110. package/templates/commands/configurar-auto-tag.md +0 -185
  111. package/templates/commands/configurar-comentarios.md +0 -543
  112. package/templates/commands/configurar-orquestrador.md +0 -13
  113. package/templates/commands/corrigir-review.md +0 -11
  114. package/templates/commands/criar-agents.md +0 -42
  115. package/templates/commands/criar-code-reviewer.md +0 -30
  116. package/templates/commands/criar-hooks.md +0 -32
  117. package/templates/commands/criar-rag.md +0 -25
  118. package/templates/commands/criar-rules.md +0 -31
  119. package/templates/commands/criar-skill.md +0 -22
  120. package/templates/commands/design-system.md +0 -27
  121. package/templates/commands/executar-plan.md +0 -36
  122. package/templates/commands/gerar-claude-md.md +0 -66
  123. package/templates/commands/gerar-ignore.md +0 -37
  124. package/templates/commands/gerar-spec.md +0 -33
  125. package/templates/commands/harness.md +0 -34
  126. package/templates/commands/nova-tarefa.md +0 -60
  127. package/templates/commands/resolver-bug.md +0 -25
  128. package/templates/commands/review-por-task.md +0 -16
  129. package/templates/commands/scaffold.md +0 -25
  130. package/templates/commands/validar-commands.md +0 -24
  131. package/templates/commands/validar-ideia.md +0 -36
@@ -1,185 +0,0 @@
1
- ---
2
- description: Detecta o padrão de versionamento do projeto (qualquer stack, inclusive Delphi) e gera a GitHub Action que cria a tag automaticamente quando a versão chega na main. Separa versionar (humano) de taguear/deployar (automático).
3
- argument-hint: "[branch-de-producao]"
4
- ---
5
-
6
- # /configurar-auto-tag — Auto-tag no merge para a branch de produção
7
-
8
- Você vai **configurar a automação de tag** deste repositório: descobrir **como o versionamento já funciona
9
- aqui** (Node/JS-TS, .NET, Delphi, Flutter, Python, arquivo `VERSION`, etc.) e gerar uma **GitHub Action** que
10
- **cria a tag automaticamente** quando um novo número de versão chega na branch de produção (`main` por padrão).
11
-
12
- O objetivo é separar dois papéis:
13
-
14
- - **Versionar** — ação humana (o comando `/versao`), com aprovação de versão e changelog. **Sem tag, sem push.**
15
- - **Taguear/deployar** — ação automática (esta Action), disparada quando o arquivo de versão muda na `main`.
16
-
17
- A **tag é a fonte única do release** e a criação é **idempotente** por versão (nunca recria uma tag existente).
18
-
19
- > **🚦 Há um GATE de aprovação obrigatório** antes de escrever qualquer arquivo. Este comando **não faz push**
20
- > e **não cria tags manualmente** — ele só instala a automação e a documentação.
21
-
22
- ## Uso
23
-
24
- - `/configurar-auto-tag` — usa `main` como branch de produção.
25
- - `/configurar-auto-tag <branch>` — usa a branch informada (ex.: `master`, `release`) como alvo da tag.
26
-
27
- ## Passo 0 — Pré-checagem (somente leitura)
28
-
29
- 1. Confirme que é um repositório git com remoto no **GitHub** (`git remote -v`). Se não for GitHub, avise que
30
- a Action de GitHub Actions não se aplica e **pergunte** como o usuário quer prosseguir (GitLab CI, etc.).
31
- 2. Descubra a **branch de produção** real: use o argumento, senão a branch padrão do remoto
32
- (`git symbolic-ref --short refs/remotes/origin/HEAD` ou olhe `main`/`master`). **Confirme com o usuário.**
33
- 3. Verifique se já existe `.github/workflows/auto-tag.yml`. Se existir, leia e trate como **ajuste**, não
34
- sobrescrita cega.
35
-
36
- ## Passo 1 — Detectar a(s) fonte(s) de verdade da versão
37
-
38
- Investigue o projeto e **identifique TODAS as fontes da versão** (não assuma; confirme lendo). Para cada uma,
39
- registre: o **arquivo**, o **campo/chave**, o **formato** (`X.Y.Z` ou `X.Y.Z.W`) e **como extrair a versão via
40
- shell** (você vai embutir isso na Action). Por stack:
41
-
42
- - **Node / React (Vite/Next) / qualquer JS-TS:** `package.json` → campo `.version`.
43
- - Extração: `jq -r '.version' package.json`
44
- - Mobile Expo: `app.json` → `.expo.version` (`jq -r '.expo.version' app.json`).
45
- - **.NET / C#:** `*.csproj` (`<Version>`, senão `<FileVersion>`), `Directory.Build.props`.
46
- - Extração: `grep -oPm1 '(?<=<Version>)[^<]+' App.csproj` (ajuste a tag lida).
47
- - **Delphi:** o número costuma viver no `*.dproj` (chaves `VerInfo_Keys` com `FileVersion`/`ProductVersion` e/ou
48
- os campos `MajorVersion`/`MinorVersion`/`Release`/`Build`) **e/ou** em constante `.pas` (ex.: `cVersao`, `About`).
49
- Escolha **uma** fonte estável como canônica e leia o **arquivo:linha** exato.
50
- - Extração de `FileVersion` no `.dproj`: `grep -oPm1 'FileVersion=\K[0-9.]+' Projeto.dproj`
51
- - Ou montando de partes: leia `MajorVersion`/`MinorVersion`/`Release`/`Build` com `grep`/`sed` e concatene.
52
- - Ou de constante `.pas`: `grep -oPm1 "cVersao\s*=\s*'\K[0-9.]+" Sobre.pas`
53
- - **Flutter / Dart:** `pubspec.yaml` → `version:` (`grep -oPm1 '(?<=^version: )[0-9.+]+' pubspec.yaml`).
54
- - **Python:** `pyproject.toml` (`[project] version`/`[tool.poetry] version`) ou `__version__`.
55
- - Extração: `grep -oPm1 '(?<=^version = ")[^"]+' pyproject.toml`.
56
- - **Genérico:** arquivo `VERSION` na raiz (`cat VERSION`), constante `VERSION`/`APP_VERSION`.
57
-
58
- > Se não encontrar nenhuma fonte de versão, **pergunte ao usuário** onde a versão é registrada antes de gerar a
59
- > Action — sem isso a Action não tem o que ler.
60
-
61
- Determine ainda:
62
-
63
- - **Repo único ou monorepo/multi-app.** Isso define o **formato da tag**:
64
- - App único → tag `v<versão>` (ex.: `v1.4.0`).
65
- - Monorepo → tag `<app>-v<versão>` (ex.: `web-v1.4.0`), com um arquivo de versão por app.
66
- - **Comando `/versao` já instalado?** Se sim, é ele quem faz o bump. Se não, sugira instalá-lo/rodá-lo para
67
- produzir o commit de release que dispara esta Action.
68
- - **Como o deploy de produção é disparado** por cada tag (`deploy-*.yml` no GitHub Actions? webhook de app
69
- externo tipo Expo/EAS?). Isso decide se o `RELEASE_PAT` é necessário (veja Passo 4).
70
-
71
- ## Passo 2 — Montar a Action (rascunho, sem gravar ainda)
72
-
73
- Gere `.github/workflows/auto-tag.yml` seguindo este molde, **adaptando a extração da versão** à fonte detectada:
74
-
75
- ```yaml
76
- name: Auto-tag na <BRANCH_PRODUCAO>
77
-
78
- on:
79
- push:
80
- branches: [<BRANCH_PRODUCAO>]
81
- paths:
82
- - <ARQUIVO(S)_DE_VERSAO> # ex.: 'package.json' ou 'apps/**/package.json' ou 'src/Projeto.dproj'
83
-
84
- permissions:
85
- contents: write
86
-
87
- jobs:
88
- auto-tag:
89
- runs-on: ubuntu-latest
90
- steps:
91
- - uses: actions/checkout@v4
92
- with:
93
- fetch-depth: 0
94
- token: ${{ secrets.RELEASE_PAT || github.token }}
95
-
96
- - name: Criar tag se a versão for nova
97
- run: |
98
- set -euo pipefail
99
- # >>> AJUSTE a linha abaixo para extrair a versão da fonte de verdade detectada <<<
100
- VERSION="$(jq -r '.version' package.json)"
101
- if [ -z "$VERSION" ] || [ "$VERSION" = "null" ]; then
102
- echo "Não consegui ler a versão"; exit 1
103
- fi
104
- TAG="v$VERSION" # monorepo: TAG="<app>-v$VERSION"
105
- if git rev-parse -q --verify "refs/tags/$TAG" >/dev/null; then
106
- echo "Tag $TAG já existe — nada a fazer (idempotente)."
107
- exit 0
108
- fi
109
- git config user.name "github-actions[bot]"
110
- git config user.email "github-actions[bot]@users.noreply.github.com"
111
- git tag -a "$TAG" -m "Release $TAG"
112
- git push origin "$TAG"
113
- ```
114
-
115
- Regras ao adaptar o molde:
116
-
117
- - **Substitua `<BRANCH_PRODUCAO>`** pela branch confirmada no Passo 0.
118
- - **`paths:`** deve listar **exatamente** o(s) arquivo(s) de versão detectados — assim a Action só roda quando a
119
- versão muda de fato, não a cada push.
120
- - **Troque a linha de `VERSION=`** pela extração correta da stack (jq/grep/sed/cat conforme o Passo 1). Para
121
- Delphi/.NET, use o `grep -oP`/`sed` adequado ao XML/`.pas`; **não** use `jq` fora de JSON.
122
- - **Monorepo:** faça um loop pelos apps (uma tag por app), lendo a versão de cada arquivo e montando
123
- `<app>-v<versão>`, com a checagem de idempotência por tag dentro do loop.
124
- - **Idempotência:** a verificação `git rev-parse --verify refs/tags/$TAG` é obrigatória — nunca recrie tag.
125
- - Se a Action já existia, **preserve** ajustes locais e só reconcilie o necessário.
126
-
127
- ## Passo 3 — 🚦 GATE de aprovação (obrigatório)
128
-
129
- Antes de escrever qualquer arquivo, apresente ao usuário:
130
-
131
- - a **branch de produção** e o **formato de tag** escolhidos (`v<versão>` ou `<app>-v<versão>`);
132
- - a(s) **fonte(s) de versão** e a **linha de extração** que vai para a Action;
133
- - o **conteúdo completo** do `auto-tag.yml` proposto;
134
- - se **`RELEASE_PAT`** será necessário (Passo 4) e por quê.
135
-
136
- **Peça aprovação explícita.** Não grave nada sem o "ok".
137
-
138
- ## Passo 4 — Documentar o `RELEASE_PAT` (não crie segredo no código)
139
-
140
- Explique ao usuário, e registre na doc do Passo 5, a **pegadinha do token**:
141
-
142
- - O **`GITHUB_TOKEN` padrão NÃO dispara outras Actions.** Se o deploy de produção é uma **GitHub Action**
143
- (`deploy-*.yml`) disparada pela criação da tag, a Action de auto-tag **precisa** empurrar a tag usando um
144
- **`RELEASE_PAT`** (por isso o `token: ${{ secrets.RELEASE_PAT || github.token }}` no checkout).
145
- - Se o deploy é disparado por **webhook de app externo** (ex.: Expo/EAS), o PAT é **desnecessário**.
146
- - Como criar: **fine-grained PAT** com _Contents: Read and write_ no repositório (ou classic com escopo `repo`),
147
- salvo em **Settings → Secrets and variables → Actions** como **`RELEASE_PAT`**.
148
- - **Nunca** coloque o token em arquivo versionado — só como secret do repositório.
149
-
150
- ## Passo 5 — Gravar artefatos (somente após aprovação)
151
-
152
- 1. Escreva `.github/workflows/auto-tag.yml`.
153
- 2. Crie/atualize `docs/versionamento-tags.md` explicando:
154
- - que **a tag aponta um commit, não uma branch** — o commit do release (com os workflows de deploy) precisa
155
- estar na branch de produção **antes/junto** da criação da tag;
156
- - o **fluxo completo** de release (abaixo);
157
- - o funcionamento da Action e a **pegadinha `GITHUB_TOKEN` × `RELEASE_PAT`**;
158
- - uma **tabela**: app → arquivo de versão → formato da tag → workflow de deploy disparado.
159
- 3. Se houver comandos/docs antigos que mandavam **criar tag** ou **dar push de tag** manualmente, ajuste-os para
160
- o novo fluxo (a tag agora é responsabilidade exclusiva da Action).
161
-
162
- ### Fluxo de release resultante (documente assim)
163
-
164
- ```
165
- /versao → push do commit de release → merge/entrega na branch de produção
166
- → Action auto-tag cria a tag → workflow de deploy dispara pela tag → produção
167
- ```
168
-
169
- ## Passo 6 — Verificar e finalizar (sem push)
170
-
171
- - Valide a sintaxe YAML do workflow (indentação, `on.push.paths`, `permissions`).
172
- - **Não** rode `git push` e **não** crie tags manualmente. Deixe as alterações prontas (working tree) e informe
173
- o fluxo manual de commit/push ao usuário — ou, se o `/git-commit-push` estiver instalado, sugira usá-lo.
174
- - Sugira um commit semântico como `chore: Configura auto-tag na <branch> via GitHub Actions`.
175
-
176
- ## Guardrails
177
-
178
- - **NUNCA** `git push`; **NUNCA** crie tag local — a tag é responsabilidade exclusiva da Action.
179
- - **Sempre** confirmar branch, fonte de versão e o YAML no GATE antes de gravar.
180
- - **Replicar o padrão do projeto** (formato de versão e de tag) — nunca impor um novo.
181
- - **Idempotência**: a Action nunca recria uma tag existente; para refazer deploy, use o gatilho manual do
182
- workflow de deploy, não recrie a tag.
183
- - **`main`/branch de produção = deploy de produção** — trate-a como produção.
184
- - Sem `RELEASE_PAT`, tags criadas pelo `GITHUB_TOKEN` **não** disparam outras Actions de deploy; documente isso.
185
- - Documentação em **pt-BR**.