@fontdata/ai-harness 2.5.0 → 2.6.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.
package/README.md
CHANGED
|
@@ -109,7 +109,8 @@ O `init` e o `update` gravam em `.claude/settings.json` as permissões que os fl
|
|
|
109
109
|
aprovação, inclusive no modo auto do Claude Code:
|
|
110
110
|
|
|
111
111
|
- `permissions.allow`: o rastro, a checagem de conflitos, o `doctor` e a `memoria` do harness; `git add`,
|
|
112
|
-
`git commit` e `git push` (o `/git-commit-push`); a abertura de sub-agents (`Agent`);
|
|
112
|
+
`git commit` e `git push` (o `/git-commit-push`); a abertura de sub-agents (`Agent`); as ferramentas `Read`,
|
|
113
|
+
`Grep`, `Glob` e `Skill`; e consultas só de leitura
|
|
113
114
|
(`git status`, `diff`, `log`, `show`, `blame`, `gh pr view`, `gh pr diff`, `npm outdated`...);
|
|
114
115
|
- `permissions.deny`: o push forçado (`--force`, `-f`, `--force-with-lease` e refspec com `+`), que vence o `allow`.
|
|
115
116
|
|
package/dist/install/settings.js
CHANGED
|
@@ -9,6 +9,8 @@ export const CONFLICTS_PERMISSION = 'Bash(npx @fontdata/ai-harness conflitos:*)'
|
|
|
9
9
|
export const GIT_PERMISSIONS = ['Bash(git add:*)', 'Bash(git commit:*)', 'Bash(git push:*)'];
|
|
10
10
|
/** O /executar-plan e as skills de fluxo delegam a sub-agents a cada task e gate. */
|
|
11
11
|
export const AGENT_PERMISSION = 'Agent';
|
|
12
|
+
/** Leitura e busca de arquivos e a invocação das skills, que todos os fluxos usam o tempo todo. */
|
|
13
|
+
export const TOOL_PERMISSIONS = ['Read', 'Grep', 'Glob', 'Skill'];
|
|
12
14
|
/**
|
|
13
15
|
* Comandos só de leitura que as skills, os comandos e os agents rodam. Ficam de fora os que regravam a instalação
|
|
14
16
|
* (`init`, `update`, `migrar`), os de teste e build, que variam por projeto, e o `npm audit`, cujo prefixo
|
|
@@ -32,7 +34,14 @@ export const READ_PERMISSIONS = [
|
|
|
32
34
|
'Bash(npm outdated:*)',
|
|
33
35
|
];
|
|
34
36
|
/** Regras de `permissions.allow` que o init e o update gravam para as skills e os agents do harness. */
|
|
35
|
-
export const HARNESS_PERMISSIONS = [
|
|
37
|
+
export const HARNESS_PERMISSIONS = [
|
|
38
|
+
EVENT_PERMISSION,
|
|
39
|
+
CONFLICTS_PERMISSION,
|
|
40
|
+
...GIT_PERMISSIONS,
|
|
41
|
+
AGENT_PERMISSION,
|
|
42
|
+
...TOOL_PERMISSIONS,
|
|
43
|
+
...READ_PERMISSIONS,
|
|
44
|
+
];
|
|
36
45
|
/** O push liberado não vale para reescrever o histórico remoto: `deny` vence o `allow`. */
|
|
37
46
|
export const HARNESS_DENY = [
|
|
38
47
|
'Bash(git push --force:*)',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fontdata/ai-harness",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Harness de engenharia com IA da Fontdata para Claude Code: roda os slash commands direto na pasta do projeto via npx, sem instalar nada — ou instala-os em .claude/commands.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -25,14 +25,33 @@ No repositório atual, execute commit e push conforme o uso abaixo.
|
|
|
25
25
|
- tipos aceitos: `feat`, `fix`, `refactor`, `docs`, `chore`, `style`, `test`
|
|
26
26
|
- corpo detalhado com descrição completa do que foi feito no commit (itens objetivos)
|
|
27
27
|
- Se o usuário **passou** texto após o comando: use esse texto como mensagem do commit (multilinha permitida).
|
|
28
|
-
3. Execute **imediatamente** (sem etapa de confirmação):
|
|
29
|
-
- `git add -A`
|
|
28
|
+
3. Execute **imediatamente** (sem etapa de confirmação), deixando de fora a configuração do Claude Code:
|
|
29
|
+
- `git add -A -- . ':(exclude,glob).claude/settings*.json' ':(exclude,glob).claude/hooks/**'` — o padrão glob
|
|
30
|
+
cobre `.claude/settings.json` e `.claude/settings.local.json`; com o nome exato, um arquivo que está no
|
|
31
|
+
`.gitignore` faz o `git add` falhar inteiro
|
|
32
|
+
- se algum desses caminhos já estava no stage (`git diff --cached --name-only`), tire-o com
|
|
33
|
+
`git restore --staged -- <caminho>`
|
|
30
34
|
- `git commit` com a mensagem definida no passo 2 (título + corpo quando aplicável)
|
|
31
35
|
- `git push`
|
|
36
|
+
|
|
37
|
+
Se as únicas mudanças forem nesses caminhos, não faça commit nem push: vá direto ao passo 4.
|
|
32
38
|
4. Retorne um resumo final com branch, hash e status do push.
|
|
39
|
+
5. **Configuração do Claude Code alterada.** Se `git status` mostrou mudança em `.claude/settings.json` ou em
|
|
40
|
+
`.claude/hooks/`, avise que ela ficou fora do commit: no modo auto, o agente versionar as próprias permissões e
|
|
41
|
+
hooks é bloqueado como `[Self-Modification]`, e quem aprova essa mudança é o usuário. Entregue o comando pronto
|
|
42
|
+
para ele rodar com `!` no prompt, que executa como o próprio usuário:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
! git add .claude/settings.json .claude/hooks/ && git commit -m "chore: Atualiza a configuração do Claude Code" && git push
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Liste só os caminhos que mudaram. `.claude/settings.local.json` é pessoal e nunca vai para o repositório: se ele
|
|
49
|
+
aparecer no `git status`, sugira incluí-lo no `.gitignore`.
|
|
33
50
|
|
|
34
51
|
## Guardrails
|
|
35
52
|
|
|
36
53
|
- Se não houver alterações, interrompa com aviso.
|
|
37
54
|
- Não execute push forçado.
|
|
55
|
+
- Não tente versionar a configuração do Claude Code por outro caminho quando o modo auto bloquear: o passo 5 é
|
|
56
|
+
do usuário.
|
|
38
57
|
- Em caso de erro, pare e explique o próximo passo recomendado.
|