Skip to content

Add find-repeated-build-work skill to dotnet-msbuild - #1311

Open
YuliiaKovalova wants to merge 49 commits into
mainfrom
yuliiakovalova/find-repeated-build-work
Open

YuliiaKovalova wants to merge 49 commits into
mainfrom
yuliiakovalova/find-repeated-build-work

Conversation

@YuliiaKovalova

@YuliiaKovalova YuliiaKovalova commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Summary

Adds find-repeated-build-work to dotnet-msbuild for redundant target/task executions within one MSBuild invocation: invariant per-project work, unnecessary global-property project instances, per-item process launches, and racy run-once guards. It preserves required per-project/TFM work, output contents, and incremental builds.

Includes dedicated evals, fixtures, golden patches, and grader regressions. Existing-file changes are limited to reciprocal routing descriptions and the explicit coexistence skill catalog. Descriptions remain within the plugin's 15,000-character rendered-menu budget.

No agent changes, shared evaluation-tooling changes, or unrelated scheduling guidance are included.

Related issue

No linked issue.

Validation

  • Plugin conformance: passes for 21 skills and 3 agents.
  • python eng/eval-quality/check_eval_quality.py --base-ref origin/main: passes with existing warnings.
  • Pinned Vally 0.20 target/spec lint: passes with an existing scoring warning.
  • Real-SDK regressions cover native Git/SDK revision metadata, direct-project fallbacks and compiled attributes; equivalent schema rewrites; unchanged dependency timestamps, warm-cache BUILDINFO_STAMP changes, and submitted builds with unset/empty UTC defaults and bounded rollover retries; retired/inlined helpers; compiler history and the original writer race. All four golden rewrites pass.
  • Native MSBuild probes confirm that child-local values can suppress fallback, parent-local values need forwarding, and existing globals are inherited. The prior GPT loss on Trim inherited properties on an orchestrator task edge called inheritance "less defensive"; it was not an inheritance failure.
  • Current-head run 41086097250 on reviewed head b996f90 completed with failure. Both target comparisons are conclusive, with no errored or unmatched target trials:
Executor Target result Preference W/T/L Dormancy: isolated / plugin Positive activation: isolated / plugin
Claude Sonnet 5 VALID_PASS 5/18/0 (p=0.03125) 7/7 / 7/7 11/23 / 11/23
GPT 5.6 Luna VALID_NO_CHANGE: activation contract failed 2/19/2 (p=0.6875) 4/7 / 7/7 18/23 / 10/23
  • GPT loaded the current description but still invoked the target for required-variant collisions, evaluation-only instances, and second-build reruns. Separate GPT sibling lanes also have unmatched trajectories and a six-minute trial timeout; those do not explain the target's genuine routing failures.
  • Previous production attempt: run 41051594296 on predecessor f97403d: GPT recorded 2W/19T/2L with the second-build dormancy guard still failing (6/7); Claude was inconclusive because one baseline trial timed out (dormancy 7/7). These are not successful current-head results.

Checklist

  • I searched existing issues and pull requests to avoid duplicates.
  • I kept this pull request focused and avoided unrelated refactors.
  • I added tests and evals for the new skill.
  • Existing plugin/test CODEOWNERS entries cover the added files.
  • No plugin metadata or external-domain changes require manifest updates.
Evaluation changes only
  • Scenarios are distinct and use natural prompts.
  • Golden rewrites and realistic mutation rejection are covered.
  • No-op, dormancy, and statistical power are covered.
  • Successful current-head production evaluation is recorded.
  • Previous eval failures were classified before content changes.
  • Separate current-head GPT/Claude evidence is available.

Adds a skill for finding work that MSBuild repeats inside a single build and
removing only what is safe to remove:

- the same Exec or task running in every project (for example a git lookup)
- a shared project built several times because callers pass different global
  properties
- one process started per item instead of one for the whole list
- run-once guards (Exists checks, flag properties) that do not dedupe under -m

