What Is the Full Routing Matrix in reverse-skill?
The full routing matrix is a human-readable, three-dimensional lookup table defined in skills/routing.md that resolves ambiguous routing decisions when the primary skills/config/routing.json cannot determine a unique skill module for reverse-engineering tasks.
In the zhaoxuya520/reverse-skill repository, routing user requests to the correct analysis module requires a deterministic fallback mechanism beyond machine-driven JSON rules. The full routing matrix serves as the authoritative three-axis reference that disambiguates task routing by mapping target types, user intents, and toolchains to specific skill implementations.
The Three Dimensions of the Full Routing Matrix
The matrix operates across three distinct axes defined in skills/routing.md:
Target Type
This dimension classifies the artifact or environment under analysis. Valid categories include APK files, binary executables (EXE/DLL/SO/ELF), firmware images, Windows Active Directory environments, or CTF competition challenges.
User Intent
This captures the natural-language objective from the operator. The matrix stores normalized intents such as "decompile IDA," "bypass anti-debug," or "CTF ZIP," which the router uses to map informal language to precise technical objectives.
Toolchain
This specifies the concrete analysis tool to invoke, ensuring compatibility with the selected skill module. Supported tools include IDA Pro, radare2, Frida, and Playwright.
Primary and Fallback Routing Logic
The routing system implements a two-tier lookup strategy orchestrated by scripts/master-route.ps1 and scripts/master-route.sh.
When a user submits a request, the router first queries skills/config/routing.json as the single source of truth for primary matches. If the JSON entry is ambiguous or absent, the system falls back to the full routing matrix, searching for a row that satisfies all three dimensions simultaneously. This fallback guarantees that every valid user intent maps to exactly one skill module.
Four Core Functions of the Full Routing Matrix
The matrix serves four critical purposes within the reverse-skill architecture:
-
Guarantees deterministic routing – Every row represents a complete specification across all three axes, ensuring the router always selects a single, unambiguous skill module rather than returning multiple candidates.
-
Acts as a knowledge-base for humans – Contributors edit the markdown file directly rather than modifying JSON, making the routing logic visible, searchable, and version-controlled through standard documentation workflows.
-
Supports ambiguous-intent recovery – The matrix records normalized intent phrases (e.g., "remove anti-debug") that translate vague natural language into precise technical objectives when the primary router cannot interpret the request.
-
Enables cross-module paths – The "Path Crossing" section defines multi-skill workflows (e.g., APK → SO → radare2) that express complex execution sequences impossible to represent in the flat JSON structure.
Practical Routing Workflow Examples
The following examples demonstrate how the router leverages the full routing matrix when primary JSON routing fails.
To route a request using the master router on Linux or macOS:
bash scripts/master-route.sh --hint "decompile IDA"
Internally, master-route.sh executes this resolution chain:
- Reads
skills/config/routing.jsonand finds no exact match for the intent. - Loads
skills/routing.mdand searches for a row where Target Type equals "Binary exe/dll/so/elf," User Intent equals "decompile IDA," and Toolchain equals "IDA Pro." - The matching row points to
ida-reverse/, triggering the skill’s entry script atida-reverse/scripts/start.ps1.
You can verify routing results programmatically using PowerShell:
# Verify the routing configuration for specific criteria
Get-Content skills/config/routing.json | ConvertFrom-Json | Where-Object {
$_.target -eq 'binary' -and $_.intent -eq 'decompile IDA'
}
Key Files in the Routing System Architecture
The routing infrastructure relies on these coordinated files:
| File | Role |
|---|---|
skills/routing.md |
The human-readable full routing matrix with three-axis specifications |
skills/config/routing.json |
Machine-readable primary routing configuration |
skills/MASTER-ROUTING.md |
Protocol documentation and fallback logic specification |
scripts/master-route.ps1 |
PowerShell entry point for router execution |
scripts/master-route.sh |
Bash entry point for router execution |
scripts/verify-routing-coherence.ps1 |
CI verification script ensuring matrix and JSON synchronization |
These components collectively enforce a robust, extensible routing system that guides every reverse-engineering or penetration-testing task to the appropriate skill module.
Summary
- The full routing matrix in
skills/routing.mdprovides a three-dimensional lookup table (Target Type, User Intent, Toolchain) for routing decisions. - It acts as a fallback mechanism when
skills/config/routing.jsonreturns ambiguous or missing matches. - The matrix ensures deterministic routing, serves as human-editable documentation, recovers from ambiguous natural language, and defines complex cross-module execution paths.
- The system is enforced by
scripts/master-route.*entry points and validated byscripts/verify-routing-coherence.ps1to maintain coherence between matrix and JSON configurations.
Frequently Asked Questions
What is the difference between routing.json and the full routing matrix?
skills/config/routing.json serves as the machine-readable primary source of truth for routing decisions, while skills/routing.md contains the full routing matrix—a human-readable, three-dimensional reference that resolves ambiguities when the JSON configuration cannot determine a unique match. The JSON prioritizes speed and machine parsing, whereas the matrix prioritizes readability and complex logic expression.
How does the router handle ambiguous user requests?
When the primary JSON lookup fails to return a single definitive match, the router falls back to the full routing matrix and searches for a row satisfying all three dimensions (Target Type, User Intent, Toolchain). It uses normalized intent phrases recorded in the matrix to translate vague natural language into specific technical objectives, ensuring deterministic resolution even for informal queries.
Can contributors modify the full routing matrix directly?
Yes, contributors edit skills/routing.md directly to update routing logic. This design choice makes the system more maintainable than modifying JSON files because changes remain visible, searchable, and properly version-controlled through standard markdown documentation workflows, reducing the barrier to entry for human contributors.
What are cross-module paths in the routing matrix?
The "Path Crossing" section in the matrix defines multi-skill workflows—such as APK analysis flowing into SO file examination with radare2—that require sequential execution across multiple modules. These complex paths are only expressible in the matrix format and cannot be represented in the flat structure of skills/config/routing.json.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →