Agent skill

Systematic Testing

by adam-s in adam-s/intercept

Bottom-up systematic validation for multi-layer architectures.

MITAuto-check passedBackend & APIs

Install Systematic Testing

skills CLI
$ npx skills add adam-s/intercept --skill systematic-testing -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install adam-s/intercept systematic-testing --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/adam-s/intercept.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/systematic-testing .claude/skills/systematic-testing && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
systematic-testing
GitHub stars
189
Token cost
~1.4k tokens
SKILL.md length
445 words
Files
1
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Bottom-up systematic validation for multi-layer architectures.

  • Testing domain plugins
  • SKILL.md covers The Four Layers, Per-Layer Validation, Gate Sequence and Fix Before Ascending, plus 1 more section
  • Calls curl and jq
  • Browser connections

What it does

Systematic Testing is an agent skill from adam-s/intercept. Bottom-up systematic validation for multi-layer architectures. Use when testing domain plugins, proxy routes, API endpoints, browser connections, traffic capture, codegen output, or dashboard UI. Test each layer independently before testing integration.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Project scaffolding and REST APIs. The repository describes itself as: Turn any website into a typed JSON API using self improving agents. The licence is MIT.

When your agent uses it

  • Testing domain plugins
  • Browser connections
  • Traffic capture

Example prompts

  • “/systematic-testing”

What it can do on your machine

Read from SKILL.md and the folder at commit 6451b89. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • jq

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Systematic Testing loads about 1.4k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 445 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from adam-s/intercept at commit 6451b89, republished under its MIT licence (© adam-s). 445 words, ~1,361 tokens.

