Skip to content

Feature: quickfiler-500-line-cap-violations #623

Description

@drmoisan
  • Work Mode: minor-audit

Problem / Why

Three QuickFiler files exceed the repository's 500-line cap defined in .claude/rules/general-code-change.md:

Path Lines
QuickFiler/Controllers/QfcCollectionController.cs 2349
QuickFiler.Test/Controllers/QfcFormControllerTests.cs 827
QuickFiler/Controllers/QfcQueue.cs 610

All three predate issue #446 and none were in its owned file set, so #446 could not address them without widening its blast radius. The cap is not cosmetic here: during #446 the proximity of several files to the cap repeatedly constrained the shape of otherwise-straightforward changes and forced extraction work into unrelated tasks. QfcCollectionController.cs at 2349 lines is more than four times the cap.

Implementation Intent

Each file is decomposed into cohesive units under 500 lines, preserving public API and behavior. For the test file, split along fixture or scenario boundaries; note that QuickFiler.Test.csproj lists all Compile Include entries explicitly, so any new file must be registered there.

Acceptance Criteria

  • QuickFiler/Controllers/QfcCollectionController.cs is at most 500 lines
  • QuickFiler.Test/Controllers/QfcFormControllerTests.cs is at most 500 lines
  • QuickFiler/Controllers/QfcQueue.cs is at most 500 lines
  • No public API change and no test assertion weakened or removed
  • The full QuickFiler.Test assembly remains green

Dependencies / Risks

  • QuickFiler.Test.csproj enumerates every Compile Include explicitly; new files must be added there or they will not build.
  • QfcCollectionController.cs at 2349 lines is large enough that decomposition should be staged rather than attempted in one change.
  • Partial-class splits are the lowest-risk mechanism where a type must stay whole.

Verification Steps

  • Whole-assembly run green before and after each split
  • Coverage does not regress on the moved lines
  • No behavioral diff in the decomposed types

Evidence Checklist

  • Baseline
  • End-state
  • Targeted verification

Source

From: docs/features/potential/2026-08-26-quickfiler-500-line-cap-violations.md

Activity

  1. drmoisan commented on Oct 9, 2026

    @drmoisan
    OwnerAuthor

    Folding in #450, now closed as a duplicate. When splitting QuickFiler.Test/Controllers/QfcFormControllerTests.cs (791 lines on main as of 2026-10-09), also meet #450's criteria: only move tests, keep the set of test method names identical before and after the split, and group the files by the production partial they exercise. Status: the QfcQueue.cs item of this issue was already delivered by PR #883; QfcQueue.cs is now 269 lines plus partials.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureFeature request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions