# Toolbox V1.5 Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Upgrade the existing four toolbox commands with better UX and capability, then add a production-grade `binmeta` binary metadata inspector. **Architecture:** Keep the workspace shape flat and consistent: each command remains its own crate, shared behavior stays in `common`, and every new behavior is covered by command-local tests plus workspace verification. `binmeta` will follow the same input/output contract as the existing tools and keep format-specific parsing behind focused helpers. **Tech Stack:** Rust stable, `lexopt`-style manual CLI parsing, shared `common` crate, targeted parsing crates for PE inspection, workspace tests via `assert_cmd`. --- ### Task 1: Design And Manifest Wiring **Files:** - Create: `docs/superpowers/specs/2026-04-21-toolbox-v1-5-design.md` - Create: `docs/superpowers/plans/2026-04-21-toolbox-v1-5-plan.md` - Modify: `Cargo.toml` - Modify: `README.md` - [ ] Record the approved v1.5 scope in repo docs. - [ ] Add any new workspace dependencies needed for `binmeta`. - [ ] Register `crates/binmeta` in the workspace. - [ ] Update README command inventory and usage examples. ### Task 2: `jsonlgrep` Upgrade **Files:** - Modify: `crates/jsonlgrep/src/lib.rs` - Modify: `crates/jsonlgrep/tests/query_and_cli.rs` - [ ] Write failing tests for dotted field paths, `!=`, and `!~=` queries. - [ ] Run targeted `jsonlgrep` tests and confirm the new cases fail for the right reason. - [ ] Implement nested path resolution and negative predicate parsing/matching with minimal code changes. - [ ] Add `after_help` examples and test representative help output. - [ ] Re-run targeted `jsonlgrep` tests until green. ### Task 3: `recent` Upgrade **Files:** - Modify: `crates/recent/src/lib.rs` - Modify: `crates/recent/tests/recent_cli.rs` - [ ] Write failing tests for `--name` regex filtering and help output examples. - [ ] Run targeted `recent` tests and confirm failure. - [ ] Implement basename regex filtering and help text polish. - [ ] Re-run targeted `recent` tests until green. ### Task 4: `pathshadow` Upgrade **Files:** - Modify: `crates/pathshadow/src/lib.rs` - Modify: `crates/pathshadow/tests/pathshadow_cli.rs` - [ ] Write failing tests for explanation/rank fields and help examples. - [ ] Run targeted `pathshadow` tests and confirm failure. - [ ] Implement richer JSON/text explanation output while preserving existing contract fields. - [ ] Re-run targeted `pathshadow` tests until green. ### Task 5: `portping` Upgrade **Files:** - Modify: `crates/portping/src/lib.rs` - Modify: `crates/portping/src/main.rs` - Modify: `crates/portping/tests/portping_cli.rs` - [ ] Write failing tests for `--method`, `--expect-status`, and help examples. - [ ] Run targeted `portping` tests and confirm failure. - [ ] Implement request method selection and explicit status expectation handling. - [ ] Re-run targeted `portping` tests until green. ### Task 6: `binmeta` Command **Files:** - Create: `crates/binmeta/Cargo.toml` - Create: `crates/binmeta/src/lib.rs` - Create: `crates/binmeta/src/main.rs` - Create: `crates/binmeta/tests/binmeta_cli.rs` - Create: `fixtures/binmeta/plain.txt` - [ ] Write failing tests for non-PE fallback, PE metadata extraction against a compiled workspace binary, JSON output, and help examples. - [ ] Run targeted `binmeta` tests and confirm failure. - [ ] Implement stdin/path loading, metadata hashing, PE parsing, heuristic hints, and text/JSON rendering. - [ ] Re-run targeted `binmeta` tests until green. ### Task 7: Full Verification **Files:** - Modify only as required by verification failures - [ ] Run `cargo fmt --all`. - [ ] Run `cargo nextest run --all-targets --all-features`. - [ ] Run `cargo clippy --all-targets --all-features -- -D warnings -W clippy::pedantic -W clippy::nursery`. - [ ] Run `pwsh -NoProfile -File .\scripts\check-jade.ps1`. - [ ] Fix any regressions and repeat until all commands pass.