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 shopwareLabs/ai-coding-tools --skill phpunit-integration-test-reviewinggit clone --depth 1 https://github.com/shopwareLabs/ai-coding-toolsWrote 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/shopwarelabs/ai-coding-tools/phpunit-integration-test-reviewing)<a href="https://agentmods.dev/skills/shopwarelabs/ai-coding-tools/phpunit-integration-test-reviewing"><img src="https://agentmods.dev/badge/skills/shopwarelabs/ai-coding-tools/phpunit-integration-test-reviewing/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/shopwarelabs/ai-coding-tools/phpunit-integration-test-reviewing"><img src="https://agentmods.dev/badge/skills/shopwarelabs/ai-coding-tools/phpunit-integration-test-reviewing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00032 | $0.04730 |
| Opus 5.5 | $0.00013 | $0.01892 |
| Sonnet 5.5 | $0.00006 | $0.00946 |
| Haiku 4.5 | $0.00003 | $0.00473 |
Grade A, and why
phpunit-integration-test-reviewing 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 1mo 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 — 244 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PHPUnit Integration Test Review
Review a Shopware PHPUnit integration test for compliance with integration testing conventions.
Overview
Review the test against the composed integration catalog — INTEGRATION-001 through INTEGRATION-008 together with every convention, design, isolation, and provider rule whose test-types declares integration — assuming it belongs in tests/integration/. Do NOT load the placement reasoning rules (group: placement) and do NOT decide whether the test should be migrated.
Input
{test_path}(required unless{digest}is set, which supplies the class shape instead) — Path to the integration test file.{methods}(optional) — List of test method names to scope the review to. When omitted, the full class is reviewed.{review_unit}(optional) —method,class-structure,class-bodies, or a list of these. When set, only rules whose minimal evaluation unit matches load. When omitted, all rules load. Orthogonal to{methods}.{digest}(optional) — a pre-extracted, body-free structural digest of the test class. When set, review this text and skip reading the test file. Forcesclass-structurerules only. See Digest Mode.{rules}(optional) — the pre-rendered rule catalog as text, provided in your prompt. When set, enter Inline-Rules Mode: select rules from this text instead of callingget_rules. When omitted, rules load viaget_rules. See Inline-Rules Mode.{baseline}(optional) —pass,fail, orunavailable: this file's test state before the review, supplied by the caller. Defaults tounavailablewhen omitted. Record and report it; this skill never executes tests to obtain it.
Workflow
digraph integration_review {
"Review request" [shape=doublecircle];
"digest set?" [shape=diamond];
"Digest Mode: judge the digest text alone; force class-structure rules; read nothing from disk" [shape=box];
"Phase 1: locate the file, verify tests/integration/, mirror the path onto src/ to identify the SUT, read the test file and its integration base" [shape=box];
"in tests/integration/?" [shape=diamond];
"STOP: FAILED - Not an integration test" [shape=octagon, style=filled, fillcolor=red];
"named methods resolve?" [shape=diamond];
"STOP: FAILED - No matching methods found" [shape=octagon, style=filled, fillcolor=red];
"src/ directory resolved by mirroring?" [shape=diamond];
"Phase 2: read the resolved src/ files, list their constructor dependencies, note the boundary interfaces INTEGRATION-002 allows mocking" [shape=box];
"Source resolution failed: continue with INTEGRATION-002 degraded - flag every non-boundary mock without the SUT-collaborator cross-check, and state in the report that source resolution failed and which rule it affected" [shape=box];
"Phase 3: build the rule filters - test_type=integration, no group, no test_category, scoped_review, review_unit" [shape=box];
"rules set?" [shape=diamond];
"Inline-Rules Mode: select from the inline composed catalog; never filter on Group or Categories; open no rule file" [shape=box];
"Call get_rules with the filters this mode sets" [shape=box];
"get_rules available?" [shape=diamond];
"STOP: FAILED - test-rules MCP server not available; never fall back to hardcoded checks" [shape=octagon, style=filled, fillcolor=red];
"Phase 4: apply each rule's detection algorithm against the scoped code, record violations, write suggested fixes; INTEGRATION-008 emits one informational hint per class and no further deliberation" [shape=box];
"Phase 5: apply the baseline - fail forces ISSUES_FOUND" [shape=box];
"Emit the report per references/output-format.md" [shape=doublecircle];
"Review request" -> "digest set?";
"digest set?" -> "Digest Mode: judge the digest text alone; force class-structure rules; read nothing from disk" [label="yes"];
"digest set?" -> "Phase 1: locate the file, verify tests/integration/, mirror the path onto src/ to identify the SUT, read the test file and its integration base" [label="no"];
"Digest Mode: judge the digest text alone; force class-structure rules; read nothing from disk" -> "rules set?";
"Phase 1: locate the file, verify tests/integration/, mirror the path onto src/ to identify the SUT, read the test file and its integration base" -> "in tests/integration/?";
"in tests/integration/?" -> "STOP: FAILED - Not an integration test" [label="no"];
"in tests/integration/?" -> "named methods resolve?" [label="yes"];
"named methods resolve?" -> "STOP: FAILED - No matching methods found" [label="none match"];
"named methods resolve?" -> "src/ directory resolved by mirroring?" [label="some or all match, or methods unset - each unmatched name is a warning"];
"src/ directory resolved by mirroring?" -> "Phase 2: read the resolved src/ files, list their constructor dependencies, note the boundary interfaces INTEGRATION-002 allows mocking" [label="yes"];
"src/ directory resolved by mirroring?" -> "Source resolution failed: continue with INTEGRATION-002 degraded - flag every non-boundary mock without the SUT-collaborator cross-check, and state in the report that source resolution failed and which rule it affected" [label="no - walked up to the src/ root"];
"Phase 2: read the resolved src/ files, list their constructor dependencies, note the boundary interfaces INTEGRATION-002 allows mocking" -> "Phase 3: build the rule filters - test_type=integration, no group, no test_category, scoped_review, review_unit";
"Source resolution failed: continue with INTEGRATION-002 degraded - flag every non-boundary mock without the SUT-collaborator cross-check, and state in the report that source resolution failed and which rule it affected" -> "Phase 3: build the rule filters - test_type=integration, no group, no test_category, scoped_review, review_unit";
"Phase 3: build the rule filters - test_type=integration, no group, no test_category, scoped_review, review_unit" -> "rules set?";
"rules set?" -> "Inline-Rules Mode: select from the inline composed catalog; never filter on Group or Categories; open no rule file" [label="yes"];
"rules set?" -> "Call get_rules with the filters this mode sets" [label="no"];
"Inline-Rules Mode: select from the inline composed catalog; never filter on Group or Categories; open no rule file" -> "Phase 4: apply each rule's detection algorithm against the scoped code, record violations, write suggested fixes; INTEGRATION-008 emits one informational hint per class and no further deliberation";
"Call get_rules with the filters this mode sets" -> "get_rules available?";
"get_rules available?" -> "STOP: FAILED - test-rules MCP server not available; never fall back to hardcoded checks" [label="no"];
"get_rules available?" -> "Phase 4: apply each rule's detection algorithm against the scoped code, record violations, write suggested fixes; INTEGRATION-008 emits one informational hint per class and no further deliberation";
"Phase 4: apply each rule's detection algorithm against the scoped code, record violations, write suggested fixes; INTEGRATION-008 emits one informational hint per class and no further deliberation" -> "Phase 5: apply the baseline - fail forces ISSUES_FOUND";
"Phase 5: apply the baseline - fail forces ISSUES_FOUND" -> "Emit the report per references/output-format.md";
}
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.
- 1mo ago Changed 9029a0a42e25
- 1mo ago Changed · +2 lines 44d0c017d6b2
- 1mo ago Changed 1c6538b5dd13
- 1mo ago Changed · +64 lines 883dd418d8dc
- 1mo ago First seen · 178 lines · 32 tokens per session scan A 022e6b058ece
phpunit-integration-test-reviewing is a skill published in the GitHub repository shopwareLabs/ai-coding-tools (45 stars, last pushed 7d ago), licensed MIT. It adds 32 tokens to every session and 4,730 once invoked, about $0.0001 per session on Opus 5.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
meta-skill-tester
A testing tool for checking the quality of coding-agent skills. It compares results with and without a skill, runs regression and chain tests, measures usage and time, and produces a scored report.
generate-file-name-gate
Emit the file-name gate into a consuming repository: a standalone bash checker plus its own test suite, with the casing rule, roots, and exemptions inlined from the resolved docs-naming configuration, and optionally the path-scoped rule file. The emitted pair carries no dependency on this plugin at run time. Refuses…
methodology
When the bundled claude-api skill resolves in this session, prefer its hillclimb for sweeping model and effort against an existing eval suite; this skill when the suite does not exist yet or its criteria are not yet measurable, before handing the suite to that search. Answers LLM-evaluation design questions from…
behavior-probes
Live probes of Claude Code permission, auto-mode, hook, worktree, subagent and sandbox behavior as cases with paired controls, each reported pass, fail or inconclusive with the Claude Code version; dry run by default, live runs opt-in and capped. Use when: 'rerun the behavior probes', 'does auto mode still deny this'…
benchmark-before-optimize
For performance work: measure before changing, profile to find bottlenecks, compare before and after.
test-structural-invariants
For data structure validation: test lengths, relationships, constraints that must hold, verify setup is correct.