← All needs

code-review: standards discovery misses ignored files and symlinked documents

### Skill `code-review`, step 3: Identify the standards sources. ### Harness and version Claude Code 2.1.300 on Linux. The local skill is available through `~/.claude/skills/code-review`, linked to `~/.agents/skills/code-review`. The exact installed package version is unknown. The session loaded the updated step 3 wording from #1208, including the requirement to include `CODING_STANDARDS.md` when it exists. ### Model and effort Opus 5.5 (`claude-opus-5-5`). Effort is xhigh. ### What happened I ran `/code-review scope: current branch changes only against dev` in a repository containing a readable `CODING_STANDARDS.md` at its root. The document is a symlink to a shared standards file outside the worktree. A global Git ignore rule excludes `CODING_STANDARDS.md`. 1. The agent searched for standards with `git ls-files`, filtered by standards-related filenames. This omitted the untracked, ignored document. 2. Its filesystem searches before delegation checked other filenames, but omitted `CODING_STANDARDS.md` and `CONTRIBUTING.md` from their name predicates. 3. It started the Standards reviewer without `CODING_STANDARDS.md`. After I asked whether it had found that file, a targeted `find` located it. The agent acknowledged: > No, my search did not find a `CODING_STANDARDS.md` file. That search only covered files tracked by git. The agent then supplied the document to the reviewer. The final review used it, but only after my intervention. ```text Readable ignored symlink | v Tracked-file lookup omits it | v Standards reviewer starts without it | v User intervention triggers filesystem discovery ``` ### Reproduce the file lookup failure This temporary repository reproduces the search behavior. The steps do not change global Git configuration. ```sh repro_dir=$(mktemp -d) mkdir "$repro_dir/repo" git -C "$repro_dir/repo" init --quiet printf '# Coding standards\n' > "$repro_dir/shared-standards.md" printf 'CODING_STANDARDS.md\n' > "$repro_dir/ignore" git -C "$repro_dir/repo" config core.excludesFile "$repro_dir/ignore" ln -s ../shared-standards.md "$repro_dir/repo/CODING_STANDARDS.md" ( cd "$repro_dir/repo" || exit 1 git ls-files -- CODING_STANDARDS.md rg --files -g CODING_STANDARDS.md . rg --files --no-ignore -g CODING_STANDARDS.md . rg --files --no-ignore --follow -g CODING_STANDARDS.md . find . -name CODING_STANDARDS.md ) ``` Verified results: | Lookup | Result | | --- | --- | | `git ls-files` | No match | | Default `rg --files` | No match | | `rg --files --no-ignore` | No match | | `rg --files --no-ignore --follow` | Finds `./CODING_STANDARDS.md` | | `find` | Finds `./CODING_STANDARDS.md` | ### What you expected Step 3 requires every existing `CODING_STANDARDS.md` or `CONTRIBUTING.md` to be included. The Standards reviewer should receive readable standards documents before starting, including untracked or ignored files and readable file symlinks. Please make filesystem discovery explicit in step 3. Check the canonical filenames directly and include ignored files and symlinked documents in the wider standards search. **Absence from the Git index does not establish absence from the worktree**. ### Related issue Follow-up to #1065, closed by #1208 on October 7, 2026. That report concerned listing standards from memory instead of searching. This session already loaded the stronger wording and did search, but its lookup missed the ignored symlink. I found no existing issue specifically covering that discovery failure.