codemod
41
总安装量
41
周安装量
#5091
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill codemod
Agent 安装分布
claude-code
33
codex
30
gemini-cli
28
antigravity
27
opencode
27
cursor
25
Skill 文档
Codemod Best Practices
Comprehensive best practices guide for Codemod (JSSG, ast-grep, workflows), designed for AI agents and LLMs. Contains 48 rules across 11 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new codemods with JSSG or ast-grep
- Designing workflow configurations for migrations
- Debugging pattern matching or AST traversal issues
- Reviewing codemod code for performance and safety
- Setting up test fixtures for transform validation
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | AST Understanding | CRITICAL | ast- |
| 2 | Pattern Efficiency | CRITICAL | pattern- |
| 3 | Parsing Strategy | CRITICAL | parse- |
| 4 | Node Traversal | HIGH | traverse- |
| 5 | Semantic Analysis | HIGH | semantic- |
| 6 | Edit Operations | MEDIUM-HIGH | edit- |
| 7 | Workflow Design | MEDIUM-HIGH | workflow- |
| 8 | Testing Strategy | MEDIUM | test- |
| 9 | State Management | MEDIUM | state- |
| 10 | Security and Capabilities | LOW-MEDIUM | security- |
| 11 | Package Structure | LOW | pkg- |
Quick Reference
1. AST Understanding (CRITICAL)
ast-explore-before-writing– Use AST Explorer before writing patternsast-understand-named-vs-anonymous– Understand named vs anonymous nodesast-use-kind-for-precision– Use kind constraint for precisionast-field-access-for-structure– Use field access for structural queriesast-check-null-before-access– Check null before property access
2. Pattern Efficiency (CRITICAL)
pattern-use-meta-variables– Use meta variables for flexible matchingpattern-avoid-overly-generic– Avoid overly generic patternspattern-combine-with-rules– Combine patterns with rule operatorspattern-use-constraints– Use constraints for reusable matching logicpattern-use-relational-patterns– Use relational patterns for contextpattern-ensure-idempotency– Ensure patterns are idempotent
3. Parsing Strategy (CRITICAL)
parse-select-correct-parser– Select the correct parser for file typeparse-handle-embedded-languages– Handle embedded languages with parseAsyncparse-provide-pattern-context– Provide context for ambiguous patternsparse-early-return-non-applicable– Early return for non-applicable files
4. Node Traversal (HIGH)
traverse-use-find-vs-findall– Use find() for single match, findAll() for multipletraverse-single-pass-collection– Collect multiple patterns in single traversaltraverse-use-stopby-for-depth– Use stopBy to control traversal depthtraverse-use-siblings-efficiently– Use sibling navigation efficientlytraverse-cache-repeated-lookups– Cache repeated node lookups
5. Semantic Analysis (HIGH)
semantic-use-file-scope-first– Use file scope semantic analysis firstsemantic-check-null-results– Handle null semantic analysis resultssemantic-verify-file-ownership– Verify file ownership before cross-file editssemantic-cache-cross-file-results– Cache semantic analysis results
6. Edit Operations (MEDIUM-HIGH)
edit-batch-before-commit– Batch edits before committingedit-preserve-formatting– Preserve surrounding formatting in editsedit-handle-overlapping-ranges– Handle overlapping edit rangesedit-use-flatmap-for-conditional– Use flatMap for conditional editsedit-add-imports-correctly– Add imports at correct position
7. Workflow Design (MEDIUM-HIGH)
workflow-order-nodes-by-dependency– Order nodes by dependencyworkflow-use-matrix-for-parallelism– Use matrix strategy for parallelismworkflow-use-manual-gates– Use manual gates for critical stepsworkflow-validate-before-run– Validate workflows before runningworkflow-use-conditional-steps– Use conditional steps for dynamic workflows
8. Testing Strategy (MEDIUM)
test-use-fixture-pairs– Use input/expected fixture pairstest-cover-edge-cases– Cover edge cases in test fixturestest-use-strictness-levels– Choose appropriate test strictness leveltest-update-fixtures-intentionally– Update test fixtures intentionallytest-run-on-subset-first– Test on file subset before full run
9. State Management (MEDIUM)
state-use-for-resumability– Use state for resumable migrationsstate-make-transforms-idempotent– Make transforms idempotent for safe rerunsstate-log-progress-for-observability– Log progress for long-running migrations
10. Security and Capabilities (LOW-MEDIUM)
security-minimize-capabilities– Minimize requested capabilitiessecurity-validate-external-inputs– Validate external inputs before usesecurity-review-before-running-third-party– Review third-party codemods before running
11. Package Structure (LOW)
pkg-use-semantic-versioning– Use semantic versioning for packagespkg-write-descriptive-metadata– Write descriptive package metadatapkg-organize-by-convention– Organize package by convention
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
Full Compiled Document
For a complete guide with all rules expanded, see AGENTS.md.