How reverse-skill Handles Platform-Specific Execution: Architecture and Implementation
reverse-skill isolates OS differences at the entry-point level by providing native shell wrappers—master-route.ps1 for Windows and master-route.sh for Unix-like systems—that share an identical CLI contract and delegate to platform-agnostic routing logic.
The reverse-skill repository implements a sophisticated platform-specific execution strategy that allows reverse engineering workflows to run identically across Windows, Linux, macOS, and Kali systems. By abstracting operating system differences into thin shell-specific entry scripts, the project ensures consistent routing semantics while respecting native PowerShell and Bash conventions. This design enables analysts to execute complex reverse-engineering tasks using familiar shell syntax while the underlying framework maintains behavioral parity across environments.
The Dual Entry-Point Architecture
The repository ships two native routing scripts located in skills/scripts/ that serve as the sole platform-specific components. Both scripts implement the master-route.* contract documented in skills/SKILL.md (lines 13 and 86) and skills/MASTER-ROUTING.md (line 3), ensuring that differences between Windows and Unix-like systems are contained entirely within these entry points.
Windows PowerShell Entry Point
For Windows environments, reverse-skill provides skills/scripts/master-route.ps1. This PowerShell script handles Windows-specific path conventions, execution policy requirements, and PowerShell parameter binding while exposing the same interface as its Bash counterpart. As documented in RULES.md (line 19) and README_AI.md (line 40), Windows users invoke the framework using standard PowerShell execution syntax.
Linux, macOS, and Kali Bash Entry Point
Unix-like systems—including Linux distributions, macOS, and Kali—use skills/scripts/master-route.sh. This Bash implementation mirrors the PowerShell entry point's CLI parsing logic and argument validation. According to the source analysis of master-route.sh (line 16), both scripts validate identical argument signatures (--hint, --out-dir, --project-root) before proceeding to platform-neutral logic.
Unified Execution Flow Beyond the Entry Point
Once the entry script initializes, platform-specific execution concerns disappear. Both master-route.ps1 and master-route.sh delegate to a shared pipeline that operates identically regardless of the host operating system.
CLI Contract and Argument Parsing
Both entry scripts parse the same standardized options:
--hint: Specifies the reverse-engineering task or target skill--out-dir: Defines the output directory for artifacts--project-root: Locates the project base path
This contract enforcement ensures that a command string valid in Bash remains semantically identical when translated to PowerShell, with only the shell invocation syntax changing.
Case Initialization and Security Gating
After argument validation, the entry scripts invoke their respective case-init.* counterparts (case-init.sh for Bash, case-init.ps1 for PowerShell). These initialization scripts create temporary case directories and invoke case-guard.* scripts to enforce security barriers. According to AGENTS.md (line 11), the case-guard.* scripts enforce an auth.status=granted barrier that prevents unauthorized actions (ACT) regardless of the underlying platform. This ensures that security gating remains consistent whether the analysis runs on Windows or Linux.
Centralized Routing Configuration
Following successful initialization and guard checks, both entry scripts read from config/routing.json to resolve the primary skill matching the provided hint. This JSON file serves as the central routing contract, mapping task hints to specific skill definitions. Because the routing configuration is platform-neutral, the same skill definitions execute identically across all supported operating systems, with secondary suggestions presented to the analyst in the same format.
Cross-Platform Command Examples
The following examples demonstrate how reverse-skill achieves platform-specific execution while maintaining workflow consistency:
# Linux / macOS / Kali – run a reverse-engineering task
bash skills/scripts/master-route.sh --hint "apk reverse" --out-dir out
# Windows – run a Windows AD enumeration task
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/master-route.ps1 `
--hint "bloodhound enumeration" --out-dir out
Both commands ultimately execute the same routing logic, create identical directory structures (temporary case folders, evidence folders), and produce comparable output artifacts.
Key Source Files and Their Roles
Understanding the platform-specific execution model requires familiarity with these critical components:
skills/scripts/master-route.ps1: Windows entry point written in PowerShell that handles Windows-specific invocation requirementsskills/scripts/master-route.sh: Linux/macOS/Kali entry point written in Bash that implements the same CLI contractskills/scripts/case-init.shandcase-init.ps1: Platform-specific initialization scripts that create temporary case directories and prepare the execution environmentskills/scripts/case-guard.shandcase-guard.ps1: Security gate scripts that enforceauth.status=grantedvalidation before allowing workflow continuationconfig/routing.json: Central routing contract that maps hints to primary skills, shared across all platformsskills/SKILL.md: Documentation defining the platform-native routing contract and cross-platform behavior expectations
Summary
- reverse-skill uses native shell wrappers at
skills/scripts/master-route.ps1andskills/scripts/master-route.shto handle platform-specific execution. - Both entry scripts enforce an identical CLI contract parsing
--hint,--out-dir, and--project-rootarguments before delegating to shared logic. - The architecture maintains platform neutrality beyond initialization through shared
config/routing.jsondefinitions and unified skill execution paths. - Security gating via
case-guard.*scripts ensures uniformauth.status=grantedenforcement across Windows, Linux, macOS, and Kali environments.
Frequently Asked Questions
What are the specific entry scripts for each platform in reverse-skill?
Windows systems use skills/scripts/master-route.ps1, while Linux, macOS, and Kali systems use skills/scripts/master-route.sh. Both are located in the skills/scripts/ directory and implement an identical command-line interface, allowing users to invoke reverse-skill using their native shell syntax.
How does reverse-skill ensure routing consistency between PowerShell and Bash?
The repository enforces a strict contract documented in skills/SKILL.md (lines 13 and 86) and skills/MASTER-ROUTING.md (line 3) that both shell implementations must follow. Both scripts parse the same arguments (--hint, --out-dir, --project-root) and ultimately read from the same config/routing.json file, ensuring that skill resolution behaves identically regardless of the entry script's language.
What security measures are applied uniformly across platforms?
All platforms execute case-guard.* scripts after initialization, which enforce an auth.status=granted barrier as specified in AGENTS.md (line 11). This authentication check prevents unauthorized workflow actions and applies consistently whether the entry point is PowerShell or Bash, ensuring security policy uniformity across operating systems.
Can I add support for additional operating systems to reverse-skill?
Yes, the architecture supports adding new platforms by implementing a thin wrapper script that forwards arguments to the shared logic. Since only the entry points are platform-specific, you can create a new master-route.* script for an additional OS (such as zsh or fish) that parses the standard CLI options and delegates to the existing case initialization and routing infrastructure.
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 →