Download SKILL.mdSave it as .claude/skills/systematic-testing/SKILL.md (or your agent's skills folder).
name
systematic-testing
description
Bottom-up systematic validation for multi-layer architectures. Use when testing domain plugins, proxy routes, API endpoints, browser connections, traffic capture, codegen output, or dashboard UI. Test each layer independently before testing integration.

Systematic Validation

When testing or debugging a multi-layer system, work bottom-up. Never test a higher layer until the layer below it is verified. This approach isolates failures to the specific layer where they occur.

The Four Layers

LayerNameKey FilesValidation
L1Domain Plugindomains/<name>/src/routes.tsRoutes registered, handler logic correct
L2API Proxyapps/api/src/register-domains.ts + packages/browser/src/handler/api-proxy.tsEndpoint responds, browser dispatches correctly
L3Browser + Traffic Capturepackages/browser/src/handler/index.tsBrowser connected, navigation works, CDP traffic captured
L4Dashboard UIapps/web/src/app/(dashboard)/Data renders, interactions work, states handled

Dependency chain: L1 → L2 → L3 → L4


Per-Layer Validation

L1 — Domain Plugin

Verify the route handler logic is correct before the browser is involved.

bash
# List all registered domains and their routes
curl -s http://localhost:3001/api | jq '.domains'

# Verify a specific route exists
curl -s http://localhost:3001/api | jq '.domains[] | select(.name == "<domain>")'

Common L1 failures:

  • handler function not exported from routes.ts
  • DomainRoute type mismatch (missing handler or targetUrl)
  • Route path typo (e.g., /search vs /searches)

L2 — API Proxy

Browser must be connected before proxy routes work. Note: the Access Gap table (browser vs direct HTTP status per endpoint) is generated during discovery Step 2e — this layer uses those results but does not regenerate them.

bash
# Check browser health
curl -s http://localhost:3001/browser/health | jq '.browser'

# Call a domain route directly
curl -s "http://localhost:3001/api/<domain>/<path>?<params>" | jq '.'

Expected browser health when connected:

json
{ "active": true, "ready": true, "profile": "<profile-name>", "domain": null }

Common L2 failures:

  • 503 { "error": "Browser not connected" } → Connect the browser first via WebSocket
  • 404 → Route not registered in register-domains.ts or path typo
  • 500 → Handler threw an error — check server logs

L3 — Browser + Traffic Capture

Connect the browser and verify it can navigate and capture traffic.

bash
# After connecting via WebSocket at ws://localhost:3001/browser/stream?profile=<name>&url=<url>

# Verify connected browser can navigate
curl -s "http://localhost:3001/api/<domain>/search?q=test" | jq '.total'

# Check traffic buffer (for Type B2 domains)
curl -s http://localhost:3001/browser/traffic | jq '[.entries[] | {url: .url[:100], status}]'

# Clear traffic buffer before a Type B2 test
curl -s -X DELETE http://localhost:3001/browser/traffic | jq '.'

Type classification:

  • Type A — targetUrl proxy. Browser navigates to target, headers forwarded.
  • Type B — handler with page.evaluate(). Browser navigates, DOM parsed server-side.
  • Type B2 — handler with traffic capture. Browser navigates, page JS fires XHR/fetch, buffer read.
  • Type C — handler with browserFetch(). Single same-origin request, no navigation.

Common L3 failures:

  • Browser navigates but page renders empty (stubborn page, CAPTCHA) → check page content with page.evaluate(() => document.body.innerText.slice(0, 500))
  • Traffic buffer empty after navigation (Type B2) → XHR/API calls not firing; increase wait time
  • RegionalDomain mismatch → filter extracted URLs to correct domain

Show full SKILL.md (139 more words)Show less
L4 — Dashboard UI

Use the visual-dev skill for screenshot-based validation.

Validation checklist:

  • Empty state renders (no data, no errors)
  • Loading state shows skeleton/spinner
  • Data renders correctly after API call
  • Error state shows clear message when API fails
  • Interactive elements (search, click) trigger correct API calls and update state
bash
# Quick smoke test — does the page load?
curl -s http://localhost:3000/<page> | grep -o '<title>[^<]*</title>'

Gate Sequence

Run this sequence before calling a phase complete:

bash
# Gate 1: Domain routes registered
curl -s http://localhost:3001/api | jq '.domains[].name'

# Gate 2: Browser connected and proxy works
curl -s "http://localhost:3001/api/<domain>/search?q=test" | jq '.total'

# Gate 3: Real data returned (not empty, not error)
curl -s "http://localhost:3001/api/<domain>/search?q=<real-query>" | jq '.events[0].name // .performers[0].name // .[0]'

# Gate 4: Listings/detail data returns
curl -s "http://localhost:3001/api/<domain>/listings/<id>" | jq '.listings[0]'

All four must pass before building UI.


Fix Before Ascending

When a test fails at any layer, fix it before moving up. If L3 traffic capture is empty, check L2 proxy (is the right route called?), then L1 handler (is the wait time sufficient?). Don't move to L4 UI until L3 is clean.

When Tests Fail Unexpectedly

Use the debug-logs skill to add targeted DEBUG() calls inside route handlers to observe what the browser page actually contains when the handler runs.

© adam-s, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/systematic-testing of adam-s/intercept.

Open the folder on GitHubat commit 6451b89

Compare with similar skills

Systematic Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Systematic Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Systematic Testing this skilladam-s/intercept189—~1.4kAutomated safety check: PassMIT
Foundry Agent Syncgithub/awesome-copilot40k1 repos~2.1kAutomated safety check: PassMIT
Project GeneratorLeoYeAI/openclaw-master-skills2.2k—~4.5kAutomated safety check: PassMIT
FastAPI Project Templateswshobson/agents40k11 repos~901Automated safety check: PassMIT
NestJS ExpertJeffallan/claude-skills12k—~2kAutomated safety check: PassMIT
Add API Resourcewso2/agent-manager105—~1.1kAutomated safety check: PassApache-2.0

Similar skills

  • Foundry Agent Sync

    github/awesome-copilot

    Official

    Create and synchronize prompt-based AI agents directly within Azure AI Foundry via REST API, from a local JSON manifest.

    40k GitHub starsUsed in 1 repo~2.1k tokens
    Backend & APIsAuto-check passed
  • Project Generator

    LeoYeAI/openclaw-master-skills

    Automatically transform requirement documents or natural language descriptions into complete full-stack projects (Java backend + Vue frontend) with MANDATORY interactive tech stack selection.

    2.2k GitHub stars~4.5k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • Scaffolds FastAPI projects with a layered app layout, dependency injection through Depends, async handlers and database access, middleware and pytest setup.

    40k GitHub starsUsed in 11 repos~901 tokens
    Backend & APIsAuto-check passed
  • NestJS Expert

    Jeffallan/claude-skills

    Scaffolds NestJS modules, controllers, services, DTOs and guards for TypeScript backends, with validation, JWT and Passport auth, Swagger docs and unit and E2E tests.

    12k GitHub stars~2k tokensUpdated 4 days ago
    Backend & APIsAuto-check passed
  • Add API Resource

    wso2/agent-manager

    Add or change a REST API resource in agent-manager-service (the Go control plane).

    105 GitHub stars~1.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Official

    Generate or scaffold ASP.NET Core code — Razor Pages, Blazor components, MVC controllers, views, and Minimal API endpoints — without using ASP.NET Core CLI scaffolding/code-generation tools.

    5.6k GitHub starsUsed in 1 repo~3.2k tokens
    DevelopmentAuto-check passed

More from adam-s/intercept

All 10 skills in this repo
  • API Discovery

    adam-s/intercept

    Discover any website's API and create domain plugins with proxy routes.

    189 GitHub stars~621 tokensUpdated 2 mo ago
    Auto-check passed
  • App

    adam-s/intercept

    Build a complete application from a short description. An agent skill from adam-s/intercept.

    189 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Debug Logs

    adam-s/intercept

    Iterative debugging with targeted logs. An agent skill from adam-s/intercept.

    189 GitHub stars~1.1k tokensUpdated 2 mo ago
    Auto-check passed
  • Use sub-agents to iteratively improve dashboard-building instructions.

    189 GitHub stars~4.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Instruction Tuning

    adam-s/intercept

    Use sub-agents as test subjects to iteratively improve .claude/ instruction files.

    189 GitHub stars~4.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Ec2 Deploy

    adam-s/intercept

    Deploy to EC2 production server. An agent skill from adam-s/intercept.

    189 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check: warnings

Questions about Systematic Testing

What does Systematic Testing do?

Bottom-up systematic validation for multi-layer architectures. Systematic Testing is an agent skill from adam-s/intercept. Bottom-up systematic validation for multi-layer architectures.

When should I use Systematic Testing?

Systematic Testing fits situations like: testing domain plugins; browser connections; traffic capture.

How do I install Systematic Testing in Claude Code?

Run `npx skills add adam-s/intercept --skill systematic-testing -a claude-code`. Or copy the skill folder (.claude/skills/systematic-testing in adam-s/intercept) into .claude/skills/systematic-testing in your project. Claude Code loads it when a task matches its description.

How do I install Systematic Testing in Codex?

Run `npx skills add adam-s/intercept --skill systematic-testing -a codex`. Or copy the skill folder (.claude/skills/systematic-testing in adam-s/intercept) into .agents/skills/systematic-testing in your project. Codex loads it when a task matches its description.

Can I use Systematic Testing in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adam-s/intercept --skill systematic-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/systematic-testing, .gemini/skills/systematic-testing, .github/skills/systematic-testing and .opencode/skills/systematic-testing in your project.

What does Systematic Testing need to run?

Going by SKILL.md and its folder, Systematic Testing needs the command-line tools its instructions call (curl and jq).

Does Systematic Testing access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Systematic Testing safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Systematic Testing use?

Systematic Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Systematic Testing use?

About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Systematic Testing?

Skills that share tags, products or a category with Systematic Testing: Foundry Agent Sync (github/awesome-copilot, 40k stars), Project Generator (LeoYeAI/openclaw-master-skills, 2.2k stars), FastAPI Project Templates (wshobson/agents, 40k stars) and NestJS Expert (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Systematic Testing?

adam-s (a GitHub user) maintains it in adam-s/intercept, which has 189 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on July 31, 2026.

Source: adam-s/intercept on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.