SpecStory is a local-first tool that records and indexes conversations with AI coding assistants so developers can search, reuse, and share their solutions. It is for preserving coding decisions, snippets, and other knowledge across projects and development tools. Its catalogue skills and commands process saved sessions into reusable agent skills and connect the workflow to coding agents.
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 agentmods add skills/specstoryai/getspecstory/workthreadsnpx skills add specstoryai/getspecstory --skill workthreadsgit clone --depth 1 https://github.com/specstoryai/getspecstoryWrote 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/specstoryai/getspecstory/workthreads)<a href="https://agentmods.dev/skills/specstoryai/getspecstory/workthreads"><img src="https://agentmods.dev/badge/skills/specstoryai/getspecstory/workthreads.svg" alt="Measured on agentmods" 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.00126 | $0.01274 |
| Opus 5 | $0.00063 | $0.00637 |
| Sonnet 5 | $0.00025 | $0.00255 |
| Haiku 4.5 | $0.00013 | $0.00127 |
Grade A, and why
workthreads 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 6d 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 — 89 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Workthreads
A lead needs a weekly answer across the team's repos: what work happened this week, what got
finished, and what is still open and needs a next step. Workthreads produces that rollup
from SpecStory histories - the .specstory/history transcripts your coding agents already write.
It reports lines of work and their lifecycle (new / open / recently closed).
A deterministic engine (scripts/workthreads.mjs threads) does the retrieval, clustering, and
classification; you do the synthesis - you turn its evidence into the lead's weekly report.
Do not try to read raw transcripts yourself; they can be hundreds of thousands of lines. Run the
engine and write the rollup from its output.
This skill is harness-portable (agentskills.io format). Where it names a specific tool
(e.g. AskUserQuestion), treat that as "use your harness's equivalent; fall back to plain chat."
How the engine splits the work
- The engine groups the window's beats by project and clusters them into threads (a line
of work that can span several sessions). It assigns each thread one lifecycle status relative
to today:
- new - first activity within the last 7 days.
- open - unresolved, still active (the open loops).
- closed - latest outcome was success and the thread has gone quiet; flagged reverted
when a beat ran a rollback command (
git revert/git reset --hard/git checkout -- ...).
- Output is deterministic (stable sort, no wall-clock timestamps in the body), so two runs on the same corpus are byte-identical.
Default flow: the weekly rollup
-
Index the corpus into workthreads' own DB. Point at the team's repos and build/update it:
node "${CLAUDE_SKILL_DIR}/scripts/workthreads.mjs" index --projects <parent-of-repos> --db <db> # or a single tree: --scan <root> or a single history dir: --dir <dir> -
Run
threadscross-project for the last 7 days and capture the evidence:node "${CLAUDE_SKILL_DIR}/scripts/workthreads.mjs" threads --db <db> --days 7 # human digest node "${CLAUDE_SKILL_DIR}/scripts/workthreads.mjs" threads --db <db> --days 7 --json # machine-readableThe digest prints, per project, three sections in order - New, Open, Recently closed - each thread with its evidence refs (
path:line), last-activity date, status, and arevertedmarker.--jsonemits an array of threads (project,status,reverted, the files touched, last-activity date).
What ships with it
18 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.
- docs/2026-06-24-WORKTHREADS-AS-BUILT.md 5.5 KB
- fixtures/threads-bar/.specstory/history/2026-06-06_09-00-00Z-scaffold-search-index.md 282 B
- fixtures/threads-bar/.specstory/history/2026-06-20_11-00-00Z-fix-search-index.md 354 B
- fixtures/threads-bar/.specstory/history/2026-06-21_15-00-00Z-start-notif-badge.md 273 B
- fixtures/threads-foo/.specstory/history/2026-06-02_09-00-00Z-begin-checkout-flow.md 503 B
- fixtures/threads-foo/.specstory/history/2026-06-09_10-00-00Z-finish-checkout-flow.md 550 B
- fixtures/threads-foo/.specstory/history/2026-06-12_14-00-00Z-payment-retry-rollback.md 905 B
- install.sh 1.1 KB runs code
- package.json 304 B
- README.md 3.2 KB
- scripts/lib/db.mjs 3.8 KB runs code
- scripts/lib/discover.mjs 3.3 KB runs code
- scripts/lib/indexer.mjs 7.4 KB runs code
- scripts/lib/parse.mjs 10 KB runs code
- scripts/lib/patterns.mjs 14 KB runs code
- scripts/lib/threads.mjs 12 KB runs code
- scripts/workthreads.mjs 3.3 KB runs code
- tests/threads.test.mjs 8.4 KB runs code
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.
- 6d ago First seen · 89 lines · 126 tokens per session scan A 0c74ebfbe38f
workthreads is a skill published in the GitHub repository specstoryai/getspecstory (1,321 stars, last pushed yesterday), licensed Apache-2.0. It adds 126 tokens to every session and 1,274 once invoked, about $0.0006 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
backseat-driver-testing
Testing strategies for Calva Backseat Driver MCP tools. Use when: Testing Backseat Driver, validating tool updates, testing structural editing workflows, verifying REPL evaluation with who-tracking, testing shadow-cljs runtime discovery and targeting, testing output log filtering, testing load-file tool, smoke testing…
backseat-driver-internals
Backseat Driver extension internals — Ex framework contracts, app-db state architecture, MCP socket server lifecycle, enrichment system, Datascript output log, activation sequences, and namespace reference. Use when: modifying core extension code, debugging state issues, working with app-db or Ex framework…
backseat-driver
Effective use of the Backseat Driver extension and its tools for Clojure interactive programming. Use when: working in Clojure (including all dialects and runtimes) project, be it reading, planning, developing, or evaluating code in the REPL, looking up function documentation or ClojureDocs examples, choosing REPL…
editing-clojure-files
Structural editing of Clojure files using Backseat Driver tools. Use when editing or planning edits: creating/adding/inserting/replacing/deleting top-level forms, fixing bracket balance, resolving indentation issues, planning multi-edit sequences, recovering from failed edits, or working with Rich Comment Forms in…
e2e-testing
E2E test authoring for Backseat Driver. Use when: writing, modifying, or debugging e2e tests under e2e-test-ws/, adding new MCP test scenarios, investigating test failures, understanding test infrastructure, or working with files matching test.cljs in the e2e workspace.
icon-jetbrains
Create or review IntelliJ New UI SVG icons, theme variants, sizes, and palette.