Skip to content

refactor: granular deny for 23 git subcommands, allow for uncovered ones#209

Merged
blak0p merged 1 commit into
mainfrom
refactor/hooks-multi-agente-v2
Jul 1, 2026
Merged

refactor: granular deny for 23 git subcommands, allow for uncovered ones#209
blak0p merged 1 commit into
mainfrom
refactor/hooks-multi-agente-v2

Conversation

@blak0p

@blak0p blak0p commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Closes #205

PR Type

  • Code refactoring

Summary

  • Replace overly aggressive "git *": "deny" with granular three-level classification
  • 23 covered subcommands → deny with MCP tool suggestion
  • 22 uncovered subcommands (init, clone, config, submodule, etc.) → allow
  • Unknown git subcommands → ask (safe default)
  • Pi gets @pi-lab/permissions deny/ask rules

Changes

File Change
internal/classifier/gitcmd/classifier.go mcpTools 31→23, allowedSubcommands 9→22, deny decision
internal/delivery/cli/hook_check.go Emit deny for deny+ask, verbatim reason
internal/installer/mcp_config.go OpenCode granular policy + Pi wiring + ordered JSON builder
internal/installer/pi_config.go New: Pi @pi-lab/permissions install/remove
internal/installer/installer.go RunUninstall strips Pi permissions
internal/classifier/gitcmd/classifier_test.go deny assertions, updated maintenance list
internal/delivery/cli/hook_check_test.go deny assertions
internal/installer/opencode_policy_test.go Granular assertions + new test
internal/installer/pi_config_test.go New: 11 Pi unit tests
internal/installer/v26_test.go Granular assertions (ripple)
docs/hooks.md Deny behavior docs
docs/mcp-clients.md Deny behavior docs
docs/troubleshooting.md Deny behavior docs

Test Plan

  • go test ./... — all 40+ packages pass
  • go vet — clean
  • 11 new Pi unit tests for install/remove/merge/idempotency

Contributor Checklist

Replace the overly aggressive 'git *': 'deny' policy with a three-level
classification system: deny for 23 subcommands covered by MCP tools,
allow for uncovered subcommands (init, clone, config, submodule, etc.),
and ask for unknown git subcommands.

- classifier: mcpTools reduced 31->23, allowedSubcommands expanded 9->22
- hook-check: emits real permissionDecision=deny for deny+ask decisions
- OpenCode: 23 granular 'git {sub}': 'deny' + 'git *': 'ask' fallback
- Pi: new pi_config.go with @pi-lab/permissions deny/ask rules
- Tests: 11 new Pi unit tests, all existing tests updated for deny
- Docs: hooks.md, troubleshooting.md, mcp-clients.md reflect deny behavior

Closes #205
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@blak0p blak0p added the type:refactor Code refactoring label Jul 1, 2026
@blak0p blak0p merged commit 6438668 into main Jul 1, 2026
6 checks passed
@blak0p blak0p deleted the refactor/hooks-multi-agente-v2 branch July 1, 2026 17:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:refactor Code refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

git-courer — hooks-multi-agente v2: deny granular + backup selectivo

1 participant