The skill separates these from legitimate per-project and per-target-framework
work, sizes the win against wall-clock before changing anything, and requires
the result to be validated with a new binlog.

Includes a Vally eval with six preference stimuli (four with golden patches,
a legitimate-counts audit, and a negligible-win stop condition) and one
dormancy stimulus, plus body-only cross-references from build-perf-diagnostics
and the two agents. Skill descriptions are kept short to fit the plugin skill
menu budget.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 11:24
@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Skill Coverage Report

Plugin Skill Covered Coverage
✅ dotnet-msbuild check-bin-obj-clash 4/5 80%
✅ dotnet-msbuild find-repeated-build-work 10/10 100%
Uncovered: dotnet-msbuild/check-bin-obj-clash
  • [WorkflowStep] Step 2: Get an overview and list projects (line 48)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Several deterministic graders accept broken fixes, the eval lacks an already-correct no-op case, and one routing target does not exist.

7 open findings
What changed in this PR

Adds an MSBuild skill for finding and safely removing repeated work within a single build.

Changes:

  • Adds diagnostic guidance for repeated tasks, project instances, and unsafe run-once guards.
  • Adds six capability scenarios, a dormancy check, fixtures, graders, and golden patches.
  • Links the skill from performance guidance and MSBuild agents.
File Description
plugins/​dotnet-msbuild/​skills/​find-repeated-build-work/​SKILL.md Defines the new skill.
plugins/​dotnet-msbuild/​skills/​build-perf-diagnostics/​SKILL.md Links repeated-work diagnostics.
plugins/​dotnet-msbuild/​agents/​msbuild.agent.md Lists the new skill.
plugins/​dotnet-msbuild/​agents/​build-perf.agent.md Lists the new skill.
tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml Defines evaluation scenarios and graders.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​Build.proj Creates property-varied builds.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​build.sh Drives the fixture build.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​perf-summary.txt Supplies repeated-project evidence.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​Core/​Core.csproj Provides the shared dependency.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​Api/​Api.csproj References the shared dependency.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​Web/​Web.csproj References the shared dependency.
tests/​dotnet-msbuild/​find-repeated-build-work/​shared-project-instances/​Worker/​Worker.csproj References the shared dependency.
tests/​dotnet-msbuild/​find-repeated-build-work/​references/​remove-property-from-shared-reference.patch Provides the project-instance golden fix.
tests/​dotnet-msbuild/​find-repeated-build-work/​references/​single-exec-input-list.patch Provides the batching golden fix.
tests/​dotnet-msbuild/​find-repeated-build-work/​references/​generate-before-build.patch Provides the race-removal golden fix.
tests/​dotnet-msbuild/​find-repeated-build-work/​references/​compute-once-pass-global-property.patch Provides the shared-value golden fix.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​Contoso.Schemas.csproj Hosts the generator fixture.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​Schemas.targets Demonstrates per-item execution.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​perf-summary.txt Supplies per-item timing evidence.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​tools/​schemagen.md Documents generator list support.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​schemas/​Customer.json Adds a sample schema.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​schemas/​Invoice.json Adds a sample schema.
tests/​dotnet-msbuild/​find-repeated-build-work/​per-file-exec/​schemas/​Order.json Adds a sample schema.
tests/​dotnet-msbuild/​find-repeated-build-work/​negligible-repeat/​Directory.Build.targets Models a negligible repeat.
tests/​dotnet-msbuild/​find-repeated-build-work/​negligible-repeat/​perf-summary.txt Supplies negligible-cost evidence.
tests/​dotnet-msbuild/​find-repeated-build-work/​legit-per-project-calls/​Directory.Build.props Configures multi-targeting.
tests/​dotnet-msbuild/​find-repeated-build-work/​legit-per-project-calls/​perf-summary.txt Supplies legitimate-call evidence.
tests/​dotnet-msbuild/​find-repeated-build-work/​git-stamp/​Directory.Build.props Configures stamping inputs.
tests/​dotnet-msbuild/​find-repeated-build-work/​git-stamp/​Directory.Build.targets Demonstrates repeated Git execution.
tests/​dotnet-msbuild/​find-repeated-build-work/​git-stamp/​build.sh Drives the stamping fixture.
tests/​dotnet-msbuild/​find-repeated-build-work/​git-stamp/​perf-summary.txt Supplies repeated-Exec evidence.
tests/​dotnet-msbuild/​find-repeated-build-work/​exists-sentinel-race/​Directory.Build.targets Demonstrates a racy guard.
tests/​dotnet-msbuild/​find-repeated-build-work/​exists-sentinel-race/​build.sh Drives the parallel fixture.
tests/​dotnet-msbuild/​find-repeated-build-work/​exists-sentinel-race/​failure-log.txt Supplies intermittent-failure evidence.
tests/​dotnet-msbuild/​find-repeated-build-work/​exists-sentinel-race/​tools/​make-buildinfo.sh Generates the shared source file.

