Skip to content

Bug: claude-md-coverage-thresholds-and-toolchain-command-corrections #870

Closed

Description

@drmoisan
  • Work Mode: full-bug

Summary

CLAUDE.md names a test command the repository deliberately never runs (#828), states coverage thresholds that the maintainer has now settled differently from two rules files (#563, decision recorded 2026-09-11), and cites .globalconfig twice as an analyzer-severity source when that file does not exist (#727 sub-finding 5). All three are documentation-only corrections to one file this repository owns.

Environment

  • OS/version: not applicable (documentation)
  • Python version: not applicable
  • Command/flags used: CLAUDE.md lines 390 and 408 (vstest.console.exe <test-assembly-paths> /EnableCodeCoverage); UT2 coverage section; C#1 item 2 and C#7
  • Data source or fixture: scripts/vscode/Invoke-MSTestWithCoverage.ps1, scripts/vscode/Invoke-MSTestWithCoverage.Threshold.ps1, .editorconfig

Steps to Reproduce

  1. Read CUT3 step 4 and the "C# Toolchain" step 4: both name vstest.console.exe ... /EnableCodeCoverage. Read Invoke-MSTestWithCoverage.ps1 lines 19 to 26: the implemented route is an outer dotnet-coverage collect wrapping an inner vstest that is never given /EnableCodeCoverage, because the built-in collector conflicts with the outer instrumentation.
  2. Read UT2: "Repository-wide line coverage must remain >= 80%" on a testable denominator, no branch floor stated. Compare .claude/rules/general-unit-test.md (85 line / 75 branch). The maintainer decision on Coverage threshold contradiction remains: CLAUDE.md/csharp.md say 80%, general-unit-test.md/quality-tiers.md say 85%/75%, and two live gates disagree #563 is 80 line, 75 branch, PowerShell 80 line, recorded in CLAUDE.md alone.
  3. Search CLAUDE.md for .globalconfig: two references (C#1 item 2, C#7). Test-Path .globalconfig is false; .editorconfig is the actual severity source.

Expected Behavior

Actual Behavior

Reviewers citing CUT3 step 4 issue false PARTIAL verdicts (#809 AC6, and every later item citing it); the 80-versus-85 divergence forces a FAIL row on every review at the measured 84.56%; the .globalconfig citations point at a file that does not exist.

Logs / Screenshots

  • Attached minimal logs or screenshot
  • Snippet: none; documentation finding.

Impact / Severity

  • Blocker
  • High
  • Medium
  • Low

Source

From: docs/features/potential/2026-09-11-claude-md-coverage-thresholds-and-toolchain-command-corrections.md

Activity

  1. drmoisan commented on Sep 14, 2026

    @drmoisan
    OwnerAuthor

    Delivered by PR #894, merged as a49c972.

    CLAUDE.md coverage thresholds and toolchain command corrections: 8/8 acceptance criteria, zero remaining. CUT3 step 4 and the C# Toolchain step 4 now name the dotnet-coverage route via scripts/vscode/Invoke-MSTestWithCoverage.ps1 and record that /EnableCodeCoverage is deliberately omitted; UT2 states the 80/75/80 thresholds with the decision date; the two .globalconfig references are corrected to .editorconfig.

    Verified during the revision, contrary to an assumption in the intake: item 873 had NOT already done this work. 873 only added the two output-path switches - it never removed /EnableCodeCoverage, never introduced the dotnet-coverage route, and never named the script or task label. AC1, AC3 and AC4 were entirely unsatisfied beforehand.

    Two findings recorded rather than silently fixed, both out of scope for this item:

    • CLAUDE.md's nullable-gate rationale asserts there is no Directory.Build.props. That is false: both Directory.Build.props and Directory.Build.targets are tracked at the repository root. The empirical claim about 195 errors may still hold, but the stated mechanism does not. Needs its own promotion.
    • The 85/75 coverage figures in .claude/rules/** and validate-feature-review-coverage.ps1 diverge from CLAUDE.md's 80/75. Those files are push-down-owned from drm-copilot and must be corrected upstream, not here.

    Closed manually because closingIssuesReferences was empty.

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions