0

Scope signals

awesome-llm-appsreferences

The classifier uses cheap, deterministic signals. They are review prompts, not proof that a change is wrong or unrelated.

Sign in to save downloads to your library and vote.

Preview

Scope signals

The classifier uses cheap, deterministic signals. They are review prompts, not proof that a change is wrong or unrelated.

Relatedness

The script tokenizes the stated intent and each changed path. It removes common branch words such as fix, feat, and change, then computes:

relatedness = shared intent/path tokens / usable intent tokens

A file with at least one shared token enters in_scope. A file with no shared tokens enters likely_creep. This deliberately favors recall. A zero score can mean a vague intent or an indirect but necessary file, so verify the connection before recommending a split.

Subsystems

The first path component is the subsystem. Root files use (root). Three or more subsystems are worth naming in the report even if every path is justified. Subsystem count is context, not a failure threshold.

Added dependencies

The detector reads added lines in these formats:

  • requirements*.txt
  • dependency sections in package.json
  • PEP 621 and Poetry dependency sections in pyproject.toml

If the same normalized package name is removed in the diff, the change is treated as a version or constraint edit, not a new dependency. Lockfiles are not parsed because generated transitive changes obscure the direct addition.

Public API renames

A rename is a removed def, async def, or class declaration paired with a nearby added declaration of the same kind in one hunk. The declarations must be within 12 diff lines. This catches common renames but can confuse a deletion and addition that happen to be adjacent. Confirm call sites before describing an API break.

Config, CI, and build edits

The signal covers:

  • .github/ paths as CI
  • Dockerfile, Docker Compose, Make, CMake, Meson, and Procfile paths as build
  • .toml, .yml, and .yaml files as config

These files often have legitimate cross-cutting reasons. Prefer justify when the feature cannot pass tests, package, or deploy without the edit. Prefer split when the edit changes infrastructure policy independently.

Oversized hunks

Hunk churn is added lines plus removed lines. The default threshold is more than 80 changed lines in one hunk. Context lines do not count. The threshold is intended to expose mixed or hard-to-review edits, not enforce a PR size limit.

Formatting-only files

A file is formatting-only when it has the same number of removed and added lines and each pair becomes identical after all whitespace is removed. This is intentionally narrow. Reordered imports, quote changes, and formatter rewrites that move lines may not qualify.

Recommendation matrix

EvidenceDefault action
Path overlaps intent and has no independent signalKeep
No path overlap and a separate subsystemSplit
New dependency unrelated to intentSplit
Public API rename not required by intentSplit
CI or build edit required for the change to workJustify
Formatting-only file mixed into a behavior changeSplit
Oversized hunk containing one coherent algorithmKeep or justify
Oversized hunk containing separable concernsSplit by hunk or file

Always name the evidence. Do not turn a heuristic label into a claim about the author's motivation.

Ingestion metadata

Source catalog
awesome-llm-apps
File path
agent_skills/scope-creep-detector/references/scope-signals.md
Last refreshed
10/24/2026, 3:00:14 AM (5h ago)
Refresh schedule
Daily · 03:00 UTC
Dedupe status
Unique · deduped by (source, url)