mirror of
https://github.com/rtk-ai/rtk.git
synced 2026-09-19 07:33:17 +08:00
feat/trigger-release
15 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7d76af84b9 |
fix: 4 critical bugs + telemetry enrichment (#462)
* fix(cicd): Add security check on dev branch PR add security check cicd on dev branch PR Signed-off-by: aesoft <43991222+aeppling@users.noreply.github.com> * fix: enrich telemetry with install_method and token savings - Add install_method detection (homebrew/cargo/script/nix/other) - Add tokens_saved_24h and tokens_saved_total to payload - Add Tracker::total_tokens_saved() and Tracker::tokens_saved_24h() methods - Point telemetry to new dedicated rtk-telemetry service Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: detect install method on Windows paths Add backslash variants for .cargo\bin and .local\bin detection Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: enrich telemetry with install_method and token savings (#432) - Add install_method detection (homebrew/cargo/script/nix/other) - Add tokens_saved_24h and tokens_saved_total to payload - Add Tracker::total_tokens_saved() and Tracker::tokens_saved_24h() methods - Point telemetry to new dedicated rtk-telemetry service Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: 4 critical bugs — git exit code, jq warning, npm run doubling, pnpm build filter (#458) * fix: propagate exit code 128 when rtk git status runs outside a repo (#435) Previously printed "Not a git repository" to stdout and returned exit 0. Now prints to stderr and exits with git's actual exit code (128). Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: warn when jq is not installed instead of silent exit (#430) Hook now prints a warning to stderr before exiting cleanly, so users know the rewrite pipeline is not functioning. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: strip leading 'run' arg to prevent npm run run doubling (#438) When user types 'rtk npm run build', args contain ["run", "build"]. Since npm_cmd always prepends 'run', this caused 'npm run run build'. Now strips the leading 'run' from args if present. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: route pnpm build through generic passthrough instead of Next.js filter (#454) pnpm build was hardcoded to next_cmd::run which misparses Vite/other framework output as errors. Now uses generic passthrough. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * docs: bump README version to 0.28.0 Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> --------- Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> * fix: warn when rtk binary is not in PATH instead of silent exit (#430) (#465) Applies the same fix as jq — all silent exits now warn on stderr. Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> --------- Signed-off-by: aesoft <43991222+aeppling@users.noreply.github.com> Signed-off-by: Patrick szymkowiak <patrick.szymkowiak@innovtech.eu> Co-authored-by: aesoft <43991222+aeppling@users.noreply.github.com> |
||
|
|
adda2537be |
feat: TOML Part 1 — filter DSL engine + 14 built-in filters (#349)
* feat: TOML filter DSL + 14 built-in filters (#299) Add a declarative TOML-based filter engine for zero-Rust command filtering, plus 14 built-in filters targeting open issues. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update module count to 58 (toml_filter + verify_cmd) * docs(changelog): add TOML DSL + 14 built-in filters entry * chore: ignore worktrees directory * fix: address PR #349 code review (P1 + P2) P1-1: println! — add trailing newline to TOML-filtered output print!("{}", filtered) → println!("{}", filtered). Fixes broken pipe compatibility (rtk make all | wc -l returned 0 for 1 line). P1-2: remove dead filters — git-checkout, git-remote, git-merge, cargo-run Clap routes these commands to git.rs/cargo_cmd.rs before run_fallback is reached, so these TOML filters never activate. Tests passed but gave false confidence. Removed filter definitions and test sections. P1-3: map_or instead of is_none_or (MSRV compatibility) is_none_or requires Rust 1.82+. Replaced with map_or(true, ...) which compiles on all supported toolchain versions. P1-4: print tee hint for TOML-filtered commands on failure let _ = tee::tee_and_hint(...) silently discarded the hint path. Now follows the same pattern as runner.rs: if let Some(hint) = ... { println!("{}", hint); }. LLMs can now find the full output file. P1-5: --require-all now runs integrity check Previously, `rtk verify --require-all` branched away from integrity::run_verify(). Now: filter-specific mode (--filter foo) skips integrity, but default and --require-all always run it first. P2-1: RTK_NO_TOML checks value not presence .is_ok() matched any value including RTK_NO_TOML=0. Replaced with .ok().as_deref() == Some("1"). P2-5: terraform-plan regex — add word boundary after "plan" ^terraform\s+plan → ^terraform\s+plan(\s|$) to prevent matching "terraform planning" or other plan-prefixed subcommands. P2-6: iptables regex — \b → (\s|$) ^iptables\b matched iptables-save and iptables-restore (\b fires at hyphen). Fixed to ^iptables(\s|$). All 715 tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: add word-boundary anchors to 6 tofu/mix match_command regexes Prevents overmatch on subcommands (e.g. `tofu planet` or `mix formats`). Mirrors the same `(\s|$)` pattern already used by terraform-plan. Fixes: tofu-plan, tofu-init, tofu-validate, tofu-fmt, mix-format, mix-compile Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(changelog): add round 2 fix for tofu/mix regex overmatch (PR #349) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: address PR #349 round 3 review (BUG-1 + BUG-2 + P2 items) - println! trailing newline on TOML-filtered output (BUG-1) - RTK_NO_TOML check presence→value (as_deref==Ok("1")) (BUG-2) - make filter: add on_empty="make: ok" + test (P2-3) - TOML lookup: use basename of args[0] for absolute path support (P2-8) - utils.rs: translate French docstrings to English (P2-9) - main.rs: single error message on command-not-found, exit(127) (NEW) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: bump version refs to 0.27.2 and module count to 60 Fixes pre-push validation: README, CLAUDE.md, ARCHITECTURE.md were still referencing 0.27.1 (Cargo.toml is 0.27.2). Also updates module count from 59 to 60 to match main.rs (toml_filter + verify_cmd). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
e356c1280d |
fix: reduce gh diff / git diff / gh api truncation (#354) (#370)
* fix: reduce gh diff / git diff / gh api truncation (#354) - compact_diff: increase max_hunk_lines 10→30, max_lines default 100→500 - gh api: passthrough instead of JSON→schema destruction - gh pr diff: add --no-compact flag + increase limit to 500 - gh pr view: passthrough when --json/--jq/--web provided by user Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference 0.26.0→0.27.1 in README * docs: update version reference 0.26.0→0.27.1 in CLAUDE.md * docs: update version reference 0.26.0→0.27.1 in ARCHITECTURE.md * fix: resolve compile errors in gh_cmd.rs (type mismatches) * fix: use explicit .iter() in pr_diff loop (avoids &&[String] ambiguity) * docs: fix version reference 0.27.x→0.27.1 in README * fix: remove shadowed extra_args in view_pr (was &&[String] not iterator) --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
7ad291bab5 |
docs: bump version refs to 0.26.0, fix module count to 57
Version mentions (README.md, CLAUDE.md, ARCHITECTURE.md) were still on 0.25.0. Module count was 56 (missed hook_check module added in #350). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
a8d6106f73 |
fix: curl JSON size guard (#297) + exclude_commands config (#243) (#342)
* fix: curl size guard (#297) + exclude_commands config (#243) **#297 — curl JSON inflation guard** - `rtk curl` no longer replaces small JSON responses with a type schema that is larger than the original payload - Size guard in `filter_curl_output()`: only return schema when `schema.len() <= original.len()` - Inspired by PR #324 (@rursache) **#243 — exclude_commands config** - Add `[hooks] exclude_commands = ["curl"]` in config.toml to prevent the auto-rewrite hook from rewriting specific commands - Survives `rtk init -g` re-runs (config.toml is user-owned) - Implemented in `rewrite_cmd::run()` via `HooksConfig` struct - Threaded through `rewrite_command()` → `rewrite_compound()` → `rewrite_segment()` Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: add #297 and #243 to CHANGELOG + exclude_commands in README * docs: fix version references 0.24.0 → 0.25.0 across all docs --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
f447a3d5b1 |
feat: rtk rewrite — single source of truth for LLM hook rewrites (#241)
* feat: add `rtk rewrite` command — single source of truth for hook rewrites Implements `rtk rewrite <cmd>` as the canonical rewrite engine for all LLM hook integrations (Claude Code, Gemini CLI, future tools). - Add `rewrite_prefixes` field to `RtkRule` in discover/registry.rs - Add public `rewrite_command()` with compound command support (&&, ||, ;, |) - Add `rewrite_segment()`, `rewrite_compound()`, `strip_word_prefix()` helpers - Handle already-rtk commands (exit 0, identical output) - Handle unsupported/ignored commands (exit 1, no output) - Add 20 unit tests covering all branches and edge cases - Create `src/rewrite_cmd.rs` thin CLI wrapper - Register `Commands::Rewrite` in main.rs - Simplify `.claude/hooks/rtk-rewrite.sh` from 357 → 60 lines Hooks no longer need duplicate mapping logic — a single `REWRITTEN=$(rtk rewrite "$CMD") || exit 0` handles everything. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: fix version references and module count for 0.22.2 - README.md, CLAUDE.md, ARCHITECTURE.md: 0.20.1 → 0.22.2 - ARCHITECTURE.md: module count 48 → 51 (added rewrite_cmd + 2 from master) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: update hook coverage check to verify registry (not hook script) Since PR #241, the hook delegates to `rtk rewrite` — command mappings live in src/discover/registry.rs, not the bash hook script. Update the "Verify hook coverage" CI step to: - Check that the hook calls `rtk rewrite` (new architecture) - Check that registry.rs has rewrite_prefixes for all Python/Go commands Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: support single `&` background operator in compound rewrites Per feedback from @xDelph: AI agents increasingly use `cmd1 & cmd2` for parallel execution. This commit adds support alongside existing `&&`, `||`, `;`, and `|` operators. Changes: - rewrite_compound: add match arm for single `&` (after `&&` check) - rewrite_command: add `" & "` to has_compound detection - init: show "installed/updated" vs "already up to date" so users know whether rtk init changed the hook on re-run Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: add Python/Go commands to rewrite registry Add `ruff`, `pytest`, `pip`, `go`, and `golangci-lint` to both PATTERNS and RULES in registry.rs so the CI coverage check passes and `rtk rewrite` correctly identifies these commands. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference to 0.23.0 in README Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference to 0.23.0 in CLAUDE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version and module count to 0.23.0/52 in ARCHITECTURE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: address P0 review feedback on rtk-rewrite PR P0.1 - Replace 218-line bash hook with 58-line thin delegating hook. All rewrite logic now lives exclusively in `rtk rewrite` (Rust registry). `rtk init` installs the thin hook via include_str!. P0.2 - Fix `head -20 file` crash at runtime. Generic prefix replacement produced `rtk read -20 file` (invalid clap args). Now translates `head -N file` → `rtk read file --max-lines N` and skips unsupported head flags (e.g. -c) by returning exit 1. P0.3 - Add version guard in hook for rtk < 0.23.0. Prints a warning to stderr instead of silently doing nothing. Also adds missing registry entries vs old hook: - gh release, cargo install - docker run/exec/build, kubectl describe/apply - tree, diff 474 tests pass, 0 clippy warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: cargo fmt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor(discover): extract rules/patterns into rules.rs Per aeppling review: registry.rs was too large (~1500 lines). Extract all static data into src/discover/rules.rs: - RtkRule struct (with pub fields) - PATTERNS const array - RULES const array - IGNORED_PREFIXES and IGNORED_EXACT const arrays registry.rs now contains only logic + tests. rules.rs is the single place to add a new command mapping. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update version reference to 0.24.0 in README * docs: update version references to 0.24.0 in CLAUDE.md and ARCHITECTURE.md * fix(discover): add aws and psql to rewrite registry rtk aws and rtk psql modules exist since PR #216 but were missing from the registry rules — rewrite was silently skipping them. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test(discover): exhaustive regression tests for rewrite registry Cover all command categories added in PR #241 and missing from the previous test suite: - aws / psql (PR #216 modules, gap detected during non-reg run) - Python: ruff, pytest, python -m pytest, pip, uv pip - Go: go test/build/vet, golangci-lint - JS/TS: vitest, pnpm vitest, prisma, prettier, pnpm list - Compound operators: || and ; rewrites, 4-segment chains, mixed supported/unsupported segments, all-unsupported → None - sudo prefix rewrite, env var prefix rewrite - find with native flags - Registry invariants: PATTERNS/RULES aligned, all rules valid, all patterns are valid regex Before: 559 tests. After: 607 tests. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(migration): document breaking change + detect outdated hook in rtk config CHANGELOG [Unreleased]: - Migration required: rtk init --global needed after upgrade - Documents upgrade path and explains no immediate breakage rtk init --show / rtk config now detects old hook (inline if-else) vs new thin delegator (rtk rewrite) and prints actionable warning: ⚠️ Hook: ~/.claude/hooks/rtk-rewrite.sh (outdated — inline logic, not thin delegator) → Run `rtk init --global` to upgrade to the single source of truth hook Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update hook references for thin delegator (0.24.0) - ARCHITECTURE.md: fix hook description (shell script → thin delegator) - INSTALL.md: add upgrade path for old hook users (pre-0.24 breaking change) - SECURITY.md: add registry.rs + hook files to Tier 1 critical files Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs(arch): fix module count 52→55, add aws/psql/rewrite to module map Adds aws_cmd, psql_cmd (PR #216) and rewrite_cmd (this PR) to the Complete Module Map table. Updates total from 52 to 55 to match main.rs. Fixes CI validate-docs.sh module count mismatch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ci: fix hook coverage check to search rules.rs instead of registry.rs After the PR #241 refactor, rewrite_prefixes constants moved from registry.rs to rules.rs. Update grep to search the whole discover/ directory so it finds them in the right file. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
eed018814b |
fix: update version refs to 0.23.0, module count to 51, fmt upstream files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
a9889bca08 |
docs: fix version and module count to pass CI validation
- README.md, CLAUDE.md: update version 0.20.1 → 0.22.2 - ARCHITECTURE.md: update version 0.20.1 → 0.22.2 + date - ARCHITECTURE.md: update module count 48 → 50 (added hook_audit_cmd, wc_cmd) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
965ed4d166 |
docs: add ASCII diagrams to README, INSTALL and ARCHITECTURE
Three documentation gaps identified and filled: - README.md: replace 4-bullet "How It Works" with proxy flow diagram; add hook rewrite flow diagram under "Auto-Rewrite Hook" section - INSTALL.md: add mode-selection decision tree before init options; add sequence diagram showing PreToolUse hook lifecycle - ARCHITECTURE.md: add "Hook Architecture" section with full ASCII diagram covering auto-rewrite vs suggest hook strategies Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
510c491238 |
feat(docker): add docker compose support (#110)
* feat(docker): add docker compose support with compact output Add token-optimized output for docker compose commands: - `docker compose ps`: compact service listing with status and ports - `docker compose logs`: deduplicated log output via existing log engine - `docker compose build`: summary with build time, services, and step count - Unsupported compose subcommands pass through directly Includes 11 tests (8 compose format tests + 3 for existing compact_ports). Fixes #101 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: address PR #110 review — use --format for compose ps, fix bytes/chars bugs - Switch format_compose_ps to parse structured --format tab output instead of fragile human-readable table (eliminates contains("Up") false positives and byte/char confusion) - Fix find('[') byte offset used with chars().skip() in build parsing - Use .next_back() instead of .last() on DoubleEndedIterator - Consistent error handling with .context()? in run_compose_ps - Strengthen test assertion for compose logs - Add tests for no-ports and long-image-path cases Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: propagate exit codes on compose failures + remove Vec allocation Address PR #110 review feedback from pszymkowiak: - Check output.status.success() after .output() in run_compose_ps, run_compose_logs, and run_compose_build to prevent silent failures when Docker daemon is not running - Replace .collect::<Vec<&str>>().len() with .count() in format_compose_build step counting to avoid unnecessary allocation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: update version references to 0.20.1 after upstream rebase Sync documentation version strings with Cargo.toml after rebasing on upstream master. Fixes CI validate-docs check. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: drop upstream workflow file from feature branch This workflow was pulled in during rebase on upstream master. Not part of the docker compose feature — let upstream manage it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: restore validate-docs workflow from upstream Workflow was unintentionally removed while resolving a push permission issue. Restored to match upstream master. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
a08a62b4e3 |
feat: tee raw output to file for LLM re-read without re-run (#134)
* feat: tee raw output to file for LLM re-read without re-run (#86) When RTK filters command output, LLM agents lose failure details (stack traces, assertions) and re-run the same command 2-3x. The tee feature saves raw output to ~/.local/share/rtk/tee/ on failure and prints a one-line hint so the agent can read the file instead. - Add src/tee.rs: core module with tee_raw(), tee_and_hint(), rotation - Add TeeConfig to config.rs: enabled, mode, max_files, max_file_size - Integrate in 7 modules: cargo, runner, vitest, pytest, lint, tsc, go - Default: failures only, skip <500 chars, 20 file rotation, 1MB cap - Env overrides: RTK_TEE=0 (disable), RTK_TEE_DIR (custom directory) - 14 unit tests, 352 total tests passing, zero regressions Closes #86 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: add tee.rs to ARCHITECTURE.md module count (47 modules) CI validate-docs requires main.rs module count == ARCHITECTURE.md count. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
398cb08125 |
fix: update ARCHITECTURE.md version to 0.18.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
5a68839486 |
docs: comprehensive v0.15.1 documentation update for Python/Go support
Complete documentation overhaul for RTK v0.15.1 Python and Go support across all user-facing and technical documentation. ## Changes ### Critical (P0) - **CLAUDE.md**: Added maintenance warning, CHANGELOG reference, hook coverage section, corrected module count (46 modules) - **Hooks**: Added Python/Go rewrites (ruff, pytest, pip, go, golangci-lint) - **CI Validation**: New workflow validates doc consistency on every PR ### User Documentation (P1) - **README.md**: Added Python/Go Stack section, updated command tables, added benchmarks, explicit v0.15.1 mention ### Technical Documentation (P2) - **ARCHITECTURE.md**: Updated metadata (v0.15.1, 2026-02-12), added Python/Go modules to organization table, 3 new filtering strategies (JSON/TEXT Dual, State Machine, NDJSON), complete Python & Go Module Architecture section ## Validation - ✅ All docs mention version 0.15.1 - ✅ Module count consistent (46 across all docs) - ✅ All Python/Go commands documented - ✅ Hook rewrites present and tested - ✅ scripts/validate-docs.sh passes ## Impact - Prevents documentation drift (CI validation) - Claude Code immediately uses Python/Go via hooks - Clear architecture guidance for contributors - 375 lines added across 6 files Closes #[issue-number-if-any] Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
cb71237b80 |
docs: document execution time tracking feature in v0.7.1
Add comprehensive documentation for the execution time tracking feature introduced in upstream v0.7.1: - CHANGELOG.md: Add v0.7.1 entry with execution time tracking feature - CHANGELOG.md: Document parser infrastructure and migrations - README.md: Update rtk gain analytics section with time metrics - ARCHITECTURE.md: Add exec_time_ms column to database schema - ARCHITECTURE.md: Update INSERT statement with exec_time_ms - ARCHITECTURE.md: Update REPORTING example with time metrics The feature tracks command execution duration with <0.1ms overhead and displays total/average execution time in rtk gain output. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |
||
|
|
586ec7fd17 |
docs: add comprehensive ARCHITECTURE.md v2.0
## Overview Complete architectural documentation (1133 lines) covering all 30 modules, design patterns, and extensibility guidelines. ## Critical Fixes (🔴) - ✅ Module count: 30 documented (not 27) - added deps, env_cmd, find_cmd, local_llm, summary, wget_cmd - ✅ Language: Fully translated to English for consistency with README.md - ✅ Shared Infrastructure: New section documenting utils.rs and package manager detection - ✅ Exit codes: Correct documentation (git.rs preserves exit codes for CI/CD) - ✅ Database: Correct path ~/.local/share/rtk/history.db (not tracking.db) ## Important Additions (🟡) - ✅ Global Flags Architecture: Verbosity (-v/-vv/-vvv) and ultra-compact (-u) - ✅ Complete patterns: Package manager detection, exit code preservation, lazy static regex - ✅ Config system: TOML format documented - ✅ Performance: Verified binary size (4.1 MB) and estimated overhead - ✅ Filter levels: Before/after examples with Rust code ## Bonus Improvements (🟢) - ✅ Table of Contents (12 sections) - ✅ Extensibility Guide (7-step process for adding commands) - ✅ Architecture Decision Records (Why Rust? Why SQLite?) - ✅ Glossary (7 technical terms) - ✅ Module Development Pattern (template + 3 common patterns) - ✅ 15+ ASCII diagrams for visual clarity ## Stats - Lines: 1133 (+118% vs original 520) - Sections: 12 main + subsections - Code examples: 10+ Rust/bash snippets - Accuracy: 100% verified against source code Production-ready for new contributors, experienced developers, and LLM teams. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> |