# Tool-Index.md Format and Manual Update Guide for Reverse-Skill

> Discover the tool-index.md format in reverse-skill. Learn how to update this catalog of security tools using automated scripts instead of manual edits for efficient management.

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

---

**[`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) is a machine-generated file that catalogs installed security and reverse-engineering tools, and you update it by running platform-specific refresh scripts rather than editing it by hand.**

The [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) file serves as the central registry for the **zhaoxuya520/reverse-skill** repository, mapping which tools are available, where they're located, and whether they're properly registered with the Model Context Protocol (MCP). Understanding its format and update mechanism is essential for maintaining an accurate development environment.

## How Tool-Index.md Is Generated (Not Stored)

[`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) does not exist in the source tree when you clone the repository. It is **excluded from version control** via `.gitignore` because it contains absolute paths and machine-specific data.

The file is produced by bootstrap scripts that inspect your host system, discover installed tools, and emit both a human-readable markdown file and a machine-readable JSON counterpart.

The **template** defining the layout lives at [`skills/tool-index.md.template`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md.template). This template provides:

- First-run instructions for Windows and Unix systems
- Table schemas for both platforms
- A capability status section with standardized symbols

## Tool-Index.md Format Structure

A generated [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) contains three major sections derived from the template:

### First Run Instructions

Platform-specific commands to generate the initial index, covering **PowerShell** for Windows and **Bash** for Linux/macOS/Kali.

### Generated Tables

Two table formats depending on your operating system:

| Platform | Columns |
|----------|---------|
| **Windows** | 8 columns: `工具` \| `归属 skill` \| `作用` \| `可用` \| `路径` \| `版本` \| `来源` \| `脚本引用` |
| **Linux/macOS** | 7 columns: `Tool` \| `Skill` \| `Purpose` \| `Available` \| `Path` \| `Version` \| `Install hint` |

### Current Capabilities Snapshot

A compact status table using these symbols:

- **✓** = Yes (ready/available/registered)
- **✗** = No (missing/not ready)
- **—** = Unknown (replaced after successful refresh)

The template excerpt (lines 26–38) illustrates this structure:

```markdown
Windows (PowerShell) 生成 8 列表格：
| 工具 | 归属 skill | 作用 | 可用 | 路径 | 版本 | 来源 | 脚本引用 |
Linux/macOS (Bash) 生成 7 列表格：
| Tool | Skill | Purpose | Available | Path | Version | Install hint |
...
| 能力 | 工具可用 | Ready | MCP 已注册 | 服务在线 | 可自动安装 | 安装方式 |
|------|:---:|:---:|:---:|:---:|:---:|--------|

```

## How to Manually Update Tool-Index.md

To refresh the index after installing, removing, or updating tools, execute the appropriate script for your platform.

### Windows Update Process

Run the PowerShell script located at [`skills/scripts/refresh-tool-index.ps1`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.ps1):

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File "skills/scripts/refresh-tool-index.ps1"

```

### Linux/macOS/Kali Update Process

Execute the Bash script at [[`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh)](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh):

```bash
bash skills/scripts/refresh-tool-index.sh

```

### What the Scripts Do

1. **Scan** for known tools (e.g., `jadx`, `apktool`, `frida`, `ida`, `ghidra-mcp`, `nmap`)
2. **Detect** availability, executable path, version, and MCP registration status
3. **Write** results to [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) (human-readable) and [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json) (machine-readable) in the repository root

### Verify and Commit

Open the newly created [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) to confirm tables show **✓** or **✗** instead of placeholder dashes. By default, the file remains ignored by Git. Temporarily remove it from `.gitignore` only if you need to version-control a snapshot for CI documentation.

## Sample Generated Output

A populated [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) contains actual system data:

```markdown
| Tool      | Skill          | Purpose            | Available | Path                     | Version | Install hint |
|-----------|----------------|--------------------|----------:|--------------------------|---------|--------------|
| jadx     | reverse-engine | decompile APK      | ✓        | C:\Program Files\jadx\   | 1.4.7   | github-release-zip |
| frida     | mobile-reverse | instrumentation    | ✓        | /usr/local/bin/frida     | 16.0.0 | pip-package |
| nmap      | pentest-tools  | network scanner    | ✗        | —                        | —       | apt-package |

```

## Key Files in the Tool-Index System

| Path | Purpose |
|------|---------|
| `skills/tool-index.md.template` | Markdown layout template with instructions and table schemas |
| `skills/scripts/refresh-tool-index.ps1` | Windows PowerShell discovery and generation script |
| [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) | Linux/macOS/Bash discovery and generation script |
| [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) (generated) | Human-readable tool registry at repository root |
| [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json) (generated) | Machine-readable tool data for programmatic access |

## Summary

- **[`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) is generated, not static** — it reflects your actual environment and is excluded from Git by default
- **Format varies by platform** — 8 columns for Windows, 7 columns for Linux/macOS, both with a capabilities snapshot section
- **Update via scripts only** — run `refresh-tool-index.ps1` on Windows or [`refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/refresh-tool-index.sh) on Unix systems
- **Always re-run after tool changes** — the scripts overwrite the files completely, ensuring synchronization with your system state

## Frequently Asked Questions

### What happens if I edit tool-index.md by hand?

Manual edits will be **lost on the next script execution**. The refresh scripts overwrite [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) completely based on live system detection. Modify the template at `skills/tool-index.md.template` if you need persistent changes to the output format.

### Can I track tool-index.md in version control?

Only if you have a specific need, such as CI documentation or shared environment snapshots. The file is `.gitignore`d by default because absolute paths vary across machines. Remove the entry temporarily to commit a snapshot, then restore the ignore rule.

### Why are there two generated files (md and json)?

The [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) file provides **human-readable documentation** for developers, while [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json) enables **programmatic access** for routing engines and automation scripts that parse tool availability without regex parsing markdown tables.

### What tools does the discovery script detect?

According to the implementation in [`skills/scripts/refresh-tool-index.ps1`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.ps1) and its Bash counterpart, the script checks for common reverse-engineering and security tools including **jadx**, **apktool**, **frida**, **ida**, **ghidra-mcp**, **nmap**, and others configured in the detection logic.