Skip to content

Conversation

@sashaodessa
Copy link
Contributor

@sashaodessa sashaodessa commented Jul 30, 2025

Summary

Fixed multiple broken links throughout the Cosmos SDK documentation to improve user experience and maintain documentation integrity.

Files Modified

  • docs/docs/learn/advanced/02-context.md
  • docs/docs/build/building-modules/06-keeper.md
  • docs/docs/build/building-modules/00-intro.md
  • docs/architecture/adr-063-core-module-api.md
  • docs/docs/user/run-node/02-interact-node.md
  • docs/docs/learn/advanced/08-events.md

Summary by CodeRabbit

  • Documentation
    • Corrected and updated several documentation links for improved accuracy and navigation, including references to ADRs, object-capabilities model, Cosmos SDK specifications, staking event examples, and configuration file locations. No content or logic was changed beyond these link adjustments.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 30, 2025

📝 Walkthrough

Walkthrough

This set of changes updates various documentation files to correct and standardize internal and external hyperlink references. The modifications involve adjusting relative paths and updating URLs to stable, versioned documentation sources. No functional, logical, or content changes were made beyond these link corrections.

Changes

Cohort / File(s) Change Summary
Internal Documentation Link Corrections
docs/docs/build/building-modules/00-intro.md, docs/docs/build/building-modules/06-keeper.md, docs/docs/learn/advanced/08-events.md, docs/docs/user/run-node/02-interact-node.md
Updated relative links to correct internal documentation references, ensuring accurate navigation paths within the documentation set.
External Documentation URL Updates
docs/docs/learn/advanced/02-context.md
Changed external URLs to point to stable, versioned CometBFT documentation instead of master branch links for ABCI types and consensus parameters.
ADR Reference Correction
docs/architecture/adr-063-core-module-api.md
Fixed hyperlink reference for ADR 057 in the References section to point to the correct ADR file.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (4)
docs/docs/learn/advanced/02-context.md (1)

33-37: Add anchor for direct navigation to VoteInfo

The version-pinned URL is great, but dropping the #voteinfo anchor forces readers to scroll.

-* **VoteInfo:** A list of the ABCI type [`VoteInfo`](https://docs.cometbft.com/v0.37/spec/abci/), ...
+* **VoteInfo:** A list of the ABCI type [`VoteInfo`](https://docs.cometbft.com/v0.37/spec/abci/#voteinfo), ...
docs/docs/user/run-node/02-interact-node.md (3)

69-69: Over-qualified relative path

01-run-node.md lives in the same run-node/ folder; ./01-run-node.md (or simply 01-run-node.md) is shorter and less error-prone.

-... inside [`app.toml`](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)):
+... inside [`app.toml`](./01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)):

271-271: Ditto – consider simplifying the Swagger link

-[`app.toml`](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)
+[`app.toml`](./01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)

289-289: Ditto – CORS section

-[...] field inside [`app.toml`](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).
+[...] field inside [`app.toml`](./01-run-node.md#configuring-the-node-using-apptoml-and-configtoml).
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Knowledge Base: Disabled due to Reviews > Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between dbe8fd5 and 4e719e3.

📒 Files selected for processing (6)
  • docs/architecture/adr-063-core-module-api.md (1 hunks)
  • docs/docs/build/building-modules/00-intro.md (1 hunks)
  • docs/docs/build/building-modules/06-keeper.md (1 hunks)
  • docs/docs/learn/advanced/02-context.md (1 hunks)
  • docs/docs/learn/advanced/08-events.md (1 hunks)
  • docs/docs/user/run-node/02-interact-node.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/docs/learn/advanced/02-context.md

[style] ~36-~36: Consider a more concise word here.
Context: ...ees.md) price a node is willing to take in order to include a transaction in its block. Thi...

(IN_ORDER_TO_PREMIUM)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🔇 Additional comments (2)
docs/architecture/adr-063-core-module-api.md (1)

561-561: Correct link target for ADR 057 – good catch
The change replaces the non-existent adr-057-app-wiring-1.md with the correct adr-057-app-wiring.md, matching the file name used elsewhere in this ADR and in the docs tree.

