skip

skip is a command for coding agents from wessamfathi/suhail. It costs 14 tokens per session (1,285 once invoked), scanned A, original, MIT.

A command that marks the current part of an active Suhail workflow as skipped and then offers to continue. Suhail is a plan-running coordinator that records each part’s status.

In plain words
What is it for?
Use it to skip the current plan part and, if wanted, advance to the next eligible part.
Why use it?
It lets a workflow move past a part that should not be run without starting a helper agent for that part. It also refuses to change anything when there is no active or usable part.

Command

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the su plugin — 1 skill, 8 commands, 6 agents shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/wessamfathi/suhail/skip
Clone the repo
git clone --depth 1 https://github.com/wessamfathi/suhail

Or install su, the plugin that ships this one along with the rest of its 1 skill, 8 commands, 6 agents.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for skip

README.md
[![agentmods](https://agentmods.dev/badge/commands/wessamfathi/suhail/skip.svg)](https://agentmods.dev/commands/wessamfathi/suhail/skip)
Your own site
<a href="https://agentmods.dev/commands/wessamfathi/suhail/skip"><img src="https://agentmods.dev/badge/commands/wessamfathi/suhail/skip.svg" alt="Measured on agentmods" height="20"></a>
Per session 14 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,285 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00014 $0.01285
Opus 5 $0.00007 $0.00642
Sonnet 5 $0.00003 $0.00257
Haiku 4.5 $0.00001 $0.00128

Measured 3d ago against content hash 6b3e1d94d8d0, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

skip scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/skip.md · 48 lines

How it starts

The opening of the file, as written. The whole thing — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/su:skip — Suhail Part skipper

You are skipping the current Part of the active Suhail run. This command takes no arguments. It marks current_part_id as status: skipped, persists state via suhail-write, and then offers to continue. It does NOT run any subagent itself. Advancement goes through the orchestrator (go.md), and the tick script auto-selects the next eligible Part from the skipped state.

On every invocation

Run the following guards in order, short-circuiting on the first match. Each refusal is exactly one sentence and performs no file mutations.

  1. No active run. Attempt to Read .suhail/state.json. If it does not exist, end with: "No active Suhail run found — nothing to skip."
  2. Aborted run. Parse state.json. If top-level aborted == true, end with: "This Suhail run has been aborted — no Part can be skipped."
  3. Nothing to skip. If current_part_id is null/empty, OR the run is already terminal (run_phase is finished/completed, or every entry in state.parts has status of completed or skipped), end with: "No active Part to skip — the run has no Part in progress."

Skip

After the guards pass:

  1. Read .suhail/state.json into memory (the full object).
  2. Pick the target Part, first match wins: (a) the Part whose id == current_part_id, if non-terminal; (b) the lowest-integer non-terminal Part in current_batch (covers skipping a Part of the level currently in progress — current_part_id may still point at a prior level's completed Part); (c) the lowest-integer pending Part whose dependencies are all terminal (a skip issued at a level checkpoint targets the next level's first Part). If no rule matches, end with one sentence: "No eligible Part to skip." — do not write state. Set the target's status: "skipped" and point current_part_id at it. A skipped Part is terminal, so on the next tick the batch routing (batch_directive) simply proceeds past it to the next dispatchable Part (or to complete when the whole batch is terminal); you do not compute anything beyond the target yourself.
  3. Update updated_at to the current ISO 8601 timestamp.
  4. Resolve the scripts directory using the following four-step lookup (check each in order; use the first that exists): (1) ${CLAUDE_PLUGIN_ROOT}/scripts/ — resolves only when installed as a Claude Code plugin, where the token is substituted inline before this file is read; in any other context it is left literal and the path will not exist, so it falls through; (2) ./.claude/commands/scripts/; (3) $CLAUDE_CONFIG_DIR/commands/scripts/ if the environment variable CLAUDE_CONFIG_DIR is set and non-empty, otherwise ~/.claude/commands/scripts/; (4) ./scripts/ (dev-repo fallback). If none exist, end with: "Helper scripts not found — install Suhail or run from the dev repo." Pipe the complete updated state JSON to suhail-write (platform-detected: pwsh <resolved-scripts-dir>/suhail-write.ps1 .suhail/state.json on Windows; bash <resolved-scripts-dir>/suhail-write.sh .suhail/state.json on POSIX) with the full JSON on stdin. Per the state-machine invariant, always write the full file from the in-memory model — never partial-update, and never write state.json directly. On non-zero exit: write .suhail/parts/<current_part_id>/blocker.md (from: orchestrator) and end the turn.
  5. Narrate one sentence: "🧭 Orchestrator — Part N skipped."
  6. AskUserQuestion: "Part N skipped. Advance to the next eligible Part now?" with options Continue / Pause.
    • Continue → locate go.md (see below), read it, and follow its instructions for exactly one tick as if the user had typed /su:go continue. The orchestrator's tick routes past the skipped Part to the next dispatchable one. Do not loop beyond what the orchestrator does for a single /su:go continue.
    • Pause → end the turn with one sentence: "Paused — run /su:go or /su:next to advance when ready."

Read the full file on GitHub · 48 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 48 lines · 14 tokens per session scan A 6b3e1d94d8d0

Subscribe to this mod's changes

skip is a command published in the GitHub repository wessamfathi/suhail (2 stars, last pushed 1mo ago), licensed MIT. It adds 14 tokens to every session and 1,285 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.