[P0][phase:b] Detect package root / entry points before analysis (kills ~36% of out-of-box FPs) #114
Labels
No labels
area:ci
area:docs
area:engineering
area:framework-fp
area:test-coverage
dogfood:fn
dogfood:fp
dogfood:friction
dogfood:tp
phase:b
phase:c
severity:critical
severity:high
severity:low
severity:medium
source:deepseek-v4-pro
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/fallow-py#114
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: evidence-derived from the 2026-06-15 real-world precision audit (
docs/dogfood/real-world-precision-2026-06-15.md). Per ADR 0008 § Triage trigger, new observations open issues that compete with existing Phase B/C tickets on equal footing.Problem
When
fallow-pyis run with no[tool.fallow_py]config (the first-run experience), it walks the entire repo tree — includingdocs/,docs_src/,.github/,sandbox/,examples/,setup.py, andrequirements/— and reports findings in all of them.This is the single largest source of out-of-the-box false positives: 57 of 157 sampled FPs (36%).
Evidence (real repos, no config)
pydantic: findings in.github/actions/people/people.py(a GitHub Action helper — flaggedrequestsas a missing dependency and its functions as unused-symbol)fastapi: dozens ofunused-module/unused-symbolondocs_src/**tutorial filesrequests/flask:setup.pyflagged as an unused module andsetuptoolsas a missing dependencydjango-oscar:sandbox/**demo deployment flagged throughoutProposed fix
Detect the actual package root before analysis instead of walking the whole tree:
[tool.fallow_py]roots/entrywhen present (already supported) — but alsosrc/<pkg>/(src-layout), else the top-level dir(s) containing__init__.py, and exclude well-known non-package trees (docs,examples,.github,scripts,benchmarks,testsfor non-test rules,setup.py,requirements/) by default.Acceptance criteria
fallow-py analyzewith no config onrequests/flask/pydanticno longer reports findings indocs/,.github/,setup.py,examples/.benchmarks/fp-cases/non-package-tree/fixture is added and passes.Priority
P0. Highest-leverage single fix — eliminates ~36% of out-of-box FPs. Without it, every library/app user's first run is dominated by noise from trees that are not the shipped package.
Opened by
claude(Opus 4.8) from the 2026-06-15 precision audit. Audit PR: #113.