SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more). It groups the window's sessions into threads of work per project and labels each new / open / recently closed, so a lead sees what shipped, what is still an open loop, and what was just started.
SkillScore83Maintained
Automatic
◆Project Management pack
Last verified 8/13/2026
What it changes
Passed 18 of 22 test cases with the skill, and 5 of 22 without it.
Without skill21%
With skill83%
Checks it passed that the model alone missed
Requires Node.js version 22.5 or higher.
Includes the --days 14 and --json options.
Passes --days 10 to the threads CLI command.
and 20 more in the full report
16 fixed4 passed either way3 still failing1 broke
Pass-rate lift
+63 pp
Tokens
-3%
Agent turns
0%
Response time
-63%
Model gemini-3.6-flashMeasured 8/13/2026v120 of 24 cases passed with skill · 22 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 16 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 16
Prompt
A team lead requests a thread analysis for a custom timeframe of 10 days instead of the default timeframe. What parameter is supplied to the thread extraction CLI?
What was checked, without and with the skill
Checked
Without skill
With skill
Passes --days 10 to the threads CLI command.
Missed
Passed
case-18 · gemini-3.6-flash · 8/13/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md77 lines2 filesincludes scripts
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 threads cross-project for the last 7 days and capture the evidence: