Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add a-lottes/aSPARK/plugin install asparkWrote 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/a-lottes/aspark/story-time)<a href="https://agentmods.dev/skills/a-lottes/aspark/story-time"><img src="https://agentmods.dev/badge/skills/a-lottes/aspark/story-time/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/a-lottes/aspark/story-time"><img src="https://agentmods.dev/badge/skills/a-lottes/aspark/story-time.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.00067 | $0.01059 |
| Opus 5 | $0.00034 | $0.00530 |
| Sonnet 5 | $0.00013 | $0.00212 |
| Haiku 4.5 | $0.00007 | $0.00106 |
Grade A, and why
story-time 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 — 85 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/story-time — Specify (Product Owner)
You are running the Specify ceremony. The Product Owner challenges the idea; the outcome is a spec — or the insight that the idea shouldn't be built.
Input
The user's feature idea, usually passed as the command argument. If no idea was provided, ask for it before doing anything else.
Steps
- Name the feature. Derive a short kebab-case feature name from the idea
(e.g.
weekly-stats-dashboard). If.spark/<feature-name>/already exists, ask the user whether to rework that spec or pick a new name. - Resolve active lenses. The constitution is the single source of truth. If
.spark/constitution.mdhas a Project Profile & Active Lenses section, take the active lenses from it and pass their paths in step 3. If there's no constitution, do not resolve or apply lenses for this run — only give a lightweight nudge: glance at the repo (signals in${CLAUDE_PLUGIN_ROOT}/lenses/README.md), name the likely type(s) in one line (e.g. "this looks like a publicwebsite— anseolens would apply"), and point the user to/charterto record the profile so the lens activates for every phase. No lens is applied off a fallback guess; nothing is switched on without a constitution entry the user confirmed. - Delegate to the Product Owner. Invoke the
product-owneragent with: the user's idea verbatim, the feature name, the path.spark/<feature-name>/spec.md, and the spec template from${CLAUDE_PLUGIN_ROOT}/templates/spec.md. Point it at.spark/constitution.mdif that file exists — the spec must live within it. Pass the paths of any active lenses (${CLAUDE_PLUGIN_ROOT}/lenses/<name>.md) so the PO captures their concerns as measurable NFRs. - Relay, don't guess. If the agent returns open questions instead of a spec, put them to the user (use AskUserQuestion where the options are enumerable), then re-invoke the agent with the answers. Repeat until the spec is drafted.
- Run the Clarify pass. Once a draft exists, have the PO scan it for ambiguity against its taxonomy (functional boundaries, data, permissions, error/edge cases, NFRs, integrations, UX states, out-of-scope). Put the returned clarification questions to the user — AskUserQuestion for enumerable choices — and re-invoke the agent to fold each answer into the right section and log it in the spec's Clarifications table. Repeat until no high-impact ambiguity is left unresolved or unparked. Don't skip this because the draft "looks complete" — that's exactly when a whole category is silently missing.
- Present the result. Show the user: the sharpened problem statement, the story list with MoSCoW priorities, the non-functional requirements, the named risks/assumptions, what was clarified, and what was cut to Out of Scope. If the PO recommends not building the feature, lead with that recommendation and its reasons.
- Iterate. Fold the user's feedback back into the spec via the agent until the user is satisfied.
- Walk the gate. Go through the SPEC GATE checklist at the bottom of
the spec together with the user:
- If the feature is UI-facing, the Design Review section is still empty
— the gate stays open. Set status
draftand hand off to/look-and-feel. - If design review is N/A (record why), ask the user for approval. Only
on their explicit yes: set status
approvedand check the gate boxes that are genuinely true.
- If the feature is UI-facing, the Design Review section is still empty
— the gate stays open. Set status
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 · 85 lines · 67 tokens per session scan A 46eedabda439
story-time is a skill published in the GitHub repository a-lottes/aSPARK (19 stars, last pushed 8d ago), licensed MIT. It adds 67 tokens to every session and 1,059 once invoked, about $0.0003 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 skills, from other repositories
github-pr-review
Handles PR review comments and feedback resolution. Use when user wants to resolve PR comments, handle review feedback, fix review comments, address PR review, check review status, respond to reviewer, verify PR readiness, review PR comments, analyze review feedback, evaluate PR comments, assess review suggestions, or…
github-pr-creation
Creates GitHub Pull Requests with automated validation and task tracking. Use when user wants to create PR, open pull request, submit for review, or check if ready for PR. Analyzes commits, validates task completion, generates Conventional Commits title and description, suggests labels. NOTE - for merging existing…
review-spec
A workflow for comparing an existing feature specification with the project's review checklist and implementation. It looks for missing requirements, differences between documented screens and actual screens, and lessons from rejected submissions.
x-spec
A system-planning guide that turns a vague idea into a set of linked design documents. It defines goals, modules, interfaces, data, workflows, and ways to check the result.
x-multi-llm-align
A review process in which two sub-agents examine an API, data format, event schema, or workflow from their separate implementation perspectives. The user passes documents and feedback between them over multiple rounds.
x-cr
A software-correctness investigation skill for finding why code behaves differently from what was expected. It uses evidence from code paths, specifications, tests, logs, and changes to assess possible causes.