# How Many Routing Rules Are Defined in reverse-skill's Config?

> Discover the exact number of routing rules in reverse-skill's config. Learn how 43 rules are organized in the routing.json file for efficient navigation.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: how-to-guide
- Published: 2026-08-27

---

**The reverse-skill repository defines exactly 43 routing rules within the [`skills/config/routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/config/routing.json) file, organized under the `"routes"` object with identifiers ranging from R1 through R44 plus the fallback R0.**

Determining how many routing rules are defined in reverse-skill's config requires examining the central JSON configuration that powers the task-routing engine in `zhaoxuya520/reverse-skill`. This configuration file acts as the single source of truth for skill selection, priority handling, and task distribution across the system.

## Locating the Routing Configuration File

The definitive routing specification resides in [`skills/config/routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/config/routing.json). Within this file, a top-level `"routes"` object contains individual entries where each key represents a distinct routing rule. According to the source code analysis of the repository, this structure drives all routing decisions, with each rule identifier (such as `"R1"`, `"R20"`, or `"R0"`) mapping to specific behavioral logic.

## Breaking Down the 43 Routing Rules

By enumerating all keys present under the `"routes"` object, the configuration contains **43 distinct routing rules**. The identifiers are not strictly sequential but cover the following ranges:

- **R1 – R20**: 20 sequential rules
- **R39**: 1 standalone rule (defined after R20)
- **R21 – R27**: 7 sequential rules
- **R44**: 1 standalone rule
- **R28 – R33**: 6 sequential rules
- **R34 – R38**: 5 sequential rules
- **R40 – R41**: 2 sequential rules
- **R0**: 1 fallback/general rule

The raw definition order in [`skills/config/routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/config/routing.json) is: `R1` through `R20`, followed by `R39`, `R21` through `R27`, `R44`, `R28` through `R33`, `R34` through `R38`, `R40`, `R41`, and finally `R0`.

## Programmatically Verifying the Rule Count

You can programmatically confirm the total count using Python to parse the JSON structure:

```python
import json
from pathlib import Path

# Path relative to the repository root

config_path = Path("skills/config/routing.json")

with config_path.open(encoding="utf-8") as f:
    data = json.load(f)

routes = data.get("routes", {})
print(f"Number of routing rules: {len(routes)}")

```

Executing this script outputs:

```text
Number of routing rules: 43

```

## Related Configuration and Validation Files

Several auxiliary files support and validate these 43 routing definitions:

- **`skills/scripts/verify-routing-coherence.ps1`** – Validates that the routing definitions in the JSON file match generated documentation and priority arrays.
- **[`skills/scripts/test-routing.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/test-routing.sh)** – Executes unit-style tests on Linux/macOS systems to ensure the 43 routing rules function as expected.
- **[`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md)** – Provides a human-readable overview of routing priorities and maps them to the specific entries in [`routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.json).

## Summary

- **43 routing rules** are defined in [`skills/config/routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/config/routing.json) under the `"routes"` object.
- Rule identifiers range from **R1 to R44** (with gaps at R42 and R43) plus the **R0** fallback rule.
- The configuration drives task routing, priority handling, and skill selection throughout reverse-skill.
- Validation scripts ensure coherence across all 43 definitions and their documentation.

## Frequently Asked Questions

### Where are the routing rules stored in reverse-skill?

All 43 routing rules are stored in the [`skills/config/routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/config/routing.json) file within the `"routes"` object. This JSON file serves as the single source of truth for the routing engine in `zhaoxuya520/reverse-skill`.

### What is the purpose of the R0 routing rule?

**R0** functions as the fallback or general rule within the set of 43 routing rules. It typically handles edge cases or default scenarios that do not match the specific criteria defined in the R1 through R44 identifiers.

### How can I count the routing rules without manually inspecting the JSON?

You can use command-line tools like `jq` to count top-level keys, or use the provided Python snippet to load [`skills/config/routing.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/config/routing.json) and check the length of the `"routes"` dictionary, which will return `43`.

### Are the routing rule identifiers sequential from 1 to 43?

No, the 43 rules use non-sequential identifiers. While R1 through R20 are consecutive, the sequence includes gaps (notably R42 and R43 are missing) and interleaved entries like R39, R44, R40, and R41 before concluding with R0.