← 返回 Skills 市场
mohebifar

Codemod

作者 Mohamad Mohebifar · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
81
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install codemod
功能描述
Use Codemod CLI whenever the user wants to migrate, upgrade, update, or refactor a codebase in a repeatable way. This includes framework migrations, library...
使用说明 (SKILL.md)

Codemod Migration Assistant

codemod-compatibility: mcs-v1 codemod-skill-version: 1.1.0

Use this skill to orchestrate migration execution, codemod package authoring, and Codemod CLI AI inspection.

Trigger this skill when the user asks to:

  • migrate from one framework/library/tooling stack to another
  • upgrade or update a framework, SDK, package, plugin, compiler, or toolchain
  • apply a breaking-change migration, deprecation migration, or version bump rollout
  • perform a large mechanical refactor that may already exist as a Codemod Registry package
  • inspect AST shape, tree-sitter node types, Codemod documentation, or Codemod MCP-equivalent tools/resources from the CLI

When the intent is migration/update/upgrade oriented, use Codemod first before defaulting to a fully open-ended AI rewrite.

CLI AI tools

Codemod AI tools must be usable without MCP. Prefer the CLI commands below when MCP tools/resources are missing, stale, blocked by the harness, or when you need a user-reproducible command:

  • Dump AST shape: echo 'const x = 23;' | npx codemod ai dump-ast --
  • Dump AST for a file: npx codemod ai dump-ast src/App.tsx
  • Inspect node types for a language: npx codemod ai node-types tsx
  • List docs resources: npx codemod ai docs
  • Read/search docs: npx codemod ai docs codemod-creation-workflow

If MCP is available, direct MCP calls are acceptable. If MCP is unavailable, do not stop authoring only because MCP is missing; use the codemod ai CLI equivalents.

When the user:

  • Creates a codemod or does a large refactor — Read codemod-creation-workflow-instructions first via MCP or npx codemod ai docs codemod-creation-workflow. Before writing source-transform code, read jssg-gotchas and ast-grep-gotchas via MCP or npx codemod ai docs jssg-gotchas / npx codemod ai docs ast-grep-gotchas. Read codemod-cli-instructions only when you need exact command syntax. Read jssg-instructions once a package exists and you are implementing the transform.
  • Needs to know whether a codemod package is still a starter scaffold or incomplete — Call MCP validate_codemod_package or run npx codemod ai call validate_codemod_package --input '{"package_path":"."}' before stopping.
  • Needs Node/LLRT APIs, capability-gated modules, or non-trivial multi-file JSSG work — Read jssg-runtime-capabilities-instructions via MCP or npx codemod ai docs jssg-runtime-capabilities.
  • Maintains a codemod monorepo — Read codemod-maintainer-monorepo-instructions via MCP or npx codemod ai docs codemod-maintainer-monorepo.
  • Runs or discovers codemods — Read codemod-cli-instructions via MCP or npx codemod ai docs codemod-cli.
  • Hits errors or unexpected behavior — Read codemod-troubleshooting-instructions via MCP or npx codemod ai docs codemod-troubleshooting.
  • Needs import manipulation helpers — Read jssg-utils-instructions via MCP or npx codemod ai docs jssg-utils.
  • Needs to split a large migration into multiple PRs — Read sharding-instructions via MCP or npx codemod ai docs sharding.

Authoring defaults

  • Treat the Codemod docs served through codemod ai docs or MCP resources as the source of truth for CLI, workflow, and JSSG semantics.
  • Keep source transforms AST-first. Do not use regex or raw source-text rewriting as the primary implementation strategy.
  • Use npx codemod ai dump-ast or MCP dump_ast before broadening heuristics.
  • Use npx codemod ai node-types \x3Clanguage> or MCP get_node_types when node kinds or fields are unclear.
  • If symbol origin matters, use semantic analysis and binding-aware checks.
  • Keep one granular transform or one exact from -> to migration as a single package unless the request is clearly open-ended or multi-hop.
  • Inspect 1-3 representative repo files after or alongside registry discovery before you finalize the transform shape.
  • If registry search yields no exact package, run codemod init immediately instead of continuing broad research without a package. In headless/non-interactive flows, use the simplified codemod init \x3Cpath> --no-interactive interface and pass only user- or task-provided flags; do not invent --author, --license, --description, or --git-repository-url.
  • After the package exists, replace the starter transform, README, and starter fixtures before doing optional work.
  • Define positive, negative, and edge fixtures before deep implementation work.
  • Before stopping, inspect the whole package surface and update every affected file together: README.md, codemod.yaml, workflow.yaml, package.json scripts, tests/fixtures, and any renamed paths, ids, or references. Do not churn version numbers by default, but do not leave stale package metadata behind after a rename or material package-surface change.
  • Keep the requested migration aligned across every artifact: transform logic, fixtures, workflow.yaml, codemod.yaml, README, and package metadata must all describe the same codemod.
  • Replace scaffold boilerplate before finishing. Do not leave generic README text, placeholder fixture intent, or mismatched usage descriptions in place.
  • Use explicit workflow base_path, include, and exclude globs that match the actual target file types and keep codemod.yaml targets.languages aligned with that scope.
  • Preserve the scaffold-selected package manager in package.json scripts and package-local README/development commands. Infer it from the scaffold choice, lockfile, or existing package metadata; do not rewrite yarn/pnpm/bun packages to npx/npm unless the user explicitly asked.
  • Preserve repository-local package and lockfile conventions. In existing monorepos, do not introduce ad hoc dependency ranges or unrelated lockfile churn.
  • Treat fixture quality as a release gate. Cover realistic positive cases, edge cases, preserve/no-op cases, and negative cases where similar code must stay unchanged.
  • Do not stop while validate_codemod_package still reports starter scaffold markers, missing package surface updates, missing real test cases, or failing default tests.
  • For reusable authored codemods, do not default registry access/visibility to private unless the user explicitly asked for a private package.
  • Leave missing package author metadata to the CLI defaults/publish-time auth fallback unless the user supplied an explicit author.
  • Do not create commits or push branches for codemod authoring/evaluation unless the user explicitly asked for git operations.

