Repository navigation
docs: correct four false claims about CI coverage and gh pr edit - #956
Conversation
Accounting for #928
Why the -27% prediction did not holdThe prediction came from word counts. Reading the rules gives a different answer: Shortened or corrected (20 records)
Deliberately left (25 records)
Records that received text: Why each left record was left
Corrections carried hereThree code-versus-doc mismatches the issue listed, each verified against this
The preservation check
Both failing tiers were watched going red on a mutation before the pass started: Seven deliberate drops, each one an Guards run
Not done
|
r1) Codex gpt-6-sol round 1 at 07517a0. Two P1 rule losses restored inline: the legacy audit backfill instruction (#819) and "Insights owns no tables" (#845). Both are plain sentences carrying no unique identifier, so the token-level preservation check passed them. Method fix: a sentence-level audit now classifies every sentence whose CONTENT left a rule as moved, reworded, elsewhere, corrected or stays, and fails on an unclassified loss, a "stays" that is not inline, or a classification that no longer matches. Re-deleting "Insights owns no tables" reds it while the token check stays green. Also narrows the e2e-smoke path-filter claim, rewrites 370's stale "human-started" passage as dated history, replaces 565's contradicting "not in CI" line with the real gap, corrects 271's ILease inventory against SharedStateRegistration.cs and ReportConcurrencyCapRegistration, and replaces 732's "did the opposite on all four counts" with the exact historical facts.
Codex gpt-6-sol round 1 at
|
Three statements in AGENTS.md were wrong against this tree, and each was verified before rewriting. gh pr edit works. Exit 0 on gh 2.101.0 against PR #956. The gh api -X PATCH fallback stays for older gh. The simulation boot harness is in CI. e2e-smoke.yml runs bootstrap.sh and verify-harness.sh against docker-compose.sim.yml on every pull request touching src, web, tools/simulation, deploy and the root build inputs. The real gaps are a PR outside that path filter and k6-baseline.yml, which is dispatch only. AppHost.Tests is in CI, as ci.yml's apphost matrix leg, and AppHostModelTests pins the entries the AppHost declares. The real gap is that no test derives the API's required-key set and checks the AppHost supplies it, so a newly required key surfaces only under aspire run. The 370 and 565 records carried the same two stale claims and now carry dated amendments instead. The 271 record's shared-state inventory named four registrations and an ILease port; SharedStateRegistration.cs registers three and no ILease, because ReportConcurrencyCapRegistration constructs RedisLease and InProcessLease itself to pin each permit to its granting backend. Part of #928
b67548d to
7f89aef
Compare
AGENTS.md said that adding a tool type under Cluckwork.Api.Mcp or mapping MapMcp "makes that description stale, not red". AdapterTierRealTreeTests.McpTierRow_IsDormantToday asserts report.Dormant contains that namespace, so activating the tier fails the test. The rule now says CI turns red and that the assertion is dropped in the same commit. The 843 record's "goes stale (not red)" sentence carried the same claim and now names the failing test, which its own activation checklist already treats as the signal.
Part of #928
Four statements in
AGENTS.mdwere wrong against this tree. This PR correctsthose four and the matching claims in their decision records. Nothing else in
AGENTS.mdchanges:git diff origin/main -- AGENTS.mdtouches exactly 4 of its252 lines, and every other rule paragraph is byte-identical.
gh pr editworks. Exit 0 ongh2.101.0 against this PR. The rule kept thegh api -X PATCHfallback for an oldergh.The simulation boot harness is in CI.
e2e-smoke.ymlrunstools/simulation/bootstrap.shandverify-harness.shagainstdocker-compose.sim.ymlon everypull_requesttouchingsrc/**,web/**,tools/simulation/**,deploy/**and the root build inputs. The real gaps are aPR outside that path filter, and
k6-baseline.yml, which isworkflow_dispatchonly. The #370 rule said "deliberately not in CI, and nothing tells you when you
break it".
AppHost.Testsis in CI, asci.yml'sapphostmatrix leg, andAppHostModelTestspins the entries the AppHost declares, includingSharedState__Redis__ConnectionString. The real gap is narrower: no test derivesthe API's REQUIRED-key set and checks the AppHost supplies it, so a newly required
key surfaces only under
aspire run. The #565 rule said "deliberately not in CI".Activating the dormant MCP tier turns CI red. The #843 rule said that adding
a tool type under
Cluckwork.Api.Mcpor mappingMapMcp"makes that descriptionstale, not red".
AdapterTierRealTreeTests.McpTierRow_IsDormantTodayassertsreport.Dormantcontains that namespace, so activating the tier fails the test.The rule now says CI turns red and that the assertion is dropped in the same
commit.
843-adapter-tiers.mdcarried the same claim as "goes stale (not red)"and now names the failing test, which its own activation checklist already treats
as the signal.
Record changes, all of them corrections rather than moved text: dated amendments
on
370-sim-harness-boot-guards.mdand565-aspire-local-orchestration.md, whichboth carried the same two stale claims, the "goes stale (not red)" sentence in
843-adapter-tiers.md, and the shared-state inventory in271-single-serving-instance.md, which named four #543 registrations and anILeaseport.SharedStateRegistration.csregisters three and noILease,because
ReportConcurrencyCapRegistrationconstructsRedisLeaseandInProcessLeaseitself to pin each permit to its granting backend.Why this is not #928
#928 asked for the inline narrative in the 47 linked rules to move into the
records. That was built and dropped by owner decision. Two Codex review rounds
found 10 rule losses across the moved paragraphs: two in round 1 (#819's
legacy audit backfill instruction, #845's "Insights owns no tables") and eight in
round 2 (the #843 dormant-tier claim, now corrected here; the
same-email-across-farms allowance, the rejected i18n guard's
matching-strategy warning, where
AdapterTier.KnownSurfacesvalidatesprivilege, the cross-owner FK name-and-direction key, and the 30-table,40-adapter and 30-interface fail-closed floors). The move saved about 3% of the
file. Losing a rule silently re-enables a shipped defect, so the trade was not
worth it.
The body is
Part of #928, notCloses #928, because the move #928 asks for isnot delivered here. #928 stays open for the owner to close or re-scope.
Guards:
dotnet test tests/Cluckwork.Application.Tests --filter "FullyQualifiedName~ImagePin|FullyQualifiedName~RealTree|FullyQualifiedName~Documentation"34 passed, and
dotnet test tests/Cluckwork.Api.IntegrationTests --filter "FullyQualifiedName~SchemaDocsTests"4 passed.