Skip to content

chore(audit): apply ganda repo audit fixes - #649

Merged
StevenTCramer merged 13 commits into
masterfrom
task/486-split-timewarparchitectureanalyzers-move-generic-c
Nov 10, 2026
Merged

StevenTCramer merged 13 commits into
masterfrom
task/486-split-timewarparchitectureanalyzers-move-generic-c

Conversation

@StevenTCramer

Copy link
Copy Markdown
Contributor

Summary

Directory.Packages.props pins TimeWarp.SourceGenerators at 1.0.0-beta.13, which reports TWA0004, TWA0023, and TWA0038. Those three analyzers and their tests are removed from TimeWarp.Architecture.Analyzers in the same change, so a build reports each hit once. Architecture rules stay. TWA0001 and TWA0017–TWA0019 stay in TimeWarp.Architecture.Generators. TypeStemIdentifierAttribute stays in TimeWarp.Architecture.Attributes.

TWA0028 stays Architecture (it checks TimeWarp.Foundation.Enumerations.Enumeration). TWA0036 stays Architecture (ISO 8601 rendering, including Razor). The only PackageReference to TimeWarp.Architecture.Analyzers outside this repo is timewarp-state at published pin 2.0.0-beta.31, which still contains the three rules. Dropping that reference is timewarp-state task 153. This repo's unpublished version stays 2.0.0-beta.32.

./bin/dev build --quiet succeeded. Analyzer tests: 263 passed, 0 failed (Jaribu, from the test project directory, Release, --no-build). A throwaway 510-line file with no Purpose region, since deleted, produced error TWA0004 and error TWA0038 through timewarp-source-generators 1.0.0-beta.13. Each id appeared twice in the log because MSBuild echoes the csc line. The csc command line named that analyzer once.

ganda repo audit --fix lowered the suppression baseline and redeployed the git hooks. .github/workflows/workflow.yml run steps are pwsh so workflow-pwsh-shell passes. source-file-line-cap remains a warning for the same generated and research files as before (task 469-001).

Review round 1 M1 and M2 are fixed. AGENTS.md and documentation/developer/guides/analyzer-package-split.md say TimeWarp.SourceGenerators 1.0.0-beta.13 and later, and point at Directory.Packages.props for the pin. The TypeStemIdentifierAttribute Design region names TimeWarp.SourceGenerators (TWA0023) as the analyzer that matches by simple name and does not reference that assembly. The package description, Directory.Build.props, and the unshipped header already stated a minimum and were left as they were. Round 1 review files stay as the reviewer wrote them.

Review

Round 1 (general, effort 3) opened M1 (suggestion) and M2 (nit). Commit b400129 fixed both. Round 2 (general, effort 1) re-checked the fix delta, found both fixed, and raised nothing new.

Final counts: bug 0; suggestion 1 fixed; nit 1 fixed; 0 open; 0 wontfix. Review disposition: clean after 2 rounds, with no escalations. Paths: review/review-framework.md, review/round-2/merged.md (the last merged file), and review/disposition.md.

Test plan

Smoke

