gate-select
Unified 3-dimension picker for project / session / AI-judge gates.
Skill by sh-ai-x
Chalk Labs
Need help deploying gate-select?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/sh-ai-x-gate-select
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/gate-select
Tools it pre-approves 4
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
ReadWriteBashAskUserQuestion
What's inside
- Skill name
gate-select- Description
- Unified 3-dimension picker for project / session / AI-judge gates. Reads .dev-kit/gates.json + .dev-kit/ci-config.json + .dev-kit/harness-mode.session.json and dispatches writes through `python -m lib.gates_state ...`.
- License
- MIT
- Allowed tools
- Read, Write, Bash, AskUserQuestion
- Instructions
- 300 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (1)
- SKILL.md
SKILL.md (first lines)
> [← Skills index](../../README.md)
## What it does
Single pane of glass + dispatch surface for three gate dimensions the rest of
dev-kit fragments across separate pickers. The project dimension is now
JSON-driven (issue TBD): `.dev-kit/gates.json` is the SSOT for which judge
workflows are on, and `gate-select` is its canonical writer. Workflows
read `vars.GATES_<NAME>_ENABLED` at runtime — toggling a gate is a JSON
edit + `gate-select sync`, not a YAML edit + isolation-hook bypass.
| Dimension | SSOT file | Picker today | What gate-select does |
|---|---|---|---|
| **Project** (CI workflow gates) | `.dev-kit/gates.json` (NEW) + `.dev-kit/ci-config.json` | `/dev-kit:ci-setup` (install) | Reads gates.json + marker; `enable/disable/sync/init` write gates.json; dispatches ci-setup to install based on it. |
| **Session** (local-hook gates) | `.dev-kit/harness-mode.session.json` | `/dev-kit:harness-mode` | Reads mode + per-gate values; dispatches to `harness-mode` to change. |
| **AI-judge** (LLM-judge skills) | (skill-shipped; CI wiring in `.github/workflows/{review,security,maintenance}.yml`) | `/dev-kit:review`, `/dev-kit:security`, `/dev-kit:maintenance` | Reports which judge skills are enabled and whether their CI workflow is wired; dispatches to the right skill. |
| **Optional integrations** | Integration-specific config (Linear: `.dev-kit/linear-config.json`) | `/dev-kit:linear` | Shows and toggles integrations without adding them to `gates.json` or CI workflow installation. |
## Sub-commands
Special-case `linear` aliases take precedence over the generic `<gate>` rows
below; they delegate to `tools/linear_sync.py` and never touch `gates.json`.
| Sub-command | Effect |
|---|---|
| `show` (default) | Read gates.json + marker; print the 3 dimensions. No edits. |
| `classify` | Run `python -m lib.actor_classifier` for the current HEAD; print the actor type + recommended gate. Read-only. |
| `route [--json]` | Run `classify` + write `.dev-kit/.pr-route.json` (the breadcrumb `hooks/pr-create-route.sh` consumes on every `gh pr create`). |
| `pick` | Legacy 6-question picker; threads writes to gates.json + ci-setup. Kept as compat for the original AI-judge picker UX. |
| `enable <gate>` | `python -m lib.gates_state enable <gate>` — flips `gates.<gate>.enabled` to true. |
| `disable <gate>` | `python -m lib.gates_state disable <gate>` — flips `gates.<gate>.enabled` to false. |
| `set <gate> <key> <value>` | Generic field writer (for `enabled`, `workflow`, `var`, or the v1.1.0 dynamic-skip fields `dynamic_eligible`, `scope_globs`, `forced_run`). |
| `enable linear` | `python3 tools/linear_sync.py on` — explicitly opt in to Linear auto-sync. |
| `disable linear` | `python3 tools/linear_sync.py off` — keep the optional Linear integration off. |
| `set linear enabled <true\|false>` | Maps `true` to `python3 tools/linear_sync.py on` and `false` to `python3 tools/linear_sync.py off`; does not write `gates.json`. |
| `sync` | Push enabled flags to `gh variable set GATES_<NAME>_ENABLED`. |
| `init` | Synthesize `.dev-kit/gates.json` from the current `marker.runners` so a consumer that previously used `--exclude security.yml` upgrades in one step. |
| `install-project` | Dispatch to `/dev-kit:ci-setup` (idempotent marker-driven install). |
| `install-session <fast\|full\|custom>` | Dispatch to `/dev-kit:harness-mode`. |
| `eval-dynamic [--head-sha SHA]` | Run the LLM judge (`lib/gate_dynamic.select_gates`) and print the per-gate skip recommendation. Read-only. |
| `apply-dynamic [--head-sha SHA]` | Apply the judge's recommendation (writes `forced_run: true` overrides per gate where `skip=false` survives hard rules). |
| `audit-dynamic [--head-sha SHA]` | Show past decisions from `.dev-kit/gate-dynamic/`. |
```bash
/dev-kit:gate-select # = show
/dev-kit:gate-select show # explicit read-only
/dev-kit:gate-select classify # one-shot: actor_type + recommended_gate
/dev-kit:gate-select route --json # same, plus writes .dev-kit/.pr-route.json
/dev-kit:gate-select enable review # turn review gate on
/dev-kit:gate-select disable security # turn security gate off
/dev-kit:gate-select set review enabled true
/dev-kit:gate-select enable linear # explicitly opt in to Linear auto-sync
/dev-kit:gate-select disable linear # default/recommended: keep Linear off
/dev-kit:gate-select set linear enabled false
/dev-kit:gate-select sync # push to gh variable set
/dev-kit:gate-select init # synthesize gates.json from marker
/dev-kit:gate-select pick # legacy 6-question picker
/dev-kit:gate-select install-project # = /dev-kit:ci-setup
/dev-kit:gate-select install-session full # = /dev-kit:harness-mode full
```
## `show` output
```text
ACTOR ROUTE (lib/actor_classifier, deterministic — never calls gh)
actor_type: consumer_fork
repo_kind: dev_harness_kit
recommended_gate: fork_pr_review_environment
head_branch: feat/actor-route-gate-select
base_branch: main
remote: eve/dev-harness-kit
reason: fork PR without maintainer signal — route via
fork-pr-review.yml Environment gate (manual approval required)
PROJECT GATES (.dev-kit/gates.json + .dev-kit/ci-config.json marker)
review.yml enabled=true var=GATES_REVIEW_ENABLED
security.yml enabled=false var=GATES_SECURITY_ENABLED # disabled via gates.json
maintenance.yml enabled=true var=GATES_MAINTENANCE_ENABLED
marker.runners: [ci.yml, auto-fix-pr.yml, review.yml, maintenance.yml]
marker.gates_source: gates.json
SESSION GATES (.dev-kit/harness-mode.session.json, reset every SessionStart)
mode: full
optional (picker-toggled):
slop_detector, pre_commit_review,
maintenance, security_owasp, babysit_pr
correctness (always on): stop_verify, secret_scan, intent_integrity, gh_ci_required
AI-JUDGE GATES (skills shipped with the plugin; scheduled by .github/workflows/*.yml)
/dev-kit:review enabled (CI: review.yml, if: vars.GATES_REVIEW_ENABLED != 'false')
/dev-kit:security enabled (CI: security.yml, if: vars.GATES_SECURITY_ENABLED != 'false' — but gates.json says disabled; CI gate job SKIPPED)
/dev-kit:maintenance enabled (CI: maintenance.yml, if: vars.GATES_MAINTENANCE_ENABLED != 'false')
OPTIONAL INTEGRATIONS (integration-specific SSOT; not part of gates.json)
Linear API enabled=false by default in gate-select
disable python3 tools/linear_sync.py off
enable python3 tools/linear_sync.py on (explicit operator opt-in)
status python3 tools/linear_sync.py status
```
### Linear integration policy
Linear remains available for future use, but its API request and complexity
quotas make it unsuitable as an always-on correctness gate. The gate-select
default is therefore **off**. `enable linear` and `disable linear` delegate to
the existing `tools/linear_sync.py` CLI, whose per-worktree
`.dev-kit/linear-config.json` remains the source of truth. This preserves the
four automatic Linear hooks and the manual `/dev-kit:linear` skill without
mixing Linear state into the CI-only `.dev-kit/gates.json` schema.
When Linear is disabled, implicit hooks stay non-blocking and stop before API
sync. To use it later, run `/dev-kit:gate-select enable linear` (or the
explicit `/dev-kit:linear on`) and inspect `/dev-kit:linear status`.
### How `show` reads each dimension
```bash
# Actor route — deterministic; never calls gh.
python3 -m lib.actor_classifier --root . --jsonFrom sh-ai-x/dev-harness-kit, MIT.
More from sh-ai-x/dev-harness-kit
- 0.587score
harness-effectiveness
sh-ai-x
0-arg harness-effectiveness report.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
babysit-pr-local
sh-ai-x
0-arg local-mode PR babysitter.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
harness-mode
sh-ai-x
Session-scoped local-hook mode picker — fast (all optional local hooks off), full (default, all on), or custom (interactive per-local-hook picker via…
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
guard-mode
sh-ai-x
Session-scoped on/off toggle for the tdd-guard, worktree-guard, and git-guard hard-block hooks.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
bootstrap
sh-ai-x
0-arg setup for CLAUDE.md, AGENTS.md, hooks, and optional CI.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
babysit-pr
sh-ai-x
0-arg restart-safe PR check, diagnose, fix, and hand-off loop.
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
build
sh-ai-x
0-arg.
SkillAFreshness: A★ 1Claude Code - 0.552score
codex-cache-update
sh-ai-x
Refresh the dev-kit Codex marketplace checkout and synchronize the versioned plugin cache.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
bump
sh-ai-x
Explicit version bump of `.claude-plugin/plugin.json` + push of `chore/bump-vX.Y.Z`.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
evaluate
sh-ai-x
0-arg eval extension.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
evidence-plan
sh-ai-x
Idea → cited research → HTML proposal (human confirms) → /dev-kit:plan hand-off.
SkillBFreshness: B★ 1Claude Code - 0.544score
ci-triage
sh-ai-x
Triage failing GitHub Actions runs across recent commits, dedupe against a persisted case store, judge new failures against a model/context/harness taxonomy…
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 2
- Open issues
- 8
- Last commit (this folder)
- Sep 28, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/sh-ai-x/dev-harness-kit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from sh-ai-x
- 0.587score
harness-effectiveness
sh-ai-x
0-arg harness-effectiveness report.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
harness-mode
sh-ai-x
Session-scoped local-hook mode picker — fast (all optional local hooks off), full (default, all on), or custom (interactive per-local-hook picker via…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
babysit-pr-local
sh-ai-x
0-arg local-mode PR babysitter.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
guard-mode
sh-ai-x
Session-scoped on/off toggle for the tdd-guard, worktree-guard, and git-guard hard-block hooks.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
bootstrap
sh-ai-x
0-arg setup for CLAUDE.md, AGENTS.md, hooks, and optional CI.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
babysit-pr
sh-ai-x
0-arg restart-safe PR check, diagnose, fix, and hand-off loop.
SkillAFreshness: A★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get gate-select running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
gate-select skill. Agent Mart. https://agentmart.dev/skills/sh-ai-x-gate-select (last updated 2026-10-24)