Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Implement and test Go codemods for the gh aw fix command.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -24% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -35% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -49% | 0% |
Use this skill when adding or updating codemods used by gh aw fix.
pkg/cli/fix_command.go to understand execution flow:GetAllCodemods()(newContent, applied, error) and be safe for no-op inputpkg/cli/fix_codemods.go.pkg/cli/yaml_frontmatter_utils.go and reusable codemod helper constructors in pkg/cli/codemod_factory.go.pkg/cli/ named codemod_<feature>.go.logger.New("cli:codemod_<feature>").get<Feature>Codemod() Codemod and populate all metadata fields:ID (stable, unique)Name (human-readable)Description (clear migration behavior)IntroducedIn (release version)Apply:applied=false when migration is not neededapplyFrontmatterLineTransform from pkg/cli/yaml_frontmatter_utils.gofindAndReplaceInLineremoveFieldFromBlockremoveParentBlockIfTrulyEmptynewFieldRemovalCodemodnewMoveTopLevelKeyToOnBlockCodemod...WithDeps constructor so tests can mock behavior.pkg/cli/fix_codemods.go within GetAllCodemods().Create pkg/cli/codemod_<feature>_test.go and cover:
ID, Name, Description, IntroducedIn, Apply != nil)....WithDeps exists (success and fallback/error paths).When complexity is high (expression rewriting, parser-like behavior), add fuzz tests in codemod_<feature>_fuzz_test.go using the pattern in pkg/cli/codemod_steps_run_secrets_env_fuzz_test.go.
After adding a codemod, update pkg/cli/fix_codemods_test.go:
Order matters because codemods run sequentially and later codemods observe prior transformations.
Run targeted checks first:
go test -v ./pkg/cli -run Codemod -count=1go test -v ./pkg/cli -run Fix -count=1Then run repository standards:
make buildmake test-unitmake lintA codemod is ready only when it is:
Other measured skills in the registry, with their headline benchmark lift.