# How to Add a New Skill Module to the Reverse-Skill Router: The Complete 8-Step Workflow

> Follow our 8-step workflow to easily add a new skill module to the reverse-skill router. Learn the complete process for seamless integration and updates.

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

---

**Adding a new skill module to the reverse-skill router requires an 8-step compliance-driven process: engineering constraints check, directory scaffolding, SKILL.md documentation, bootstrap integration, routing matrix updates, index refresh, Kali platform sync, and final verification.**

The reverse-skill repository by zhaoxuya520 implements a disciplined, multi-stage workflow for extending its AI-powered reverse engineering capabilities. This workflow ensures every new skill is discoverable, executable, and safely integrated into the routing matrix that governs AI tool selection. Below is the complete technical breakdown derived from the source code in [`skills/CONTRIBUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/CONTRIBUTING.md).

## 0. Compliance Engineering Constraints

Every new skill must satisfy **服从性工程约束** (compliance engineering) before any code is written.

The mandatory blocks are:

- **"ACTION REQUIRED"** — Forces immediate execution rather than passive reading
- **"Task Completion Self-Check"** — Ensures the AI verifies its own work

These blocks appear at the top of [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) and are non-negotiable. Without them, the AI will read the skill documentation without executing it.

## 1. When to Create a New Skill Module

Create a new skill only when the **target type**, **toolchain**, or **workflow** is distinct from existing modules.

Per [`skills/CONTRIBUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/CONTRIBUTING.md) section *"1. 什么时候该新增 skill"*, if your change merely supplements an existing skill, edit that skill instead. The router's effectiveness depends on clear categorical boundaries.

## 2. Directory Skeleton Structure

Create a new folder under `skills/` using **lower-case hyphenated names** (e.g., `firmware-reverse`).

Required structure:

```text
skills/
└── <new-skill-name>/
    ├── SKILL.md              # mandatory entry point

    ├── scripts/              # optional automation

    │   └── <workflow>.ps1
    └── references/           # optional documentation

        └── <topic>.md

```

The [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) file must contain front-matter with `name` and `description` fields, plus sections for **适用范围** (scope), **工具依赖** (tool dependencies), **工作流** (workflow), **按需自举** (on-demand bootstrap), and **路由上下文** (routing context).

## 3. SKILL.md Required Content Structure

The [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) file drives both human readability and AI execution. Per [`skills/CONTRIBUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/CONTRIBUTING.md) lines 98-104, the **ACTION REQUIRED** block must appear early:

```markdown

## ACTION REQUIRED（读完后立刻执行）

1. `NOW`：确认当前任务是否命中本 skill 的适用范围。
2. `NOW`：读取 `../tool-index.md`，校验工具可用性和实际路径。
3. `NEXT`：缺工具时调用 bootstrap，不要猜路径。
4. `ACT`：进入 "工作流" 第一步并执行，不要停在确认状态。

```

This structure ensures the AI transitions from reading to execution without hesitation.

## 4. Bootstrap System Integration (Windows)

Register the new skill's tools in the Windows bootstrap system through four files:

1. **[`scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scripts/bootstrap-manifest.json)** — Add capability entry with `bootstrapKind`, `repo`, `assetRegex`, `installDir`, and `verifyCommand`

Example for Ghidra headless:

```json
{
  "name": "ghidra",
  "bootstrapKind": "github-release-zip",
  "repo": "NationalSecurityAgency/ghidra",
  "assetRegex": "^ghidra_.*_PUBLIC_.*\\.zip$",
  "installDir": "%USERPROFILE%\\Tools\\ghidra",
  "canAutoInstall": true,
  "verifyCommand": "analyzeHeadless"
}

```

2. **`scripts/lib/ToolDiscovery.ps1`** — Register the tool in the central catalog
3. **`skills/scripts/refresh-tool-index.ps1`** — Add script references for index regeneration
4. **Entry scripts** — Ensure they call bootstrap when tools are missing

## 5. Routing Matrix Update

Update three routing artifacts to make the skill discoverable:

