Repository navigation
spec: 018 phase 2 — instruments (no page changed) - #200
Merged
Merged
Conversation
Instruments for the compile residual, before any page is repaired. - 2.1 probe/predict.py: the wrapper and Shouldly build 0 blocks; Program 4 - 2.2 --classify: a second, receiver-aware compile, five columns, six classes - 2.3 red-proof; found D1 resolving Order to Redis and Context to Polly -> D8 - 2.4 probe/reconcile.py: 14 disagreements, all explained; CS0308 gap repaired - 2.5 handler wrapper (abstract Holder, fully qualified base), D9 Fallback - 2.6 V4 pin: refs-v4.csproj, pages.tsv pin column, pairing rule, drift check - 2.7 Shouldly 4.3.0 in both pins (545 -> 548 assemblies) - 2.8 a statements block naming Program is staged as a top-level file Work in progress: CI's blocks job does not build refs-v4 until 2.12. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
Friction #77: an error against a scaffold unit's tree was a WARNING on a run that exited 0. The Roslyn tool now keeps each one once (unit, code, position, message) and prints it as a `scaffold error:` line; --report lists them under "scaffold unit does not compile" and counts each as a finding. The summary line gains ", N compile errors". Red-proof: probe/unit_plants.py. A CS0246 planted in a scratch copy of PageContext.cs, invisible to the unit rule, adds exactly one finding; the real units give 0. --report otherwise unmoved: 990/303/670/17. Also: blockcheck.csproj now removes refs-v4/** from its sources. Left out at 2.6, it made blockcheck fail CS0579 once refs-v4 was built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
Friction #80: rule 6's debt could only be reconciled per page against a worktree at the phase's base. --per-page prints page<TAB>warnings, sorted, on stdout, with the summary line on stderr, so a phase's debt delta is a diff of two outputs. It combines with paths and --changed, not --fix. Two methods agree: 66 rows summing to 512, byte-identical to a count from the full run's (warning) lines. Red-proof two-way: a page with warnings and one without; an error sets exit 1 and is not a row. The task's 524 was stale since #195 and now reads 512. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
Friction #76, design D7. probe/net10.py restores both pins on net10.0 in scratch and compiles the same staged corpus against both reference lists. The framework alone does not restore (NU1605: Brighter's EF Core packages need EF Core >= 10.0.10 on net10.0), so the copies raise the pin's three framework-tied packages as a net10.0 reader gets them. 17 packages resolve at a different version, 27 drop out in-box, 1 is added; 548 -> 553 assemblies. No verdict moves, on 973 judged blocks, and no FAILED block's codes. Control: the net10.0 list without TickerQ moves 5 TickerQScheduler.md verdicts. D7's condition is not met. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
CI's blocks job builds refs-v4.csproj between refs.csproj and blockcheck.csproj, the order 2.9's Compile Remove makes safe. tools/README.md: a phase 2 paragraph; row 9 as it reads at the phase's commit (990/303/670/17, 548 assemblies per pin, 30 blocks and 4 pages on the v4 pin, 0 compile errors); three builds and the drift check's exit 2; four scope lines, the per-pin suffix and unit compile errors; --classify rewritten for five columns, six classes and D8. Row 9's "0 findings" holds once 2.13 writes the four baseline rows, and 2.13 re-derives it. AC14's corrected form counts 1 for each new figure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
Four rows, the blocks the Program staging (2.8) made build: DarkerConfigurationReference.md #1, #2, QueryPipelinePolicies.md #1 and TickerQScheduler.md #2. Three rows re-admitted under the v4 scaffold name (2.6) move from f6a9a7c. All seven at 937db00. Exactly 2.1's predicted four, none lost; baseline 303 = BUILT 303. --report: 990/303/670/17, 0 findings, exit 0. Rule 8 clean on the three pages. tools/README.md row 9 re-derived: unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
AC8: every column comes from --classify (class counts, FAILED) or the gate's --report (BUILT), by probe/groups.py, whose command sits above the tables. Rows: the 64 off-tranche pages with a FAILED block plus the three tranche pages whose FAILED blocks are all on the V4 pin. 67 pages, 634 FAILED: 140 parse, 36 built-by-using, 93 defect, 14 same-page, 75 values, 276 page-type; 37 with nothing BUILT. Two methods agree (630 off-tranche + 4 V4). S1-S3 match the design's working figures; S4 and S5 differ only by the three V4 pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
Gates against the prediction, at 1b05c3e and merged with #199: blockcheck 990 -> 993 blocks (#199's three Telemetry.md blocks, FAILED), 303 BUILT, 0 findings; 548 assemblies on each pin; every other gate unmoved but versioncheck. versioncheck reads 18 stale of 18: Brighter 10.8.0 reached NuGet on 2026-10-06, master's versions job has failed daily since, and the bump is put to the maintainer as its own change. No page changed, so obligation 19 has nothing to read. tools/README.md row 9 re-derived at the merged head: 993/303/673/17. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Spec 018 phase 2: the instruments the repair phases (3–7) work from. No page is changed, so this PR asks for no site sign-off.
--classifynow compiles each FAILED block twice. The second compile supplies theusings the pin resolves. It prints five columns and six classes, and resolves names receiver-aware (D1, D8)Handle/HandleAsync/Execute/ExecuteAsync/Fallback/FallbackAsyncis staged inside an abstract holder with its fully qualified basetools/blockcheck/refs-v4/refs-v4.csproj(the AWS V4 family), av4column inscaffold/pages.tsv, the pairing rule, and a drift check between the two pins. CI'sblocksjob builds itstatementsblock namingProgramis staged as a top-level file (Confirm the banner renders as a callout (spec 011, Task 3.5) #75); a scaffold unit that does not compile is a finding (spec 010 D0 step 1: rename a section, deliberately without a redirect #77);pagelint --per-page(spec 010: information architecture requirements, approved, with D0 executed #80); and thenet9.0pin measured againstnet10.0, where 0 verdicts moved, with a control that does move (docs: Phase 7 — language tags, pagelint --fix, and the acceptance pass (spec 011 complete) #76)tasks.md§ The groups, drawn from--classifybyprobe/groups.py(AC8)blockcheck.csprojdid not excluderefs-v4/, so it failedCS0579once the V4 pin was builtGates
blockcheck --reportlinkcheckpagelint--plant5 / 5optioncheck·symbolcheckversioncheckmastertoo (below)BUILT went 299 → 303: the four blocks that build once
Programis staged as a top-level file, which is exactly the set task 2.1 predicted. The corpus went 990 → 993 whenmasterwas merged in: #199's threeTelemetry.mdblocks, which are FAILED, asmaster's own gate already has them.Two things for you
versioncheckis red, and not because of this PR. Brighter 10.8.0 reached NuGet on 2026-10-06. The five tutorial pages pin 10.7.0, andmaster'sversionsjob has failed on every scheduled run since. Bumping the pins changes the published site, and it should move withrefs.csproj's 10.7.0 and a replay of each tutorial. I propose doing it as its own change, outside spec 018. Shall I?spec/018-phase2?🤖 Generated with Claude Code
https://claude.ai/code/session_01LjnH2pJ98aMabu1MyTpRxy