You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Audit Cannot See an IsTestProject-Only C# Test Project, and validate-task.yml Keeps a Header Summary Block #1259
Two findings raised on #1255 that the change there fixed only as far as a tree read can reach.
1. A C# test project neither named nor located as a test is invisible
spec/audit.py's is_csharp_test_project() decides "this repo has C# tests" from the file tree alone: a .csproj whose filename contains Test, or one sitting under a directory segment named test or tests. That covers App.Tests.csproj, App.UnitTest.csproj, and test/Specs.csproj.
It does not cover a project that declares <IsTestProject>true</IsTestProject> while being named and placed like any other, src/Integration/Integration.csproj being the reachable shape. Such a repo reads as having no C# tests, so the audit drops its Codecov claim and reports codecov.yml N/A. That is a silent false clean, which is the failure direction coverage_claiming_types()'s own docstring says to avoid.
The fix needs project contents, not paths, and the audit reads the tree in one call precisely to avoid a per-file fetch. Options, roughly in cost order:
Read only the .csproj files the tree already lists, which is a handful per repo, and look for IsTestProject or a test-package reference. Bounded, but it is a new per-file fetch loop in a function that currently makes one call.
Leave it and record the limit, which is the state today.
2. The validator's own header comment is a summary block
.github/workflows/validate-task.yml opens with a header comment enumerating its three jobs and what each contains. The comment-and-doc-style contract says: "No file, class, or type header summary blocks. A type or file gets a comment only for a specific non-obvious point, never a block restating what it contains."
The block predates #1255, which only corrected one stale phrase inside it, so removing it is its own change. It is worth doing deliberately rather than as a drive-by, because the file is the fleet's shared validator and several repos read it as the reference shape.
Provenance
Both were raised by Qodo on #1255. The reachable half of finding 1, a project named App.UnitTest.csproj or located under test/, was fixed there along with the matching Python gap, where a root-level test_app.py or app_test.py suite had read as testless.
Item 1 here, the audit missing an IsTestProject-only C# test project, is the same defect as #1270. That issue carries the decision: read IsTestProject or a test framework package reference. That fix is built under #1270. This issue stays open for item 2, the header summary block in .github/workflows/validate-task.yml.
No other group may edit these files while this claim stands. The orchestrator releases it at cleanup.
For #1259 this group takes item 2 only, the header summary block in validate-task.yml. Item 1 is #1270's.
Claim extended (2026-11-10): removing the header block makes a README.md sentence false (the validator "whose header names every job it runs"). No group holds the root README.md, so this claim now also holds it.
Activity
Promote Develop to Main: Settle Section 5 and the CRLF Chain (#1263)
ptr727 commentedon Nov 10, 2026
Overlap noted (open-issue sweep, 2026-11-10).
Item 1 here, the audit missing an
IsTestProject-only C# test project, is the same defect as #1270. That issue carries the decision: readIsTestProjector a test framework package reference. That fix is built under #1270. This issue stays open for item 2, the header summary block in.github/workflows/validate-task.yml.ptr727 commentedon Nov 10, 2026
Released (2026-11-10): PR #4038 merged into
developat a721aaa, and its branch and worktree are removed, so this claim holds no files.Backlog burndown claim (attended run 2026-11-10, round 2, group G10). Branch:
burndown/3791-dotnet-workspaces-action. Issues: #3791, #3795, #1259.Predicted file set:
.github/workflows/validate-task.yml.github/actions/dotnet-workspaces/action.yml(new)tests/test_release_guards.pyWORKFLOW.md.agents/skills/workflow-ci-contract/references/d-guarantees.mdworkflow-ci-contractgenerated copiesNo other group may edit these files while this claim stands. The orchestrator releases it at cleanup.
For #1259 this group takes item 2 only, the header summary block in
validate-task.yml. Item 1 is #1270's.Claim extended (2026-11-10): removing the header block makes a
README.mdsentence false (the validator "whose header names every job it runs"). No group holds the rootREADME.md, so this claim now also holds it.Resolve .NET Workspaces Once in a Composite Action and Name Each Root…