🧠 Review effort: Balanced


💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions github-actions Bot added the waiting-on-author PR state label label Oct 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 @YuliiaKovalova — this PR has 7 unresolved review thread(s). When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

Strengthen deterministic graders, add complete-state no-op coverage, and correct routing and dormancy guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 14:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Require all component build roots, an actual build command, and an imported schema target connected to compilation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 14:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Several deterministic graders accept broken mutations, and routing/output contracts remain incompletely evaluated.

0 open findings

3 resolved since last review
Previously missed (8)

In code that hasn't changed since last review

Medium severity Align output contract with golden tests

plugins/​dotnet-msbuild/​skills/​find-repeated-build-work/​SKILL.md:87

This is presented as the skill's output contract, but none of the golden trajectories emits the table or Verdict: line and no grader checks either. The eval therefore cannot detect regression of this claimed skill delta, and its golden evidence models a contradictory format. Either update the goldens and add output graders, or make this format explicitly optional.

Medium severity Ensure version assignment remains executable

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:53

This accepts the empty-property guard on the whole target. In this fixture, that also skips the PropertyGroup that assigns InformationalVersion whenever build.sh supplies GitCommit, so a patch can pass while changing every stamped version. Require the Exec itself to be guarded, or explicitly prove that the version assignment remains on an unconditional execution path.

Medium severity Ignore conditional project references

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:187

The reference check counts a ProjectReference even when it has a false Condition. Adding Condition="'false' == 'true'" together with the expected metadata passes this grader although the components no longer reference Core. Require at least one applicable Core reference per component before validating its metadata.

Medium severity Reject unawaited background generation

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:254

Textual ordering does not prove generation finishes before the build. For example, sh tools/make-buildinfo.sh obj/buildinfo.g.cs & appears before dotnet build and passes, but recreates the timing race this scenario is meant to eliminate. Exercise the script with an instrumented slow generator/build command, or otherwise reject background execution unless it is awaited.

Medium severity Reject disabled generator invocations

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:312

A disabled generator still satisfies this check because task conditions are ignored. Adding Condition="'false' == 'true'" to the single Exec leaves its command and target hook intact, so every assertion passes even though no generated files are produced. Require the selected invocation to be unconditional or prove that its condition is true for the fixture.

Medium severity Verify output directory creation

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:336

The grader verifies the list writer but not that its parent directory exists. Deleting the original MakeDir still passes, yet a clean build fails when WriteLinesToFile writes $(IntermediateOutputPath)gen/schemas.list. Verify that a preceding step creates the list/output directory, or that the selected list path is in an already-existing directory.

Medium severity Require affirmative no-optimization conclusion

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:474

This pattern accepts the opposite conclusion: output such as “the saving is not negligible, so optimize it” matches the bare word negligible. That lets the stop-condition scenario pass its deterministic output check while recommending the forbidden change. Require an affirmative leave-unchanged/not-worth conclusion rather than an unqualified keyword.

Medium severity Add guards for restore and evaluation routing

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:485

This is the only dormancy guard, but the new skill description defines two additional routing boundaries: repeated restores and slow evaluation. Without uncued expect_activation: false cases for those requests, the eval can pass even if the new skill hijacks work owned by build-perf-diagnostics or eval-performance. Add a separate recognition/restraint/redirection guard for each boundary.

🧠 Review effort: Balanced

Reference binlog-generation for capture, preserve the original build invocation, and make MCP analysis and the text-replay fallback explicit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 14:57

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Classification and timing guidance is inaccurate, and deterministic graders can accept behavior-breaking solutions.

0 open findings

Previously missed (6)

In code that hasn't changed since last review

Medium severity Enforce the findings table and Verdict output contract

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:35

The skill defines a findings table and Verdict: line as its output contract, but none of these graders assert that shape and every golden response omits it. A regression that ignores the contract therefore passes. Either enforce the table/verdict in the applicable output graders and golden trajectories, or explicitly make the section optional in the skill.

Medium severity Preserve the stamped base informational version

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:45

The prompt requires preserving the stamped informational version, but this only preserves its expression. Deleting or changing Directory.Build.props so Version is no longer 3.2.0 still passes while changing every assembly's informational version. Include the base version in the deterministic contract.

Medium severity Verify generator execution and buildinfo output before building

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:250

This is only a substring check, so echo make-buildinfo or assigning the name to a variable before dotnet build passes even though the generator never runs. It also does not prove that the invocation writes the required obj/buildinfo.g.cs. Execute build.sh with mocked generator and dotnet commands, then assert one generator call with that output path occurs before the build call.

Low severity Compare invariant task counts with projects and required TFMs

plugins/​dotnet-msbuild/​skills/​build-perf-diagnostics/​SKILL.md:112

The new pointer misses the skill's main signal: an invariant task repeated in every project has an N calls count equal to, not much larger than, the project count. It can also misclassify legitimate per-TFM work whose count exceeds the project count. Compare against the number of projects/TFMs that genuinely need the work and whether the command is invariant.

Low severity Distinguish invariant work from outer and inner project calls

plugins/​dotnet-msbuild/​skills/​find-repeated-build-work/​SKILL.md:41

This baseline contradicts the cases below: an invariant Exec repeated once per project is waste even when its count equals the project count, while a multi-targeted project itself normally appears once for the outer build plus once per TFM. As written, Step 1 can miss the primary git-stamp case and falsely flag the legitimate 4-calls-for-3-TFMs case. Distinguish project-specific task counts, outer/inner project calls, and build-invariant work here.

Low severity Avoid dividing sequential savings across unrelated busy nodes

plugins/​dotnet-msbuild/​skills/​find-repeated-build-work/​SKILL.md:54

Dividing aggregate avoidable time by all busy nodes is not valid for the per-item case this skill handles: 120 batched Exec calls inside one target are sequential on one node, so their wall-clock saving can approach the full aggregate time. Only divide when the duplicate calls actually overlap across nodes; otherwise this rule can incorrectly trigger the 1% stop condition.

🧠 Review effort: Balanced

Preserve executable version stamping and active references, exercise awaited generation, enforce schema preparation and output contracts, add restore/evaluation routing guards, and correct call-count and timing guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 15:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Several deterministic graders accept behavior-changing or forbidden workspace mutations.

4 open findings

🧠 Review effort: Balanced

Record individual dotnet invocations, inspect generated Compile items, and preserve complete read-only fixtures.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 18:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Routing boundaries and deterministic graders currently allow several behavior-breaking mutations to pass.

4 open findings
4 resolved since last review
Previously missed (2)

In code that hasn't changed since last review

Medium severity Add eval coverage for idle-node and serial-chain routing

tests/​dotnet-msbuild/​find-repeated-build-work/​eval.yaml:786

The skill declares idle-node/serial-chain analysis as a real routing boundary, but the eval only has dormancy guards for incremental builds, restore, and evaluation. Add an uncued expect_activation: false parallelism stimulus that verifies recognition of scheduling/critical-path evidence, restraint from deduplicating legitimate work, and redirection to parallelism analysis; otherwise the overlapping -m/multi-project vocabulary can hijack those requests without being detected.

Low severity Add build-parallelism boundaries to router-visible descriptions

plugins/​dotnet-msbuild/​skills/​find-repeated-build-work/​SKILL.md:3

The router-visible description omits the explicit build-parallelism boundary present in the body. Requests involving -m, idle nodes, or an MSBuild task over a Projects list can therefore match both this skill and build-parallelism (whose description claims that task shape). Repository guidance at CONTRIBUTING.md:584-587 requires the boundary and reciprocal exclusion in both sibling descriptions; add those clauses so routing does not depend on body text that is only read after activation.

🧠 Review effort: Balanced

Exercise Git fallback ordering, evaluate effective Core references, preserve generator and schema inputs, and add reciprocal parallelism boundaries with dormancy coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 14, 2026 07:33
Accept equivalent revision property names and MSBuild stamp expressions through SDK behavior instead of XML spellings. Read actual version and title attributes from compiled assemblies with a dedicated reusable grader task. Observe Csc outputs to enforce the shared-file stimulus unchanged-rerun contract. Add focused acceptance and rejection regressions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The grader incorrectly rejects valid fixes through hard-coded item-name assertions and direct solution-invocation requirements, with acceptance regressions needed for equivalent rewrites and orchestrator-based builds.

3 open issues

Review effort: Balanced

Exercise submitted Git-stamp wrappers with real MSBuild and instrumented SDK solution projects, retaining once-only lookup, compiled stamp, Release, parallelism and independent direct-project fallback checks. Replace schema item-spelling gates with the existing clean/unchanged/single-stale behavior checks. Cover accepted equivalents and broken forwarding/incrementality/parallelism.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The validation rejects valid rewrites because it incompletely expands output paths and generator commands and disallows helper files or imported targets.

4 open issues
2 resolved since last review

Review effort: Balanced

Allow imported helpers while preserving original schema and evidence files. Observe expanded generator commands and effective output paths through the real build, with acceptance and preservation regressions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The grader accepts extra schema inputs and treats their generated files as expected, violating the unchanged-output requirement; enforce the exact original schema set and add an added-schema regression test.

2 open issues
3 resolved since last review

Review effort: Balanced

Require the exact original schema input set so unexpected schemas and generated outputs cannot become expected results. Add a mutation regression while retaining imported-helper and golden acceptance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the tests reject valid cached-generation behavior and rely on an unsupported explanation for the reported file-busy error.

1 open issue
1 resolved since last review

Review effort: Balanced

Permit current shared output to skip generation while preserving stale-input refresh, ordering, exact bytes, compiler inputs, and unchanged-build incrementality. Replace unsupported file-busy evidence with a reproducible interleaved-write compiler failure and focused regressions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the Git mocks reject equivalent single-invocation revision lookups, making acceptance depend on command spelling rather than lookup semantics.

1 open issue

Review effort: Balanced

Forward instrumented Git calls to real temporary repositories and check lookup counts rather than exact arguments. Preserve revision and assembly checks, reject branch-name queries, and account for native SDK revision suffixes in early-hook regressions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the evaluation can reject valid fallback or relocated-generator implementations while missing repeated compilation on unchanged builds.

1 open issue

Review effort: Balanced

Address the observed isolated GPT activation-contract violation by explicitly excluding second unchanged builds even when the incremental-build sibling is unavailable. Preserve the existing positive routing, skill body, evaluation scenarios, and budgets.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the grading wrapper can drop a script’s executable permission, causing otherwise valid rewrites to fail.

1 open issue

Review effort: Balanced

