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/cahenesy/throughline/tdd-authornpx skills add cahenesy/throughline --skill tdd-authorgit clone --depth 1 https://github.com/cahenesy/throughlineWrote 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/cahenesy/throughline/tdd-author)<a href="https://agentmods.dev/skills/cahenesy/throughline/tdd-author"><img src="https://agentmods.dev/badge/skills/cahenesy/throughline/tdd-author.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 | $0.00059 | $0.09722 |
| Opus 5 | $0.00030 | $0.04861 |
| Sonnet 5 | $0.00012 | $0.01944 |
| Haiku 4.5 | $0.00006 | $0.00972 |
Grade A, and why
tdd-author 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 5d 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 — 602 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TDD authoring
Run once after a PRD update. YOU decide how many TDDs to write, and their scope,
based on what changed. Persist each to docs/tdd/NNNN-<slug>.md.
Relationship to superpowers (read first)
This skill IS the technical-design step for throughline — the governance-producing
equivalent of superpowers:writing-plans. When the user invokes /tdd-author, do
NOT also invoke superpowers:brainstorming or writing-plans; this skill owns the
phase and its output is the TDD/ADR design-of-record (see [[ADR 0001]] in
docs/adr/). If a docs/superpowers/plans/* (or specs/*) file or other prior
design notes exist, READ and fold in their substance rather than redoing the work;
they are transient input, never authoritative, never relocated. The canonical
record is docs/tdd/ + docs/adr/. A throughline TDD is a DESIGN, not a
step-by-step build script — the bite-sized failing-test-first task breakdown is
/build-tdds's job, so do not reproduce it here.
0. Resume check
Resolve the plugin tree from the first set of CLAUDE_PLUGIN_ROOT /
GROK_PLUGIN_ROOT (env names; fail closed via tl_plugin_root), then source
the draft helper:
_tl_src="${CLAUDE_PLUGIN_ROOT:-${GROK_PLUGIN_ROOT:-}}"; . "${_tl_src}/scripts/lib/plugin-root.sh"
then source "$(tl_plugin_root)/scripts/lib/drafts.sh".
If sourcing fails (non-zero exit — the helper file is missing or broken),
warn the user that draft persistence is unavailable and proceed in degraded
mode WITHOUT it (the design pass still works; FR-46's recovery guarantees do
not apply this run). Do not invoke any tl_draft_* function in degraded mode.
Otherwise resolve the draft path once: dpath="$(tl_draft_path tdd-author)".
- If that command exits non-zero — neither
CLAUDE_PLUGIN_DATAnorGROK_PLUGIN_DATAis set and writable, andtl_drafts_dirhas printed a diagnostic to stderr — enter the same degraded mode: warn the user and proceed without persistence. - Otherwise pick exactly one of three mutually exclusive cases:
tl_draft_exists tdd-authoris true → a parseable draft is present. Runtl_draft_summary tdd-authorand present its output to the user via a structured multiple-choice question with optionsResume from draft/Discard and start fresh. PRD-drift check: comparegit log -1 --format=%h -- docs/PRD.md(the short SHA of the PRD's last-touching commit — NOTgit rev-parse --short HEAD docs/PRD.md, which parses the path as a revision and exits 128) to the draft'sprd_rev_at_start; if they differ, add this line to the resume prompt:PRD has advanced since this draft was started (<old> → <new>). Your interview answers may no longer apply.— the user decides resume vs. discard with the drift surfaced. On resume, runtl_draft_read tdd-authorand use itsinterviewanddraft_docas your starting state (do NOT re-elicit anything already ininterview); the draft already exists, so do NOT calltl_draft_init. If the user resumes DESPITE drift, re-run step 1's PRD-delta logic from the NEW PRD SHA and re-present the step-3 PLAN before authoring — the drift may change the TDD set. On discard,tl_draft_discard tdd-author.tl_draft_exists tdd-authoris false BUT[ -f "$dpath" ]is true → a file is present but does not parse. Warn "found a draft at$dpathbut it is not parseable — ignoring" and proceed as for no draft. Do NOT calltl_draft_inithere; lazy init at step 5 overwrites the bad file atomically. (tl_draft_existsreturns non-zero for BOTH "no file" AND "file present but unparseable", so the explicit[ -f "$dpath" ]test is what disambiguates them — without it this warning path is unreachable and a corrupt draft would be silently treated as "no draft".)- Neither → no draft. Simply proceed; do NOT call
tl_draft_inithere.
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.
- 5d ago First seen · 602 lines · 59 tokens per session scan A 9f33c262fd5a
tdd-author is a skill published in the GitHub repository cahenesy/throughline (2 stars, last pushed 19d ago), licensed MIT. It adds 59 tokens to every session and 9,722 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-31.
Other skills, from other repositories
audit-context
Evaluates ambient context artifacts (CLAUDE.md, memory, local skills, settings hooks) for compatibility with swarm governance. Returns a classified report so users can address interference before launching a team.
agentic-workflow-audit
Use when reviewing or auditing an existing agent / LLM-pipeline architecture — e.g. 'is my workflow actually decomposed or secretly a mega-agent?', 'are my task boundaries and success criteria right?' — even without the word 'audit'. | 要檢視/review/稽核既有 agent 或 LLM pipeline 的架構,或問「有沒有拆好」「是不是變成 mega agent」「task…
writing-mode
Writing mode operational spec for the team lead. Returns lead identity, facilitator identity, ownership boundaries, editorial baseline, suggest-members guidance, and phase arc for writing-mode teams.
general-mode
General mode operational spec for the team lead. Returns lead identity, facilitator identity, suggest-members guidance, and phase arc for general-purpose teams. The silent fallback when outcomes fit no specific mode, and a wrapper base for custom workflows — it has no shortcut command.
citation-receipts
Systematic per-citation verification protocol for academic writing. MUST be used whenever writing content that cites sources — papers, blog posts, SOTAs, or any document making factual claims about external work. Triggers (FR + EN) on any writing task involving references, citations, or bibliographic claims, or when…
charter
Establish or amend the project constitution — the standing principles and constraints that bind every SPARK phase. Use once at project start to give the team its ground rules, or any time a project-wide decision (stack choice, quality bar, non-negotiable) changes and should apply to all future features.