Front desk for Suhail — routes a named job (go, init, discover, next, auto, skip, status, abort) to the matching command file, or asks the user which job to run when none is named.
2 stars
0 votes
0 copies
1 view
Added September 3, 2026
ai-agentsgo
Works with
claude code
Security analysis
A100/100
Scanned September 3, 2026
$npx -y skills add wessamfathi/suhail --skill su --agent claude-code
Installs into .claude/skills of the current project.
Are you the author of Su?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/wessamfathi-suhail)
---
description: Front desk for Suhail — routes a named job (go, init, discover, next, auto, skip, status, abort) to the matching command file, or asks the user which job to run when none is named.
disable-model-invocation: true
---
# su — Suhail front desk
This skill is a pure router: it locates and defers to the matching `commands/<job>.md`, and never restates or advances the orchestrator's own state machine.
## 1. Argument routing
If `$ARGUMENTS` is non-empty, or the user's message plainly names a job, take the first token and match it case-insensitively against the eight job names: `go`, `init`, `discover`, `next`, `auto`, `skip`, `status`, `abort`.
On a match: locate the corresponding command file (see "Locating the command file" below), read it into memory, and follow its instructions exactly as if the user had invoked `/su:<job>` directly — passing any remaining tokens through as that command's own arguments.
On no match: state so in one sentence and list the eight job names. Do not proceed further.
Do not infer a job from vague conversational context — only a non-empty `$ARGUMENTS` or an unambiguous, plainly-named job triggers routing. If neither is present, proceed to the menu below instead.
## 2. Locating the command file
Given a job name, resolve `commands/<job>.md` by checking these two paths in order:
1. Plugin install: `${CLAUDE_PLUGIN_ROOT}/commands/<job>.md` — this resolves only when Suhail is installed as a Claude Code plugin, because the token is substituted inline before this file is read; in a non-plugin context the token stays literal and the path will not exist, so resolution falls through to the next step.
2. Dev repo: `./commands/<job>.md`.
If neither path exists, end with: "Cannot locate `commands/<job>.md` — reinstall Suhail."
Do not duplicate or summarize the orchestrator logic here. The canonical state machine lives in `commands/go.md`.
## 3. Menu
When no job is named, ask a single `AskUserQuestion` with header `"Job"`, single-select, and exactly these four options:
- **Run plan** → route to `go` (then ask for the plan path via `go`'s own flow).
- **Discover plan** → route to `discover`.
- **Init intel** → route to `init`.
- **Status** → route to `status`.
`next`, `auto`, `skip`, and `abort` are intentionally excluded from this menu — they are mid-run-only actions — but remain reachable by naming them directly (e.g. `/su next` or `/su:next`).
## 4. Narration discipline
This front desk emits at most one short sentence before routing. Once a job is routed, the target command's own narration rules take over entirely; this file adds no commentary on top of it.