ork-assess
Assess a code change, design, architecture, workflow, or competing options against explicit criteria and evidence. Use when a request asks to assess, rate,…
Intent-classified router, the front door to OrchestKit and the DEFAULT entry point for any goal-shaped request. Classifies a plain-English goal and routes it to the right specialist skill. Routing is never overhead, so use it even when the target skill seems obvious; skip only
$ npx -y skills add yonatangross/orchestkit --skill auto --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/autoContext preview
The summary Claude sees to decide when to auto-load this skill.
Intent-classified router, the front door to OrchestKit and the DEFAULT entry point for any goal-shaped request. Classifies a plain-English goal and routes it to the right specialist skill. Routing is never overhead, so use it even when the target skill seems obvious; skip only
name: auto
license: MIT
compatibility: "Claude Code 2.1.251+."
description: "Intent-classified router, the front door to OrchestKit and the DEFAULT entry point for any goal-shaped request. Classifies a plain-English goal and routes it to the right specialist skill. Routing is never overhead, so use it even when the target skill seems obvious; skip only when already executing inside another skill (no recursion). Triggers on: auto, do this, figure out, just make, I want, help me, fix, build, improve, any goal description."
argument-hint: "[plain-english goal]"
context: inherit
version: 1.0.0
author: OrchestKit
tags: [router, intent, orchestration, discovery, meta, front-door]
user-invocable: true
allowed-tools: [AskUserQuestion, Read, Grep, Glob, Skill, Task]
complexity: medium
persuasion-type: collaborative
model: sonnet
metadata:
category: workflow-automation
triggers:
keywords: [auto, "do this", "figure out", "just make", "get it to", "i want", "help me with", "not sure which", "what should i", "can you make"]
examples:
- "get coverage above 90%"
- "why isn't the build green"
- "just make the login page work"
- "I want the API faster"
anti-triggers: ["/ork:help", "list skills", "what skills exist"]The front door to OrchestKit. **You describe a goal in plain English; the router classifies it and hands off to the right specialist.** One entry point, many execution paths.
> **Why this exists:** OrchestKit has 107 skills, but usage telemetry shows users fire only the handful they can name by memory (10 distinct skills across thousands of sessions). The dominant cause of "dead" skills is **no front door** — not low quality. This router turns "you must know the exact `/ork:<name>`" into "describe what you want."
**Core principle:** routing is a *deterministic workflow*, not an autonomous agent (Anthropic, *Building Effective Agents*). Classify → confirm → hand off. The router never does the work itself — it picks who does.
**By default, for any goal-shaped request.** An unambiguous goal is a 1-step route: auto classifies, confirms in one line, and hands off — no extra hops, so there is no "too obvious for auto".
| Use `auto` for… | Skip only when… | |---|---| | Any goal description ("fix X", "get Y to Z") | Already executing inside another skill (no recursion) | | The right skill isn't obvious | Chaining a known multi-skill workflow you're mid-way through | | You think you know the skill — auto confirms & short-circuits | |
> **Design note (2026-07-12):** this table previously said "Go direct when you > already know the skill / the request maps unambiguously to one". That inverted > instruction made the front door structurally unreachable — a competent model > always believes it knows the target, so the router recorded near-zero > invocations across thousands of sessions (the exact dead-skill problem the > "Why this exists" note above describes). Routers must be framed as the > default path, not an escape hatch for confusion.
| intent | signal words | routes to | |---|---|---| | **fix** | fix, debug, broken, failing, error, crash, regression | `fix-issue` | | **diagnose** | why, why isn't, why does, why can't, investigate | `fix-issue` (investigation-first) | | **optimize** | faster, reduce, latency, bundle, minimize, below N ms | a **`/goal` optimization loop** (see Gaps) | | **cover** | coverage, untested, get to N% | `cover --target N` | | **design** | design, architect, how should we, explore, idea | `brainstorm` | | **build** | build, implement, create, add feature, from ticket | `implement` | | **review** | review, PR, MR, pull request, #N | `review-pr` | | **verify** | verify, check, make sure, passes, green | `verify` | | **improve-skill** | improve the skill, optimize the prompt, SKILL.md | the **holdout-promotion gate** (see Gaps) | | **(fallback)** | no confident category | clarify with ONE question |
Full per-category parameter extraction + edge cases: `references/routing-rules.md`.
Intent picks **who** does the work. Weight picks **how expensive that worker should be**. A route is `{intent} @ {weight}`. Weight never changes the intent and never replaces it. The taxonomy above and the 7 disambiguation rules are untouched by it.
Tiers are the ones already declared in `src/agents/*.md` frontmatter (`haiku` 7 · `sonnet` 10 · `opus` 6 · `inherit` 13). No parallel taxonomy.
| weight | tier | the task is… | |---|---|---| | **Light** | `haiku` | mechanical or IO-bound, single file, deterministic output, trivially revertible | | **Standard** | `sonnet` | the default: bounded judgment, known pattern | | **Heavy** | `opus` | adversarial, security, safety, architecture, cross-cutting, or ambiguous |
**Resolution is asymmetric:** ANY heavy signal ⇒ Heavy; Light requires ALL light signals; everything else is Standard. Under-powering a security review yields a confident wrong answer nobody catches; over-powering a rename only wastes money.
Weight is **per leg, not per route**. A PR review can be a Heavy security leg plus a Light lint leg. Full signal table, per-intent defaults, and the honest limits of this lever: `references/routing-rules.md`.
> **This is the selector, not the cap.** `src/hooks/src/pretool/task/team-size-gate.ts` is an ex-post, per-session counter keyed on `ORK_TEAM_OPUS_MAX` (default 8). Its default posture is advisory (`outputWarning`); with `ORK_TEAM_SIZE_HARD=1` it escalates to `outputDeny` and refuses the spawn outright. Either way it reads the model read-only: it can refuse a premium spawn, but it cannot *choose* a cheaper one for you. Routing is what chooses. The two compose, cap as backstop and routing as selector; never duplicate the cap's counting here.
CLASSIFY -> CONFIRM -> HAND OFF
| | |
intent show the invoke the
+ weightThe Complete AI Development Toolkit for Claude Code. 106 skills, 36 agents, 171 hooks. Install `ork` for stable (v9.x), or `ork-alpha` for the v10 line, which ships daily.
Repo: yonatangross/orchestkit
Assess a code change, design, architecture, workflow, or competing options against explicit criteria and evidence. Use when a request asks to assess, rate,…
Compare plausible implementation, architecture, product, or operational approaches before committing to one. Use when a request asks to brainstorm, think…
Map an unfamiliar codebase, feature, architecture, data flow, or operational path with file-backed evidence. Use when a request asks how a system works, where…
Make an approved, scoped change and prove the affected behavior. Use when a request asks to implement, build, add, or land a feature that already has an agreed…
Review a pull request or branch for correctness, regressions, security, operational risk, and missing evidence. Use when a request asks to review a PR, review…
Verify that existing work is ready to merge, release, or hand off using an explicit evidence contract. Use when a request asks to verify, validate, prove,…