- **[`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md)** — Insert rows under **By Target Type**, **By User Intent**, and/or **By Toolchain** as appropriate

Example routing entry:

```markdown
| Target Type | Recommended Entry | Alternative |
|------------|-------------------|------------|
| Firmware / IoT | `firmware-pentest/` — extract → EMBA → emulate → fuzz | `reverse-engineering/platforms.md` — static RE only |

```

- **[`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) (root)** — Add the new skill to the module table
- **[`.kiro/steering/reverse-routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/.kiro/steering/reverse-routing.md)** — Add trigger keywords for Kiro integration (if applicable)

The router resolves queries via: [`MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/MASTER-ROUTING.md) → [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) → target skill's [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md).

## 6. Refresh Tool Index

Run the platform-specific refresh script to regenerate [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) and [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json):

- **Windows**: `powershell skills/scripts/refresh-tool-index.ps1`
- **Kali**: `bash kali/scripts/refresh-tool-index.sh`

This step publishes your tool registrations to the index files that the routing system consults at runtime.

## 7. Kali Platform Synchronization

If the repository contains a `kali/` directory, repeat steps 4-6 using Kali equivalents:

- [`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json)
- [`kali/scripts/lib/tool-discovery.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/lib/tool-discovery.sh)
- [`kali/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/refresh-tool-index.sh)

Cross-platform parity ensures consistent behavior regardless of the operating environment.

## 8. Verification Checklist

Confirm every mandatory artifact exists per the checklist embedded at the end of [`skills/CONTRIBUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/CONTRIBUTING.md):

- [ ] [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) with compliance blocks and required sections
- [ ] Routing matrix entries in [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md)
- [ ] Bootstrap manifest registration
- [ ] Tool-discovery registration
- [ ] Index refresh executed successfully
- [ ] Kali equivalents (if applicable)

## Summary

The reverse-skill router follows a **Define → Scaffold → Document → Register → Route → Index → Verify** pattern:

- **Compliance blocks** in [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) force AI execution over passive reading
- **Bootstrap integration** enables automatic tool installation and discovery
- **Routing matrix updates** make skills findable by target type, intent, and toolchain
- **Index refresh** publishes tool availability to the runtime system
- **Cross-platform sync** maintains parity between Windows and Kali environments

Key files governing this workflow include [`skills/CONTRIBUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/CONTRIBUTING.md) (canonical guide), [`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md) (entry point), and [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) (resolution matrix).

## Frequently Asked Questions

### What happens if I skip the "ACTION REQUIRED" block in SKILL.md?

The AI will likely read your skill documentation without executing it. Per [`skills/CONTRIBUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/CONTRIBUTING.md), this block is mandatory under **服从性工程约束** (compliance engineering) and ensures the transition from reading to action. Without it, the skill fails its primary purpose of driving automated reverse engineering workflows.

### Can I add a skill without updating the routing matrix?

No—the skill will be undiscoverable. The router in [`skills/MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/MASTER-ROUTING.md) resolves queries through a chain: [`MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/MASTER-ROUTING.md) → [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) → target [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md). If your skill lacks entries in [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) under the appropriate axes (target type, user intent, toolchain), the AI cannot route tasks to it.

### How does the bootstrap system handle missing tools?

The bootstrap system declared in [`scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/scripts/bootstrap-manifest.json) specifies `bootstrapKind` (e.g., `github-release-zip`), source repository, asset patterns, and installation paths. When `tool-discovery` detects a missing tool, it invokes the registered bootstrap method, installs to the configured directory, and verifies via `verifyCommand`—all without manual intervention.

### What's the difference between [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) and [`MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/MASTER-ROUTING.md)?

[`MASTER-ROUTING.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/MASTER-ROUTING.md) is the **entry point** that explains the routing chain rules and delegates to specialized matrices. [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) contains the **three-axis routing matrix** (By Target Type, By User Intent, By Toolchain) with concrete skill assignments. The master document governs policy; the routing document contains the actionable lookup tables.