Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## Unreleased

### Documentation
- Added a Worktrunk pre-merge hook recipe using the existing worktree-local policy
discovery, with an explicit merge target for diff-aware gates.

## 0.11.0 - 2026-09-25

### Added
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,16 @@ Windows in CI.

> **Private repo, Free account?** GitHub doesn't enforce branch protection on private repos under a Free personal plan — so the only *hard* layer above is unavailable. Get the same guarantee for free by running the evaluator somewhere the agent can't reach: a self-hosted server-side `pre-receive` gate on a [VM, a Docker container, or a small remote VPS](contrib/self-hosted-gate/). `git push --no-verify` can't skip a server hook, and the definition of done lives on a box the agent can't log into. Pick the substrate by how well your agent is already sandboxed — see [`contrib/self-hosted-gate`](contrib/self-hosted-gate/).

**Worktrunk:** Skillgate works unchanged in [Worktrunk](https://worktrunk.dev/hook/)
worktrees. Track `.skillgate/done.yaml` and add
`pre-merge = "npx --yes @reneza/skillgate@0.11.0 check --base '{{ target }}'"`
to `.config/wt.toml`. Worktrunk runs this blocking hook in the source worktree
after rebasing and aborts the merge on a nonzero exit. Skillgate discovers that
worktree's policy and evaluates paths relative to it, including when called from
a nested directory. Install project dependencies in each worktree if your gates
run project commands, and approve the hook on first use. Worktrunk hooks can be
skipped locally; pair them with a required CI check for server-side enforcement.

### Not a husky replacement — what husky runs

husky, lefthook, and pre-commit are **hook runners**: they wire a command to a git event. They don't know what "done" means; you tell them what to run. skillgate is the thing they run. If you already use husky, point its `pre-commit` at skillgate:
Expand Down
Loading