Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when optimizing test suite performance — database setup, seeder optimization, parallel testing, CI pipeline efficiency, or RefreshDatabase alternatives.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill when:
Before optimizing, always measure:
# Count tests per suite
find tests/ app/Modules/*/Tests/ -name "*.php" | xargs grep -l "it(" | wc -l
# Count by suite type
grep -rh "it(" tests/Unit/ app/Modules/*/Tests/Unit/ --include="*.php" | wc -l
grep -rh "it(" tests/Component/ app/Modules/*/Tests/Component/ --include="*.php" | wc -l
grep -rh "it(" tests/Integration/ app/Modules/*/Tests/Integration/ --include="*.php" | wc -l
# Count migrations
ls database/migrations/*.php | wc -l
# Count seeders
find database/seeders database/seeder-data -name "*.php" -path "*/data/*" | wc -l
The typical test lifecycle is:
Process Start → Migrate → Seed → [Test → Rollback] × N → Process End
↑ expensive (once per worker)
Check these areas in order of typical impact:
| Area | What to check | Typical impact |
|---|---|---|
| Migration count | How many CREATE TABLE statements? | High if >20 |
| Schema dump | Is database/schema/ used? | High if missing |
| Seeder INSERT method | Individual save() vs bulk insert? | Medium |
| Truncation | Per-seeder truncate vs centralized? | Low (but causes correctness issues) |
| Connection discovery | Dynamic getPdo() probing? | Low |
| Parallel worker setup | Does each worker re-migrate? | High |
Laravel's schema:dump consolidates all migrations into one SQL file.
Instead of running N individual CREATE TABLE migrations, it loads one SQL dump.
php artisan schema:dump --database=api_database
# Generates database/schema/api_database-schema.sql
Savings: 58 migrations → 1 SQL load = ~10-25s per worker.
Instead of each parallel worker running migrate+seed independently:
# Prepare template
php artisan migrate:fresh --database=template_db
php artisan db:seed --database=template_db
# Clone per worker
mysqldump template_db | mysql worker_db_test_1
Savings: Eliminate per-worker migrate+seed entirely.
Add a config flag to skip database setup when DB is already prepared:
// config/testing.php
'skip_migrate_seed' => EnvHelper::boolean('TESTING_SKIP_MIGRATE_SEED', false),
Developer workflow: make migrate-testing once, then make test-quick repeatedly.
Replace individual $model->save() with bulk insert:
// Before: N INSERT statements
foreach ($data as $row) {
$model = new MyModel($row);
$model->save();
}
// After: 1 INSERT statement
MyModel::insert($data);
$models = MyModel::whereIn('id', $ids)->get();
Per-seeder truncation is redundant after migrate:fresh and causes:
Make truncation configurable, default off:
// config/testing.php
'seed_truncate' => EnvHelper::boolean('DB_SEED_TRUNCATE', false),
Replace dynamic getPdo() probing with explicit config:
// config/testing.php
'connections_to_transact' => ['api_database', 'customer_database'],
agents/reference/docs/seeders.md — seeder conventions (if exists)--filter.The diagnosis above is PHPUnit-shaped. The method — measure before optimising,
find the slowest tests first, separate setup cost from assertion cost —
transfers; the instrument does not. Resolve the runner with
resolve_toolchain and read its ecosystems:
ecosystems | Slowest-test instrument | The usual first cause |
|---|---|---|
php | --profile / Pest's duration column | database refresh per test |
js | vitest --reporter=verbose, jest --detectOpenHandles | module transform and a leaked handle |
python | pytest --durations=20 | session-scoped fixtures rebuilt per test |
go | go test -v, -cpuprofile, -race for the slow-and-flaky pair | a TestMain that starts real I/O |
go test caches a package's result until its inputs change, so a suite that
looks fast on the second run may not have run at all — -count=1 defeats the
cache when you are measuring.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。