Repository navigation
feat: host generic TWA0004, TWA0023, and TWA0038 - #45
Merged
StevenTCramer merged 6 commits intoNov 10, 2026
Merged
StevenTCramer merged 6 commits into
StevenTCramer merged 6 commits into
Conversation
Architecture 486 classified these three style rules as generic. They move here with the same diagnostic ids so existing .editorconfig keys keep working. Version 1.0.0-beta.13 is the pin consumers use after dev release from master. Audit: the CI pipeline step is pwsh, and the git hooks match the attest baseline.
The override test's interface snippet also matched the abstract property, and the Run snippet also matched the override, so those diagnostics were checked twice. Locate now throws when a snippet occurs more than once, and Flag refuses a second match of the same span. The Design note points TWA0009 and TWA0021 at TimeWarp.Architecture.Analyzers, and System.Threading sits in alphabetical order. Records the round 1 review ledger on the task branch.
StevenTCramer
deleted the
task/034-receive-generic-twa-rules-twa0004-etc-from-timewar
branch
November 10, 2026 09:32
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
Architecture 486's table marks TWA0004, TWA0023, and TWA0038 generic. Those three now live in
TimeWarp.SourceGeneratorsunderTimeWarp.SourceGenerators, with the same ids, default severities, and editorconfig keys. TWA0023 still matchesTypeStemIdentifierAttributeby simple name. The attribute type stays inTimeWarp.Architecture.Attributes. No other TWA id moved.Package version is
1.0.0-beta.13.dev check-versionreports source one prerelease ahead of NuGet1.0.0-beta.12. NuGet publish isdev releasefrom a clean master after this pull request merges. Until that publish, Architecture.Analyzers still reports the same three ids, so this repo does not delete them there../bin/dev testpassed: the smoke console ran, and the analyzer console passed 54 cases (0 failed).ganda repo auditexited 0 (41 passed, 0 failed, 3 skipped).Review
Disposition: clean. There were 2 rounds, each with one general reviewer. Round 1 ran at effort 3 and round 2 at effort 2. Final counts: bug 0, suggestion 1 fixed, nit 2 fixed, 0 open, 0 wontfix. Round 1 (2026-11-10) raised M1, M2, and M3, and fix pass e8c0ae8 implemented them. Round 2 (2026-11-10) verified each fix on the delta
62a0489..e8c0ae8and found no new issues../bin/dev testreran with 56 passed, 0 failed.Locatethrows when the snippet occurs more than once.Flagthrows when a second expected flag resolves to a span already matched.OverrideAndExplicit_Should_ReportOnlyFreeNamesusesabstract void Run(HttpClient client)andHttpClient Client { get; }so the abstract parameter and the interface property are each checked once.DuplicateSnippet_Should_ThrowandSameSpanTwice_Should_Throwlock those throws. The abstractRunsnippet was also shared with the override; that flag is unique now too.global using System.Threading;sits afterSystem.Text.RegularExpressions../bin/dev testat 54 passed. After this fix pass the analyzer console is 56 passed, 0 failed, andganda repo auditexited 0 (41 passed, 0 failed, 3 skipped).review/review-framework.md,review/round-1/general.md,review/round-1/merged.md,review/round-2/general.md,review/round-2/merged.md(final ledger),review/disposition.md.Test plan
Smoke
Expect
./bin/dev testends withTests completed successfully!andPassed: 56 Failed: 0.documentation/releases.mdname TWA0004, TWA0023, and TWA0038.source/Directory.Build.propshas<Version>1.0.0-beta.13</Version>.Locatethrows withSnippet is not unique.global using System.Threading;followsglobal using System.Text.RegularExpressions;.Kanban task 034
Session: Grok 01a1c422-c20a-75f1-9f7d-4fd4c78c2e0b