.github/workflows/gates.yml runs the placeholder .claude/gates.json (empty gates → skip), so harness/doc PRs get no server-side gate. Add a job that also runs the self-adapter gates on PRs to this repo:
GATES_FILE=.claude/self/gates.json bash .claude/scripts/gate.sh build|lint|test
so .claude/** and docs/** changes are checked server-side, matching what .claude/self/checks.sh validates locally.
module: ci.
.github/workflows/gates.ymlruns the placeholder.claude/gates.json(empty gates → skip), so harness/doc PRs get no server-side gate. Add a job that also runs the self-adapter gates on PRs to this repo:so
.claude/**anddocs/**changes are checked server-side, matching what.claude/self/checks.shvalidates locally.module: ci.