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-doc-syncnpx skills add webjsdev/webjs --skill webjs-doc-syncgit 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.00160 | $0.02215 |
| Opus 5 | $0.00080 | $0.01107 |
| Sonnet 5 | $0.00032 | $0.00443 |
| Haiku 4.5 | $0.00016 | $0.00221 |
Grade A, and why
webjs-doc-sync 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 yesterday.
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 — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Keep every webjs doc surface in sync with shipped behaviour
WebJs ships its documentation across SEVERAL independent surfaces. The recurring
failure mode is updating ONE (usually AGENTS.md) and silently missing the rest,
so the docs site, the marketing website, and the scaffold's per-agent rule files
drift behind the framework. HTTP-verb server actions (#488) shipped with
AGENTS.md updated but the docs site untouched, which is exactly the gap this
skill exists to close.
This skill is the authoritative map of every surface plus a deterministic change-type to surface mapping. Use it in two modes: per-change sync (a feature just shipped, bring docs in line) and audit (sweep already-shipped work for drift and file follow-ups).
The complete doc surface map
Treat this list as the universe. For any change, decide per surface whether it applies, then update or consciously skip each.
AGENTS.md(repo root) plus the skill at.agents/skills/webjs/(SKILL.md plus its 13references/:routing-and-pages,components,data-and-actions,auth-and-sessions,styling,client-router-and-streaming,optimistic-ui,typescript,testing,built-ins,runtime,service-worker,muscle-memory-gotchas).AGENTS.mdstays lean and points at the matchingreferences/<x>.mdfor the full reference. A new public API goes in BOTH theAGENTS.mdsummary and the relevantreferences/file.README.md(repo root). Update when a headline capability changes (the feature list, the quickstart, the runtime/template matrix).- The docs site:
website/app/docs/<topic>/page.ts. This is the user-facing documentation at webjs.dev/docs. Find the topic page(s) that cover the area (server-actions,routing,components,caching,configuration,client-router,data-fetching, ...) and update them.llms.txt/llms-full.txtare generated LIVE from the doc pages (no build step), so they never need a manual edit. A brand-new capability may need a NEW topic page plus a nav entry. - The marketing website:
website/. Update landing/feature copy when a headline capability changes. The changelog (website/app/changelog) is auto-generated from conventional PR titles, so NEVER hand-write it; the blog is manual. - The scaffold templates:
packages/cli/templates/. Every new app ships these. The scaffold is single-source:AGENTS.md(a thin pointer) plus the one cross-agent skill at.agents/skills/webjs/(SKILL.md +references/) that every tool reads. There are no per-agent rule files to keep in lockstep. A change to how apps are AUTHORED lands in the skill. When the change is to whatwebjs createGENERATES (a gallery/showcase demo, a template, the generated layout/home/theme/schema, a scaffold convention), this surface has more parts (thepackages/cli/lib/*generators, the repo-rootgallery/**app whose demos prepack bundles into the CLI, the scaffold tests, the framework template-matrix docs, the preview apps) and a mandatorygenerate + boot + webjs checkstep: use the dedicatedwebjs-scaffold-syncskill for those, and treat this doc-sync entry as the docs-only slice. The CLI help text inpackages/cli/is part of this surface for a new command or flag. - Example / dogfood apps (
examples/blog/CONVENTIONS.mdand friends). Update when a convention the example demonstrates changes.
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.
- yesterday First seen · 137 lines · 160 tokens per session scan A 26897e1c63a9
webjs-doc-sync is a skill published in the GitHub repository webjsdev/webjs (109 stars, last pushed 10d ago), licensed MIT. It adds 160 tokens to every session and 2,215 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.