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'.
日本語の概要は準備中です。原文の説明を表示しています。
When the user says 'refactor this', 'rename class', or 'move method'. Safely refactors code in any language — finds all callers, updates downstream dependencies, verifies via quality tools.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill when renaming, moving, extracting, or restructuring code — any change that may have downstream effects on callers, interfaces, tests, documentation, or API contracts.
Do NOT use when:
feature-planning skill)bug-analyzer skill)agents/reference/docs/ and agents/settings/contexts/ for the area you're refactoring.
For modules, also read the project's module-docs directory (path varies by stack — Laravel: app/Modules/{Module}/agents/; Nx: apps/{app}/docs/; mono-repo: per-package docs/). See the project-docs skill for the mapping.codebase-retrieval and view with search_query_regex to find every
caller, implementation, test, and configuration that references the code being changed.
If the change is to a closed set — an enum, union, literal type, state
machine, role or permission set — identifier search is not enough: the
consumers that break are the ones that never name the type. Search by shape as
well (switch / match / if-chains over it, lookup tables keyed by it,
validators, serializers, schemas, fixtures, translation keys) and classify each
as exhaustive, deliberate fallback, or missing case. Procedure:
downstream-changes-mechanics.This skill performs extractions; it is therefore the place that decides whether one should happen. A wrong abstraction costs more than the duplication it replaced, because the duplication is visible and the wrong abstraction grows caller flags until nobody can remove it. Ask, before moving any code:
A "legitimate evolution" answer to the last question is decisive: stop, and
record the verdict keep-duplicated. That closes the refactor successfully
— so does de-abstract, splitting a shared unit that has grown modes back
apart. Neither is a failure to act, and neither needs an apology in the
output. Textual similarity is not evidence of shared knowledge: copies that
read identically can encode different assumptions, and merging them changes
behaviour silently.
The class names and the full verdict list are in
redundancy-taxonomy.
When the refactor goes the other way and creates a new unit, the reuse
question comes first: does an existing class or component already cover this, and
what does composing or extending it cost against a new one? Thresholds per
artifact class:
component-oriented-and-oop-development.
For each affected file (from the impact analysis):
use for PHP, import for JS/TS/Python, import blocks for Go, use for Rust).When refactoring touches handlers, route registrations, request validators, or response shapers, walk the stack-appropriate boundary. Use the carve-out skill for the project's framework if one exists; otherwise consult the table below for what to check on each stack.
| Layer | What to check and update |
|---|---|
| Route registration | Route file / decorator / file-based-router entry — name, URL, HTTP method, parameter binding |
| Handler / Controller | Entry signature, injected dependencies, return type |
| Request validator | Validation rule definitions, allowlisted fields (FormRequest, Zod schema, class-validator DTO, Pydantic model, struct tags) |
| Response shaper | Field mapping in the transformer (API Resource, serializer, DTO mapper, response model) |
| API contract | OpenAPI annotations, generated spec, typed client (regenerate if generated) |
| Authorization rule | Policy / voter / guard / middleware / route dependency that protects the route |
| Module routes | Module-local routing surface (Laravel app/Modules/*/Routes/, Nx apps/*/src/routes, mono-repo per-package routes) |
Carve-out routing:
laravel-api-endpointnextjs-patternssymfony-workflowBefore changing any test, present a summary to the user:
> 1. Yes — apply test changes
> 2. No — I'll adjust the tests myself
Rules for test changes:
Run the project's type-checker and linter after each significant step — do NOT batch everything to the end. The exact command set depends on the stack; resolve via quality-tools skill or the project's Taskfile.yml / package.json scripts / composer.json scripts / Makefile.
| Stack | Typical pipeline |
|---|---|
| Laravel / PHP | vendor/bin/phpstan analyse → vendor/bin/rector process → vendor/bin/ecs check --fix → re-run the static analyser |
| TypeScript | tsc --noEmit → eslint --fix → prettier --write |
| Python | mypy (or pyright) → ruff check --fix → ruff format |
| Go | go vet ./... → golangci-lint run --fix → gofmt -w |
| Rust | cargo check → cargo clippy --fix → cargo fmt |
If auto-fixers can rewrite types (Rector for PHP, eslint --fix for TS), re-run the type-checker after them — auto-fixers can introduce new errors.
php artisan test --filter=..., pnpm test -- <pattern>, pytest -k <pattern>, go test ./{path}/..., cargo test {pattern}).php artisan test, pnpm test, pytest, go test ./..., cargo test).After the code changes are verified, update all affected documentation:
| Documentation layer | When to update | Location |
|---|---|---|
| Project docs | When conventions, patterns, or key files change | agents/reference/docs/*.md |
| Project contexts | When architecture or high-level flow changes | agents/settings/contexts/*.md |
| Module agent docs | When module-specific behavior changes | {module_root}/*/{agent_folder}/ (per modules.root_paths + modules.agent_folder) |
| Module Docs/ | When module internals change | {module_root}/*/Docs/ |
| AGENTS.md | When project-wide conventions change | AGENTS.md |
| Roadmaps | When a roadmap step is completed | agents/roadmaps/*.md |
Rules for doc updates:
keep-duplicated verdict ends it here.use statements → update imports → update docs → run the static analyser.agents/reference/docs/controller.md, agents/reference/docs/api-resources.md) → run the static analyser → run tests.ModuleServiceProvider if needed → update module routes →
update module agent docs → update project contexts → run the static analyser → run tests.tsc --noEmit, mypy — whichever the project runs), not just at the end.| Skill | Relationship |
|---|---|
project-docs | Which docs to read before refactoring a specific area |
agent-docs-writing | When to create/update agent documentation |
api-endpoint | Full API endpoint structure (controller + request + resource + schema) |
php-coder | PHP coding conventions to follow in refactored code |
pest-testing | Test conventions when adapting tests |
openapi | OpenAPI schema attribute patterns |
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。