web-drift

web-drift is a skill for Claude Code from dwarvesf/dwarves-kit. It costs 230 tokens per session (3,375 once invoked), scanned A, original, MIT.

An orchestrator that turns an idea, brief, or document into a backlog: a planned set of development work. It learns the team’s tracker rules and supports Jira, Linear, GitHub Issues, and Azure DevOps.

In plain words
What is it for?
Use it to read source material, include Figma context when needed, draft epics and INVEST user stories, and create the approved backlog in the configured tracker.
Why use it?
It helps product owners create consistent user stories, acceptance criteria, and subtasks without manually studying the tracker or formatting every item. Nothing is created until the draft is approved.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter. Also seen: mentions subagents.

Part of the kit plugin — 11 skills, 38 commands, 30 agents, 10 hooks shipped together

Good fit Use it to read source material, include Figma context when needed, draft epics and INVEST user stories, and create the approved backlog in the configured tracker.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/dwarvesf/dwarves-kit/web-drift
Install

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.

Any agent
npx skills add dwarvesf/dwarves-kit --skill web-drift
Clone the repo
git clone --depth 1 https://github.com/dwarvesf/dwarves-kit

Made for: Claude Code.

Or install kit, the plugin that ships this one along with the rest of its 11 skills, 38 commands, 30 agents, 10 hooks.

Wrote 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.

agentmods badge for web-drift

README.md
[![agentmods](https://agentmods.dev/badge/skills/dwarvesf/dwarves-kit/web-drift.svg)](https://agentmods.dev/skills/dwarvesf/dwarves-kit/web-drift)
Your own site
<a href="https://agentmods.dev/skills/dwarvesf/dwarves-kit/web-drift"><img src="https://agentmods.dev/badge/skills/dwarvesf/dwarves-kit/web-drift.svg" alt="Measured on agentmods" height="20"></a>
Per session 230 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,375 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00230 $0.03375
Opus 5 $0.00115 $0.01688
Sonnet 5 $0.00046 $0.00675
Haiku 4.5 $0.00023 $0.00337

Measured 3d ago against content hash 0b2f2f9581b4, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade A, and why

web-drift 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 3d 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.

skills/web-drift/SKILL.md · 164 lines

How it starts

The opening of the file, as written. The whole thing — 164 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Web drift

Overview

Audit every declared public website against the agent-readiness contract and file the fixes. This is the live-site instance of docs/patterns/audit-loop.md: enumerate, verdict with evidence, apply, gate through the operator.

kit:ci-drift already reaches the network, so reaching outward is not the novelty. What is new is the surface: no in-kit loop audits a public HTTP surface, and the fix lands in whichever repo builds that site, never here.

The contract this measures: an agent that runs no JavaScript should be able to find the site, fetch a page, read its content, tell a dead URL from a live one, and call its API if it has one. A deploy can break any of those silently, and nothing in a repo notices.

The four slots (per the audit-loop pattern)

Slot This instance
Item set one (site, check) pair. The site axis is WEB_DRIFT_SITES, enumerated by python3 lib/webcheck/webcheck.py sites (comma or whitespace separated, never colon: every URL carries one). The check axis is fixed by the contract below. A site is not the item: a site with one hard fail and eight warnings has no single verdict, and a tier that does not apply has to drop out of the denominator, which only works per check. WEB_DRIFT_SITES unset means no sites are declared: report that and stop. The kit ships no hostname.
Contract each site stays discoverable, fetchable, and understandable without JavaScript: the groundwork tier (robots, sitemap, llms.txt, unknown-path status, markdown negotiation with Vary), the page tier (title, meta description, one h1, 500+ visible characters, canonical, OG, JSON-LD, internal links), and the API tier where the site exposes an API
Evidence class live HTTP responses, quoted from webcheck audit output. A hard fail and a warning are each quoted evidence. No response at all is not evidence.
Apply mechanics no code edit lands in this repo. Each FIX becomes one row appended to the _meta/BACKLOG.md of the CONSUMER repo that owns the site's source, in the shared kanban format (| ID | Item | Notes & source | Status |, status queued). The board CLI has no add verb, so the row is written directly; bin/board board --backlog-file <path> (in the kit install root) renders it back and bin/board set <ID> <state> moves it afterwards. Plus a report listing every verdict. UNSURE items go in the report for the operator, never into a row. A consumer with no _meta/BACKLOG.md has nowhere to file: the refusal guard (Step 1) stops the whole run against that consumer rather than falling back to a local ledger this skill would then own (ID-484).
Closing evidence a row closes only when a later webcheck audit <url> shows that (site, check) pair green. The next run re-audits every site carrying an open row FIRST and reports each open row as still-failing or now-green. Without that the loop cannot fail, because a filed row proposes a fix and nothing re-tests it.

Read the full file on GitHub · 164 lines

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.

  1. 3d ago First seen · 164 lines · 230 tokens per session scan A 0b2f2f9581b4

Subscribe to this mod's changes

web-drift is a skill published in the GitHub repository dwarvesf/dwarves-kit (11 stars, last pushed yesterday), licensed MIT. It adds 230 tokens to every session and 3,375 once invoked, about $0.0011 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-09-04.