Skip to content

[Skills] Prevent avoidable lintdiff workflow blockers - #5552

Merged
Yuchao Yan (msyyc) merged 1 commit into
feature/lintdiff-migration-newfrom
skill/lintdiff-blocker-review-20260923
Sep 23, 2026
Merged

Yuchao Yan (msyyc) merged 1 commit into
feature/lintdiff-migration-newfrom
skill/lintdiff-blocker-review-20260923

Conversation

@msyyc

Copy link
Copy Markdown
Member

Why

The end-to-end EvenSegmentedPathForPutOperation run (#5528 development, #5550 promotion) repeatedly stopped even though the user supplied no rule-design or implementation guidance. The interventions were work-reuse authorization, a retry request, one precisely scoped single-worker retry authorization, and a later end-to-end continuation request.

This review traced those stops through the prior session, append-only execution log, preserved validation manifests and current skill instructions. It does not treat all stops as spurious or infer that generic access overrides an explicit validation condition.

Observed evidence Root cause Correction
Initial CLI invocation found clean, pushed task-owned commit efbc4cdff, canonical push permission, and no PR, but stopped for legacy-worktree adoption. The earlier environment had refused publication before a creation call because its app publisher lacked the required base controls. App-specific ownership adoption leaked into general preparation rules; an unattempted operation was treated like a failed publication retry. Backend-scoped, verified explicit-target resumption. Preserve ownership, state, history and exact-PR reconciliation; no separate app adoption for ordinary CLI reuse.
Required promotion validation passed: 12 focused tests, 486 ARM tests, five ruleset tests, builds/lint/docs/format/Chronus and independent local review. The optional broad wrapper then failed with ten timeouts and was stopped at its deadline. Promotion called the broad wrapper optional/best effort, but also included it in default command blocks and said to run it before creation. Generic stop rules and inconsistent Validation blocker wording overrode its intended gate level. Predeclare required versus supplemental gates, separate the optional command from required examples, and disclose scoped supplemental limitations without automatically stopping publication.
A user-authorized --maxWorkers=1 retry took 1178.59 seconds and still failed: 3466 passed, two Autorest setup-hook timeouts, four skips. Later publication used exactly the same ten promotion files, not a code fix or another successful test run. The agent pursued full-suite success before deciding whether that suite was necessary. The next user intervention supplied no technical diagnosis. Read-only coordinator reconciliation before terminal stops or requests for renewed permission. Never infer an environmental cause, silently promote a failed required gate to optional, or treat a retry allowance as unlimited recovery.
The promotion correction budget was consumed by an ESLint probe in an oxlint checkout, a diagnostic-marker correction, and Chronus LF normalization. Preventable command assumptions and Windows line-ending work mixed with genuine draft correction. Derive tool probes from the target checkout. Normalize named Chronus files before validation, without staging. Keep existing finite correction budgets; the diagnostic-marker fix remains ordinary local correction.
The successful final run reported no qualifying process improvement despite the earlier authorization-only stops. Post-run review focused on the successful final state rather than the transitions requiring human intervention. Review each stop, the actual human input, and what enabled continuation; success does not erase a proven instruction contradiction.

The Autorest timeout root cause remains unknown. This PR does not claim baseline reproduction, fix Autorest, rerun the completed rule task, or change its PRs.

Changes

Seven skill documents only:

  • Shared recovery contract defines gate/disposition rules, a single read-only policy-reconciliation handoff, and eight decision cases.
  • Queue/preparation/publication contracts consistently distinguish explicit-target reuse from app-session adoption and retain the current phase owner/history.
  • Promotion keeps its required native checks, removes optional broad runs from default command blocks, and separates Validation limitations from actual blockers.
  • Review/fix gates consume that same classification rather than reclassifying every nonzero exit as mandatory.
  • Post-run review examines the full intervention history.

Safeguards retained

  • Required validation still blocks, including an explicitly user-required broad check. “Publish only if this passes” cannot be undone by a later generic “continue” or “give access.”
  • Any plausible task regression remains blocking until classified, even if a supplemental command discovered it. Required checks inside a supplemental wrapper remain required; contradictory failures cannot be hidden by earlier passes.
  • No timeout increases, changed assertions, skips, new retry budgets, automatic hook-timeout retries or unrelated fixes.
  • No bypass of app-bound publishers, canonical repository policy, folder containment, clean-head/provenance checks, immutable-source repair, or independent review.
  • Failed/indeterminate publication requests are not resent merely because an absence query is empty. Historical preflight refusals before any creation call are distinguished from API failures.
  • No replacement worktrees, discarded edits, reset budgets or concurrent owners.

Validation

  • Full seven-file diff reviewed against freshly fetched Azure/typespec-azure:feature/lintdiff-migration-new at e3fcd29b245a5393beb448872f5018ddc8147c84.
  • Scoped Prettier write/check passed for the seven Markdown files. Initial use of the root config failed before changes because its Astro plugin was unavailable in the isolated dependency-free worktree. The successful run reused installed Prettier 3.9.5 with the same root style options and no non-Markdown plugins; no dependencies or submodules were installed.
  • Six newly added relative Markdown links/anchors resolve.
  • git diff --check passed.
  • The documented Windows normalization snippet was smoke-tested on an isolated CRLF fixture: exact content retained, LF output, front matter at byte zero, no BOM, no staging. The fixture was removed.
  • Reviewed the eight documented decision cases for safe continuation versus retained stops. These are policy checks, not a claim that an end-to-end agent replay was executed.
  • No package, corpus or full-suite runs: this is a Markdown-only workflow correction.

The primary rule worktrees and the coordinator's existing branch are unchanged.

Separate supplemental validation limitations from required blockers, scope legacy adoption to app-session ownership, and reconcile policy before escalating. Derive tool probes from the target checkout and normalize Chronus files without staging.

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

Copilot-Session: 34113ad0-a66e-4c50-8797-6ab7e830c926
@msyyc
Yuchao Yan (msyyc) marked this pull request as ready for review September 23, 2026 05:39
@msyyc
Yuchao Yan (msyyc) merged commit 69160c4 into feature/lintdiff-migration-new Sep 23, 2026
3 checks passed
@msyyc
Yuchao Yan (msyyc) deleted the skill/lintdiff-blocker-review-20260923 branch September 23, 2026 05:39
Yuchao Yan (msyyc) added a commit that referenced this pull request Sep 23, 2026
…5553)

## Why

Follow-up to the **merged #5552**, based on the completed
AvoidAnonymousTypes development #5542 and promotion #5551. The user
explicitly requested reducing authorization-only interruptions and
avoiding duplicate optimization. This branch starts at `b5f23f611`,
which contains #5552 (`69160c487`).

The earlier stops obeyed the then-current finite budgets; they were not
missing credentials or technical guidance from the user. This PR
deliberately adds narrowly bounded, prospective queue authority rather
than treating a generic "give access" as unlimited permission.

| Intervention evidence | What actually enabled progress | Remaining
change beyond #5552 |
| --- | --- | --- |
| Original local correction 3/3 and first supplemental 1/1 exhausted on
named-model spreads with HTTP metadata. The second authorization
supplied no new algorithm. | Inspecting the supported effective-model
filter and testing metadata inside/outside/both resolved the residual
false positive. | Early matrix/API verification and a coordinator-owned
local reserve, not unlimited retries or changing source semantics during
promotion. |
| Development review exposed ambient diagnostic changes in other rules'
fixtures. Recovery used a normal target merge, corrected CRLF
serialization, and reconciled explained snapshots. | Complete
shared-fixture coverage and strict serializer-compatible reruns, not new
user requirements. | Discover affected fixture groups before publication
and preserve the harness writer's exact bytes. Fetching is explicitly
distinguished from integration; no new automatic merge authority. |
| After three recovery attempts, a formatter wrapper expected 11
eligible files although the actual list contained 10. It stopped before
Prettier ran. | One authorized command correction derived the correct
explicit file list and completed validation. | Derive/verify actual path
membership rather than assert a guessed count; eligible correction can
consume the shared finite reserve. |
| Required Core suite had 5 per-test timeouts; its one-worker diagnostic
retained 1. The user approved a proposed investigation without supplying
a diagnosis. | One baseline and one restored-draft focused run passed
under supported threads/one-worker execution; full suite then passed 430
tests with the same 2 skips and 432 IDs, without timeout changes. | One
coordinator-controlled baseline-comparison allowance after the original
diagnostic, with exact restoration and full-scope passing gate. Original
timeout cause remains unproven. |

## Changes

Five Markdown skill documents only:

- Keep ordinary three-attempt phase/round budgets. Add a **three-attempt
total per-rule-task reserve**, allocated one attempt at a time by the
coordinator only for proven in-scope local defects and evidence-based
changed approaches.
- Add **one native comparison allowance per rule task** after a
naturally completed, reduced-concurrency diagnostic still reports only
per-test timeouts: at most one baseline focused run, one draft focused
run, then one original-full-scope run.
- Route both as nonterminal same-owner handoffs; preserve counters
across development, promotion, reviews and repair cycles. No fresh
worker/review pair to bypass a stop.
- Wire queue, review and promotion instructions to the shared contracts.
- Add early metadata/shared-fixture coverage and deterministic formatter
path selection.
- Include eight decision cases covering safe continuation and retained
stops.

## Not duplicated from #5552

No changes to explicit-target worktree adoption,
optional-versus-required gate classification, broad-wrapper execution
defaults, Chronus normalization, read-only policy reconciliation or
post-run review policy. The optional broad-check limitation in #5551
remains unchanged. This PR does not rerun either completed rule task or
modify their source/promotion worktrees.

## Boundaries

- These are prospective queue allowances, not retroactive permission for
tasks stopped under older contracts or extra allowances for standalone
skills.
- No retries of authentication/network operations, review requests,
publication or email.
- No assertion weakening, skipped fixtures/tests, timeout increases,
dependency reinstall, reset/stash, discarded work or unverified baseline
runtime.
- Hook/setup timeouts, crashes, hung/killed commands and unknown
operational failures are ineligible.
- Baseline and draft focused passes do not replace the full required
suite. Any failed or changed-population full rerun remains blocking.
- Preserve immutable promotion source, independent review and exact
publication gates.
- Reserve exhaustion still stops. Generic "continue" does not replenish
it.

## Validation

Documentation-only validation passed:

- Scoped Prettier write/check for the exact five Markdown files. Reused
installed Prettier with the checkout's root style options and no
non-Markdown plugins; no dependency or submodule installation.
- All seven added relative Markdown links/anchors resolve.
- Complete diff reviewed, including the eight decision cases,
queue/standalone boundaries, explicit user limits, preserved ordinary
counters and same-owner continuations.
- `git diff --check` passed.
- Fresh canonical migration-target fetch still matches the branch base;
no intervening skill changes to duplicate.

Decision cases are policy checks, not a claim of an end-to-end agent
replay. No package builds or corpus runs are needed for this
Markdown-only change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant