Skip to content
Back to skills

Su

ASecurity

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.

Security grade badge for Su
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wessamfathi-suhail/badge)](https://www.skillsdirectory.com/skills/wessamfathi-suhail)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…