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.
npx skills add stefan-stepzero/shipkit --skill shipkit-specgit clone --depth 1 https://github.com/stefan-stepzero/shipkitWrote 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.
[](https://agentmods.dev/skills/stefan-stepzero/shipkit/shipkit-spec)<a href="https://agentmods.dev/skills/stefan-stepzero/shipkit/shipkit-spec"><img src="https://agentmods.dev/badge/skills/stefan-stepzero/shipkit/shipkit-spec/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/stefan-stepzero/shipkit/shipkit-spec"><img src="https://agentmods.dev/badge/skills/stefan-stepzero/shipkit/shipkit-spec.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.06680 |
| Opus 5.5 | $0.00014 | $0.02672 |
| Sonnet 5.5 | $0.00007 | $0.01336 |
| Haiku 4.5 | $0.00003 | $0.00668 |
Grade A, and why
shipkit-spec 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 656 lines — stays where its author put it; the contents beside it link to each section on GitHub.
shipkit-spec - Lightweight Feature Specification
Purpose: Transform feature descriptions into structured JSON specifications with Given/When/Then scenarios and comprehensive edge case coverage, creating clear acceptance criteria for implementation. A no-gaps completeness gate (Step 5) ensures the spec names every application, datastore, contract, and integration it implies — so "done" can't mean green-but-not-functional.
Output format: JSON -- structured data readable by Claude, machine-readable by other tools, and queryable by other skills.
When to Invoke
User triggers:
- "Spec this feature"
- "Create a specification"
- "What are the requirements?"
- "Define the feature properly"
- User describes a new feature idea
Before:
/shipkit-plan(this creates the spec that planning needs)implement (no skill needed)(need spec before implementing)
Workflow position:
- After feature concept is clear
- Before implementation planning
- Can be used standalone for requirement clarification
Prerequisites
Recommended:
- Stack defined:
.shipkit/stack.json(to understand tech constraints) - Schema defined:
.shipkit/schema.json(to understand data model)
Optional but helpful:
- Architecture decisions:
.shipkit/architecture.json - Existing specs:
.shipkit/specs/todo/*.json,.shipkit/specs/active/*.json(check for similar patterns)
If missing: Infer tech stack from codebase signals (package.json, imports, config files); return gaps_found if critical context cannot be derived (fork context — no user prompt)
Arguments
If $ARGUMENTS is provided (e.g. /shipkit-spec user login flow), use it as the initial feature description. Skip Question 1 (Feature Type prompt) and infer the type from the description. Proceed directly to deeper clarifying questions.
If $ARGUMENTS is empty, proceed normally from Step -1.
Process
Completion Tracking
After clarifying the feature (Step 1), create tasks:
TaskCreate: "Read context + explore affected code (2 agents)"TaskCreate: "Archive existing spec (if overwriting)"TaskCreate: "Generate spec JSON (all 20+ fields)"TaskCreate: "Validate completeness (checklist + no-gaps gate)"TaskCreate: "Write spec to disk"- In batch mode, for EACH remaining roadmap feature:
TaskCreate: "Spec: {feature-name}"
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 1mo ago First seen · 656 lines · 34 tokens per session scan A b5b20acce4fb
shipkit-spec is a skill published in the GitHub repository stefan-stepzero/shipkit (1 stars, last pushed 3mo ago), licensed MIT. It adds 34 tokens to every session and 6,680 once invoked, about $0.0001 per session on Opus 5.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.
Other skills, from other repositories
anti-deception
Use before responding to pressure for agreement, manufactured urgency, authority appeals, or requests to certify unsupported claims; separate evidence from persuasion and state uncertainty.
stuck
Diagnoses a broken course setup by reading the folder, so the student never has to describe the problem in English. Takes no argument. Reports which class they are on and which files are filled, then names one blocker and one fix: Claude Code opened at the wrong level, .claude/skills/ missing, skills not loading…
wrap-up
Saves today's work session as a four-line entry (did, decided, open, next) at the top of the project's log.md, after the student confirms it, so a fresh chat can continue tomorrow with /pick-up. Writes to projects/ /log.md or career-vault/log.md, one entry per project touched, never to new-client. Use when the student…
pick-up
Reads the newest entry of a project's log.md and tells the student where they left off: what they did and decided, what is open, and the next step. Takes an optional project name. With several projects and no name, shows a menu of each project's last entry. Read only. Use when the student says pick up, where did I…
grill-me
One move you can run on anything: point grill-me at a target and it makes you defend your thinking from first principles until the true matter is clear. Point it at your working contract and it rewrites the weak lines in place. Point it at a brief and it produces a Requirements Handshake. Point it at research, an…
information-architecture
Map the user journey first, then derive the screen inventory, navigation and hierarchy from it, flagging any screen that serves no journey step. Writes the four-part markdown plus an HTML diagram of the step-to-screen mapping. Use after the brief is settled and before tokens or UI.