grep -n 'TimeWarp.SourceGenerators" Version="1.0.0-beta.13"' Directory.Packages.props
test ! -f source/analyzers/timewarp-architecture-convention-analyzers/purpose-region-analyzer.cs
test ! -f source/analyzers/timewarp-architecture-convention-analyzers/type-stem-identifier-analyzer.cs
test ! -f source/analyzers/timewarp-architecture-convention-analyzers/file-length-analyzer.cs
test ! -f tests/analyzers/timewarp-architecture-analyzers-tests/purpose-region-analyzer-tests.cs
test ! -f tests/analyzers/timewarp-architecture-analyzers-tests/file-length-analyzer-tests.cs
test ! -f tests/analyzers/timewarp-architecture-analyzers-tests/type-stem-identifier-naming-analyzer-tests.cs
test -f source/analyzers/timewarp-architecture-attributes/type-stem-identifier-attribute.cs
awk -F'|' '/^\| TWA/ && $4 ~ /generic/ { print $2 }' kanban/in-progress/486-split-timewarparchitectureanalyzers-move-generic-code-style-rules-to-timewarpsourcegenerators/task.md
grep -n '1.0.0-beta.13' documentation/developer/guides/analyzer-package-split.md source/analyzers/timewarp-architecture-convention-analyzers/AnalyzerReleases.Unshipped.md
grep -n '1.0.0-beta.13 and later; pin in `Directory.Packages.props`' AGENTS.md documentation/developer/guides/analyzer-package-split.md
grep -n 'TimeWarp.SourceGenerators (TWA0023)' source/analyzers/timewarp-architecture-attributes/type-stem-identifier-attribute.cs
! grep -n 'convention-analyzers match by' source/analyzers/timewarp-architecture-attributes/type-stem-identifier-attribute.cs
! grep -n '(pin 1.0.0-beta.13)' AGENTS.md documentation/developer/guides/analyzer-package-split.md

Expect

  • The pin is 1.0.0-beta.13.
  • The three analyzer sources and their tests are absent. The opt-out attribute file is present.
  • The awk lines are TWA0004, TWA0023, and TWA0038. TWA0028 and TWA0036 rows say Architecture.
  • The guide and the unshipped release file both mention 1.0.0-beta.13. The unshipped table has no TWA0004, TWA0023, or TWA0038 rows.
  • AGENTS.md and the split guide each contain 1.0.0-beta.13 and later; pin in Directory.Packages.props. Neither contains (pin 1.0.0-beta.13).
  • The attribute Design region names TimeWarp.SourceGenerators (TWA0023). It does not say convention-analyzers match by simple name.
  • A project that imports the root Directory.Build.props still fails the build on a missing Purpose region or a file over 500 lines, from SourceGenerators, once.

Kanban task 486
Session: Grok task-work

StevenTCramer and others added 13 commits November 10, 2026 00:44
Seed the suppression baseline, ignore walk signals, and take TimeWarp.Nuru
4.0.0-beta.12. That pin drops ICommandHandler, so the CLI handlers implement
IRequestHandler and return ValueTask.

Co-authored-by: Cursor <cursoragent@cursor.com>
…nerators

State takes TimeWarp.Architecture.Analyzers only for TWA0004. The move set is
TWA0004, TWA0023, and TWA0038, with those ids kept. The analyzers stay in this
package until TimeWarp.SourceGenerators reports them, so the check is not dropped
and a compilation does not report the same id twice.

Co-authored-by: Grok <noreply@x.ai>
The block on task 034 is cleared. Resume can bump the pin and delete the three generic analyzers.

Co-authored-by: Cursor <cursoragent@cursor.com>
…dy reports

Keeping TWA0004, TWA0023, and TWA0038 in TimeWarp.Architecture.Analyzers
would report each hit twice. Architecture rules stay in this package.
TypeStemIdentifierAttribute stays in TimeWarp.Architecture.Attributes.

workflow.yml run steps are pwsh so the workflow-pwsh-shell audit passes.
The suppression baseline drops the deleted type-stem test.

Co-authored-by: Grok <noreply@x.ai>
The validation command matched its own instructions, so a run reported five
generic rows when the table has three.

Co-authored-by: Grok <noreply@x.ai>
Round 1 left two open findings. The review record stays with the kitchen
so the fix pass can close them.

Co-authored-by: Grok <noreply@x.ai>
AGENTS.md and the split guide copied the Directory.Packages.props pin, so
the next bump would make them wrong. The opt-out attribute still named the
convention analyzers as the TWA0023 matcher.

Co-authored-by: Grok <noreply@x.ai>
The pwsh conversion split those reads, so the dev-cli checks no longer saw the pin files and ci (fast) failed.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@StevenTCramer
StevenTCramer merged commit 65b1a5d into master Nov 10, 2026
9 checks passed
@StevenTCramer
StevenTCramer deleted the task/486-split-timewarparchitectureanalyzers-move-generic-c branch November 10, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant