name: axone-contributor-workflow description: Contribute safely to the AXONE axoned repository. Use when changing Go code, proto files, generated docs, predicate logic, tests, CI workflows, release plumbing, or local chain behavior in this repo. Applies the repo's validation steps, generation commands, and contributor-specific gotchas before finalizing changes. compatibility: Requires git, go, make, and docker. Node is only needed when validating generated markdown for MDX compatibility.
Axone Contributor Workflow
Use this skill for routine contribution work in this repository. It is the default workflow for changes under app/, cmd/, proto/, scripts/, x/**, docs/, Makefile, and .github/workflows/.
Rules
- Read the touched files and the nearest build, generator, or CI entrypoint before editing.
- Edit source files, not generated files, unless there is no generator.
- Use
maketargets as the only validation interface. - When several
maketargets could apply, prefer the broader one. - Regenerate derived artifacts before finishing and inspect the final diff.
Choose validation by change type
- Go code, imports, or dependencies: run
make lint-goandmake test-go. - Proto files: run
make proto. - CLI command or Cobra flag changes: run
make doc-command. - Predicate, Prolog library, bootstrap, or predicate feature changes: run
make doc-predicateandmake test-go. - Interface changes that affect mocks: run
make mock. - App wiring, local chain behavior, or upgrades: run
make build-go. For local chain validation, usemake chain-init,make chain-start, andmake chain-stop. For upgrade work, usemake chain-upgrade FROM_VERSION=... TO_VERSION=.... - Generated markdown under
docs/: run the relevant generation target fromMakefile. CI will additionally check MDX compatibility.
Gotchas
- Tests must follow the repo conventions: GoConvey is allowed,
testify,ginkgo, andgomegaare forbidden. gofumptis mandatory, but the correct entrypoint is stillmake lint-go.- CI regenerates command docs, proto docs, and predicate docs and fails on unexpected diffs.
make doc-commandrewrites machine-specific defaults in generated markdown. Do not hand-edit those outputs afterward.make proto-gencopies generated code back fromgithub.com/axone-protocol/axoned/*into the repo root. Inspect the diff after regeneration.make build-go-allis host-limited and can fail on cross-compilation mismatches. Prefermake build-go.make chain-stoprunskillall axoned.
High-signal files to read first
Makefile.github/workflows/lint.yml.github/workflows/test.yml.golangci.ymlREADME.md
For subsystem-specific work, also read the closest source and generator entrypoints:
- Predicate docs:
scripts/generate_predicates_doc.go - Command docs:
scripts/generate_command_doc.go - Proto generation:
scripts/protocgen-code.shandscripts/protocgen-doc.sh - Upgrade work:
app/upgrades.go
Final self-check
- The validation commands you ran match the change type.
- Any generated file diffs are expected and trace back to source edits.
git status --shortcontains only intended files.- If
go.modorgo.sumchanged, they were updated intentionally and are tidy.