agentleFS
paulnsorensenpaulnsorensen/easy-cheese/skills/melt/SKILL.md

melt

Skill19 starsChanged 28 days agoMITView on GitHub

Resolve content conflicts during Git merge, rebase, cherry-pick, pull, or branch integration. Use for CONFLICT, unmerged paths, or Git's "needs merge" diagnostic for an unmerged path. Trigger on fix merge conflicts, resolve rebase conflicts, cherry-pick conflict, and similar requests. Do not use for clean Git operations or review-only questions.

The file

Show its rules and text

We split this skill into the rules it gives an agent

31 rules. About 0 are common, 14 are distinctive, and 17 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈14

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 17

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Use the safe cascade: squash repair → summary → mergiraf → rerere → manual resolution → continuation.

    line 14
  2. Distinctive:

    Keep the original branch for recovery.

    line 15
  3. Distinctive:

    Use the selected source-code backend for searches, bounded reads, and manual edits.

    line 17
  4. Distinctive:

    Follow code-intelligence routing: search, fresh read, stale-safe write.

    line 18
  5. Distinctive:

    Run this before resolving file conflicts:

    line 22
  6. Very specific:

    Use --base <ref> when the base is not origin/main.

    line 28
  7. Very specific:

    Use --branch <name> when Git cannot identify the original branch.

    line 29
  8. Very specific:

    If application.state is confirmation-required, keep the active operation intact.

    line 36
  9. Very specific:

    Ask once whether to discard its staged resolution and abort it.

    line 37
  10. Very specific:

    After explicit confirmation, rerun with --apply --abort-operation.

    line 38
  11. Very specific:

    If confirmation is refused, continue the existing operation instead.

    line 39
  12. Very specific:

    If application.state is failed, report failed_step, error, and recovery_branch.

    line 40
  13. Very specific:

    If it is needs-resolution, continue the cascade.

    line 41
  14. Very specific:

    If it is applied without conflicts, check the operation state and proceed to handoff.

    line 42
  15. Very specific:

    If it is not-applied, continue the existing conflict.

    line 43
  16. Very specific:

    Read each summary hunk and the operation's unmerged_paths and conflict_marker_files.

    line 52
  17. Distinctive:

    Use git log --merge --oneline only when commit intent is unclear.

    line 53
  18. Distinctive:

    Do not accept a structural merge only because it has no markers.

    line 54
  19. Distinctive:

    Read that output with the selected backend.

    line 66
  20. Very specific:

    Run operation again. Its rerere_enabled, configured_merge_tool, and selected_manual_tool fields define the available fallback.

    line 78
  21. Distinctive:

    When rerere is enabled, inspect git rerere status and git rerere diff.

    line 80
  22. Distinctive:

    If it is disabled, report the setting and skip that stage.

    line 81
  23. Distinctive:

    Do not change global Git configuration during this invocation.

    line 82
  24. Very specific:

    Prefer git mergetool --tool=kdiff3 <path> when selected_manual_tool is kdiff3.

    line 85
  25. Distinctive:

    Read conditional cascade stages only when selecting sides, regenerating lockfiles, debugging mergiraf, or maintaining rerere data.

    line 89
  26. Very specific:

    Run --continue only when status is ready.

    line 100
  27. Very specific:

    If it returns blocked, resolve the next conflict and repeat steps 2–5.

    line 102
  28. Very specific:

    If it returns failure, report failed_step and stop.

    line 103
  29. Distinctive:

    Do not run a separate raw Git continuation command.

    line 105
  30. Distinctive:

    After completion, use the shared handoff gate.

    line 109
  31. Very specific:

    Wait for the user's selection.

    line 144

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/melt

Resolve the current conflict without rewriting a published branch. Use the safe cascade: squash repair → summary → mergiraf → rerere → manual resolution → continuation. Keep the original branch for recovery. Never push, reset, or force-push here.

Use the selected source-code backend for searches, bounded reads, and manual edits. Follow code-intelligence routing: search, fresh read, stale-safe write.

1. Repair squash residue

Run this before resolving file conflicts:

