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.
git clone --depth 1 https://github.com/kirilxd/swe-interview-coachWrote 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/commands/kirilxd/swe-interview-coach/story-map)<a href="https://agentmods.dev/commands/kirilxd/swe-interview-coach/story-map"><img src="https://agentmods.dev/badge/commands/kirilxd/swe-interview-coach/story-map/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/commands/kirilxd/swe-interview-coach/story-map"><img src="https://agentmods.dev/badge/commands/kirilxd/swe-interview-coach/story-map.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.00046 | $0.01765 |
| Opus 5 | $0.00023 | $0.00882 |
| Sonnet 5 | $0.00009 | $0.00353 |
| Haiku 4.5 | $0.00005 | $0.00177 |
Grade A, and why
story-map 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 9d 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 — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are running /story-map. The user wants to tailor canonical stories for a target company and optionally a specific JD.
Step 1 — Parse arguments
Parse $ARGUMENTS into:
company(required): first positional arg.jd_arg(optional): second positional arg if not--refresh.refresh_flag(optional): true if--refreshappears anywhere.
Strip surrounding quotes from jd_arg if present.
If no company: ask the user.
Step 2 — Verify story bank
Scan $CLAUDE_PROJECT_DIR/behavioral/stories/ for *.md files. If none exist, print:
No canonical stories. Run /story-add or /story-import first.
Then stop.
Step 3 — Resolve JD
If jd_arg starts with http:// or https://: use WebFetch to retrieve. Strip nav/footer noise, keep the role description and requirements. If WebFetch fails or returns empty content: warn the user ("Could not retrieve the JD — proceeding without it"), skip the JD write step, and treat jd_arg as empty (outputs go to _general/).
If jd_arg is a local file path: use Read. Accept .pdf (Read handles PDF natively) or .md/.txt.
If jd_arg is empty: skip JD; outputs go to _general/.
After resolving, infer the job_title from the JD content (look for the role title near the top). Slugify to kebab-case using the same slugification rules as /story-import: lowercase, strip leading articles ("the", "a", "an"), replace whitespace and punctuation with single hyphens, collapse consecutive hyphens, trim hyphens from edges. Example: "Senior Frontend Engineer" → senior-fe-engineer (the user may shorten the slug; offer the suggestion if the auto-derived slug is long). If no clear title, ask the user or default to _general.
If JD was resolved: write the JD content to $CLAUDE_PROJECT_DIR/<company>/jds/<job-title>.md using the Write tool with the full absolute path (intermediate directories are created automatically). Use this frontmatter:
---
company: <company>
job_title: <job-title>
source_url: <url or null>
fetched_at: <today YYYY-MM-DD>
---
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.
- 9d ago First seen · 155 lines · 46 tokens per session scan A ea72eed454ce
story-map is a command published in the GitHub repository kirilxd/swe-interview-coach (80 stars, last pushed 1mo ago), licensed MIT. It adds 46 tokens to every session and 1,765 once invoked, about $0.0002 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-30.
Other commands, from other repositories
init
Install the formatters this repository needs, with every command visible before it runs.
brand-generate
Generate an on-brand document from a saved Brand Profile.
genshijin-compress
A command for safely shortening Markdown or text files into the genshijin style.
check-dev
Type-check a Z specification with fuzz.
adr-supersede
Create a new ADR that supersedes an existing one.
standup
Show a daily standup summary with completed, in-progress, and blocked tasks across all active epics.