|
| 1 | +# STORY-123.16: Tornar comandos de hooks Claude shell-neutral |
| 2 | + |
| 3 | +## Status |
| 4 | + |
| 5 | +Done |
| 6 | + |
| 7 | +## Story |
| 8 | + |
| 9 | +Como mantenedor do AIOX Core em Windows e Unix, quero que o `.claude/settings.json` versionado registre hooks com caminhos relativos neutros de shell, para que o Claude Code não dependa de expansão POSIX como `${CLAUDE_PROJECT_DIR:-.}` ao executar os hooks do próprio repositório. |
| 10 | + |
| 11 | +## Acceptance Criteria |
| 12 | + |
| 13 | +- [x] AC1. Os comandos versionados de `UserPromptSubmit`, `PreCompact` e `PreToolUse` não usam `CLAUDE_PROJECT_DIR` nem expansão `${...}`. |
| 14 | +- [x] AC2. Os hooks continuam apontando para os wrappers commitados em `.claude/hooks/`. |
| 15 | +- [x] AC3. A governança de `PreToolUse` continua registrando o matcher `Bash`. |
| 16 | +- [x] AC4. Há teste automatizado impedindo regressão para sintaxe dependente de shell POSIX. |
| 17 | + |
| 18 | +## Tasks |
| 19 | + |
| 20 | +- [x] Atualizar `.claude/settings.json`. |
| 21 | +- [x] Adicionar teste de comando shell-neutral em `tests/claude/subagent-governance.test.js`. |
| 22 | +- [x] Rodar validação focada de governança Claude. |
| 23 | + |
| 24 | +## Dev Notes |
| 25 | + |
| 26 | +- Este é o resíduo limpo do PR #551: o installer já usa caminho absoluto em Windows porque `$CLAUDE_PROJECT_DIR` é problemático nessa plataforma, mas o settings commitado ainda usava `${CLAUDE_PROJECT_DIR:-.}`. |
| 27 | +- Mantivemos os wrappers atuais (`synapse-wrapper.cjs` e `precompact-wrapper.cjs`) em vez de voltar para os hooks diretos do PR antigo. |
| 28 | + |
| 29 | +## Validation |
| 30 | + |
| 31 | +- `npm test -- tests/claude/subagent-governance.test.js --runInBand --forceExit` -> PASS. |
| 32 | +- `git diff --check` -> PASS. |
| 33 | +- `npm run validate:semantic-lint` -> PASS. |
| 34 | +- `npm run validate:manifest` -> PASS. |
| 35 | +- `npm run validate:publish` -> PASS. |
| 36 | +- `npm run lint -- --quiet` -> PASS. |
| 37 | +- `npm run typecheck` -> PASS. |
| 38 | +- `npm run test:ci` -> PASS, 315 suites / 7.847 tests, 149 skipped. |
| 39 | + |
| 40 | +## File List |
| 41 | + |
| 42 | +- `.claude/settings.json` |
| 43 | +- `tests/claude/subagent-governance.test.js` |
| 44 | +- `docs/stories/epic-123/STORY-123.16-claude-hook-settings-windows-path.md` |
0 commit comments