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/webjsdev/webjs/webjs-list-todosnpx skills add webjsdev/webjs --skill webjs-list-todosgit clone --depth 1 https://github.com/webjsdev/webjsWhat 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.00153 | $0.00944 |
| Opus 5 | $0.00077 | $0.00472 |
| Sonnet 5 | $0.00031 | $0.00189 |
| Haiku 4.5 | $0.00015 | $0.00094 |
Grade A, and why
webjs-list-todos 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 — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.
List open work on the webjs project board
The webjsdev/webjs project tracks work on the GitHub Project at https://github.com/orgs/webjsdev/projects/1. This skill returns a current snapshot bucketed by Status, queried straight from GitHub. Do NOT consult internal task trackers or memory for this question.
Steps
-
Fetch the board state.
gh project item-list 1 --owner webjsdev --format json --limit 20000This is the ONE place a whole-board dump is legitimate, because this skill renders every card. Everywhere else, reach a single card from its issue node instead; see
.claude/gh-budget.md.The dump is expensive even so. It paginates the entire board (past 500 items) at 100 per page, and the GraphQL budget is scored in points rather than requests, so it is worth several hundred points of the hourly 5000. Two rules follow, and neither is optional:
- Call it ONCE per invocation and reuse the result. Never in a loop, and never a second time to answer a follow-up about one card.
- Do not re-run it to check one issue. If the user asks about a specific
number after this ran, use the single-node lookup in
.claude/gh-budget.md.
--limit 20000is load-bearing, not defensive: the default page is 30, so without it the board silently truncates and buckets come back wrong. -
Bucket by Status (Todo, In progress, Done) and pretty-print each bucket with issue numbers and titles. If the user explicitly asked for only one bucket (e.g. "what's in progress"), filter accordingly.
-
Default presentation. Show Todo and In progress always. Show Done only if the user asks for it, or if both Todo and In progress are empty.
-
For each item, show:
#<number> <title>. Wrap in markdown so the user can click through.
Example output shape
Todo:
#112 Elide browser download of display-only component modules
#113 Ship pre-built dist/ alongside src/ for @webjsdev/core
#114 Rate-limit defaultKey trusts unverified X-Forwarded-For
In progress:
(none)
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 · 75 lines · 153 tokens per session scan A 0606384c8d6c
webjs-list-todos is a skill published in the GitHub repository webjsdev/webjs (109 stars, last pushed 11d ago), licensed MIT. It adds 153 tokens to every session and 944 once invoked, about $0.0008 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
javascriptcore-garbage-collector
JSC GC reference for Bun. Use for use-after-free, JS object leaks, "collected too early", or when touching WriteBarrier, visitChildren, visitAdditionalChildren, JSRef, JSC::Strong/Weak, hasPendingActivity, ensureStillAlive, addOpaqueRoot, reportExtraMemoryAllocated, IsoSubspace, HeapAnalyzer, finalize.
implementing-jsc-classes-cpp
Implements JavaScript classes in C++ using JavaScriptCore. Use when creating new JS classes with C++ bindings, prototypes, or constructors.
implementing-jsc-classes-rust
Creates JavaScript classes using Bun's Rust bindings generator (.classes.ts). Use when implementing new JS APIs in Rust with JSC integration, prototypes, or constructors.
rust-system-calls
Guides using bunsys for system calls and file I/O in Rust. Use when implementing file operations, opening fds, or any syscall path instead of std::fs or libc.
slowest-tests
Find the top-N slowest test files in CI from a recent BuildKite run, optionally posting the results to a Slack channel as a formatted table. Use when asked to find slow CI tests, "what's making CI slow", or to post a slow-test report to Slack.
writing-bundler-tests
Guides writing bundler tests using itBundled/expectBundled in test/bundler/. Use when creating or modifying bundler, transpiler, or code transformation tests.