python3 skills/melt/scripts/melt.pyz detect-squash-residue --apply

Use --base <ref> when the base is not origin/main. Use --branch <name> when Git cannot identify the original branch. The command previews by default without --apply. It creates <original-branch>-clean and replays verified commits in order when safe. Otherwise it merges the base into the original branch. It preflights branch collisions before aborting an interrupted operation. It never pushes or rewrites either branch.

If application.state is confirmation-required, keep the active operation intact. Ask once whether to discard its staged resolution and abort it. After explicit confirmation, rerun with --apply --abort-operation. If confirmation is refused, continue the existing operation instead. If application.state is failed, report failed_step, error, and recovery_branch; stop. If it is needs-resolution, continue the cascade. If it is applied without conflicts, check the operation state and proceed to handoff. If it is not-applied, continue the existing conflict.

2. Diagnose and inspect

python3 skills/melt/scripts/melt.pyz conflict-summary
python3 skills/melt/scripts/melt.pyz operation

Read each summary hunk and the operation's unmerged_paths and conflict_marker_files. Use git log --merge --oneline only when commit intent is unclear. Do not accept a structural merge only because it has no markers.

3. Resolve structures

Preview mergiraf, then inspect its semantic result before applying it:

python3 skills/melt/scripts/melt.pyz batch-resolve
python3 skills/melt/scripts/melt.pyz batch-resolve --debug <path>

The debug command gives the merged output path, log path, and marker count. Read that output with the selected backend. Confirm that both sides' intended edits remain. Then apply clean resolutions and stage them:

python3 skills/melt/scripts/melt.pyz batch-resolve --apply

Melt text tools refuse binary files. Select a side for ordinary binaries and stage it. For generated archives, resolve source files and rebuild the archive instead.

4. Resolve what remains

Run operation again. Its rerere_enabled, configured_merge_tool, and selected_manual_tool fields define the available fallback. When rerere is enabled, inspect git rerere status and git rerere diff. If it is disabled, report the setting and skip that stage. Do not change global Git configuration during this invocation.

For unresolved text, use the selected manual tool or edit after semantic inspection. Prefer git mergetool --tool=kdiff3 <path> when selected_manual_tool is kdiff3. Otherwise use the configured tool and report the substitution. Stage each resolved path. Resolve lockfiles from their manifests, not their conflict text.

Read conditional cascade stages only when selecting sides, regenerating lockfiles, debugging mergiraf, or maintaining rerere data. Its side-selection and lockfile commands require a judgment about intended content.

5. Continue once

python3 skills/melt/scripts/melt.pyz operation
python3 skills/melt/scripts/melt.pyz operation --continue

Run --continue only when status is ready. It refuses unmerged paths and conflict markers, then continues without an interactive editor. If it returns blocked, resolve the next conflict and repeat steps 2–5. If it returns failure, report failed_step and stop. Handoff only when status is complete. Do not run a separate raw Git continuation command.

Handoff

After completion, use the shared handoff gate. Fill the placeholders from the upstream invocation and propagated flags.

handoff_gate:
  source_skill: /melt
  id: post-melt-next-step
  prompt: The Git operation is complete. What should happen next?
  recommended: rerun-upstream
  multi: false
  options:
    - id: rerun-upstream
      label: Re-run the upstream gate
      description: Run the invocation that found the conflict.
      dispatch: <upstream_invocation>
      context:
        upstream_invocation: <command>
        flags: [<propagated flags>]
    - id: plate-it
      label: Plate it
      description: Publish completed work through /plate.
      dispatch: /plate
      context:
        flags: [<propagated --hard, --open-pr>]
    - id: checkpoint-and-stop
      label: Checkpoint & stop
      description: Write a durable checkpoint, then pause the pipeline.
      dispatch: /wheypoint
    - id: stop
      label: Stop
      description: Leave the completed operation for inspection.
      dispatch: none

Omit rerun-upstream and recommend stop when its invocation is unknown. Wait for the user's selection. Run a selected non-stop action immediately. Melt never commits or pushes. /plate owns publication.

See the generated command inventory for all Melt commands.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.