When Is the Advisory Matrix Used in Reverse-Skill Routing? Fallback Logic Explained
The advisory routing matrix in reverse-skill is used only when the primary JSON-based routing cannot resolve an unambiguous skill path for a given target type, user intent, and toolchain combination.
The reverse-skill framework implements a two-tier routing system where config/routing.json serves as the authoritative source of truth. The advisory matrix at skills/routing.md acts strictly as a disambiguation aid—not an override mechanism.
How Primary Routing Works
The primary routing step executes through scripts/master-route.ps1. This PowerShell script reads config/routing.json to determine which skill should run based on three input dimensions: target type, user intent, and toolchain.
# Execute primary routing with a natural language hint
.\scripts\master-route.ps1 -Hint "reverse engineer Android APK"
When the JSON lookup yields exactly one matching skill, the routing decision is final. No further consultation occurs.
When the Advisory Matrix Becomes Relevant
The advisory routing matrix is consulted exclusively when primary routing returns ambiguous results. This happens when multiple skills could plausibly match the input criteria, or when the JSON structure lacks sufficient granularity to isolate a single path.
According to skills/routing.md itself, the matrix is "Advisory only" and must be used "only when PRIMARY is ambiguous"【/cache/repos/github.com/zhaoxuya520/reverse-skill/main/skills/routing.md†L3-L4】.
The repository's RULES.md codifies this explicitly: "Ambiguous PRIMARY → skills/routing.md (advisory matrix only)"【/cache/repos/github.com/zhaoxuya520/reverse-skill/main/RULES.md†L24-L25】.
Advisory Matrix Structure and Usage
The matrix provides a three-axis view to help operators manually disambiguate routing decisions:
- Target Type: The object being analyzed (e.g., APK, ELF binary, firmware image)
- User Intent: The high-level goal (e.g., "decompile", "extract strings", "find vulnerabilities")
- Toolchain: The preferred tooling approach (e.g., "ida-reverse", "ghidra", "radare2")
# Example: Primary routing reports ambiguity for APK + "decompile" + "ida-reverse"
# The advisory matrix guides you to the correct SKILL.md file
# Manual consultation workflow:
# 1. Open skills/routing.md
# 2. Locate the intersection row:
# | Target Type | User Intent | Toolchain | Recommended Skill |
# |-------------|-------------|-------------|-------------------|
# | APK | decompile | ida-reverse | SKILL_APK_IDA.md |
# 3. Read the indicated skill file for execution instructions
Priority Hierarchy: JSON Always Wins
A critical constraint governs the advisory matrix role: if the matrix and JSON disagree, the JSON configuration prevails. The matrix offers guidance—it does not override the authoritative config/routing.json.
This design ensures:
- Deterministic automation: Scripts can rely on JSON as the single source of truth
- Human-readable fallback: Operators have structured guidance for edge cases
- No configuration drift: The matrix cannot accidentally subvert intended routing logic
Key Files in the Routing System
| File | Purpose | Authority Level |
|---|---|---|
config/routing.json |
Machine-readable routing map | Authoritative |
scripts/master-route.ps1 |
Primary routing execution engine | Implements JSON rules |
skills/routing.md |
Human-readable disambiguation matrix | Advisory only |
RULES.md |
Repository-wide routing governance | Defines fallback conditions |
Summary
- Primary routing via
scripts/master-route.ps1andconfig/routing.jsonis always attempted first - The advisory matrix at
skills/routing.mdactivates only for ambiguous primary results - The matrix provides a three-axis decision view (target type, user intent, toolchain)
- JSON overrides the matrix in any conflict—the matrix is strictly non-binding
- Consult
RULES.mdfor the formal routing hierarchy definition
Frequently Asked Questions
Can the advisory matrix override the JSON routing configuration?
No. The matrix is explicitly "Advisory only" per its own documentation【/cache/repos/github.com/zhaoxuya520/reverse-skill/main/skills/routing.md†L3-L4】. The JSON file at config/routing.json remains the authoritative source, and RULES.md establishes that JSON decisions take precedence even when they contradict matrix suggestions.
How do I know when to consult the advisory matrix?
The scripts/master-route.ps1 script signals this condition explicitly. When primary routing cannot resolve a unique skill, it reports "Ambiguous PRIMARY" and directs you to skills/routing.md. You can also proactively check the matrix when your input parameters (target type, user intent, toolchain) seem to match multiple documented skills.
What three axes does the advisory matrix use for disambiguation?
The matrix organizes guidance by: target type (what you're analyzing), user intent (what you want to accomplish), and toolchain (which tool preference or approach applies). Each matrix row maps a unique combination of these three dimensions to a recommended skill file.
Where is the routing priority formally defined?
The routing hierarchy is codified in RULES.md at line 24-25, which states: "Ambiguous PRIMARY → skills/routing.md (advisory matrix only)"【/cache/repos/github.com/zhaoxuya520/reverse-skill/main/RULES.md†L24-L25】. This file governs all routing behavior in the repository.
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 →