* test(ci): wire remaining unwired suites (rebase of #97) Run test-p0-friction.ps1 on Windows PS 5.1 routing-tests. Run case-review/tests/test_review_case.py in Linux case-contract. Title-safety is already on main; do not duplicate that step. * docs(changelog): note remaining CI suite wiring
125 lines
10 KiB
Markdown
125 lines
10 KiB
Markdown
# Changelog
|
||
|
||
All notable changes to **reverse-skill** are documented in this file.
|
||
|
||
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||
Versioning follows [Semantic Versioning](https://semver.org/).
|
||
|
||
## [Unreleased]
|
||
### Added
|
||
- **CI runs remaining unwired suites** — est-p0-friction.ps1 on the Windows leg of
|
||
outing-tests (Windows PowerShell 5.1); case-review/tests/test_review_case.py in the Linux case-contract job. est-workflow-title-safety.ps1 was already wired.
|
||
|
||
### Fixed
|
||
- **Windows PowerShell 5.1 encoding** — added a UTF-8 BOM to five non-ASCII `.ps1` scripts (`skills/scripts/verify-doc-facts.ps1`, `apk-reverse/scripts/frida-run.ps1`, `apk-reverse/scripts/rebuild-sign-install.ps1`, `ida-reverse/scripts/start.ps1`, `radare2/scripts/recon.ps1`). Without a BOM, PS 5.1 parses these files as the system ANSI codepage and garbles their Chinese / em-dash string literals; `verify-doc-facts.ps1` was failing four checks under 5.1 (CI only ran it under `pwsh`, which defaults to UTF-8). CI now guards every non-ASCII `.ps1` for a BOM.
|
||
|
||
### Changed
|
||
- **Coherence clamp (identity-preserving)** — `RULES.md` hot path is `master-route` → `case-init` → PRIMARY. `routing.json` remains the only route table; `MASTER-ROUTING.md` priority order is verified against JSON. `routing.md` is advisory. `precedent-auth.md` no longer grants auth.
|
||
- **IDA open** — lock files may force a temp copy; `.i64` / `.idb` are never deleted.
|
||
- **IDA MCP keep-alive** — `start.ps1` reuses a healthy HTTP server, launches `idalib_supervisor` via windowless Python, never `taskkill`s `ida.exe` (no `/T`). A listening 13337 with `tools/list` timeout is treated as busy, not dead, so the 1-minute watchdog cannot kill a supervisor mid-`idb_open`. `open.ps1` talks ida-pro-mcp 2.x `idb_open`/`idb_list`.
|
||
- **IDA discovery** — `ToolDiscovery.ps1` now catalogs `idalib-mcp`, `ida-pro-mcp`, and `ida` with Program Files + per-user Python fallbacks.
|
||
|
||
### Added
|
||
- `ida-reverse` watchdog / scheduled-task installer / GUI launcher / supervisor wrapper (`watchdog.ps1`, `install-autostart.ps1`, `start-gui.ps1`, `run-supervisor.py`) plus portable `LOCAL-SETUP.md`.
|
||
|
||
## [1.0.1] — 2026-08-08
|
||
### Added
|
||
- **Routing single source of truth** — `skills/config/routing.json` (R0–R39 keyword rules with `must` / `mustAll` / `exclude` semantics). `master-route.ps1` now reads this file; hardcoded routing tables removed from scripts. Routing knowledge lives in one place.
|
||
- **Routing regression benchmark** — `skills/tests/routing-benchmark.json` (163 bilingual cases, 40 quick) + `skills/scripts/test-routing.ps1` runner. Any routing change must keep the benchmark green.
|
||
- **Routing keyword coverage expansion** (benchmark-driven): burp suite family, pcap/wireshark, root-detection/certificate-pinning, buffer overflow, `.so`/native/JNI, go binaries (中文), js-encrypt, webshell, privilege escalation, S3/object storage, memory dump, incident response, Bluetooth/BLE, USB, Unity/game reverse, security assessment, and more.
|
||
- **Supply-chain pin gate** — `verify-routing-coherence.ps1` now fails on any auto-install capability lacking `pinnedVersion` / `pinnedCommit` / `pinPolicy` / asset hash. Pinned: frida-tools 14.10.4, pwntools 4.15.0, agent-browser 0.31.1, ida-pro-mcp @commit, SecLists/ProxyCat @commit, nuclei v3.9.0; winget sources annotated with `winget-latest` policy.
|
||
- **Client-neutral integration contract** — routing, tests, manifests, and case workflows remain independent of Claude Code, Codex, Cursor, OpenCode, or any other client; client adapters are optional and must not define repository identity.
|
||
- **Skill navigation index** — `skills/INDEX.md` auto-generated from SKILL.md frontmatter by `extract-summaries.ps1` (`-Check` mode for CI drift detection).
|
||
- **CI pipeline** — `.github/workflows/ci.yml`: Windows + Ubuntu matrix (PowerShell shim for Linux) running test-routing / verify / smoke / INDEX check / JSON validation, plus `bash -n` syntax checks.
|
||
- **Example case** — `examples/ctf-demo/` full workflow walkthrough (route → scope gate → timeline → evidence → report).
|
||
- **frontmatter completion** — `dsl-vm-reverse/SKILL.md` gained name/description frontmatter (was the only module missing it).
|
||
- **README refresh** — updated the multilingual project overview, release badge, current capabilities, and sponsor showcase layout.
|
||
- `case-review/`: read-only Evidence Graph Review with scope, timeline, work item, Finding, Path, and optional SHA-256 fixity checks
|
||
- Domain skills R21–R27, R29–R30: `protocol-reverse`, `ghidra-reverse`, `cloud-k8s`, `windows-ad`, `digital-forensics`, `code-audit`, `threat-hunting`, `wifi-wireless`, `browser-extension-reverse`
|
||
- High-quality skills R28, R31–R38: `ot-ics`, `macos-reverse`, `thick-client`, `go-rust-reverse`, `hardware-security`, `database-security`, `email-security`, `identity-federation`, `radio-sdr`
|
||
- Wired into `MASTER-ROUTING.md`, `master-route.ps1`, routing tables, domain map, role-map, coherence tests
|
||
|
||
### Removed
|
||
- `game-reverse/` (not a product focus; Unity/IL2CPP remains via `reverse-engineering` + seed-014)
|
||
|
||
### Fixed
|
||
- **Upstream mixed-EOL files** — 3 markdown files committed with CRLF while `.gitattributes` declares `*.md eol=lf`; normalized to LF so `git status` stays clean on fresh clones.
|
||
- Routing: sigma vs malware, LLM 越狱 vs iOS 越狱, 完整渗透/打到域控 vs AD 域控, forensics vs OT ics; master-route.ps1 rewritten UTF-8 BOM for PS 5.1 CJK
|
||
- Linux/macOS bootstrap: register PentestSwarm MCP with a verified executable path after Go install or when already installed
|
||
|
||
### Security
|
||
- Core scripts do not write client-global instruction files; client-specific integration remains outside the routing core.
|
||
- Added `docs/PACKAGE-SECURITY-AUDIT.md`: static audit of package executables (no backdoor / no auto DB wipe found)
|
||
- Pin supply-chain floating tags: jshook `@0.3.4`, pentestswarm `v0.1.0`
|
||
- Bootstrap integrity: GitHub zip/jar downloads verify `assetSha256` (manifest) or GitHub API `digest`; mismatch deletes file and fails
|
||
- Pin jadx `v1.5.6` and apktool `v3.0.2` with published SHA256
|
||
- Remove shell evaluation from Kali user-home resolution and pass Frida hosts through argument arrays
|
||
- Write the Burp MCP token atomically with owner-only permissions on POSIX filesystems
|
||
- Reconnect the Burp MCP bridge when Burp starts after the bridge and parse one stdio message per line
|
||
- Enable authentication for bootstrapped Anything Analyzer MCP servers and register the bearer token with supported clients
|
||
- Stop each stale IDA MCP process individually before starting a replacement
|
||
- Add Bash case initialization, authorization guard, and a structured router that reads the same `routing.json` as PowerShell
|
||
- Verify Bash routing parity in CI without introducing a client-specific plugin manifest
|
||
- Enforce immutable Kali/Windows bootstrap sources for Frida, IDA MCP, Agent Browser, ProxyCat, Nuclei, and pwntools
|
||
- Reject path-like Bash case names and scope authorization checks to the contract's auth/network/signoff sections
|
||
- Align Bash network defaults with PowerShell: authorized URLs use `authorized_target_only`, while offline readiness requires an explicit local sample
|
||
- Pin GitHub Actions checkout to the immutable v4.2.2 commit and keep the CI case count synchronized
|
||
- Create a functional Kali `proxycat` wrapper after installing the pinned source checkout
|
||
- Scope PowerShell authorization fields to their contract sections and reject unsupported network modes in both guards
|
||
- Reject unsupported network profiles during case initialization so invalid scopes are never emitted as ready
|
||
- Generate `skills/INDEX.md` from tracked skills only, excluding ignored local modules so clean-clone CI stays reproducible
|
||
- Fail routing coherence when a configured skill is missing or only exists as an untracked local file
|
||
|
||
## [1.0.0] — 2026-07-18
|
||
|
||
First **formal** public release of the reverse-skill skill-router pack.
|
||
|
||
### Added
|
||
|
||
#### Ops / combat contract layer (`skills/ops/`)
|
||
|
||
- `IDENTITY.md` — product identity: lightweight skill router + bootstrap + field-journal (not a Z3r0-style platform)
|
||
- `scope-contract.md` — case scope + `network_profile`; **auth not granted → no ACT on target**
|
||
- `evidence-finding-path.md` — Evidence → Finding → Path chain
|
||
- `role-map.md` — lead / specialist role mapping and handoff
|
||
- `timeline-workitem.md` — timeline + workitem coverage
|
||
- `sandbox-profile.md` — tool profile mapping
|
||
- `skill-supply-chain.md` — Agent Skill / MCP install gate (AST10-lite)
|
||
|
||
#### PRIMARY routing & case tooling (`skills/scripts/`)
|
||
|
||
- `master-route.ps1` — PRIMARY route from task hint
|
||
- `case-init.ps1` / `case-guard.ps1` — case bootstrap + scope guard
|
||
- `append-evidence.ps1` — structured evidence append
|
||
- `smoke.ps1` — package smoke checks
|
||
- `verify-routing-coherence.ps1` — routing / ops coherence verification
|
||
- `test-p0-friction.ps1` — P0 client-side lab friction regression tests
|
||
|
||
#### Core skills & docs
|
||
|
||
- Full skill matrix: APK / IDA / radare2 / JS / .NET / mobile / malware / pwn / firmware / EDR / pentest / API / LLM / supply-chain / crypto / binary-diff / patch-diff / attack-chain / docs & diagrams
|
||
- `MASTER-ROUTING.md` + `routing.md` / `routing_zh.md` three-axis matrix
|
||
- Bootstrap + tool-index pipeline (`bootstrap-reverse.ps1` / `.sh`, `refresh-tool-index`)
|
||
- `field-journal` precedent library + completion checklist
|
||
- Multi-platform paths: Windows primary, Linux / macOS / Kali docs and scripts
|
||
- CTF-Sandbox-Orchestrator competition sub-skills
|
||
- Burp MCP extension package (`burp-mcp-full/`)
|
||
|
||
#### Quality / localization
|
||
|
||
- UTF-8 integrity for Chinese docs (`RULES_zh`, `routing_zh`, related guides)
|
||
- Client-side lab playbook and recon pipeline references for authorized testing friction reduction
|
||
|
||
### Notes
|
||
|
||
- `skills/tool-index.md` / `tool-index.json` are **machine-local** and intentionally gitignored; generate via `refresh-tool-index` after clone.
|
||
- This tag freezes the skill-router product surface at commit `9fc280b` plus this release metadata.
|
||
|
||
### Links
|
||
|
||
- Tag: `v1.0.0`
|
||
- Repository: https://github.com/zhaoxuya520/reverse-skill
|
||
|
||
[Unreleased]: https://github.com/zhaoxuya520/reverse-skill/compare/v1.0.1...HEAD
|
||
[1.0.1]: https://github.com/zhaoxuya520/reverse-skill/compare/v1.0.0...v1.0.1
|
||
[1.0.0]: https://github.com/zhaoxuya520/reverse-skill/releases/tag/v1.0.0
|