by angel291592
Intent compiler for AI agents — converges vague requests into typed IntentSpec contracts (probe, ask, or halt before routing), the input layer for routers and typed-decision models like Jev & Laya
# Add to your Claude Code skills
git clone https://github.com/angel291592/Intent-RouterGuides for using ai agents skills like Intent-Router.
See how Intent-Router compares with popular alternatives.
Intent-Router is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by angel291592. Intent compiler for AI agents — converges vague requests into typed IntentSpec contracts (probe, ask, or halt before routing), the input layer for routers and typed-decision models like Jev & Laya. It has 55 GitHub stars.
Intent-Router's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/angel291592/Intent-Router" and add it to your Claude Code skills directory (see the Installation section above).
Intent-Router is primarily written in Python. It is open-source under angel291592 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Intent-Router against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
English | 简体中文
An intent compiler for AI agents.
Turns a vague request into a typed IntentSpec — the clear, machine-readable input that typed
decision models (Jev, Laya) and every router downstream assume already exists: it looks up what
it can, asks only what it can't, and refuses to emit while the intent is still underspecified.
What that buys you:
IntentSpec, saved to
.intent/<intent>.intent.yaml before the reply that carries it, whose probed fields carry
evidence pointers — so the output rests on what your project actually says rather than on an
unstated guess, and the next agent, session or teammate starts from that contract file instead
of zero. "add caching to the user API" "this customer is furious — sort it out"
│ │
▼ ▼
┌────────────────────────────────────────────────────────────────────────────────────┐
│ parse → resolve → typecheck → emit one engine, one spec │
├────────────────────────────────────────────────────────────────────────────────────┤
│ PROBE deps, routes, git history, ADRs │ order + ticket log, entitlements, │
│ — you are not interrupted │ the policy in force │
│ │ │
│ ASK serve stale, or serve uncached? │ refund, or replace? │
│ the one answer no file holds │ the one that can't be undone │
└────────────────────────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
IntentSpec ──────► your planner / agent / workflow / human
Same three passes. Same stopping predicate. Only the places it looks change.
What a real run looks like — one sentence in, it reads the repo itself and asks only what no file can answer. From the measured run of 2026-09-23 behind the numbers below: 8 of the 10 cases the suite held that day, 0 hallucinated evidence.
No install, no API key, no dependencies — it's a skill:
npx skills add angel291592/Intent-Router
Manual install, or an agent the installer doesn't know: Quick start.
Intent-Router is the layer five good tools leave empty: deciding whether to look, ask, or act — before acting. grill-me converges beautifully, states the right principle, and keeps nothing. Intent-Router generalizes that principle into grill anything: before it grills you, it grills the repo, the ticket queue, the runbook — everything that can answer for itself. spec-kit keeps everything and makes you buy its whole workflow to get it. Routers decide fast and can't handle ambiguity at all. Jev and Laya return exactly the typed, calibrated decision you want — once the input is already clear: Jev needs a well-formed question, Laya needs a formed state to classify. Producing that clear input from a vague request is the hard part, and it's the part neither of them does.
Read the row gaps, not the checkmarks:
| Converges vague input | Doesn't ask what it can look up | Machine-readable artifact | Decidable stop | Fires automatically | |
|---|---|---|---|---|---|
| Intent-Router | ✅ | ✅ PROBE, with evidence and a metric |
✅ IntentSpec |
✅ predicate | ✅ |
| grill-me | ✅ rounds/frontier | ⚠️ principle, not tracked (no evidence, no metric) | ❌ stateless by design | ⚠️ "frontier empty" | ❌ manual |
spec-kit /clarify |
✅ 11-category scan | ❌ asks it | ✅ writes back to spec.md |
✅ ≤10 questions | ⚠️ needs specs/<feature>/ + its workflow |
| semantic-router / RouteLLM | ❌ returns None |
— | ❌ a label | ✅ threshold | ✅ |
| Jev (typed decisions) | ❌ needs clear input | — | ✅ typed + calibrated | ✅ confidence | ✅ |
| Laya (open-source System 1) | ❌ needs a formed state / question set | — | ✅ typed choice/score/noul |
✅ calibrated probability | ✅ |
Jev and Laya are the same tier — the System 1 decision layer. Jev is a closed API; Laya is the
open-weights, Jev-wire-compatible alternative you can run locally. Both answer typed questions in
a single pass once a formed input exists; neither converges a vague request into one. That
upstream convergence is the layer Intent-Router occupies, and the IntentSpec it emits is the
shape of input they want.
To be fair: a good harness natively prefers looking things up over asking, and offers a recommended default when it does ask. That much is not this skill's contribution, and nothing else on this page should be read as claiming it is.
What it adds is the part a conversation cannot hold:
IntentSpec is a
file-level contract, so the next agent, session or teammate starts from it rather than zero.degraded is an
operations signal and underspecified is your next step; merging them hides a backend outage
behind what looks like a clarifying question.A compiler doesn't guess the address of an undefined symbol. Your agent shouldn't guess your intent.
When you hand an agent "refactor this module", "look into our churn" or "sort this customer out", exactly one of two things happens.
It guesses. You get 400 lines of confident work built on an assumption you never made. You read it, realize the premise is wrong, and throw it away. The agent was never wrong about how to do the job — it was wrong about what you meant, and it found that out only after spending your tokens.
Or it interviews you. This is better, and it's what /grill-me-style skills do well. But the
bill is real: the grill-me docs call "forty-six questions across four rounds an ordinary
session." And when it's over, the skill is explicitly stateless — "it writes no files and
leaves no workspace behind. The only thing it leaves is a sharper version of the idea, in your own
head."
So you pay twice. Once in questions, and again because nothing downstream can read the answers. The next agent, the next session, the next teammate — all start from zero.
**Both failures share one root cause: nobody decided whether the missing information was worth asking a human