wip-feat: clippy-style rule system refactor with diagnostic improvements and schema verification - #2
Merged
Merged
Conversation
Parts A-D of the rule system refactor: Part A - Diagnostic improvements: - Add DiagnosticLabel, primary_span, SuggestedFix, TextEdit, Applicability - Create fix.rs with apply_fixes infrastructure - Rename span -> primary_span across codebase Part B - CLI improvements: - Route text output to stdout (was stderr) - Make 'lint' the default subcommand (actlint [paths] works) - Add stdin detection with --type flag - Document exit codes (0=clean, 1=errors, 2=operational) Part C - Rule refactor: - Add declare_rule! macro and register_rules! registry - Port all rules to 26 flat files with clippy-style architecture - Add LintConfig with disabled_rules, disabled_namespaces, schema config - Replace legacy dispatch with ALL_RULES loop - Delete action/ and workflow/ subdirectories - Update fuzz harnesses for new dispatch - Add shared test harness (run_rule, assert_rule_clean) Part D - Test coverage: - All 26 rules have clean-case tests - workflow_expression_contexts: new tests (was zero coverage) - Diagnostic-quality assertions on key rules - 12 CLI integration tests (assert_cmd + predicates) - 264 total tests (220 unit + 32 integration + 12 CLI) Rule IDs migrated from 'workflow/X' and 'action/X' to 'semantic/workflow-X' and 'semantic/action-X' namespace format.
- Make moon the primary command interface, cargo as fallback - Add command reference table (moon vs cargo) - Add 'How to add a new rule' section with declare_rule! walkthrough - Document exit codes, stdin support, default subcommand - Update project structure to reflect flat rule files - Preserve fuzz testing documentation
Moon was trying to download node_depman_toolchain WASM plugin for the javascript/pnpm config, hitting a 502 from GitHub releases. This is a pure Rust project with no JS dependencies. - Remove javascript, node, pnpm, bun sections from .moon/toolchains.yml - Default cache-pnpm to false in setup action - Remove dead pnpm store cache step
No JS dependencies in this repo. Explicitly pass cache-pnpm: false to every setup action call so moon does not attempt to download the node_depman_toolchain WASM plugin. Reverts changes to .github/actions/setup/action.yml from previous commit; the fix is in the callers instead.
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.
No description provided.