Skip to content

Split the finder into its stages - #71

Draft
Komoszek wants to merge 1 commit into
claude/issue-58-implementation-rcw0sgfrom
claude/issue-58-split-finder
Draft

Komoszek wants to merge 1 commit into
claude/issue-58-implementation-rcw0sgfrom
claude/issue-58-split-finder

Conversation

@Komoszek

@Komoszek Komoszek commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

Stacked on #67. A move, not a change: same tests (278), same --verbose narration.

Ciach was ~1000 lines with five jobs. It now keeps the server session and the pipeline (discover → collect → fetch → settle), ~200 lines; each stage is a collaborator, in the pattern RemoveSafety, OverrideRemovals and CrossLibraryReferences already follow.

Module Lines Job
candidate_collector.dart 292 which declarations get checked: the symbol walk, option filters, entry points and their containers
reference_fetch.dart 152 the server round trips — references, tokens, syntax nodes — into SourceIndex
settler.dart 312 from references to sorted findings: classify, conventions, remove-safety, override coupling
verdict.dart 204 what becomes of one unused candidate — suppressed, report-only, or a finding — and its hints

Code moved verbatim except: _toUnusedVerdict.finding, _byLocation → top-level compareByLocation, _semanticTokensOrEmpty → top-level (the collector and the fetch both need it), and SuperclassChecks/OverrideRemovals are built once in Settler.settle instead of inline.

🤖 Generated with Claude Code

https://claude.ai/code/session_011fqaUyaQtY7AkuTYBjAUJv

@Komoszek
Komoszek added this pull request to stack #73 September 22, 2026 06:17
@Komoszek
Komoszek removed this pull request from stack #73 September 22, 2026 06:20
@Komoszek
Komoszek added this pull request to stack #74 September 22, 2026 06:21
Ciach ran the server session and also collected candidates, fetched
what the verdict reads, decided each finding, and spelled it: 1000
lines with five jobs. Each is now a collaborator, and Ciach keeps the
session and the pipeline.

- CandidateCollector: which declarations get checked — the symbol walk,
  the option filters, entry points and their containers.
- ReferenceFetch: the server round trips — references, tokens, syntax
  nodes — into the SourceIndex.
- Settler: from references to sorted findings.
- Verdict: what becomes of one unused candidate — suppressed,
  report-only, or a finding — and its hints.

A move, not a change: the tests and the verbose narration are the same.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011fqaUyaQtY7AkuTYBjAUJv
@Komoszek
Komoszek force-pushed the claude/issue-58-split-finder branch from bd0fa7e to e8bee7c Compare September 22, 2026 06:28

This branch has not been deployed

No deployments
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.

2 participants