decomp-match

Autonomous matching-decompilation workflow for Crash WOC GameCube units. Use when the agent needs to decomp-match functions in a C source file.

8 stars

Best use case

decomp-match is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Autonomous matching-decompilation workflow for Crash WOC GameCube units. Use when the agent needs to decomp-match functions in a C source file.

Teams using decomp-match should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/decomp-match/SKILL.md --create-dirs "https://raw.githubusercontent.com/denzi-gh/crashwoc-decomp/main/.pi/skills/decomp-match/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/decomp-match/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How decomp-match Compares

Feature / Agentdecomp-matchStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Autonomous matching-decompilation workflow for Crash WOC GameCube units. Use when the agent needs to decomp-match functions in a C source file.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Decomp Match Skill

You are a decompilation agent for Crash Bandicoot: The Wrath of Cortex (GameCube).
The compiler is ProDG 3.5 (gcc 2.95.2). The target is `GCBE7D`.

## Before You Start

Read these repo docs (they contain critical rules):
- `AGENTS.md`

## Core Loop

1. **Get your assignment**: The dashboard provides a unit name. Run:
   ```
   python tools/ai_match_plan.py <unit>
   ```
2. **Pick the next unmatched function** from the output.
3. **Gather context**:
   ```
   python tools/ai_context.py <function_name>
   python tools/ai_lookup_symbol.py <function_name>
   ```
4. **Inspect target assembly**: `build/GCBE7D/asm/<unit>.s`
5. **Edit only one function** in the source file.
6. **Build only the single object**:
   ```
   ninja build/GCBE7D/src/<unit>.o
   ```
7. **Check progress**:
   ```
   python tools/ai_match_plan.py <unit>
   ```
8. **If stuck for 4 cycles**, note the blocker and move to the next function.
9. **Repeat** until all functions are matched or blocked.

## Available Helper Scripts

| Script | Purpose |
|--------|---------|
| `python tools/ai_match_plan.py <unit>` | Ranked function backlog for unit |
| `python tools/ai_context.py <query>` | One-stop context summary |
| `python tools/ai_lookup_symbol.py <name>` | Symbol lookup by name or address |
| `python tools/ai_lookup_unit.py <unit>` | Unit metadata and paths |
| `python tools/ai_diff.py <unit>` | Function diff summary without interactive objdiff |
| `python tools/ai_status.py` | Project-wide progress overview |
| `python tools/ai_ghidra.py --project <path> decompile <addr>` | Ghidra decompile (if configured) |
| `python tools/ai_ghidra.py --project <path> disasm <addr>` | Ghidra disassembly (if configured) |
| `python tools/ai_ghidra.py --project <path> find-function <name>` | Ghidra function search |

## Critical Rules

- **One function at a time.** Edit, build, check, repeat.
- **No inline asm.** Always express the target in C code.
- **No interactive objdiff.** Use `python tools/ai_diff.py` or `ninja changes`.
- **No `#pragma once`** in `.c` files.
- **Don't edit generated files**: `build.ninja`, `objdiff.json`, `compile_commands.json`, `config/GCBE7D/splits.generated.txt`, `config/GCBE7D/config.generated.yml`.
- **DWARF is hints only.** `config/GCBE7D/symbols.txt` is ground truth.
- **Prefer true matches**: typed fields, structured control flow, proper structs — not pointer arithmetic or goto-heavy code.
- **Build single object** during iteration: `ninja build/GCBE7D/src/<unit>.o` — not full `ninja`.

## When Done

Report:
- Functions fully matched (100%)
- Functions blocked (with reason)
- Final verification command used

Related Skills

match-workflow

8
from denzi-gh/crashwoc-decomp

Drive symbol-to-verification matching work in crashwoc-decomp. Use when Codex needs to take a symbol or unit from lookup through context gathering, narrow local builds, and final regression checks.

task-pack

8
from denzi-gh/crashwoc-decomp

Generate and run provider-neutral decompilation task packs in crashwoc-decomp. Use when an agent should turn a unit, function, or decomp.me bundle into a self-contained task pack and run it against any backend (print, copilot, codex, claude, aider, or gemini).

symbol-lookup

8
from denzi-gh/crashwoc-decomp

Lookup symbols, addresses, units, and match metadata in crashwoc-decomp. Use when Codex needs to map a function or global to config/GCBE7D/symbols.txt, split ownership, build/GCBE7D/report.json, or fallback DWARF lines.

split-maintenance

8
from denzi-gh/crashwoc-decomp

Maintain config/GCBE7D/splits.txt and its generated companions. Use when Codex needs to add or replace unit ranges, import split data from the backup file, seed split ownership, or reason about normalized unit names like ai_1.c and GBA_1.c.

project-onboarding

8
from denzi-gh/crashwoc-decomp

Onboard Codex to crashwoc-decomp. Use when working in this repository and Codex needs the project layout, build and verification commands, generated-file rules, helper tooling, or the standard workflow for Crash Bandicoot: The Wrath of Cortex GameCube decompilation.

ghidra-workflow

8
from denzi-gh/crashwoc-decomp

Query the local Crash WOC Ghidra project through analyzeHeadless.bat for function lookup, decompilation, disassembly, and datatype inspection.

build-triage

8
from denzi-gh/crashwoc-decomp

Diagnose build failures, progress regressions, and single-object compile problems in crashwoc-decomp. Use when Codex needs to narrow a failing target, inspect report data, or summarize changes from ninja changes.

agent-orchestration

8
from denzi-gh/crashwoc-decomp

Orchestrate one Crash WOC unit or one function with Copilot using the repo-local helper scripts, prompt entry points, and a one-writer-at-a-time workflow.

tripartite-decompositions

16
from plurigrid/asi

GF(3)-balanced structured decompositions for parallel computation. Decomposes problems into MINUS/ERGODIC/PLUS components with sheaf-theoretic gluing. Use for FPT algorithms, skill allocation, or any 3-way parallel workload.

pun-decomposition

16
from plurigrid/asi

Pun Decomposition Skill (MINUS -1)

three-match

16
from plurigrid/asi

3-MATCH gadgets and non-backtracking geodesics for 3-SAT via colored subgraph isomorphism.

structured-decomp

16
from plurigrid/asi

StructuredDecompositions.jl: Sheaves on tree decompositions for FPT algorithms