Source profileQuality 85/100Review permissions

event4u-app/agent-config/src/skills/merge-conflicts/SKILL.md

merge-conflicts

Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow.

Source repository stars
7
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Understands conflict markers, resolution strategies, and verification workflow.

Best for

  • A merge or rebase produces conflicts
  • The user asks to "resolve conflicts", "fix merge", or "update branch"
  • CI fails because the branch is behind main

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/merge-conflicts"
Safe inspection promptEditorial

Inspect the Agent Skill "merge-conflicts" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/merge-conflicts/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Procedure: Resolve merge conflicts

    Before touching any conflict:

    Before touching any conflict:
  2. 02

    When to use

    Use this skill when: - A merge or rebase produces conflicts - The user asks to "resolve conflicts", "fix merge", or "update branch" - CI fails because the branch is behind main - The prepare-for-review command encounters conflicts

    A merge or rebase produces conflictsThe user asks to "resolve conflicts", "fix merge", or "update branch"CI fails because the branch is behind main
  3. 03

    1. Understand the situation

    Before touching any conflict:

    Before touching any conflict:
  4. 04

    What files have conflicts?

    git diff --name-only --diff-filter=U

    git diff --name-only --diff-filter=U
  5. 05

    What branch are we merging from/into?

    git log --oneline -1 HEAD git log --oneline -1 MERGEHEAD or REBASEHEAD for rebase

    Conflicts: {N files / M hunks}Execution order: {dependency leaves first — a file nothing else importsDecisions needed from the user: {semantic/deleted-modified items, or none}

Permission review

Static risk signals and limitations

Runs scripts

medium · line 19

The documentation asks the agent to run terminal commands or scripts.

git diff --name-only --diff-filter=U

Runs scripts

medium · line 22

The documentation asks the agent to run terminal commands or scripts.

git log --oneline -1 HEAD

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score85/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars7SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
event4u-app/agent-config
Skill path
src/skills/merge-conflicts/SKILL.md
Commit
0adf49a8ae84b0ff6e2de8759eea43257e020eff
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

merge-conflicts

When to use

Use this skill when:

  • A merge or rebase produces conflicts
  • The user asks to "resolve conflicts", "fix merge", or "update branch"
  • CI fails because the branch is behind main
  • The prepare-for-review command encounters conflicts

Procedure: Resolve merge conflicts

1. Understand the situation

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

2. Read both sides

For each conflicted file:

  1. Read the full conflict — not just the markers, but the surrounding context.
  2. Understand "ours" — what does the current branch intend?
  3. Understand "theirs" — what does the incoming branch intend?
  4. Check if both changes are needed — often both sides added different things.

2b. Merge Resolution Plan — mandatory before touching a conflict

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.

3. Resolution strategies

SituationStrategy
Both sides changed the same line differentlyAsk the user — this is a semantic conflict
Both sides added different code in the same areaKeep both — combine the additions in logical order
One side deleted, other side modifiedAsk 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 conflictsAccept 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

4. File-type specific rules (stack-aware)

Source files (any language)

  • After resolving, check that import statements are correct (no duplicates, no missing imports). Applies to PHP use, JS/TS import, Python import, Go import, Rust use.
  • Verify the resolved file parses with the project's type-checker / linter on just the touched file:
    • PHP: php -l filename.php then vendor/bin/phpstan analyse path/to/file.php
    • TypeScript: tsc --noEmit (full project) or eslint path/to/file.ts
    • Python: python -m py_compile path/to/file.py then mypy path/to/file.py
    • Go: go vet ./path/to/pkg/...
    • Rust: cargo check

Database migrations

  • Never merge two migrations that modify the same table into one.
  • If both branches added migrations, keep both — adjust timestamps / ordering to avoid collision.
  • After resolving, run migrations against a disposable database to verify:
    • Laravel: php artisan migrate --env=testing
    • Symfony / Doctrine: php bin/console doctrine:migrations:migrate --env=test --no-interaction
    • Node / Prisma: pnpm prisma migrate dev --schema=...
    • Node / Knex: pnpm knex migrate:latest --env test
    • Python / Alembic: alembic upgrade head (against a test DB URL)
    • Go / golang-migrate: migrate -path ./migrations -database "$TEST_DATABASE_URL" up

Config files

  • composer.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.

Test files

  • If both sides added tests to the same file, keep all tests.
  • If both sides modified the same test, understand what each test is verifying and combine.

5. When to ask the user

Always ask when:

  • Both sides changed the same business logic differently (semantic conflict)
  • A deletion conflicts with a modification (intent is unclear)
  • The conflict involves authorization or security logic
  • You're unsure which side is "correct"

Resolve without asking when:

  • Both sides added different, non-overlapping code
  • Lock file / auto-generated file conflicts
  • Import statement ordering
  • Formatting-only differences

5b. Resolution log — one line per conflict

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.

6. Verify after resolution

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

Common pitfalls

PitfallPrevention
Accepting "ours" blindlyAlways read both sides first
Missing a conflict markerRun grep -rn "<<<<<<< " after resolving
Breaking importsCheck use statements after merge
Losing new codeCompare the resolved file with both original versions
Forgetting to regenerate lock filesAlways run package manager after resolving *.json

Rebase vs Merge

ApproachWhen to use
git merge mainDefault — preserves history, safer for shared branches
git rebase mainOnly when explicitly asked — rewrites history, cleaner log

Never rebase without explicit permission (per no-commit rule).

Output format

  1. Resolved conflict with both sides' intent preserved
  2. Summary of resolution strategy per file

Auto-trigger keywords

  • merge conflict
  • resolve conflict
  • rebase conflict
  • conflict markers
  • branch behind main
  • update branch

Gotcha

  • Never resolve conflicts by deleting code you don't understand — ask the user.
  • The model tends to accept "ours" or "theirs" wholesale instead of merging logic from both sides.
  • Always run tests after resolving conflicts — successful merge != correct merge.
  • Lock file conflicts (composer.lock, package-lock.json) should be resolved by re-running the package manager.

Do NOT

  • Do NOT rebase or force-push without explicit permission.
  • Do NOT leave conflict markers (<<<<<<<) in any file.
  • Do NOT skip verification (project type-checker + tests) after resolving.

Alternatives

Compare before choosing