Reverse-Skill Trigger Keywords: The Complete Routing Reference
Reverse-Skill trigger keywords are case-insensitive literal phrases defined in skills/routing.md that map natural-language user requests to specific skill modules by matching Target Type, User Intent, and Toolchain dimensions.
The zhaoxuya520/reverse-skill repository uses a keyword-driven routing system to determine which specialized skill module should handle a given request. When a user’s query contains any of the predefined trigger keywords, the router selects the corresponding skill file and executes its workflow.
How Trigger Keywords Work in Reverse-Skill Routing
The routing engine evaluates three dimensions to select the appropriate skill module: Target Type, User Intent, and Toolchain. The trigger keywords serve as the literal bridge between natural language and these dimensions.
When processing a request, the system scans the User Says column in skills/routing.md for case-insensitive substring matches. Once a match is found, the router redirects execution to the file path specified in the Route To column. This design allows the system to handle diverse reverse-engineering tasks—from decompiling binaries with IDA Pro to analyzing Android APKs—without requiring exact command syntax.
Complete Trigger Keyword Reference
The master routing matrix in skills/routing.md contains dozens of trigger phrases organized by domain. Below are the primary keyword groups and their corresponding skill modules.
Binary Analysis and Decompilation
These keywords activate workflows for static and dynamic analysis of compiled binaries:
- "decompile / IDA analyze" →
ida-reverse/SKILL.md - "recover source / disassemble" →
reverse-engineering/SKILL.mdandida-reverse/ - "radare2 / r2 analyze" →
radare2/SKILL.md - "binary diff / bindiff / function offset migration" →
binary-diff/SKILL.md
Virtual Machine and Obfuscation Reverse Engineering
Specialized triggers for handling protected or virtualized code:
- "DSL VM / 自定义指令集 / 风控引擎逆向" →
reverse-engineering/dsl-vm-reverse/SKILL.md - "OLLVM deobfuscate / 控制流平坦化去除 / deflat / 脱混淆" →
reverse-engineering/references/ollvm-deobfuscation.md - "obpo / obpo-plugin / d810-ng / d810" →
reverse-engineering/rereferences/ollvm-deobfuscation.md
Dynamic Instrumentation and Runtime Analysis
Keywords for runtime manipulation and debugging:
- "Frida hook / dynamic inject" →
reverse-engineering/tools-dynamic.md - "symbol execution / angr" →
reverse-engineering/tools-dynamic.md - "bypass anti-debug / anti-detection" →
reverse-engineering/anti-analysis.md
Mobile and Web Reverse Engineering
Triggers for platform-specific analysis:
- "APK unpack / repack / modify smali" →
apk-reverse/SKILL.md - "iOS app (IPA) / mobile reverse" →
mobile-reverse/SKILL.md - "find frontend signature / encrypted params" →
js-reverse/SKILL.md - "Python bytecode / pyc" →
reverse-engineering/languages.md
Language-Specific Compiled Code
These phrases route to specialized handlers for modern compiled languages:
- "Go/Rust/Swift reverse" →
reverse-engineering/languages-compiled.mdandgo-reverse.md - "kernel driver / Rootkit / LKM" →
reverse-engineering/kernel-driver-reverse.md
Penetration Testing and Security Analysis
Keywords bridging reverse engineering with offensive security:
- "fireye / fireyejs / getToken 逆向" →
reverse-engineering/dsl-vm-reverse/SKILL.md - "port scan / Nmap" →
pentest-tools/SKILL.md - "vulnerability scan / Nuclei" →
pentest-tools/SKILL.md - "SQL injection / SQLMap" →
pentest-tools/SKILL.md - "password cracking / Hashcat" →
pentest-tools/SKILL.md - "Wi-Fi / wireless" →
wifi-wireless/SKILL.md - "Windows AD / Kerberos / AD CS" →
windows-ad/SKILL.md
Malware and Protocol Analysis
Specialized triggers for threat intelligence and communications:
- "malware analysis / YARA / Sigma" →
malware-analysis/SKILL.md - "protocol reverse / Protobuf / gRPC" →
protocol-reverse/SKILL.md - "API security / REST / GraphQL" →
api-security/SKILL.md
Automation and Documentation
Utility triggers for supporting workflows:
- "browser automation / open webpage / fill form" →
browser-automation/SKILL.md - "write report / documentation" →
docs-generator/ - "source code / SAST" →
code-audit/SKILL.md - "supply chain / SBOM / CI-CD" →
supply-chain-security/SKILL.md
CTF and Game Reverse Engineering
Competition and entertainment-specific routing:
- "CTF challenge / competition reverse" →
reverse-engineering/patterns-ctf*.md - "CTF competition (full stack)" →
../CTF-Sandbox-Orchestrator/ctf-sandbox-orchestrator/SKILL.md - "game reverse / anti-cheat / hack analysis" →
reverse-engineering/SKILL.md
Routing Implementation Details
The routing logic resides in two primary files. The skills/routing.md file contains the complete mapping matrix with the User Says and Route To columns. When ambiguity exists, the system consults skills/MASTER-ROUTING.md as the high-level entry point to resolve conflicts.
The router performs case-insensitive substring matching using regex.Escape (in Python implementations) or [regex]::Escape (in PowerShell) to ensure literal phrase matching rather than pattern interpretation. Additionally, the system verifies tool availability by checking tool-index.md (generated by scripts/refresh-tool-index.*) before activating a skill module that requires specific binaries.
Programmatic Routing Lookup
You can emulate the reverse-skill routing logic to determine which module handles a specific query. Below are reference implementations in PowerShell and Python.
# PowerShell implementation of trigger keyword matching
$routingFile = Join-Path $repoRoot 'skills\routing.md'
$content = Get-Content $routingFile -Raw
# Extract the "User Says" → "Route To" mapping from the markdown table
$regex = '(?m)^\s*\|\s*"([^"]+)"\s*\|\s*`([^`]+)`'
$routeMap = @{}
foreach ($match in [regex]::Matches($content, $regex)) {
$phrase = $match.Groups[1].Value.Trim()
$skill = $match.Groups[2].Value.Trim()
$routeMap[$phrase] = $skill
}
function Find-Route($query) {
foreach ($phrase in $routeMap.Keys) {
if ($query -match [regex]::Escape($phrase)) {
return $routeMap[$phrase]
}
}
return $null
}
# Example usage
$query = "Can you help me decompile this binary with IDA?"
$route = Find-Route $query
Write-Host "Matched skill module:" $route
# Output: Matched skill module: ida-reverse/SKILL.md
# Python implementation of the routing lookup
import re
import pathlib
def load_routing_matrix(path: str = 'skills/routing.md') -> dict[str, str]:
"""Load the trigger keyword to skill module mapping."""
routing_path = pathlib.Path(path)
text = routing_path.read_text(encoding='utf-8')
# Match table rows: | "trigger phrase" | `target/skill.md` |
pattern = re.compile(r'^\s*\|\s*"([^"]+)"\s*\|\s*`([^`]+)`', re.MULTILINE)
return {m[1].strip(): m[2].strip() for m in pattern.findall(text)}
def find_route(query: str, route_map: dict[str, str]) -> str | None:
"""Find the first matching skill module for a given query."""
for phrase, skill in route_map.items():
if re.search(re.escape(phrase), query, re.IGNORECASE):
return skill
return None
# Example usage
route_map = load_routing_matrix()
result = find_route("I need to bypass anti-debug checks in this binary", route_map)
print(result)
# Output: reverse-engineering/anti-analysis.md
Summary
- Trigger keywords are defined in
skills/routing.mdand serve as the routing mechanism for the zhaoxuya520/reverse-skill repository. - The system matches Target Type, User Intent, and Toolchain dimensions using case-insensitive substring matching.
- Keywords range from specific tools ("IDA analyze", "radare2") to techniques ("control flow flattening removal") and platforms ("APK unpack", "iOS app").
- The router consults
skills/MASTER-ROUTING.mdfor ambiguous queries and verifies tool availability viatool-index.mdbefore execution. - Each keyword maps to a specific
SKILL.mdfile containing the detailed workflow implementation.
Frequently Asked Questions
What file contains the complete list of reverse-skill trigger keywords?
The complete routing matrix is located at skills/routing.md in the repository root. This markdown file contains a table mapping all trigger phrases to their respective skill module paths, along with the Target Type and Toolchain specifications used by the routing engine.
How does the router handle keyword matching?
The router uses case-insensitive substring matching against the User Says column. It escapes special regex characters to treat the trigger keywords as literal phrases rather than patterns. The first match found in the routing table determines which skill module receives the request.
Can I add custom trigger keywords to the system?
Yes. You can extend the routing matrix by adding new rows to skills/routing.md following the existing format: | "your trigger phrase" | Target Type | Toolchain | [skill-module/SKILL.md](https://github.com/zhaoxuya520/reverse-skill/blob/main/skill-module/SKILL.md) |. After modification, run the appropriate refresh script to update tool-index.md if your new skill requires specific binaries.
What happens when multiple trigger keywords match a single query?
The router selects the first match found during the table scan. For complex queries that might match multiple patterns, the system relies on the ordering in skills/routing.md and falls back to skills/MASTER-ROUTING.md when ambiguity detection is required. Design your trigger keywords with specific, unique phrases to avoid unintended routing collisions.
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 →