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 the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill when:
prepare-for-review command encounters conflictsA CONFLICTING PR is not a signal to open the web editor. The web editor
cannot tell generated from authored, so it presents a mechanical regeneration
and a real human decision as the same three-way merge — which is how a generated
file gets hand-merged into a state matching neither branch.
So classify locally first, before resolving anything. Sort every conflicted path into three classes, because the correct resolution differs per class and only one of them is a judgement call:
| Class | What it is | Resolution |
|---|---|---|
| generated | a build output, an index, a compiled manifest — anything a generator writes from a source in the tree | re-run the generator. Never mix hunks, and note that a clean auto-merge of a generated file is still wrong: it can produce a file matching neither branch |
| remeasured | a baseline, budget, or ratchet number a CI gate compares against | re-run the measurement on the merged tree and record what it says. Two branches legitimately measured two different trees, so there is no side to take — and picking one is how a ratchet silently loosens |
| authored | prose, source, config a human wrote | a human decision — read both sides. This is what the rest of this skill is about |
Getting the class wrong is the expensive direction: hand-merging a generated file, or picking a side on a measured one, both produce a plausible-looking file that no branch ever had. If the project ships a tool that does this classification, run it before touching the conflict; where it does not, the three-way sort above is still the first step.
This is a checklist item, not a gate — nothing enforces it (road-to-merge-hotspot-drawdown 4.3).
Before touching any conflict:
# What files have conflicts?
git diff --name-only --diff-filter=U
# What branch are we merging from/into?
git log --oneline -1 HEAD
git log --oneline -1 MERGE_HEAD # or REBASE_HEAD for rebase
For each conflicted file:
After reading both sides, write the plan; under autonomous-execution the
approval gate applies (a standing mandate states the plan and proceeds; an
interactive session surfaces it and waits):
## Merge Resolution Plan
- Conflicts: {N files / M hunks}
- Execution order: {dependency leaves first — a file nothing else imports
resolves before the files that import it}
| file | strategy | rationale |
|---|---|---|
- Decisions needed from the user: {semantic/deleted-modified items, or none}
- Validation: {targeted checks to run after resolution}
Backup before resolution: every deleted-modified file is copied to a
temp path ($TMPDIR/merge-backup-<ts>/<file>) and the path noted in the
plan BEFORE any resolution touches it.
| Situation | Strategy |
|---|---|
| Both sides changed the same line differently | Ask the user — this is a semantic conflict |
| Both sides added different code in the same area | Keep both — combine the additions in logical order |
| One side deleted, other side modified | Ask the user — deletion intent vs modification intent |
Lock file conflicts (composer.lock, package-lock.json) | Regenerate — accept theirs, then run composer install / npm install |
| Migration conflicts (same timestamp) | Rename — adjust timestamp to avoid collision |
| Auto-generated files (OpenAPI spec, baselines) | Regenerate — resolve source, then regenerate the output |
| Formatting-only conflicts | Accept either — then run quality tools to normalize |
| Import-block conflicts (both sides added imports) | Keep both — union the imports, drop duplicates, let the linter order them |
| Binary files (images, archives, compiled assets) | Pick one side whole — never splice; regenerate from source if generated, else ask which side wins |
use, JS/TS import, Python import, Go import, Rust use.php -l filename.php then vendor/bin/phpstan analyse path/to/file.phptsc --noEmit (full project) or eslint path/to/file.tspython -m py_compile path/to/file.py then mypy path/to/file.pygo vet ./path/to/pkg/...cargo checkphp artisan migrate --env=testingphp bin/console doctrine:migrations:migrate --env=test --no-interactionpnpm prisma migrate dev --schema=...pnpm knex migrate:latest --env testalembic upgrade head (against a test DB URL)migrate -path ./migrations -database "$TEST_DATABASE_URL" upcomposer.json — resolve, then run composer update --lock to regenerate composer.lock.package.json — resolve, then run npm install to regenerate package-lock.json..env.example — keep all new entries from both sides.Always ask when:
Resolve without asking when:
Every resolved conflict gets a one-line explanation ("kept both — additive imports"; "took theirs — lockfile regenerated") collected into the final summary: the auditable log the reviewer reads instead of re-deriving each hunk decision.
After resolving ALL conflicts:
# 1. Check no conflict markers remain (stack-agnostic — no --include filter)
grep -rn "<<<<<<< \|======= \|>>>>>>> " . \
--exclude-dir=node_modules --exclude-dir=vendor --exclude-dir=.git
# 2. Syntax-check changed files (stack-dependent — pick the row that matches the project)
# PHP: find . -name "*.php" -newer .git/MERGE_HEAD -exec php -l {} \;
# TS: tsc --noEmit
# Python: python -m compileall -q .
# Go: go build ./...
# Rust: cargo check
# 3. Run the project's quality tools — resolve via the quality-tools skill, Taskfile,
# package.json scripts, composer.json scripts, or Makefile. Examples per stack:
# PHP: vendor/bin/phpstan analyse
# TS: pnpm lint
# Python: ruff check && mypy
# Go: golangci-lint run
# Rust: cargo clippy
# 4. Run tests — full suite, not just the touched files
# PHP: php artisan test (or vendor/bin/pest)
# TS: pnpm test
# Python: pytest
# Go: go test ./...
# Rust: cargo test
# 5. Complete the merge/rebase
git add .
# Don't commit — let the user decide when to commit
| Pitfall | Prevention |
|---|---|
| Accepting "ours" blindly | Always read both sides first |
| Missing a conflict marker | Run grep -rn "<<<<<<< " after resolving |
| Breaking imports | Check use statements after merge |
| Losing new code | Compare the resolved file with both original versions |
| Forgetting to regenerate lock files | Always run package manager after resolving *.json |
| Approach | When to use |
|---|---|
git merge main | Default (git.update_strategy: merge) — preserves history, safer for shared branches |
git rebase origin/main | git.update_strategy: rebase picks it — rewrites history, linear log |
The setting picks the operation; it never authorises it. A rebase of a branch
that is already pushed still needs the user's answer this turn, per
git-history-discipline § When rewrite is
allowed — an explicit ask, an unrevoked standing instruction, or a pull --rebase the user started. Under rebase conflicts surface per commit, and the protocol — permission,
stops, recovery ref, the equivalence report afterwards — is
git-workflow › branch-update.
<<<<<<<) in any file.まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。