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 ils15/pantheon-legacy --skill test-architecturegit clone --depth 1 https://github.com/ils15/pantheon-legacyWrote 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/ils15/pantheon-legacy/test-architecture)<a href="https://agentmods.dev/skills/ils15/pantheon-legacy/test-architecture"><img src="https://agentmods.dev/badge/skills/ils15/pantheon-legacy/test-architecture/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/ils15/pantheon-legacy/test-architecture"><img src="https://agentmods.dev/badge/skills/ils15/pantheon-legacy/test-architecture.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 270 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
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.00029 | $0.01806 |
| Opus 5 | $0.00015 | $0.00903 |
| Sonnet 5 | $0.00006 | $0.00361 |
| Haiku 4.5 | $0.00003 | $0.00181 |
Grade A, and why
test-architecture scanned grade A with 1 finding 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 8d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
result = requests.get(f"{pact.uri}/api/reviews", params={"product_id": "100"}) How it starts
The opening of the file, as written. The whole thing — 292 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Test Architecture — Advanced Testing Patterns
Use this skill for advanced testing beyond unit tests. Covers E2E, load testing, mutation testing, contract testing, and visual regression. Complements tdd-with-agents (which covers unit tests).
Relationship with tdd-with-agents
| Skill | Scope | When to Use |
|---|---|---|
tdd-with-agents |
Unit tests (RED→GREEN→REFACTOR) | Every implementation |
test-architecture |
E2E, load, mutation, contract, visual | Complex features, production-ready code |
1. E2E Testing (Playwright)
Setup
# tests/e2e/conftest.py
import pytest
from playwright.async_api import async_playwright
@pytest.fixture
async def browser():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
yield browser
await browser.close()
@pytest.fixture
async def page(browser):
context = await browser.new_context()
page = await context.new_page()
yield page
await context.close()
Test Pattern
# tests/e2e/test_user_flow.py
import pytest
@pytest.mark.asyncio
async def test_user_login_flow(page):
"""E2E: User can log in and see dashboard."""
await page.goto("http://localhost:8000/login")
await page.fill('input[name="email"]', "[email protected]")
await page.fill('input[name="password"]', "password123")
await page.click('button[type="submit"]')
# Verify redirect to dashboard
await page.wait_for_url("**/dashboard")
assert await page.title() == "Dashboard"
# Verify user info displayed
await page.wait_for_selector(".user-name")
user_name = await page.text_content(".user-name")
assert "Test User" in user_name
Running E2E Tests
# Start app first
uvicorn app.main:app --reload &
# Run E2E tests
pytest tests/e2e/ -v --asyncio-mode=auto
2. Load Testing (k6)
k6 Script
// tests/load/api_load_test.js
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '30s', target: 20 }, // Ramp up to 20 users
{ duration: '1m', target: 20 }, // Stay at 20 users
{ duration: '30s', target: 50 }, // Spike to 50 users
{ duration: '1m', target: 50 }, // Stay at 50 users
{ duration: '30s', target: 0 }, // Ramp down
],
thresholds: {
http_req_duration: ['p(95)<500'], // 95% of requests < 500ms
http_req_failed: ['rate<0.01'], // Error rate < 1%
},
};
export default function () {
const res = http.get('http://localhost:8000/api/products');
check(res, {
'status is 200': (r) => r.status === 200,
'response time < 500ms': (r) => r.timings.duration < 500,
});
sleep(1);
}
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.
- 8d ago First seen · 292 lines · 29 tokens per session scan A 54a9f1bfdbda
test-architecture is a skill published in the GitHub repository ils15/pantheon-legacy (10 stars, last pushed 8d ago), licensed MIT. It adds 29 tokens to every session and 1,806 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
dogfood
Systematically explore and test a mobile app on iOS/Android with agent-device to find bugs, UX issues, and other problems. Use when asked to dogfood, QA, exploratory test, find issues, bug hunt, or test this app on mobile.
test-warp-ui
Guides testing Warp UI features and changes using the computer use tool. Use this skill only when computer-use testing was requested (explicit request or accepted offer) and the computeruse tool is available to the agent. Covers launching Warp and verifying UI behavior.
test-electron-app
Drive the real running PostHog Electron app (live tRPC, workspace-server, real data) over CDP with agent-browser. Connect to the running app on port 9222, test desktop changes against a local Django stack, snapshot the accessibility tree, inspect network requests, and screenshot only when explicitly asked. Use when…
pyats-dynamic-test
Generate and execute deterministic pyATS aetest validation scripts - interface state, OSPF neighbors, BGP paths, ping matrices, and custom compliance tests. Use when writing a network test, validating post-change state, running pass/fail checks, or building automated regression tests.
test-loop
Plan, generate, and heal an executable E2E test suite from approved acceptance criteria (web and mobile).
playwright-cli
Automates browser interactions for testing and validating your own web applications using playwright-cli. Use when you need terminal-first browser control for navigation, form filling, screenshots, tracing, bound browser sessions, debugging, or generating Playwright test code. Only use against applications you own or…