docs/docs/learn/advanced/08-events.md (1)

60-60: LGTM – corrected staking spec link

The new ../../../../x/staking/README.md path properly resolves from docs/docs/learn/advanced/.
No further action needed.


* **Composability**: Cosmos SDK applications are almost always composed of multiple modules. This means developers need to carefully consider the integration of their module not only with the core of the Cosmos SDK, but also with other modules. The former is achieved by following standard design patterns outlined [here](#main-components-of-cosmos-sdk-modules), while the latter is achieved by properly exposing the store(s) of the module via the [`keeper`](./06-keeper.md).
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../learn/advanced/10-ocap.md) of the Cosmos SDK.
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Broken link ‒ the new path adds an extra “docs” segment and 404s

From this location (docs/docs/build/building-modules/), ../../ already lands at docs/docs/.
Adding another docs/ in the URL yields docs/docs/docs/learn/..., which does not exist.

-... [object-capabilities model](../../docs/learn/advanced/10-ocap.md) ...
+... [object-capabilities model](../../learn/advanced/10-ocap.md) ...
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK.
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../learn/advanced/10-ocap.md) of the Cosmos SDK.
🤖 Prompt for AI Agents
In docs/docs/build/building-modules/00-intro.md at line 59, the relative link to
the object-capabilities model documentation is incorrect because it adds an
extra "docs" segment, causing a 404 error. Fix this by adjusting the relative
path to remove the redundant "docs/" so that it correctly points to
../../learn/advanced/10-ocap.md from the current file location.

The Cosmos SDK is a framework that makes it easy for developers to build complex decentralized applications from scratch, mainly by composing modules together. As the ecosystem of open-source modules for the Cosmos SDK expands, it will become increasingly likely that some of these modules contain vulnerabilities, as a result of the negligence or malice of their developer.

