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 skills add restarter/lets-workflow --skill protocol-trackergit clone --depth 1 https://github.com/restarter/lets-workflowWrote 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/restarter/lets-workflow/protocol-tracker)<a href="https://agentmods.dev/skills/restarter/lets-workflow/protocol-tracker"><img src="https://agentmods.dev/badge/skills/restarter/lets-workflow/protocol-tracker/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/restarter/lets-workflow/protocol-tracker"><img src="https://agentmods.dev/badge/skills/restarter/lets-workflow/protocol-tracker.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.00062 | $0.01676 |
| Opus 5.5 | $0.00025 | $0.00670 |
| Sonnet 5.5 | $0.00012 | $0.00335 |
| Haiku 4.5 | $0.00006 | $0.00168 |
Grade A, and why
protocol-tracker 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 2d 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 — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Protocol: tracker verb resolution
Load this before the first step that runs a ```lets-tracker block, unless its text is in your current context. Core rules keep the always-on part: never run a lets-tracker body as shell; never report a tracker change that did not happen; state-changing verbs stay gated under AUTO MODE; never append by overwriting a field.
1. Find the adapter (first, every time)
LETS_TRACKER (LETS Config; default beads) names the adapter.
found (check with Bash ls, not Glob) |
do |
|---|---|
.claude/lets/tracker-{LETS_TRACKER}.md exists |
Read it; also Read .claude/lets/tracker-{LETS_TRACKER}.board.md when present (user-owned board profile, overrides per key) |
| otherwise | the adapter is the auto-loaded .claude/rules/tracker-{LETS_TRACKER}.md copy (and its .board.md) already in your context - do NOT Read it again |
beads or unset |
resolve via tracker-beads.md - its bindings are the same bd ... calls LETS always ran (table-driven, golden-pinned) |
| a non-beads adapter whose file IS loaded | resolve via its file (e.g. an mcp__* tool); translate native <-> neutral statuses so surrounding logic stays adapter-agnostic |
a non-beads adapter named, NO file loaded (plugin upgraded, /lets:init / /lets:update not re-run) |
behave as none: do NOT run bd (wrong store), tell the user the tracker is not installed, nudge /lets:update |
One adapter file per LETS_TRACKER (beads | none | a custom one), installed by lets init; it binds the neutral verbs to concrete calls.
| tier | verbs |
|---|---|
| CORE | create, show, comment-add, set-status, close |
| OPTIONAL | comment-list, list-by-status, search, ready/stats, label/assignee/set-field |
2. Resolve a lets-tracker block
A fenced block tagged lets-tracker, one verb key=value per line (e.g. close task=<id> reason="..."), is a neutral verb CALL, not shell:
- identify
<verb>+ args; - look the verb up in the adapter's capability table and run ITS
binding(for beads the binding IS abdcommand - run that); - NEVER execute the block body as a shell command.
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.
- 2d ago First seen · 78 lines · 62 tokens per session scan A a6380ccf2915
protocol-tracker is a skill published in the GitHub repository restarter/lets-workflow (17 stars, last pushed today), licensed MIT. It adds 62 tokens to every session and 1,676 once invoked, about $0.0002 per session on Opus 5.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-09-28.
Other skills, from other repositories
dev-kit-setup
First-use bootstrap for the dev kit. Detects the team's issue tracker, discovers what it can via MCP/CLI, asks only what cannot be discovered, and persists the result to .claude/dev-kit.json in the consuming repo. Use when that file is missing, when the user asks to set up or reconfigure the kit, or when issue-fetch…
plan-backlog
Turn an idea or description (in any format) into a well-formed backlog — epics, user stories with acceptance criteria, sub-tasks — and create it in the team's tracker after approval. Elaborates progressively (guided, the default) or in one shot (--quick). Supports Jira, Linear, GitHub Issues, and Azure DevOps via…
issue-fetch
Fetch a work item (summary, status, description, acceptance criteria, comments) from the team's issue tracker and display a clean summary. Supports Jira, Linear, GitHub Issues, and Azure DevOps via adapters. Use whenever a prompt contains an issue reference (e.g. PROJ-1234, ENG-42.
issue-update
Update the work item after delivery - comment the PR link and a product-facing summary, and transition it to the team's review status. Supports Jira, Linear, GitHub Issues, and Azure DevOps via adapters. Use right after a PR is created for a story, or when the user asks to update/move a ticket.
plan-definition
Turn a spark (an idea, even a one-liner, in any format) into a clear product definition through a guided, Socratic discovery phase — frame the problem (users, outcome, metrics, constraints, non-goals), explore 2–4 directions with trade-offs, and produce an approved definition that then feeds plan-backlog. Facilitate…
work-story
Work a user story end to end — fetch the ticket, plan (with approval), implement, verify the applicable gates, self-review, open the PR, and update the tracker. Use when given an issue key like PROJ-1234, ENG-42, or.