docs: add repository structure section to README#313
Conversation
Document all top-level directories and custom modules (oracle, feeabstraction, rewards, tokenfactory) with brief descriptions of their purpose and boundaries. Helps new contributors navigate the monorepo. Closes KiiChain#60
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 15 minutes and 17 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughThis PR adds documentation for the repository's structure. A new "Repository Structure" section is introduced to README.md that describes the purpose of top-level directories (ante/, app/, client/, cmd/, contrib/, precompiles/, proto/, tests/, wasmbinding/, and x/) with additional details on specific modules within x/ (oracle, feeabstraction, rewards, tokenfactory, types). The CHANGELOG.md is updated to record this documentation addition under the Unreleased section. Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds contributor-facing documentation that explains what each major directory/module in the repository is for, addressing the onboarding gap raised in #60.
Changes:
- Add a new “Repository Structure” section to
README.mddescribing top-level directories and custom modules underx/. - Record the documentation addition under “Unreleased → Added” in
CHANGELOG.md.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| README.md | Introduces a repository structure table describing directory/module responsibilities. |
| CHANGELOG.md | Notes the addition of the new README documentation section under Unreleased changes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| ## Repository Structure | ||
|
|
||
| An overview of the top-level directories and their purposes: |
There was a problem hiding this comment.
The intro sentence says this is an overview of the top-level directories, but the table also documents custom modules under x/ (which are not top-level). Consider rewording to reflect both (e.g., “top-level directories and custom modules under x/”) so the section accurately describes its contents.
| An overview of the top-level directories and their purposes: | |
| An overview of the top-level directories and custom modules under `x/` and their purposes: |
| | `x/` | Custom Cosmos SDK modules: | | ||
| | | • `x/oracle/` — On-chain price feeds. Validators submit exchange rates that are aggregated into a canonical feed available to other modules and smart contracts. | | ||
| | | • `x/feeabstraction/` — Allows transaction fees to be paid in tokens other than the native `akii` (e.g., stablecoins), using oracle exchange rates for pricing. | | ||
| | | • `x/rewards/` — Community-pool reward distribution to validators on a configurable linear release schedule. | | ||
| | | • `x/tokenfactory/` — Permissionless token creation (`factory/{creator}/{subdenom}`), with admin-level mint, burn, and metadata controls. | | ||
| | | • `x/types/` — Shared types and constants used across custom modules. | |
There was a problem hiding this comment.
Rows for the individual x/* modules leave the “Directory” column blank and embed the path in the description with a bullet. This makes the table harder to scan/copy and doesn’t match the stated goal of documenting each directory/module. Consider giving each module its own row with the module path in the first column (e.g., x/oracle/, x/feeabstraction/, etc.) and keep x/ as either a normal row or remove it.
| | `x/` | Custom Cosmos SDK modules: | | |
| | | • `x/oracle/` — On-chain price feeds. Validators submit exchange rates that are aggregated into a canonical feed available to other modules and smart contracts. | | |
| | | • `x/feeabstraction/` — Allows transaction fees to be paid in tokens other than the native `akii` (e.g., stablecoins), using oracle exchange rates for pricing. | | |
| | | • `x/rewards/` — Community-pool reward distribution to validators on a configurable linear release schedule. | | |
| | | • `x/tokenfactory/` — Permissionless token creation (`factory/{creator}/{subdenom}`), with admin-level mint, burn, and metadata controls. | | |
| | | • `x/types/` — Shared types and constants used across custom modules. | | |
| | `x/` | Custom Cosmos SDK modules. | | |
| | `x/oracle/` | On-chain price feeds. Validators submit exchange rates that are aggregated into a canonical feed available to other modules and smart contracts. | | |
| | `x/feeabstraction/` | Allows transaction fees to be paid in tokens other than the native `akii` (e.g., stablecoins), using oracle exchange rates for pricing. | | |
| | `x/rewards/` | Community-pool reward distribution to validators on a configurable linear release schedule. | | |
| | `x/tokenfactory/` | Permissionless token creation (`factory/{creator}/{subdenom}`), with admin-level mint, burn, and metadata controls. | | |
| | `x/types/` | Shared types and constants used across custom modules. | |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
README.md (1)
272-272: Consider clarifying "feeless transaction logic".The term "feeless transaction logic" might benefit from a brief clarification. Consider whether this refers to:
- Transactions with zero gas fees
- Fee abstraction (paying fees in alternative tokens)
- Governance-exempted transactions
If this is a key feature, a more specific description would help developers understand when and how it applies.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@README.md` at line 272, Update the README entry for `ante/` to replace the vague phrase "feeless transaction logic" with a specific description of what it means in this project (e.g., "support for zero-gas transactions", "fee abstraction allowing fees paid in alternative tokens", or "governance-exempted transactions") so readers know the exact behavior; edit the `ante/` line that references Custom AnteHandler decorators (the AnteHandler decorators that run before every transaction) to include the chosen clarification and a short note on when it applies and which decorators implement it (reference the `ante/` directory and the AnteHandler decorators).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@README.md`:
- Around line 266-287: Add a new table row documenting the top-level assets/
directory in the "Repository Structure" section of README.md: update the
existing directory table (the block starting with "| Directory | Description |")
to include a row for `assets/` and provide a brief description of its purpose
(e.g., static images, logos, sample contracts/artifacts, or other repository
assets) so the README fully documents all top-level directories.
---
Nitpick comments:
In `@README.md`:
- Line 272: Update the README entry for `ante/` to replace the vague phrase
"feeless transaction logic" with a specific description of what it means in this
project (e.g., "support for zero-gas transactions", "fee abstraction allowing
fees paid in alternative tokens", or "governance-exempted transactions") so
readers know the exact behavior; edit the `ante/` line that references Custom
AnteHandler decorators (the AnteHandler decorators that run before every
transaction) to include the chosen clarification and a short note on when it
applies and which decorators implement it (reference the `ante/` directory and
the AnteHandler decorators).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 8560561b-b673-4caa-be56-52ef466fc676
📒 Files selected for processing (2)
CHANGELOG.mdREADME.md
- Reword intro to mention custom modules under x/ (Copilot) - Give each x/* module its own table row instead of bullets (Copilot) - Add missing assets/ directory (CodeRabbit)
|
Hi @jhelison — friendly ping! This PR is ready for review whenever you have a moment. All CI checks are passing. Happy to address any feedback. Thanks! |
|
Hey @Thaleszh, would love to get your eyes on this when you have a moment. Thanks! |
Summary
Add a "Repository Structure" section to the README that documents every top-level directory and each custom module under
x/, as requested in #60.Changes
Adds a table to
README.md(between the Troubleshooting and Contributing sections) covering:ante/app/KiichainApp, keepers, module registration, upgrade handlersclient/cmd/kiichaindbinary entry pointcontrib/precompiles/proto/tests/wasmbinding/x/oracle/x/feeabstraction/x/rewards/x/tokenfactory/x/types/Closes #60