The Cosmos SDK adopts an [object-capabilities-based approach](../../learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s).
The Cosmos SDK adopts an [object-capabilities-based approach](../../docs/learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Same broken relative link as in 00-intro.md

../../ is sufficient; the inserted docs/ causes docs/docs/docs/learn/....

-The Cosmos SDK adopts an [object-capabilities-based approach](../../docs/learn/advanced/10-ocap.md)
+The Cosmos SDK adopts an [object-capabilities-based approach](../../learn/advanced/10-ocap.md)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The Cosmos SDK adopts an [object-capabilities-based approach](../../docs/learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s).
The Cosmos SDK adopts an [object-capabilities-based approach](../../learn/advanced/10-ocap.md) to help developers better protect their application from unwanted inter-module interactions, and `keeper`s are at the core of this approach. A `keeper` can be considered quite literally to be the gatekeeper of a module's store(s). Each store (typically an [`IAVL` Store](../../learn/advanced/04-store.md#iavl-store)) defined within a module comes with a `storeKey`, which grants unlimited access to it. The module's `keeper` holds this `storeKey` (which should otherwise remain unexposed), and defines [methods](#implementing-methods) for reading and writing to the store(s).
🤖 Prompt for AI Agents
In docs/docs/build/building-modules/06-keeper.md at line 21, the relative link
to the object-capabilities-based approach is incorrect because it includes an
extra 'docs/' segment, causing the path to resolve to docs/docs/docs/learn/....
Fix the link by removing the inserted 'docs/' so that the relative path starts
with '../../' only, ensuring it correctly points to the intended target.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 30, 2025

📝 Walkthrough

Walkthrough

This change set updates several documentation files to correct and standardize internal hyperlink references. The modifications include adjusting relative paths and updating URLs to versioned specifications or more accurate locations. No content, logic, or structure beyond the link targets was altered, and no code or public API changes were made.

Changes

Cohort / File(s) Change Summary
ADR Reference Link Correction
docs/architecture/adr-063-core-module-api.md
Corrected the hyperlink for ADR 057 in the References section to point to the correct file.
Object-Capabilities Model Link Updates
docs/docs/build/building-modules/00-intro.md, docs/docs/build/building-modules/06-keeper.md
Updated relative links for the "object-capabilities model" document to correct the path.
Versioned Cosmos SDK Spec Links
docs/docs/learn/advanced/02-context.md
Updated URLs for ABCI types VoteInfo and Consensus Params to use versioned v0.37 spec links instead of master branch.
Staking Event Example Link Update
docs/docs/learn/advanced/08-events.md
Changed the relative link to the x/staking event example for improved accuracy.
Node Configuration Reference Link Fixes
docs/docs/user/run-node/02-interact-node.md
Updated relative links to the app.toml configuration file in three sections for correct path resolution.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/docs/build/building-modules/06-keeper.md (1)

21-22: Same double “docs” issue as in 00-intro.

../../docs/learn/advanced/10-ocap.md likely overshoots by one level and will break the link.

Apply the same one-level-up correction:

-... (../../docs/learn/advanced/10-ocap.md) ...
+... (../../learn/advanced/10-ocap.md) ...
🧹 Nitpick comments (2)
docs/docs/user/run-node/02-interact-node.md (1)

69-70: Minor path redundancy – optional cleanup.

Going two levels up and then back into user/run-node/… is functionally correct but a bit verbose.
Using ../run-node/… keeps the link shorter and avoids extra directory traversal. No blocker, just a nit.

-...](../../user/run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)
+...](../run-node/01-run-node.md#configuring-the-node-using-apptoml-and-configtoml)

Also applies to: 271-272, 289-290

docs/docs/learn/advanced/08-events.md (1)

60-60: Verify new relative link – it likely climbs outside the docs site root

../../../../x/staking/README.md escapes the docs/docs root and points to a file that is not included in the built documentation tree.
On the rendered site this will 404 unless the build step copies the entire x/ directory (it currently does not).

Consider instead:

-| `create_validator.validator='cosmosval1...'`     | x/staking-specific Event, see [x/staking SPEC](../../../../x/staking/README.md). |
+| `create_validator.validator='cosmosval1...'`     | x/staking-specific Event, see [x/staking spec](https://github.com/cosmos/cosmos-sdk/blob/v0.53.0-rc.2/x/staking/README.md). |

(or adjust the relative path to stay within docs/docs, e.g. ../../../x/staking/README.md, after confirming it resolves).

Please test the link locally (npm run start with Docusaurus) or in the preview build before merging.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Knowledge Base: Disabled due to Reviews > Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between dbe8fd5 and 4e719e3.

📒 Files selected for processing (6)
  • docs/architecture/adr-063-core-module-api.md (1 hunks)
  • docs/docs/build/building-modules/00-intro.md (1 hunks)
  • docs/docs/build/building-modules/06-keeper.md (1 hunks)
  • docs/docs/learn/advanced/02-context.md (1 hunks)
  • docs/docs/learn/advanced/08-events.md (1 hunks)
  • docs/docs/user/run-node/02-interact-node.md (3 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/docs/learn/advanced/02-context.md

[style] ~36-~36: Consider a more concise word here.
Context: ...ees.md) price a node is willing to take in order to include a transaction in its block. Thi...

(IN_ORDER_TO_PREMIUM)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🔇 Additional comments (2)
docs/architecture/adr-063-core-module-api.md (1)

558-562: Correct link target – looks good.

The original link pointed at a non-existent “app-wiring-1” file; the new relative path resolves to the actual ADR 057 document.
No further action needed.

docs/docs/learn/advanced/02-context.md (1)

33-34: LGTM – updated to versioned CometBFT docs.

Switching from floating master links to v0.37-scoped URLs is a clear win for stability and reproducibility.

Also applies to: 37-38

Comment on lines +59 to 60
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK.
* **Capabilities**: Most modules need to read and/or write to the store(s) of other modules. However, in an open-source environment, it is possible for some modules to be malicious. That is why module developers need to carefully think not only about how their module interacts with other modules, but also about how to give access to the module's store(s). The Cosmos SDK takes a capabilities-oriented approach to inter-module security. This means that each store defined by a module is accessed by a `key`, which is held by the module's [`keeper`](./06-keeper.md). This `keeper` defines how to access the store(s) and under what conditions. Access to the module's store(s) is done by passing a reference to the module's `keeper`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Potentially incorrect relative link – double “docs” segment.

From docs/docs/build/building-modules/00-intro.md,
../../docs/learn/advanced/10-ocap.md resolves to docs/docs/docs/learn/advanced/10-ocap.md.
Unless a third docs directory really exists, this is likely an off-by-one path change that will 404 when rendered.

-... [object-capabilities model](../../docs/learn/advanced/10-ocap.md) ...
+... [object-capabilities model](../../learn/advanced/10-ocap.md) ...

🏁 Script executed:

#!/bin/bash
# Verify the target file actually exists where the new link expects it.
fd --full-path docs/docs/docs/learn/advanced/10-ocap.md && echo "⚠️ duplicated docs path" || echo "✅ path does not exist"
fd --full-path docs/docs/learn/advanced/10-ocap.md && echo "✅ correct location exists" || echo "⚠️ file missing at expected location"

Length of output: 264


Update the object-capabilities link to the correct relative path

The link currently points to ../../docs/learn/advanced/10-ocap.md, which resolves to docs/docs/docs/learn/... and doesn’t match the actual file location. The correct path from docs/docs/build/building-modules/00-intro.md is ../../learn/advanced/10-ocap.md.

  • File: docs/docs/build/building-modules/00-intro.md
    Lines: 59–60
- ... [object-capabilities model](../../docs/learn/advanced/10-ocap.md) ...
+ ... [object-capabilities model](../../learn/advanced/10-ocap.md) ...
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../docs/learn/advanced/10-ocap.md) of the Cosmos SDK.
* **Capabilities**: Most modules need to read and/or write to the store(s) of other modules. However, in an open-source environment, it is possible for some modules to be malicious. That is why module developers need to carefully think not only about how their module interacts with other modules, but also about how to give access to the module's store(s). The Cosmos SDK takes a capabilities-oriented approach to inter-module security. This means that each store defined by a module is accessed by a `key`, which is held by the module's [`keeper`](./06-keeper.md). This `keeper` defines how to access the store(s) and under what conditions. Access to the module's store(s) is done by passing a reference to the module's `keeper`.
* **Specialization**: A direct consequence of the **composability** feature is that modules should be **specialized**. Developers should carefully establish the scope of their module and not batch multiple functionalities into the same module. This separation of concerns enables modules to be re-used in other projects and improves the upgradability of the application. **Specialization** also plays an important role in the [object-capabilities model](../../learn/advanced/10-ocap.md) of the Cosmos SDK.
* **Capabilities**: Most modules need to read and/or write to the store(s) of other modules. However, in an open-source environment, it is possible for some modules to be malicious. That is why module developers need to carefully think not only about how their module interacts with other modules, but also about how to give access to the module's store(s). The Cosmos SDK takes a capabilities-oriented approach to inter-module security. This means that each store defined by a module is accessed by a `key`, which is held by the module's [`keeper`](./06-keeper.md). This `keeper` defines how to access the store(s) and under what conditions. Access to the module's store(s) is done by passing a reference to the module's `keeper`.
🧰 Tools
🪛 LanguageTool

[style] ~60-~60: Try using a synonym here to strengthen your writing.
Context: ...th other modules, but also about how to give access to the module's store(s). The Co...

(GIVE_PROVIDE)

🤖 Prompt for AI Agents
In docs/docs/build/building-modules/00-intro.md around lines 59 to 60, the
relative link to the object-capabilities model file is incorrect and resolves to
a wrong path. Update the link from ../../docs/learn/advanced/10-ocap.md to
../../learn/advanced/10-ocap.md to correctly point to the target file location.

@aljo242
Copy link
Contributor

aljo242 commented Jul 30, 2025

@sashaodessa conflicts

@sashaodessa
Copy link
Contributor Author

@sashaodessa conflicts

@aljo242 updated

@aljo242 aljo242 enabled auto-merge July 31, 2025 14:19
@aljo242 aljo242 added this pull request to the merge queue Jul 31, 2025
Merged via the queue into cosmos:main with commit 347f076 Jul 31, 2025
38 of 39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants