feat: Add method aliases - #55
Open
joshuaclayton wants to merge 17 commits into
Open
Conversation
joshuaclayton
commented
Mar 8, 2026
Member
- feat(01-01): add alias rule model and grammar validator
- feat(01-01): add alias rules to project configuration model
- feat(01-01): export alias rule contracts from crate root
- feat(01-02): add alias-aware result-based config parsing
- feat(01-02): add default Rails method alias rules
- fix(01-02): surface config parse failures in cli and doctor
- feat(02-01): implement alias candidate expansion helpers
- feat(02-01): apply alias-aware assertion matching
- test(02-02): add alias matcher regression coverage
- test(02-02): add no-alias project configuration regressions
- test(03-02): harden loader alias validation assertions
- test(03-01): harden alias rule validation coverage
- test(03-01): expand alias matcher equivalence and one-pass coverage
- test(03-02): expand project-level alias regression coverage
- fix: count alias-derived usages when alias token is absent from tags
- chore: adjust style
- add raw and compiled alias rule types with from/to grammar validation - return typed validation errors with rule index and field metadata - cover valid and invalid wildcard/template token parsing with unit tests
- add method_aliases to ProjectConfiguration as Vec<AliasRule> - default method_aliases to empty for backward-compatible no-alias configs - set loader-created configurations to empty alias rules for now
- expose alias rule model and parser/validator entrypoint - export typed alias validation error metadata for loader/cli integration
- change ProjectConfigurations::parse to return explicit load errors - compile and validate method_aliases with aggregated config-aware diagnostics - add loader tests for invalid alias rows and unchanged no-alias behavior
- add be_{} mapping for *? predicates
- add have_{} mapping for has_*? predicates
- add snakecase mapping for *Validator constants
- return explicit loader errors and keep default fallback only when user config is missing - fail normal CLI runs with actionable config-load messaging - report doctor config-load failures as Error while keeping success status output
- add one-pass alias candidate expansion for token strings - render alias templates with literal, capture, and snakecase parts - cover dedupe, self-map dropping, and capture preservation in unit tests
- add alias-aware assertion and matcher entry points with compatibility wrappers - expand both matcher and observed tokens for equality-style token assertions - route low-likelihood and matches-if checks through configured method_aliases
- assert alias validation issues by stable fields and message fragments - make aggregated validation checks order-independent - cover malformed wildcard and unknown template token parsing failures
- switch invalid pattern and transform assertions to stable field/fragment checks - add multi-error validation test covering malformed wildcard and unknown token classes - keep aggregated validation checks order-independent to avoid brittle test failures
- add explicit wildcard/transform equivalence tests for *?, has_*?, and *Validator rules - add deterministic one-pass candidate expansion test to prevent recursive alias chaining - preserve and extend alias-aware equality behavior coverage without changing matcher logic
- add YAML-driven low_likelihood tests for *?, has_*?, and *Validator alias forms - add YAML-driven codebase_config_match tests for canonical alias equivalence - keep explicit no-alias regression checks for low-likelihood and codebase matching
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.