Implement and test Go codemods for the gh aw fix command.
55
61%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.github/skills/go-codemod/SKILL.mdUse 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:
98bac81
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.