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.
In this repository19 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- python-authoringSkill
- skill-authoringSkill
- affinageSkill
- ageSkill
- briesearchSkill
- cheeseSkill
- cookSkill
- cultureSkill
- cureSkill
- easy-cheese-setupSkill
- hard-cheeseSkill
- moldSkill
- pasteurizeSkill
- plateSkill
- pressSkill
- ultracookSkill
- wheypointSkill
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
- Distinctive: line 14
Use the safe cascade: squash repair → summary → mergiraf → rerere → manual resolution → continuation.
- Distinctive: line 15
Keep the original branch for recovery.
- Distinctive: line 17
Use the selected source-code backend for searches, bounded reads, and manual edits.
- Distinctive: line 18
Follow code-intelligence routing: search, fresh read, stale-safe write.
- Distinctive: line 22
Run this before resolving file conflicts:
- Very specific: line 28
Use --base <ref> when the base is not origin/main.
- Very specific: line 29
Use --branch <name> when Git cannot identify the original branch.
- Very specific: line 36
If application.state is confirmation-required, keep the active operation intact.
- Very specific: line 37
Ask once whether to discard its staged resolution and abort it.
- Very specific: line 38
After explicit confirmation, rerun with --apply --abort-operation.
- Very specific: line 39
If confirmation is refused, continue the existing operation instead.
- Very specific: line 40
If application.state is failed, report failed_step, error, and recovery_branch.
- Very specific: line 41
If it is needs-resolution, continue the cascade.
- Very specific: line 42
If it is applied without conflicts, check the operation state and proceed to handoff.
- Very specific: line 43
If it is not-applied, continue the existing conflict.
- Very specific: line 52
Read each summary hunk and the operation's unmerged_paths and conflict_marker_files.
- Distinctive: line 53
Use git log --merge --oneline only when commit intent is unclear.
- Distinctive: line 54
Do not accept a structural merge only because it has no markers.
- Distinctive: line 66
Read that output with the selected backend.
- Very specific: line 78
Run operation again. Its rerere_enabled, configured_merge_tool, and selected_manual_tool fields define the available fallback.
- Distinctive: line 80
When rerere is enabled, inspect git rerere status and git rerere diff.
- Distinctive: line 81
If it is disabled, report the setting and skip that stage.
- Distinctive: line 82
Do not change global Git configuration during this invocation.
- Very specific: line 85
Prefer git mergetool --tool=kdiff3 <path> when selected_manual_tool is kdiff3.
- Distinctive: line 89
Read conditional cascade stages only when selecting sides, regenerating lockfiles, debugging mergiraf, or maintaining rerere data.
- Very specific: line 100
Run --continue only when status is ready.
- Very specific: line 102
If it returns blocked, resolve the next conflict and repeat steps 2–5.
- Very specific: line 103
If it returns failure, report failed_step and stop.
- Distinctive: line 105
Do not run a separate raw Git continuation command.
- Distinctive: line 109
After completion, use the shared handoff gate.
- Very specific: line 144
Wait for the user's selection.
≈ “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.
Files
/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 --applyUse --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 operationRead 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 --applyMelt 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 --continueRun --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: noneOmit 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.
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
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.

