Skip to content

feat(signals): expand slop path classifiers for CI, toolchain, and lockfiles #1421

Description

@kiannidev

Summary

Slop path classification (src/signals/path-matchers.ts, #561) drives how changed files are categorized for padding/churn signals. Several common CI, toolchain, and lockfile paths are still classified as generic other or mis-bucketed, so padded diffs that inflate size with low-effort config/infra churn are under-detected compared to genuine source work.

Examples currently missed or weak

  • CI workflow files under .github/workflows/ and common CI entrypoints (.gitlab-ci.yml, Jenkinsfile, .circleci/config.yml)
  • Toolchain/version-manager config (mise.toml, .tool-versions)
  • Additional lockfiles (deno.lock, bun.lock, pubspec.lock, Podfile.lock)
  • Repo policy / automation config (.pre-commit-config.yaml, .gitleaks.toml, codecov.yml, renovate.json, Taskfile.yml, justfile)
  • Additional dependency manifests (deno.json, pubspec.yaml, mix.exs, go.work)

Proposed fix

Extend path-matchers.ts matchers (isLockfile, isDependencyManifestFile, isConfigFile, classifyChangedFile) to recognize these paths deterministically, with exhaustive unit tests in test/unit/path-matchers.test.ts and slop regression coverage where behavior changes.

Why this matters

Config/lockfile/CI-only diffs are legitimate change categories but should not masquerade as substantive source effort in slop scoring. Better classification improves precision of non-substantive padding and churn signals without blocking real dependency or CI maintenance work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions