docs(adr): re-audit all 89 ADRs against current source - #114
Merged
Conversation
Full sweep of docs-src/adr against the four .NET repos, one verifier per record plus an adversarial pass on every DRIFTED or UNVERIFIABLE claim. 50 records were already accurate; 39 needed work. Substantive corrections (the record said something the code does not do): - 010: Common ships a concrete integration event now (OutputCacheEvictionRequested), so the convention test is no longer vacuous there. Five enforcement points, not four. - 015: 96 -> 99 methods executed by Common (FACTS.md:47); PublicAPI baselines 5,068 -> 5,150 declarations; baseline shipped in v1.153.0, not "next release". - 037: the versioned-envelope work is in a published package (v1.153.0), recorded as included rather than featured, since the changelog entry does not name it. - 049: counts re-measured 2026-08-18 as a new dated revision. - 055: the specification combinators no longer use Expression.Invoke; they rebind parameters through SpecificationComposer. Anchors rebased by up to 87 lines. - 058: Helpdesk adopts the decorator suite now, so "adopts none" is retired. - 062: Store's two extra alerts merged 2026-08-13; five extras are ungated, not three. - 065: figures re-measured against Helpdesk with the counting method stated inline (111 files / 7,671 lines); 20 fitness subclasses, not 19. - 073: six IgnoreQueryFilters call sites, not five. - 074: AddScheduledJob<TJob>() takes no cron parameter; retiming is config-only. - 077: the type is partial with a primary constructor and is registered by factory lambda. - 078: no X-Export-Truncated header exists (X-Export-Row-Limit plus a trailing comment row); the BOM is unconditional; formula injection is decided, not open. - 084/088: the gateway route table and the rate-limit bypass prefixes live in appsettings.json since 2026-08-18, not in Program.cs. - 089: written as pre-change and shipped the same day, so it now reads as a decision that landed, with Store's one-way route suite and the ForwardHttp2 asymmetry recorded. The rest is citation repair: roughly 130 stale path:line anchors re-verified against live source, worst in 034, 041, 082 and 055. Also records the Store identity seeder gap found during the audit: Store runs the seeder in every environment with no configuration gate, unlike ADC. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Full sweep of
docs-src/adragainst MMCA.Common, Store, ADC and Helpdesk: one evidence verifier per record, an adversarial second pass on every DRIFTED or UNVERIFIABLE claim, plus a hunt for undocumented decisions.Result: 635 assertions checked, 477 confirmed. 50 records were already accurate; 39 changed here.
Substantive corrections
OutputCacheEvictionRequested; five enforcement pointsFACTS.md:47); 5,150; shipped in v1.153.0Expression.InvokeSpecificationComposerrebinds parameters; anchors rebased up to 87 linesDirectory.Packages.props/ 113 pins; 19 subclassesIgnoreQueryFilterssitesAddScheduledJob<TJob>(cron?)partialwith a primary constructor, factory-lambda registrationX-Export-Truncatedheader; BOM setting; injection undecidedX-Export-Row-Limit+ trailing comment row); BOM unconditional; injection decidedProgram.csappsettings.jsonsince 2026-08-18ForwardHttp2asymmetry recorded as residualsCitation repair
Roughly 130 stale
path:lineanchors re-verified against live source and corrected, worst in 034, 041, 082 and 055. Behavior in those records was already accurate.Also here
store-RemediationBacklog.mdrecords a gap the audit surfaced: Store'sIdentityModuleSeederruns in every environment with no configuration gate, unlike ADC'sSeeding:IncludeSampleUsers, so weak plaintext seed accounts are created wherever it starts. Names the #11 Security lever, which read "not yet identified".Not in this PR
Two new-ADR candidates the audit proposed (smart enumerations; the client-side generic data-access layer) and an ADR-005 amendment for
SoftDeleteUniqueIndexConventionwere not approved for this pass.🤖 Generated with Claude Code