Skip to content

chore(crew): the permission floor + kit 1.10.0 crew capabilities - #6

Merged
42piratas merged 1 commit into
mainfrom
chore/upgrade-crew-capabilities
Aug 14, 2026
Merged

chore(crew): the permission floor + kit 1.10.0 crew capabilities#6
42piratas merged 1 commit into
mainfrom
chore/upgrade-crew-capabilities

Conversation

@42piratas

Copy link
Copy Markdown
Collaborator

Plan 2 (plan-canon-crew-extensions.md) phase P4 — the fleet retrofit.

This repo ran with no permission floor, no gates and no worktree enforcement. Both land here, in one pass.

What this adds

File Why
.claude/hooks/dangerous-command-gate.sh the permission floor (kit 1.10.0). A PreToolUse Bash gate wired first in the chain. It splits the command on ;/|/&, normalises each segment and matches the operation, not the spelling — so git -C <path> reset --hard, git clean -xdf, reordered flags and env prefixes cannot step around it
.claude/settings.jsonpermissions the deny list kept as one readable declarative layer, not the floor: prefix patterns are bypassable by construction. Plus the ask rules on gh pr merge / gh repo create / DELETE API
.claude/settings.json → rest worktree.bgIsolation: none, ponytail@ponytail through the author's own marketplace
.claude/hooks/ the rest of the kit hook set; gate ledger marker 2026-08-13.1
.claude/tron-clu-{merge,worktree,pulse}-guard.sh byte-identical to the copies canon carries, wired the same way. Inert until a .tron-clu-active marker exists
.mcp.json exa on its keyless hosted path (https://mcp.exa.ai/mcp), plus github, chrome-devtools and playwright
.pi/settings.json + .pi/web-search.example.json the seven-package canon pin set, and the user-level routing file documented
.gitignore the kit's local-only block, so settings.local.json and hooks/*.local.json stay untracked

Verified before opening this PR

  • All four JSON files parse; the deny and ask lists match the kit's (widened, never narrowed, wherever the repo already denied more).
  • The three guards hash-match canon's copies; the hook directory is filecmp-identical to the kit's, with the executable bits set.
  • The floor was live-tested earlier in this pass at its hardest setting: under --permission-mode bypassPermissions a real git -C . reset --hard HEAD was refused by the PreToolUse gate and the uncommitted change survived. That is exactly the case a permissions.deny prefix pattern misses.

Known duplicate, not fixed here

This host declares exa, playwright and chrome-devtools at user scope on different endpoints. Both scopes resolve. Removing the user-scope entries would strip those servers from every repo not yet retrofitted, so it waits until the fleet pass is done.

This repo ran with no permission floor, no gates and no worktree enforcement.
All of it lands here.

- `.claude/hooks/dangerous-command-gate.sh`: the permission floor. A PreToolUse
  Bash gate wired first in the chain, matching the operation rather than the
  spelling — it catches `git -C <path> reset --hard`, `git clean -xdf`,
  reordered flags and env prefixes that a `permissions.deny` prefix pattern
  walks straight past, and it fires in every permission mode including
  bypassPermissions.
- `.claude/settings.json`: the deny list as one readable declarative layer (not
  the floor), the ask rules on `gh pr merge` / `gh repo create` / DELETE API,
  `worktree.bgIsolation: none`, and `ponytail@ponytail` through the author's
  own marketplace.
- `.claude/hooks/`: the rest of the kit set; gate ledger `2026-08-13.1`.
- `.claude/tron-clu-{merge,worktree,pulse}-guard.sh`: byte-identical to the
  copies canon carries, wired the same way. Inert until `.tron-clu-active`
  exists.
- `.mcp.json`: exa on its keyless hosted path, plus github, chrome-devtools and
  playwright.
- `.pi/`: the seven-package pin set and the user-level routing example.

Where the repo carried no `.repo-class` / `.integration-branch`, both are added
here. The class is `app` deliberately: it is the fail-safe of the three, since
only `canon` and `meta` may take the no-PR fast-forward landing. The
integration branch is read from the remote's own default, never assumed.

No PostToolUse hook: there is no lint, typecheck or test command that runs in a
fresh worktree without an install step.

Refs: plan-canon-crew-extensions.md P4, canon principles-base.md §19.
@vercel

vercel Bot commented Aug 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hamlet Ready Ready Preview Aug 14, 2026 2:39pm

Request Review

@42piratas
42piratas merged commit 3af66cc into main Aug 14, 2026
3 checks passed
@42piratas
42piratas deleted the chore/upgrade-crew-capabilities branch August 14, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant