{"owner":"cosmos","repo":"cosmos-sdk","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# Repository guidelines for coding agents\n\nThis file provides guidance for automated agents contributing to this repository.\n\n## Repository Overview\n\n- This is the **Cosmos SDK**, a modular blockchain SDK for building application-specific blockchains.\n- The project is written in Go. Key areas:\n  - **`x/`** — Core SDK modules (auth, bank, staking, gov, distribution, consensus, etc.) and supplementary modules (authz, feegrant, epochs, etc.)\n  - **`baseapp/`** — Base application and ABCI handling\n  - **`client/`** — CLI and client utilities\n  - **`store/`** — State storage (IAVL, multistore)\n  - **`crypto/`** — Key types and signing\n  - **`simapp/`** — Demo application (simd) used for testing and as a reference\n  - **`contrib/x/`** — Deprecated modules (circuit, crisis, nft); not actively maintained and not covered by the Bug Bounty program\n  - **`enterprise/`** — Enterprise modules (poa, group) with different licensing; see `enterprise/README.md`. (`x/group` moved here from `contrib/` in v0.54.0.)\n- Most unit tests live next to the code they test. The `tests/` directory holds cross-cutting tests: `tests/integration/` (integration), `tests/e2e/` (e2e), `tests/systemtests/` (system), `tests/fuzz/` (fuzz).\n- Protobuf definitions live under `proto/`.\n- Agents should **not** run `test-e2e`, `test-sim-*`, or `test-system` by default — they are slow, often need Docker or pre-built binaries, and depend on environment specifics. Run them only when a change explicitly requires that level of coverage.\n\n## Submodules\n\nEach of the following directories has its own `go.mod` and must be tidied / tested independently:\n\n- Library submodules: `api`, `client/v2`, `collections`, `core`, `depinject`, `errors`, `log`, `math`, `store`\n- App / test / tools: `simapp`, `tests`, `tests/systemtests`, `tools/cosmovisor` (built via `make cosmovisor`), `tools/confix` (built via `make confix`), `tools/systemtests`\n- Enterprise: `enterprise/poa`, `enterprise/poa/simapp`, `enterprise/group`, `enterprise/group/simapp`\n\nRunning `go test ./...` from the repo root only tests the root module. Use `make test` so the `run-tests` target walks every submodule.\n\n## Documentation\n\n- **API & tutorials:** https://docs.cosmos.network/\n- **Architecture:** `docs/architecture/` — follow existing patterns when adding features\n- **Module overview:** `x/README.md` — lists all modules and their purposes\n- **Upgrade notes:** `UPGRADING.md` — required reading before introducing a breaking change; add a corresponding entry alongside the changelog note\n- **Security:** `SECURITY.md` — report security-sensitive findings here, not in a normal PR\n\n## Scope\n\n- **IBC** is maintained in a separate repo ([ibc-go](https://github.com/cosmos/ibc-go)); do not add IBC logic to the Cosmos SDK.\n- **Deprecated modules** in `contrib/x/` (circuit, crisis, nft) — avoid adding new features; prefer core `x/` modules.\n\n## Agent guardrails\n\n- **State-machine and consensus code requires extra care.** Changes that affect deterministic state must use the `State Machine Breaking` changelog stanza and usually warrant an `UPGRADING.md` entry.\n- **Do not hand-edit generated files.** `*.pb.go`, `*.pb.gw.go`, mocks under `testutil/`, and similar generated output should be regenerated via `make proto-all` / `make mocks`.\n- **Do not edit `go.sum`, `go.work`, or `go.work.sum` manually** — use `make tidy-all` to update dependencies across all modules.\n- **Do not run `golangci-lint` directly with custom paths** — use `make lint`, which invokes `./scripts/go-lint-all.bash --timeout=15m` to match CI.\n- **Enterprise licensing** — modules under `enterprise/` use different licenses; do not copy code into other parts of the SDK without checking.\n\n## Development Workflow\n\n1. **Pre-push verification.** From the repo root, run in order:\n   - `make tidy-all` (only if dependencies changed)\n   - `make build`\n   - `make lint` (depends on `make lint-install`; the first run will install the linter)\n   - `make test` (or `make test-unit`)\n\n   Fix any failures locally before pushing.\n2. **Protobuf changes.** Run `make proto-all` (format, lint, generate). Requires Docker and the proto-builder image. After proto changes, run `make build` and `make test` to ensure nothing is broken.\n3. **Mocks.** If you add or change interfaces that require mocks, run `make mocks` before pushing.\n4. **Lint fixes.** Run `make lint-fix` to auto-fix lint issues.\n5. **Enterprise tests.** When changing enterprise modules, also run `make enterprise-all-test` (or `make enterprise-poa-test` / `make enterprise-group-test`).\n\n`make all` (`tools build lint test vulncheck`) is the full local check matching CI; use it before requesting review on a large change.\n\n## Changelog\n\n- Add entries to `CHANGELOG.md` under the `## UNRELEASED` section.\n- Format: `* (tag) [#PR-number](https://github.com/cosmos/cosmos-sdk/pull/PR-number) message`\n  - Example: `* (x/staking) [#12345](https://github.com/cosmos/cosmos-sdk/pull/12345) Fix validator power calculation`\n- Tags indicate the affected area: `(x/bank)`, `(store)`, `(baseapp)`, `(enterprise/poa)`, etc.\n- Stanzas (use the appropriate one): `Features`, `Improvements`, `Deprecated`, `Bug Fixes`, `Breaking Changes` (top-level umbrella), `Client Breaking`, `CLI Breaking`, `API Breaking`, `State Machine Breaking`.\n- For breaking changes, also add an entry to `UPGRADING.md`.\n- See the header of `CHANGELOG.md` for full formatting rules.\n\n## Commit Messages\n\n- Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification. Common types: `feat`, `fix`, `docs`, `test`, `deps`, `chore`.\n- Include the proposed commit message in the pull request description when opening a PR.\n\n## Pull Request Workflow\n\nBefore requesting review:\n\n- [ ] Pre-push verification passes (see **Development Workflow**)\n- [ ] Changelog entry added under `## UNRELEASED` for user-facing or notable changes\n- [ ] `UPGRADING.md` entry added for breaking changes\n- [ ] CI is green (build, lint, tests)\n- [ ] PR is focused — split unrelated changes into separate PRs\n\n## Enterprise Modules\n\n- Located in `enterprise/` (e.g. `enterprise/poa`, `enterprise/group`).\n- Each has its own `go.mod` and Makefile. Use `make enterprise-<module>-<target>` or `make enterprise-all-<target>`.\n- **Different licensing** — review the LICENSE file in each enterprise module before use or copying code.\n- Tests: `make enterprise-poa-test` or `make enterprise-group-test`.\n"},"files":{"AGENTS.md":"# Repository guidelines for coding agents\n\nThis file provides guidance for automated agents contributing to this repository.\n\n## Repository Overview\n\n- This is the **Cosmos SDK**, a modular blockchain SDK for building application-specific blockchains.\n- The project is written in Go. Key areas:\n  - **`x/`** — Core SDK modules (auth, bank, staking, gov, distribution, consensus, etc.) and supplementary modules (authz, feegrant, epochs, etc.)\n  - **`baseapp/`** — Base application and ABCI handling\n  - **`client/`** — CLI and client utilities\n  - **`store/`** — State storage (IAVL, multistore)\n  - **`crypto/`** — Key types and signing\n  - **`simapp/`** — Demo application (simd) used for testing and as a reference\n  - **`contrib/x/`** — Deprecated modules (circuit, crisis, nft); not actively maintained and not covered by the Bug Bounty program\n  - **`enterprise/`** — Enterprise modules (poa, group) with different licensing; see `enterprise/README.md`. (`x/group` moved here from `contrib/` in v0.54.0.)\n- Most unit tests live next to the code they test. The `tests/` directory holds cross-cutting tests: `tests/integration/` (integration), `tests/e2e/` (e2e), `tests/systemtests/` (system), `tests/fuzz/` (fuzz).\n- Protobuf definitions live under `proto/`.\n- Agents should **not** run `test-e2e`, `test-sim-*`, or `test-system` by default — they are slow, often need Docker or pre-built binaries, and depend on environment specifics. Run them only when a change explicitly requires that level of coverage.\n\n## Submodules\n\nEach of the following directories has its own `go.mod` and must be tidied / tested independently:\n\n- Library submodules: `api`, `client/v2`, `collections`, `core`, `depinject`, `errors`, `log`, `math`, `store`\n- App / test / tools: `simapp`, `tests`, `tests/systemtests`, `tools/cosmovisor` (built via `make cosmovisor`), `tools/confix` (built via `make confix`), `tools/systemtests`\n- Enterprise: `enterprise/poa`, `enterprise/poa/simapp`, `enterprise/group`, `enterprise/group/simapp`\n\nRunning `go test ./...` from the repo root only tests the root module. Use `make test` so the `run-tests` target walks every submodule.\n\n## Documentation\n\n- **API & tutorials:** https://docs.cosmos.network/\n- **Architecture:** `docs/architecture/` — follow existing patterns when adding features\n- **Module overview:** `x/README.md` — lists all modules and their purposes\n- **Upgrade notes:** `UPGRADING.md` — required reading before introducing a breaking change; add a corresponding entry alongside the changelog note\n- **Security:** `SECURITY.md` — report security-sensitive findings here, not in a normal PR\n\n## Scope\n\n- **IBC** is maintained in a separate repo ([ibc-go](https://github.com/cosmos/ibc-go)); do not add IBC logic to the Cosmos SDK.\n- **Deprecated modules** in `contrib/x/` (circuit, crisis, nft) — avoid adding new features; prefer core `x/` modules.\n\n## Agent guardrails\n\n- **State-machine and consensus code requires extra care.** Changes that affect deterministic state must use the `State Machine Breaking` changelog stanza and usually warrant an `UPGRADING.md` entry.\n- **Do not hand-edit generated files.** `*.pb.go`, `*.pb.gw.go`, mocks under `testutil/`, and similar generated output should be regenerated via `make proto-all` / `make mocks`.\n- **Do not edit `go.sum`, `go.work`, or `go.work.sum` manually** — use `make tidy-all` to update dependencies across all modules.\n- **Do not run `golangci-lint` directly with custom paths** — use `make lint`, which invokes `./scripts/go-lint-all.bash --timeout=15m` to match CI.\n- **Enterprise licensing** — modules under `enterprise/` use different licenses; do not copy code into other parts of the SDK without checking.\n\n## Development Workflow\n\n1. **Pre-push verification.** From the repo root, run in order:\n   - `make tidy-all` (only if dependencies changed)\n   - `make build`\n   - `make lint` (depends on `make lint-install`; the first run will install the linter)\n   - `make test` (or `make test-unit`)\n\n   Fix any failures locally before pushing.\n2. **Protobuf changes.** Run `make proto-all` (format, lint, generate). Requires Docker and the proto-builder image. After proto changes, run `make build` and `make test` to ensure nothing is broken.\n3. **Mocks.** If you add or change interfaces that require mocks, run `make mocks` before pushing.\n4. **Lint fixes.** Run `make lint-fix` to auto-fix lint issues.\n5. **Enterprise tests.** When changing enterprise modules, also run `make enterprise-all-test` (or `make enterprise-poa-test` / `make enterprise-group-test`).\n\n`make all` (`tools build lint test vulncheck`) is the full local check matching CI; use it before requesting review on a large change.\n\n## Changelog\n\n- Add entries to `CHANGELOG.md` under the `## UNRELEASED` section.\n- Format: `* (tag) [#PR-number](https://github.com/cosmos/cosmos-sdk/pull/PR-number) message`\n  - Example: `* (x/staking) [#12345](https://github.com/cosmos/cosmos-sdk/pull/12345) Fix validator power calculation`\n- Tags indicate the affected area: `(x/bank)`, `(store)`, `(baseapp)`, `(enterprise/poa)`, etc.\n- Stanzas (use the appropriate one): `Features`, `Improvements`, `Deprecated`, `Bug Fixes`, `Breaking Changes` (top-level umbrella), `Client Breaking`, `CLI Breaking`, `API Breaking`, `State Machine Breaking`.\n- For breaking changes, also add an entry to `UPGRADING.md`.\n- See the header of `CHANGELOG.md` for full formatting rules.\n\n## Commit Messages\n\n- Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification. Common types: `feat`, `fix`, `docs`, `test`, `deps`, `chore`.\n- Include the proposed commit message in the pull request description when opening a PR.\n\n## Pull Request Workflow\n\nBefore requesting review:\n\n- [ ] Pre-push verification passes (see **Development Workflow**)\n- [ ] Changelog entry added under `## UNRELEASED` for user-facing or notable changes\n- [ ] `UPGRADING.md` entry added for breaking changes\n- [ ] CI is green (build, lint, tests)\n- [ ] PR is focused — split unrelated changes into separate PRs\n\n## Enterprise Modules\n\n- Located in `enterprise/` (e.g. `enterprise/poa`, `enterprise/group`).\n- Each has its own `go.mod` and Makefile. Use `make enterprise-<module>-<target>` or `make enterprise-all-<target>`.\n- **Different licensing** — review the LICENSE file in each enterprise module before use or copying code.\n- Tests: `make enterprise-poa-test` or `make enterprise-group-test`.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Repository guidelines for coding agents\n\nThis file provides guidance for automated agents contributing to this repository.\n\n## Repository Overview\n\n- This is the **Cosmos SDK**, a modular blockchain SDK for building application-specific blockchains.\n- The project is written in Go. Key areas:\n  - **`x/`** — Core SDK modules (auth, bank, staking, gov, distribution, consensus, etc.) and supplementary modules (authz, feegrant, epochs, etc.)\n  - **`baseapp/`** — Base application and ABCI handling\n  - **`client/`** — CLI and client utilities\n  - **`store/`** — State storage (IAVL, multistore)\n  - **`crypto/`** — Key types and signing\n  - **`simapp/`** — Demo application (simd) used for testing and as a reference\n  - **`contrib/x/`** — Deprecated modules (circuit, crisis, nft); not actively maintained and not covered by the Bug Bounty program\n  - **`enterprise/`** — Enterprise modules (poa, group) with different licensing; see `enterprise/README.md`. (`x/group` moved here from `contrib/` in v0.54.0.)\n- Most unit tests live next to the code they test. The `tests/` directory holds cross-cutting tests: `tests/integration/` (integration), `tests/e2e/` (e2e), `tests/systemtests/` (system), `tests/fuzz/` (fuzz).\n- Protobuf definitions live under `proto/`.\n- Agents should **not** run `test-e2e`, `test-sim-*`, or `test-system` by default — they are slow, often need Docker or pre-built binaries, and depend on environment specifics. Run them only when a change explicitly requires that level of coverage.\n\n## Submodules\n\nEach of the following directories has its own `go.mod` and must be tidied / tested independently:\n\n- Library submodules: `api`, `client/v2`, `collections`, `core`, `depinject`, `errors`, `log`, `math`, `store`\n- App / test / tools: `simapp`, `tests`, `tests/systemtests`, `tools/cosmovisor` (built via `make cosmovisor`), `tools/confix` (built via `make confix`), `tools/systemtests`\n- Enterprise: `enterprise/poa`, `enterprise/poa/simapp`, `enterprise/group`, `enterprise/group/simapp`\n\nRunning `go test ./...` from the repo root only tests the root module. Use `make test` so the `run-tests` target walks every submodule.\n\n## Documentation\n\n- **API & tutorials:** https://docs.cosmos.network/\n- **Architecture:** `docs/architecture/` — follow existing patterns when adding features\n- **Module overview:** `x/README.md` — lists all modules and their purposes\n- **Upgrade notes:** `UPGRADING.md` — required reading before introducing a breaking change; add a corresponding entry alongside the changelog note\n- **Security:** `SECURITY.md` — report security-sensitive findings here, not in a normal PR\n\n## Scope\n\n- **IBC** is maintained in a separate repo ([ibc-go](https://github.com/cosmos/ibc-go)); do not add IBC logic to the Cosmos SDK.\n- **Deprecated modules** in `contrib/x/` (circuit, crisis, nft) — avoid adding new features; prefer core `x/` modules.\n\n## Agent guardrails\n\n- **State-machine and consensus code requires extra care.** Changes that affect deterministic state must use the `State Machine Breaking` changelog stanza and usually warrant an `UPGRADING.md` entry.\n- **Do not hand-edit generated files.** `*.pb.go`, `*.pb.gw.go`, mocks under `testutil/`, and similar generated output should be regenerated via `make proto-all` / `make mocks`.\n- **Do not edit `go.sum`, `go.work`, or `go.work.sum` manually** — use `make tidy-all` to update dependencies across all modules.\n- **Do not run `golangci-lint` directly with custom paths** — use `make lint`, which invokes `./scripts/go-lint-all.bash --timeout=15m` to match CI.\n- **Enterprise licensing** — modules under `enterprise/` use different licenses; do not copy code into other parts of the SDK without checking.\n\n## Development Workflow\n\n1. **Pre-push verification.** From the repo root, run in order:\n   - `make tidy-all` (only if dependencies changed)\n   - `make build`\n   - `make lint` (depends on `make lint-install`; the first run will install the linter)\n   - `make test` (or `make test-unit`)\n\n   Fix any failures locally before pushing.\n2. **Protobuf changes.** Run `make proto-all` (format, lint, generate). Requires Docker and the proto-builder image. After proto changes, run `make build` and `make test` to ensure nothing is broken.\n3. **Mocks.** If you add or change interfaces that require mocks, run `make mocks` before pushing.\n4. **Lint fixes.** Run `make lint-fix` to auto-fix lint issues.\n5. **Enterprise tests.** When changing enterprise modules, also run `make enterprise-all-test` (or `make enterprise-poa-test` / `make enterprise-group-test`).\n\n`make all` (`tools build lint test vulncheck`) is the full local check matching CI; use it before requesting review on a large change.\n\n## Changelog\n\n- Add entries to `CHANGELOG.md` under the `## UNRELEASED` section.\n- Format: `* (tag) [#PR-number](https://github.com/cosmos/cosmos-sdk/pull/PR-number) message`\n  - Example: `* (x/staking) [#12345](https://github.com/cosmos/cosmos-sdk/pull/12345) Fix validator power calculation`\n- Tags indicate the affected area: `(x/bank)`, `(store)`, `(baseapp)`, `(enterprise/poa)`, etc.\n- Stanzas (use the appropriate one): `Features`, `Improvements`, `Deprecated`, `Bug Fixes`, `Breaking Changes` (top-level umbrella), `Client Breaking`, `CLI Breaking`, `API Breaking`, `State Machine Breaking`.\n- For breaking changes, also add an entry to `UPGRADING.md`.\n- See the header of `CHANGELOG.md` for full formatting rules.\n\n## Commit Messages\n\n- Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification. Common types: `feat`, `fix`, `docs`, `test`, `deps`, `chore`.\n- Include the proposed commit message in the pull request description when opening a PR.\n\n## Pull Request Workflow\n\nBefore requesting review:\n\n- [ ] Pre-push verification passes (see **Development Workflow**)\n- [ ] Changelog entry added under `## UNRELEASED` for user-facing or notable changes\n- [ ] `UPGRADING.md` entry added for breaking changes\n- [ ] CI is green (build, lint, tests)\n- [ ] PR is focused — split unrelated changes into separate PRs\n\n## Enterprise Modules\n\n- Located in `enterprise/` (e.g. `enterprise/poa`, `enterprise/group`).\n- Each has its own `go.mod` and Makefile. Use `make enterprise-<module>-<target>` or `make enterprise-all-<target>`.\n- **Different licensing** — review the LICENSE file in each enterprise module before use or copying code.\n- Tests: `make enterprise-poa-test` or `make enterprise-group-test`.\n","category":"root","tokens":1610}]}