Skip to content

fix: correct code-review findings across verify, introspect, and CLI surface - #25

Merged
nordicnode merged 2 commits into
mainfrom
fix/code-review-findings
Aug 21, 2026
Merged

fix: correct code-review findings across verify, introspect, and CLI surface#25
nordicnode merged 2 commits into
mainfrom
fix/code-review-findings

Conversation

@freebuff-web

@freebuff-web freebuff-web Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to the comprehensive code review: fixes the behavioral bugs found, repairs doc drift (docs are this project's product surface), and trims dependency cruft.

Bug fixes

  • GPL license detection (introspect/repo.rs): every GPL variant collapsed to GPL-3.0, so a GPLv2 project shipped plugin.json with the wrong SPDX id. Detection now reads the "Version N" header and emits modern GPL-2.0-only / GPL-3.0-only ids.
  • Unterminated fenced block (verify/invocation/parse.rs): a hand-written SKILL.md whose flag-bearing fence is left unclosed at EOF was misclassified as a pure library; the fallback now evaluates the final open fence too.
  • --target list --format sarif|github|junit silently degraded to human output on init/update/diff/add/remove; now rejected up front like other invalid usages.
  • resolve_targets ordering: dedup kept first-seen order despite the "canonical order" comment; now dedups and sorts into canonical declaration order (--target cursor --target all no longer reorders Cursor ahead of the pack).
  • Windows PATH lookup: falls back to cmd.exe's default executable extensions when PATHEXT is unset, so bare-name probes (node, go) resolve in minimal environments.
  • discovery.empty message omitted .trae/rules/ and Trae from both ecosystem lists.

Doc corrections

  • Reattached six misplaced/swapped doc comments left by an earlier refactor: is_meta_flagcheck_subcommand_drift, run_helpextract_documented_invocation, spawn_capturecheck_flag_drift, find_kv_colonclaude_present, canonicalize_for_argv's borrowed cargo_bin_names doc, and the SkillConfig::author/license field docs.
  • Rewrote the garbled verify --watch flag help; fixed add --target help to match actual behavior (present targets → all fallback, not claude).
  • Updated the stale 14-language list on ProjectProfile::language to all 27; reworded seven internal "Ponytail" notes.

Dependency hygiene

  • Dropped once_cell (uses std::sync::LazyLock; MSRV is 1.85) and dialoguer's unused fuzzy-select/editor features. Removed stale Cargo.toml exclude entries (/memory:, nonexistent design doc). Cargo.lock synced for --locked CI.

Tests

New unit tests: GPL v2/v3 detection, canonical target ordering, unterminated-fence detection.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff noreply@codebuff.com

nordicnode and others added 2 commits August 21, 2026 19:38
…surface

- GPL license detection now distinguishes v2 from v3 and emits modern
  GPL-2.0-only / GPL-3.0-only SPDX ids instead of collapsing to GPL-3.0
- Hand-written SKILL.md with an unclosed flag-bearing fence still detected
  as CLI-documenting; --target list rejects report-only formats; target
  resolution dedups into canonical order; Windows PATH lookup falls back
  to default executable extensions when PATHEXT is unset
- add --target help text now matches the real default (present targets,
  falling back to all); garbled --watch doc rewritten; stale language
  list on ProjectProfile::language refreshed
- Misplaced doc comments reattached to the right items (is_meta_flag,
  check_subcommand_drift, run_help, spawn_capture, find_kv_colon,
  claude_present, canonicalize_for_argv, SkillConfig::author)
- Dropped once_cell (std::sync::LazyLock) and dialoguer's unused
  fuzzy-select/editor features; removed stale Cargo.toml excludes;
  Cargo.lock kept in sync for --locked CI
- discovery.empty message now names .trae/rules/ and Trae

New tests: GPL v2/v3 detection, canonical target ordering, unterminated
fence detection.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
- Wrap the PATHEXT default-extension vec to rustfmt's line width
  (fmt --check failed on the one-liner)
- Prune dialoguer's now-inactive feature deps from Cargo.lock: removing
  the fuzzy-select/editor features deactivates fuzzy-matcher (block
  dropped) and tempfile (dep entry only; skillpack still uses tempfile
  directly). Fixes `cargo check --locked` on the msrv job.

🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
@nordicnode
nordicnode merged commit a186674 into main Aug 21, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant