Files
windmill/.claude/skills/local-review/SKILL.md
hugocasa 96229575e6 chore: dev tooling — wm-ts-nav navigator, format hooks, review skill (#8337)
* chore: remove wm-cursor, add local-review skill, update PR skill for EE

- Remove the unused wm-cursor script and all references to it in
  README_WORKMUX_DEV.md and worktree-common.sh
- Add /local-review skill for code review (bugs + CLAUDE.md compliance)
- Add EE companion PR workflow to the /pr skill

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: add wm-ts-nav tree-sitter navigator and fix format hooks

- Add wm-ts-nav: standalone tree-sitter code navigator with SQLite index
  for fast symbol search, definition lookup, and file outlines across
  Rust, TypeScript, and Svelte files (~12ms warm, ~1s cold for 482 files)
- Fix format hooks: surface errors instead of swallowing with 2>/dev/null,
  use direct prettier path with svelte plugin, add success feedback
- Add wm-ts-nav commands to settings allow list
- Document wm-ts-nav usage in CLAUDE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(wm-ts-nav): add refs command and --parent filter

- refs: find usages of a symbol in code, skipping comments and strings
  (tree-sitter AST walk, ~46ms for 482 files vs grep's 4ms but no noise)
- --parent filter on search: find all methods on a type across all files
  (e.g. search "%" --kind function --parent ServiceName)
- Update CLAUDE.md with clearer when-to-use guidance

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(wm-ts-nav): index refs in DB with import-path resolution

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(wm-ts-nav): add body, callers, callees commands and refs --file/--caller

- body: extract a symbol's source code from disk using indexed line ranges
- callers: cross-file call graph via SQL join of refs + symbols tables
- callees: list all identifiers referenced within a symbol's body
- refs --file: scope results to files matching a substring
- refs --caller: annotate each ref with the containing function name

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(wm-ts-nav): add auto-rebuilding wrapper script

The `wm-ts-nav/nav` wrapper checks if source files are newer than the
binary and rebuilds automatically. Invoked via `sh wm-ts-nav/nav` to
avoid needing executable permissions after clone.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* docs: tighten CLAUDE.md nav section for actionable guidance

Remove redundant question→command mapping, latency numbers, and
excessive examples. Lead with "prefer wm-ts-nav over Read to save
context window" and keep only the patterns that change behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: revert backend/Cargo.lock to main

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: promote wm-ts-nav in workflow, copy binary to worktrees

- CLAUDE.md: integrate wm-ts-nav into Workflow step 1 and Core
  Principles so agents use outline/body before full file reads
- workmux: copy built binary via files.copy
- worktree-common.sh: copy binary in wm_copy_dependencies for webmux

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(wm-ts-nav): fix double indexing, add TSX grammar, remove needless clone

- Reuse index stats from the pre-query update instead of indexing twice
  on the Index command
- Add Lang::Tsx variant so .tsx/.jsx files use LANGUAGE_TSX instead of
  LANGUAGE_TYPESCRIPT (Svelte stays on TS since script blocks are pure TS)
- Remove source.clone() for non-Svelte files — move directly instead

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(wm-ts-nav): fix svelte line numbers, add class methods, innermost caller

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:07:49 +00:00

3.2 KiB

name, user_invocable, description
name user_invocable description
local-review true Code review a pull request for bugs and CLAUDE.md compliance. MUST use when asked to review code.

Local Code Review Skill

Review a pull request for real bugs and CLAUDE.md compliance violations. This review targets HIGH SIGNAL issues only.

Review Philosophy

  • Only flag issues you are certain about. If you are not sure an issue is real, do not flag it. False positives erode trust and waste reviewer time.
  • Think like a senior engineer doing a final review — flag things that would cause incidents, not things that are merely imperfect.

What to Flag

  • Code that won't compile or parse (syntax errors, type errors, missing imports)
  • Code that will definitely produce wrong results regardless of inputs
  • Clear, unambiguous CLAUDE.md violations (quote the exact rule being violated)
  • Security issues in introduced code (injection, auth bypass, data exposure)
  • Incorrect logic that will fail in production

What NOT to Flag

  • Code style or quality concerns
  • Potential issues that depend on specific inputs or runtime state
  • Subjective suggestions or improvements
  • Pre-existing issues not introduced by this PR
  • Pedantic nitpicks a senior engineer wouldn't flag
  • Issues a linter or type checker will catch
  • General quality concerns unless explicitly prohibited in CLAUDE.md
  • Issues silenced via lint ignore comments

Execution Steps

  1. Determine the PR scope:

    • If an argument is provided, use it as the PR number or branch
    • Otherwise, detect from the current branch vs main
    • Run gh pr view if a PR exists, or use git diff main...HEAD
  2. Find relevant CLAUDE.md files:

    • Read the root CLAUDE.md
    • Check for CLAUDE.md files in directories containing changed files
  3. Get the diff and metadata:

    • gh pr diff or git diff main...HEAD for the full diff
    • gh pr view or git log main..HEAD --oneline for context
  4. Read changed files where the diff alone is insufficient to understand context

  5. Review for:

    • CLAUDE.md compliance — check each rule against the changed code
    • Bugs and logic errors — will this code work correctly?
    • Security issues — injection, auth, data exposure in new code
  6. Self-validate each finding: Before reporting, ask yourself:

    • "Is this definitely a real issue, not a false positive?"
    • "Would a senior engineer flag this in review?"
    • If the answer to either is no, discard the finding
  7. Output findings to the terminal (default) or post as PR comments (with --comment flag)

Output Format

## Code review

Found N issues:

1. <description> (<reason: CLAUDE.md adherence | bug | security>)
   <file_path:line_number>

2. <description> (<reason>)
   <file_path:line_number>

If no issues are found:

## Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Posting Comments (--comment flag)

If the user passes --comment, post findings as inline PR comments using:

gh pr review --comment --body "<summary>"

Or for inline comments on specific lines:

gh api repos/{owner}/{repo}/pulls/{pr}/reviews -f body="<summary>" -f event="COMMENT" -f comments="[...]"