Runtime flow

  1. Discover candidates with codemod search.
  2. Read the selected package's README/docs and perform any documented prerequisites or setup steps.
  3. Run workflow-capable packages with codemod run --dry-run before apply.
  4. Run codemod \x3Cpackage-id> and accept the install prompt when a package exposes installable skill behavior.
  5. Enforce verification with tests and dry-run summaries before apply.

Mandatory first action for migration/update/upgrade requests

  • Run codemod search before proposing a manual migration plan.
  • Do not jump straight to a handcrafted migration approach until registry discovery has been attempted and summarized.
  • If a suitable existing codemod is found, prefer evaluating it with --dry-run before proposing bespoke manual or AI-only migration work.
  • Only skip registry discovery when the user explicitly says not to use Codemod or not to search for existing codemods.

First-turn behavior

  • Before broad repo inspection or planning, derive a small set of high-signal search terms from the user request and run codemod search.
  • For codemod authoring, inspect only a small representative slice of the repo after or alongside registry discovery, then scaffold and iterate.
  • If the search returns a plausible existing package, the next step is to inspect that package's README/limits and run a dry-run, not to draft a manual migration plan.

Anti-patterns to avoid

  • Do not start by planning a manual migration when the request is an upgrade, update, or migration and the registry has not been searched yet.
  • Do not create a new codemod package before checking whether an existing registry package already covers the migration.
  • Do not keep reading broad guidance after a registry miss without scaffolding a package.
  • Do not run a discovered package blindly without first reading its README/docs for prerequisites, config, and known limits.
  • Do not introduce a shell step just to reach or mutate another related file path when JSSG can handle the hop.
  • Do not stop codemod authoring only because Codemod MCP is unavailable; use codemod ai CLI equivalents.
安全使用建议
Do not treat this as a complete approval; re-run the review when the artifact directory can be read directly.
能力评估
Purpose & Capability
Artifact contents were not readable in this run, so purpose and capability coherence could not be verified from SKILL.md or metadata.
Instruction Scope
Runtime instructions could not be inspected; no artifact-backed scope concern is reported.
Install Mechanism
Install files could not be inspected; no artifact-backed install concern is reported.
Credentials
Environment access could not be assessed from artifacts; VirusTotal telemetry was clean but is not sufficient by itself for a complete review.
Persistence & Privilege
Persistence and privilege behavior could not be verified from artifacts; no evidence-backed concern is reported.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install codemod
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /codemod 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Codemod skill 1.0.0 initial release: - Introduces Codemod CLI orchestration for automating migrations, upgrades, updates, and large-scale refactors. - Provides guidance for registry search, codemod package authoring, dry-run execution, and CLI-based Codemod AI inspection tools. - Details best practices for authoring, metadata handling, and preserving repository conventions. - Outlines workflow for discovering, evaluating, and applying codemods, with step-by-step runtime flow. - Emphasizes use of existing codemod packages before falling back to new authoring or open-ended rewrites.
元数据
Slug codemod
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Codemod 是什么?

Use Codemod CLI whenever the user wants to migrate, upgrade, update, or refactor a codebase in a repeatable way. This includes framework migrations, library... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 81 次。

如何安装 Codemod?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install codemod」即可一键安装,无需额外配置。

Codemod 是免费的吗?

是的,Codemod 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Codemod 支持哪些平台?

Codemod 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Codemod?

由 Mohamad Mohebifar(@mohebifar)开发并维护,当前版本 v1.0.0。

💬 留言讨论