Instrument the submitted generator in place without replacing its executable file or changing its script name. Accumulate native compiler observations so a later no-op build cannot hide unwanted unchanged-build compilation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The evaluator rejects valid rewrites that retire tools/make-buildinfo.sh because both generation detection and an earlier file read depend on that helper path.

2 open issues

Review effort: Balanced

@github-actions

Copy link
Copy Markdown
Contributor

❌ Evaluation did not complete successfully (the evaluate job reported failure). Check the workflow run logs, then comment /evaluate f97403dcfc8f92d57a0bc871745500a4947cf0d7 to retry this exact commit.

18 partial result file(s) were preserved for diagnosis but were not consolidated because the full matrix did not complete.

⚠️ Session replay telemetry was not published because the auxiliary dotnet/skills-data publisher failed. The evaluation verdicts above remain authoritative; maintainers must repair SKILLS_DATA_TOKEN or the publisher before replay links are available.

Separate Git metadata probes from revision lookups using native results. Validate shared-source bytes, timestamps and compiler behavior independently of generator paths, including retired helpers and fully inlined wrappers or native MSBuild tasks. Preserve a location-independent partial-write stress window and reject the original race and per-project rewrites.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the grader’s assumptions about Git process counts, clock sources, and dependency timestamps can reject valid implementations.

1 open issue
1 resolved since last review

Review effort: Balanced

Bound external revision queries without requiring a subprocess. Compare generated values with real UTC, leave unchanged dependency timestamps intact, and exercise a coherent prior-day cache. Add native regressions and lead routing with the observed second-build exclusion.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The tests can reject correct builds during a UTC date rollover, and the rubric can penalize a supported SDK-metadata solution by requiring a specific Exec implementation.

3 open issues

Review effort: Balanced

Use one UTC day for the whole native scenario and restart once from a fresh workspace if it changes during or between builds. Keep normal failure and no-op checks intact, report repeated clock instability explicitly, and judge revision stamps without mandating an Exec implementation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human assessment is needed because the stale-day test can accept caching that passes the probe but retains yesterday’s stamp on a real next-day rerun.

1 open issue
2 resolved since last review

Review effort: Balanced

Add the approved BUILDINFO_STAMP fixture override while retaining UTC by default. Advance that declared input in one native workspace instead of resetting cache state or changing timestamps. Cover stamp-aware and day-blind caches, native writers, default behavior, and wall-clock independence without constraining the generator entry point.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Every build probe sets a nonempty BUILDINFO_STAMP, leaving the required UTC default for unset or empty overrides untested and allowing regressions to pass.

2 open issues

Review effort: Balanced

Exercise unset and empty overrides through submitted builds with prior-day warm caches, unchanged reruns, and bounded UTC rollover retries. Reject missing or incorrect defaults while preserving native and helper-free implementations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Human review is needed to assess overly restrictive global-property guidance and its inaccurate description of child-project fallback behavior.

1 open issue
1 resolved since last review

Review effort: Balanced

Allow child-local property sources to satisfy the fallback. Explain that missing parent-local values trigger child fallbacks unless forwarded, while existing global properties are inherited. Native MSBuild probes confirmed all three cases; routing and evaluation contracts are unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Broad routing changes across existing MSBuild skills lack completed current-head GPT/Claude runtime evaluations to validate activation, coexistence, and second-build dormancy.

1 open issue

Review effort: Balanced

@github-actions

Copy link
Copy Markdown
Contributor

❌ Evaluation did not complete successfully (the evaluate job reported failure). Check the workflow run logs, then comment /evaluate b996f901cde6f8a5da892d893b85e2c7c0f8888a to retry this exact commit.

18 partial result file(s) were preserved for diagnosis but were not consolidated because the full matrix did not complete.

⚠️ Session replay telemetry was not published because the auxiliary dotnet/skills-data publisher failed. The evaluation verdicts above remain authoritative; maintainers must repair SKILLS_DATA_TOKEN or the publisher before replay links are available.

This branch has not been deployed

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

Labels

waiting-on-author PR state label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants