agentsclimarketplace

Source command megaminx rescue

Skill Erlemar/cayley-puzzles/.agents/skills/source-command-megaminx-rescue

Neural distance heuristics + GPU/TPU beam search for the CayleyPy IHES Picture Cube and Megaminx puzzles

Install
npx -y skills add Erlemar/cayley-puzzles --skill source-command-megaminx-rescue

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Run the top-N long-pid sym-ensemble rescue + merge cycle on the current best megaminx submission.

SKILL.md

4.1 KB, as published. Nobody here has run it

source-command-megaminx-rescue

Use this skill when the user asks to run the migrated source command megaminx-rescue.

Command Template

/megaminx-rescue

Automate the canonical "rescue the long-tail" cycle that we run after each new best submission. Extracts the top-N longest paths from the current best CSV, runs sym-ensemble + qshort + beam 524k on those pids, merges the rescued paths into the base, verifies the merged CSV, and prepares it for submission.

Usage

  • /megaminx-rescue 50 — rescue top 50 long-pids of current best submission with K=4 sym (default).
  • /megaminx-rescue 80 K=8 — rescue top 80 with K=8 (diminishing returns past K=4).
  • /megaminx-rescue 50 base=path/to/sub.csv K=4 — explicit base CSV.

Defaults

  • Base submission: latest in megaminx/submissions/ matching merge_*.csv (highest path count = lowest score).
  • K (sym-ensemble): 4.
  • Beam: 524288.
  • Max-steps: 150.
  • Teacher: megaminx/models/m05_bellman_warm/epoch_0499.pt.
  • Student (qshort): megaminx/models/m23_v2_sym_aware/epoch_0499.pt (sym-aware, pair with --sym-ensemble).
  • Output prefix: merge_plus_sym{K}_top{N}.
  • Rotations: megaminx/data/rotations.npy (default; auto-loaded by --sym-ensemble).

Execution

1. Identify base submission and extract top-N pids

PYTHONUTF8=1 .venv/Scripts/python.exe -c "
import csv
sub = '<base>'
rows = list(csv.DictReader(open(sub)))
rows.sort(key=lambda r: -len(r['path'].split('.')))
print(','.join(r['initial_state_id'] for r in rows[:<N>]))
"

Report the pid list, length range of top-N, and sum of path lengths.

2. Launch the rescue solve (background)

nohup .venv/Scripts/python.exe megaminx/scripts/03_solve.py \
  --checkpoint megaminx/models/m05_bellman_warm/epoch_0499.pt \
  --qshort-student megaminx/models/m23_v2_sym_aware/epoch_0499.pt \
  --qshort-alpha 2 \
  --out megaminx/submissions/<output>.csv \
  --pids <pid_list> \
  --beams 524288 --max-steps 150 --bf16 \
  --sym-ensemble <K> \
  > megaminx/submissions/<output>.log 2>&1 &

3. Monitor with tight filter

# expected wall: K=2 ≈ 137s/pid, K=4 ≈ 280s/pid, K=8 ≈ 560s/pid
tail -F megaminx/submissions/<output>.log | grep -E --line-buffered \
  "attempts=20/|attempts=40/|attempts=60/|attempts=80/|Traceback|Error|verify:|stats:|wrote |OOM"

(Use Monitor tool with persistent: true.)

4. After completion: merge

.venv/Scripts/python.exe megaminx/scripts/16_merge_rescue.py \
  --base <base>.csv \
  --rescue megaminx/submissions/<output>.csv \
  --out megaminx/submissions/<merged>.csv

Report: replaced X/N (saved Y moves), new total, regressions count (must be 0).

5. Verify merged

The merge script verifies inline and prints verify: 1001/1001 valid, total <T>. If anything other than 1001/1001 valid: STOP, do not proceed to submit.

6. Tell user the result

Print: "ready to submit <merged>.csv (current_best - delta = new_total)". Suggest /megaminx-submit <merged>.csv "<description>" as next step.

DO NOT submit automatically. The user controls Kaggle slot usage.

Gotchas

  • Pair m23_v2 (sym-aware) with --sym-ensemble, not the original m23 (distilled on forward-state V; lower recall on inverted/rotated states). See megaminx_gotchas.md "Q-shortlister student must match teacher" entry.
  • K=4 is the sweet spot. K=8 saves ~80% as much per pid at 2× wall.
  • Beam max-steps = 150 minimum (real path tail is ~99-103 in current submissions). Lower max-steps causes silent failures (model never converges).
  • The merge takes per-pid min of base vs rescue. If rescue is uniformly worse than base for a pid, base is kept. 0 regressions is the expected outcome with K≥2.
  • Rotation index 0 (identity) is always one of the K rotations selected.

Cost reference (4090 Laptop, beam 524k)

Kwall/pid50 pids80 pids
2~140s~2h~3h
4~280s~4h~6h
8~560s~8h~12h

Pick K based on remaining session time and previous-pass exhaustion.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.