# What Are the Dimensions of the Three-Axis Routing Matrix in reverse-skill?

> Discover the dimensions of the three-axis routing matrix in reverse-skill. Learn how Target Type, User Intent, and Toolchain guide request dispatch to skill modules.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: deep-dive
- Published: 2026-08-01

---

**The three-axis routing matrix in reverse-skill consists of Target Type, User Intent, and Toolchain, which together determine how requests are dispatched to skill modules.**

The reverse-skill repository implements an intelligent routing system that matches user requests to specialized skill modules using a three-dimensional lookup matrix. This routing architecture is defined in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) and serves as the core dispatch mechanism for reverse engineering tasks. Understanding these three dimensions is essential for extending the system or debugging routing failures.

## The Three Dimensions of the Routing Matrix

The routing matrix operates on three orthogonal axes. A request must match values along all three dimensions before the router selects a specific skill entry.

### Target Type

The **Target Type** dimension identifies the kind of artifact or environment the user wants to analyze. According to [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) lines 16-45, this dimension includes categories such as "APK / Android app", "Binary exe/dll/so/elf", "Wi-Fi / wireless", and "Windows AD / Kerberos". If the target type cannot be inferred from the request, the system triggers the Ambiguous Intent Recovery Protocol.

### User Intent

The **User Intent** dimension captures the specific action or goal the user wants to achieve. Defined in lines 66-89 of the same file, valid intents include "decompile / IDA analyze", "Frida hook / dynamic inject", "remove anti-debug / anti-detection", and "拿 flag / crackme / keygen". This axis distinguishes between static analysis, dynamic instrumentation, and bypass operations.

### Toolchain

The **Toolchain** dimension specifies the concrete tooling employed to execute the task. Lines 105-119 of [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) define values such as "IDA Pro (idapro_*)", "radare2 (r2/rabin2/rasm2)", "Frida", and "anything-analyzer MCP". This dimension ensures the selected skill matches the user's preferred analysis environment.

## How the Matrix Routes Requests

The router performs a nested dictionary lookup using the three dimensions. When a request arrives, the system infers values for each axis and queries the matrix.

```python

# Simple routing lookup (pseudo-code)

def route(request):
    target    = infer_target_type(request)       # e.g. "APK / Android app"

    intent    = infer_user_intent(request)       # e.g. "decompile / IDA analyze"

    toolchain = infer_toolchain(request)         # e.g. "IDA Pro"

    
    # Look-up the matrix (implemented as a nested dict in routing.py)

    skill = ROUTING_MATRIX[target][intent][toolchain]
    return skill

```

If the combination does not exist in the matrix, the system handles the mismatch gracefully.

```python

# Handling a missing combination

def route(request):
    try:
        return route(request)                   # as above

    except KeyError:
        # Ambiguous / unmatched – trigger recovery protocol

        return propose_new_skill(request)

```

These examples illustrate the logical flow implemented in the repository's routing component.

## Source Files and Documentation

The three-axis routing matrix is documented across several files in the repository:

- **[`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md)** – Contains the definitive routing matrix tables. Target Type definitions occupy lines 16-45, User Intent spans lines 66-89, and Toolchain entries are found at lines 105-119.
- **[`skills/routing_zh.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing_zh.md)** – Provides a Chinese localization of the same three-dimensional matrix.
- **[`docs/ARCHITECTURE.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/ARCHITECTURE.md)** – Describes the overall routing architecture and how the three-axis matrix fits into the request processing pipeline.
- **[`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md)** – Serves as the entry point for primary routing logic before consulting the three-axis matrix.

## Summary

- The three-axis routing matrix uses **Target Type**, **User Intent**, and **Toolchain** to dispatch requests.
- All three dimensions must match for successful skill selection; otherwise, the Ambiguous Intent Recovery Protocol activates.
- Definitions are located in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) at specific line ranges: lines 16-45 (Target Type), lines 66-89 (User Intent), and lines 105-119 (Toolchain).
- The matrix supports multiple languages via [`skills/routing_zh.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing_zh.md) and integrates with the master routing system defined in [`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md).

## Frequently Asked Questions

### What happens if one dimension is missing from the request?

When any dimension is missing or ambiguous, the router cannot complete the three-axis lookup. According to the implementation in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md), the system triggers the **Ambiguous Intent Recovery Protocol**, which either requests clarification from the user or proposes a new skill entry to handle the undefined combination.

### Can the routing matrix be extended with new toolchains?

Yes. The matrix in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) is designed to accommodate additional toolchains. You can add new entries to the Toolchain table (lines 105-119) and corresponding skill mappings in [`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md). The nested dictionary structure allows runtime extension without modifying the core routing logic.

### Is there a performance difference between the three dimensions?

The repository implements the matrix as a nested dictionary lookup where all three dimensions are evaluated equally. As shown in the pseudo-code examples, the router performs O(1) hash lookups for Target Type, User Intent, and Toolchain sequentially. No single dimension incurs additional overhead during the routing decision.

### Where can I find examples of resolved routing decisions?

Concrete examples of how the three-axis matrix resolves specific requests are documented in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) within the table definitions. For architectural context regarding how these decisions integrate with the broader system, refer to [`docs/ARCHITECTURE.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/ARCHITECTURE.md).