Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Route ambiguous or mixed Phoenix/LiveView/Ecto requests before choosing a workflow. Use when user is unsure where to start/how to approach work, asks for the right workflow, or combines intents such as fixing and refactoring. NOT for a clear task.
.claude/skills/oliver-kriska-intent-detection/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -40% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 161% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -41% | 0% |
When user describes work WITHOUT specifying a /skill:phx-* command, analyze their intent and suggest the appropriate workflow BEFORE starting work.
Hard guard — check FIRST: if the message starts with any slash command (/skill:phx-*, /skill:ecto-*, /skill:lv-*, or any other /command), this skill does not apply. Follow the invoked command directly — no routing analysis, no suggestion, zero output from this skill.
| Signal | Detected Intent | Suggest | |--------|----------------|---------| | "bug", "error", "crash", "failing", "broken", stack trace | Bug investigation | /skill:phx-investigate | | "brainstorm", "explore idea", "not sure what I need", "vague idea", "let's discuss", "how to approach" | Ideation/requirements | /skill:phx-brainstorm | | "add", "implement", "build", "create" + multi-step | New feature | /skill:phx-plan | | "review", "check", "audit" code | Code review | /skill:phx-review | | "fix" + small/specific scope | Quick fix | handle directly or /skill:phx-quick | | "refactor", "clean up", "improve" | Refactoring | /skill:phx-plan (needs scope) | | "research", "how to", "what's the best" | Research | /skill:phx-research | | "evaluate", "compare", "adopt", "library", "should we use" | Library evaluation | /skill:phx-research --library | | "test", "spec", "coverage" | Testing | handle directly or /skill:phx-plan | | Describes 1-2 file changes, < 50 lines | Small task | handle directly | | "deploy", "release", "production" | Deployment | /skill:phx-verify then deploy | | "performance", "slow", "N+1", "memory" | Performance | /skill:phx-perf | | "PR review", "review comments", "address feedback", "respond to PR" | PR response | /skill:phx-pr-review | | "that worked", "fixed it", "problem solved" | Knowledge capture | /skill:phx-compound | | "enhance plan", "more detail", "deepen" | Plan enhancement | /skill:phx-plan --existing | | "triage", "which findings", "prioritize fixes" | Finding triage | /skill:phx-triage |
[command] — want me to run it, or should I just dive in?"/skill:phx-* command: follow it, don't re-suggestHigh confidence (suggest immediately):
/skill:phx-investigate/skill:phx-plan/skill:phx-reviewMedium confidence (suggest with caveat):
Low confidence (just do it):
When a task matches a workflow command, check complexity before suggesting:
Trivial signals (suggest /skill:phx-quick or handle directly):
Complex signals (suggest /skill:phx-plan or /skill:phx-investigate):
Override rule: If user invokes /skill:phx-full but task matches trivial signals: "This looks like a quick fix. Want /skill:phx-quick instead, or stick with the full cycle?"
if has_slash_command($ARGUMENTS) -> follow command directly
elif has_stack_trace(message) -> suggest /skill:phx-investigate
elif matches("add|build|implement", message) and multi_step -> suggest /skill:phx-plan
elif matches("fix", message) and small_scope -> handle directly or /skill:phx-quick
elif matches("review|audit", message) -> suggest /skill:phx-review
else -> handle directly (no suggestion)This skill is consulted at session start. It works alongside:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 7,241 | 2,957 | -59% | 1 | 1 | 0% | 1,090 | 1,785 | +64% | 0 | 0 | — |
case-02 | fail→pass | 9,513 | 4,119 | -57% | 1 | 1 | 0% | 1,409 | 2,018 | +43% | 0 | 0 | — |
case-03 | fail→pass | 20,029 | 3,762 | -81% | 1 | 1 | 0% | 3,094 | 1,867 | -40% | 0 | 0 | — |
case-04 | pass→pass | 12,548 | 3,159 | -75% | 1 | 1 | 0% | 2,211 | 1,811 | -18% | 0 | 0 | — |
case-05 | pass→pass | 10,035 | 5,034 | -50% | 1 | 1 | 0% | 1,818 | 2,155 | +19% | 0 | 0 | — |
case-06 | fail→pass | 4,708 | 4,145 | -12% | 1 | 1 | 0% | 716 | 1,869 | +161% | 0 | 0 | — |
case-07 | fail→pass | 16,235 | 1,940 | -88% | 1 | 1 | 0% | 2,720 | 1,603 | -41% | 0 | 0 | — |
case-08 | fail→pass | 11,879 | 8,696 | -27% | 1 | 1 | 0% | 1,041 | 1,677 | +61% | 0 | 0 | — |
case-09 | fail→pass | 13,779 | 5,694 | -59% | 1 | 1 | 0% | 2,212 | 2,190 | -1% | 0 | 0 | — |
case-10 | fail→pass | 18,329 | 4,029 | -78% | 1 | 1 | 0% | 2,816 | 1,996 | -29% | 0 | 0 | — |
case-11 | fail→pass | 14,889 | 2,387 | -84% | 1 | 1 | 0% | 2,411 | 1,705 | -29% | 0 | 0 | — |
case-12 | fail→pass | 15,603 | 2,641 | -83% | 1 | 1 | 0% | 2,490 | 1,692 | -32% | 0 | 0 | — |
case-13 | fail→pass | 8,260 | 2,691 | -67% | 1 | 1 | 0% | 1,391 | 1,739 | +25% | 0 | 0 | — |
case-14 | fail→pass | 11,205 | 2,529 | -77% | 1 | 1 | 0% | 1,787 | 1,689 | -5% | 0 | 0 | — |
case-15 | fail→pass | 9,391 | 2,321 | -75% | 1 | 1 | 0% | 1,499 | 1,666 | +11% | 0 | 0 | — |
case-16 | fail→pass | 11,594 | 7,616 | -34% | 1 | 1 | 0% | 1,840 | 1,562 | -15% | 0 | 0 | — |
case-17 | pass→pass | 4,587 | 2,286 | -50% | 1 | 1 | 0% | 235 | 1,657 | +605% | 0 | 0 | — |
case-18 | fail→pass | 4,128 | 2,458 | -40% | 1 | 1 | 0% | 810 | 1,785 | +120% | 0 | 0 | — |
case-19 | fail→pass | 7,765 | 2,200 | -72% | 1 | 1 | 0% | 1,176 | 1,618 | +38% | 0 | 0 | — |
case-20 | fail→pass | 16,602 | 4,335 | -74% | 1 | 1 | 0% | 2,645 | 1,943 | -27% | 0 | 0 | — |
case-21 | pass→pass | 3,458 | 2,472 | -29% | 1 | 1 | 0% | 349 | 1,734 | +397% | 0 | 0 | — |
case-22 | fail→pass | 8,986 | 2,668 | -70% | 1 | 1 | 0% | 1,399 | 1,758 | +26% | 0 | 0 | — |
case-23 | fail→pass | 12,102 | 3,853 | -68% | 1 | 1 | 0% | 1,947 | 1,938 | -0% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +83 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.