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 shennawardana23/skillme --skill ai-regression-testinggit clone --depth 1 https://github.com/shennawardana23/skillmeWrote 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/shennawardana23/skillme/ai-regression-testing)<a href="https://agentmods.dev/skills/shennawardana23/skillme/ai-regression-testing"><img src="https://agentmods.dev/badge/skills/shennawardana23/skillme/ai-regression-testing/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/shennawardana23/skillme/ai-regression-testing"><img src="https://agentmods.dev/badge/skills/shennawardana23/skillme/ai-regression-testing.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.00108 | $0.01690 |
| Opus 5 | $0.00054 | $0.00845 |
| Sonnet 5 | $0.00022 | $0.00338 |
| Haiku 4.5 | $0.00011 | $0.00169 |
Grade A, and why
ai-regression-testing 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 12d 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 — 188 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AI Regression Testing
Testing patterns for AI-assisted development, aimed at a specific failure mode: when the same model writes a fix and then reviews that fix, it carries the same blind spot into both steps. The review says "looks correct" and the bug survives.
AI writes fix -> AI reviews fix -> AI says "looks correct" -> bug still there
This isn't a reason to distrust AI-written code generally — it's a reason to make the check mechanical instead of another round of judgment from the same source. A test either passes or it doesn't; it has no blind spots to share with the author.
The pattern to watch for: parallel-path drift
The single most common AI-introduced regression in codebases that have two code paths returning "the same" data — a sandbox/mock mode next to a real database path, or a feature-flagged variant next to the default — is that a fix lands on one path and not the other. The model reasons about the path it's looking at, patches it correctly, and doesn't notice the sibling path exists unless something forces it to check.
// BAD: sandbox path returns a different field set than production
func GetProfile(w http.ResponseWriter, r *http.Request) {
if isSandboxMode(r) {
writeJSON(w, sandboxProfile{ID: "u1", Email: "[email protected]", Name: "A"})
return // forgot NotificationSettings here
}
p := loadProfileFromDB(r.Context())
writeJSON(w, profile{ID: p.ID, Email: p.Email, Name: p.Name,
NotificationSettings: p.NotificationSettings})
}
A human reviewing "did the fix work" by hitting the production endpoint will see it work — the sandbox path's drift is invisible unless something tests both paths against the same contract.
Test the contract, not the implementation
Define the response contract once, then assert both paths satisfy it:
package profile_test
import (
"encoding/json"
"net/http/httptest"
"testing"
)
// requiredFields is the contract every code path must satisfy.
// notification_settings was added here after a bug shipped without it.
var requiredFields = []string{
"id", "email", "name", "notification_settings",
}
func TestGetProfile_AllPaths_SatisfyContract(t *testing.T) {
cases := []struct {
name string
sandbox bool
}{
{"production path", false},
{"sandbox path", true},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
rr := httptest.NewRecorder()
req := newTestRequest(t, tc.sandbox)
GetProfile(rr, req)
var body map[string]any
if err := json.NewDecoder(rr.Body).Decode(&body); err != nil {
t.Fatalf("decode response: %v", err)
}
for _, field := range requiredFields {
if _, ok := body[field]; !ok {
t.Errorf("%s: missing required field %q", tc.name, field)
}
}
})
}
}
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 12d ago First seen · 188 lines · 108 tokens per session scan A 0e0f94dc4505
ai-regression-testing is a skill published in the GitHub repository shennawardana23/skillme (2 stars, last pushed 15d ago), licensed Apache-2.0. It adds 108 tokens to every session and 1,690 once invoked, about $0.0005 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
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code.
fix-bug
Resolves a single bug from any starting evidence — Dash0 telemetry (span / log / web event / RUM error link), raw stack trace, error message, code pointer (file:line), screen recording, Linear ticket URL, or free-text symptom. Classifies the input, triages complexity (Phase 0.5) to pick between a fast lane and a full…
storybook
Scaffolds, audits, and tests Storybook stories for React (web) and React Native / Expo (native) component libraries. Generates three artefacts in two files per invocation: a visual regression .stories.tsx file containing a Default story (variants grouped into a single snapshot) and a Playground story (interactive args…
aw-setup
One-time (but safely re-runnable) setup flow that scaffolds a project's aw-tester aw-target: detects auth strategy, captures storage state, writes .claude/aw-targets/local.yml, and validates with a smoke spec. Re-runs detect the existing aw-target and only re-prompt for what broke or changed. Triggers on "/aw-setup"…
aw
Ships autonomous, end-to-end coding work — implement a feature or fix, all the way to a tested draft PR — from a single opt-in entry point. Detects the task tier (Micro / Lite / Full) and routes: Micro/Lite run single-pass in this context; Full hands off to the aw-planner → aw-executor agents. Use when the user asks…
polish
Re-runnable pre-PR quality gate for the current branch. Composes two existing passes over the branch diff: a broad pr-reviewer pass (read-only review via the branch's open PR, which pr-reviewer requires) and a code-quality simplify pass (applies Class M mechanical refactors behind a confidence ≥ 90 % gate, reverting…