You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds new cross-language pack tiers (all-security-*, all-multilang-*), updates onboarding/docs, and introduces exclude-path: support for internal maintainability filtering with targeted tests. Overall direction is solid and test coverage is materially improved.
Todo List ✅
None.
Critical Issues ⚠️ (if any)
None.
Other Issues 🧯
Analysis/Catalog/rules/internal/IXLOC001.json: adding exclude-path:IntelligenceX.Cli/Setup/Web/Assets/wizard.js hard-codes a repo-specific exception into a generic LOC rule; this increases long-term maintenance risk because rule behavior now depends on one concrete file path.
IntelligenceX.Cli/Analysis/AnalyzeRunCommand.InternalMaintainability.SourceFiltering.cs: CollapseRepeatedPathSeparators uses a replace-in-loop pattern; while fine for short strings, a single-pass normalization would be easier to reason about and avoids repeated allocations.
TODO.md: PR-specific reviewer-churn notes are being accumulated in source control; this can become stale process metadata and reduce signal in a product backlog file.
Tests / Coverage 🧪
Good: added pack-resolution tests for new security and multilang tiers.
Good: added analyze list-rules tier-count assertions for new tiers.
Good: added focused normalization and end-to-end tests for exclude-path semantics, including exact-match behavior and rooted-path rejection.
No coverage gaps found in changed behavior that would block merge.
Next Steps 🚀
Merge as-is.
Consider moving the wizard.js LOC exclusion to pack/environment-specific config (or a narrower rule override path) to keep base internal rule definitions repo-agnostic.
Static Analysis Policy 🧭
Config mode: respect
Packs: All Essentials (50)
Rules: 108 enabled
Rule list display: up to 10 items per section
Enabled rules preview: CA2000 (Dispose objects before losing scope), CA1062 (Validate arguments of public methods), SA1600 (Elements should be documented), CA1016 (Mark assemblies with assembly version), CA1018 (Mark attributes with AttributeUsageAttribute), CA1041 (Provide ObsoleteAttribute message), CA1047 (Do not declare protected member in sealed type), CA1050 (Declare types in namespaces), CA1061 (Do not hide base class methods), CA1067 (Override Object.Equals(object) when implementing IEquatable<T>) (truncated)
Clean rules: CA2000 (Dispose objects before losing scope), CA1062 (Validate arguments of public methods), SA1600 (Elements should be documented), CA1016 (Mark assemblies with assembly version), CA1018 (Mark attributes with AttributeUsageAttribute), CA1041 (Provide ObsoleteAttribute message), CA1047 (Do not declare protected member in sealed type), CA1050 (Declare types in namespaces), CA1061 (Do not hide base class methods), CA1067 (Override Object.Equals(object) when implementing IEquatable<T>) (truncated)
Outside-pack rules: none
Static Analysis 🔎
Findings: 0 (no issues at or above configured severity)
PRRT_kwDORAe5k85w4DDx: The concern remains valid: excluded paths are still stored in a case-insensitive set, which conflicts with strict exact/case-sensitive semantics.
PRRT_kwDORAe5k85w4DEv: No diff evidence shows alignment to case-sensitive exact matching; membership check still depends on the case-insensitive set built earlier.
PRRT_kwDORAe5k85w4lx-: The implementation still uses iterative global replacement of "//"; no change shown to a segment-based/non-overlapping strategy as requested.
PRRT_kwDORAe5k85w30HT: The diff introduces separate exclude-path handling with exact path matching instead of prefix/root matching, directly addressing over-match concerns. (missing diff evidence)
PRRT_kwDORAe5k85w33m_: The test setup no longer creates a directory at the same path used for a file; it now uses a different subdirectory and validates exact-file exclusion behavior. (missing diff evidence)
PRRT_kwDORAe5k85w4Z6D: Normalization is now symmetric and explicit (slash unification + repeated separator collapse), and tests cover both file-side and tag-side normalization/mixed separators. (missing diff evidence)
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
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
all-security-50,all-security-100,all-security-500all-security-defaultas stable baseline alias and make security tiers build on itall-security-50analyze list-rulessecurity-tier countsWhy
*-50|100|500tier patternsValidation
dotnet run --project IntelligenceX.Cli/IntelligenceX.Cli.csproj --framework net8.0 -- analyze validate-catalog --workspace .dotnet build IntelligenceX.Cli/IntelligenceX.Cli.csproj -c Releasedotnet build IntelligenceX.Tests/IntelligenceX.Tests.csproj -c Releasedotnet ./IntelligenceX.Tests/bin/Release/net8.0/IntelligenceX.Tests.dlldotnet ./IntelligenceX.Tests/bin/Release/net10.0/IntelligenceX.Tests.dllpwsh -NoLogo -NoProfile -File .agents/skills/intelligencex-analysis-gate/scripts/run-analysis-suite.ps1 -Mode fast