Skip to content

Conversation

@dizer-ti
Copy link
Contributor

@dizer-ti dizer-ti commented Aug 9, 2025

Description

Fix various typos, grammatical errors, and stylistic issues across
ADR (Architecture Decision Record) documents:

  • Fix grammar issues (subject-verb agreement, article usage)
  • Correct spelling mistakes and word choice
  • Improve sentence structure and readability
  • Fix formatting and punctuation errors
  • Standardize terminology and naming conventions
  • Remove redundant words and improve clarity

Summary by CodeRabbit

  • Documentation
    • Improved grammar, clarity, and consistency across multiple architecture documents.
    • Fixed minor typographical errors and refined phrasing for better readability.
    • Made small corrections to comments and formatting without altering any technical content or logic.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 9, 2025

📝 Walkthrough

Walkthrough

This set of changes consists solely of minor textual corrections and grammatical improvements across several architectural decision record (ADR) documentation files. No technical content, logic, code examples, or control flow are altered. All modifications are limited to enhancing clarity, fixing typographical errors, and improving readability in documentation comments and prose.

Changes

Cohort / File(s) Change Summary
ADR 031 Documentation Edits
docs/architecture/adr-031-msg-service.md
Grammar and clarity improvements, including comma placement and phrase corrections; no technical content changed.
ADR 032 Documentation Edits
docs/architecture/adr-032-typed-events.md
Minor correction in documentation phrasing for clarity; no code or logic changes.
ADR 033 Documentation Edits
docs/architecture/adr-033-protobuf-inter-module-comm.md
Typographical and grammatical fixes, variable reference correction in example, improved clarity; no logic changes.
ADR 034 Documentation Edits
docs/architecture/adr-034-account-rekeying.md
Typographical and grammatical corrections, improved phrasing; no changes to described functionality.
ADR 035 Documentation Edits
docs/architecture/adr-035-rosetta-api-support.md
Textual corrections, typo fixes, improved clarity in comments and prose; no architectural or functional changes.
ADR 036 Documentation Edits
docs/architecture/adr-036-arbitrary-signature.md
Grammatical and stylistic corrections, improved phrasing; no technical or specification changes.
ADR 037 Documentation Edits
docs/architecture/adr-037-gov-split-vote.md
Typographical corrections, improved phrasing and capitalization; no changes to logic or data structures.
ADR 038 Documentation Edits
docs/architecture/adr-038-state-listening.md
Typographical and formatting corrections in comments and documentation; no functional changes.
ADR 039 Documentation Edits
docs/architecture/adr-039-epoched-staking.md
Textual refinements, grammar and phrasing corrections for clarity; no changes to technical content.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Note

🔌 MCP (Model Context Protocol) integration is now available in Early Access!

Pro users can now connect to remote MCP servers under the Integrations page to get reviews and chat conversations that understand additional development context.

✨ 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.
  • 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.

Support

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

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: 0

🔭 Outside diff range comments (1)
docs/architecture/adr-033-protobuf-inter-module-comm.md (1)

147-152: Fix example: missing ctx and inconsistent receiver usage

  • bank.QueryClient methods require ctx as the first argument.
  • Use the receiver name consistently for moduleKey.

Apply the following diff to the snippet:

-  balance, err := foo.bankQuery.Balance(&bank.QueryBalanceRequest{Address: foo.moduleKey.Address(), Denom: "foo"})
+  balance, err := foo.bankQuery.Balance(ctx, &bank.QueryBalanceRequest{Address: foo.moduleKey.Address(), Denom: "foo"})

-  res, err := foo.bankMsg.Send(ctx, &bank.MsgSendRequest{FromAddress: fooMsgServer.moduleKey.Address(), ...})
+  res, err := foo.bankMsg.Send(ctx, &bank.MsgSendRequest{FromAddress: foo.moduleKey.Address(), ...})
🧹 Nitpick comments (19)
docs/architecture/adr-033-protobuf-inter-module-comm.md (1)

113-118: Use plural method name: GetSigners

In the Cosmos SDK, messages implement GetSigners() []sdk.AccAddress (plural). Consider updating “Msg.GetSigner” to “Msg.GetSigners” for accuracy.

docs/architecture/adr-035-rosetta-api-support.md (1)

39-41: Tighten phrasing for readability

Consider simplifying to: “We will achieve these principles by:” to remove repetition.

docs/architecture/adr-036-arbitrary-signature.md (6)

20-23: Tighten phrasing; remove redundancy and improve flow.

Recommend the following edits for clarity:

-Currently, in the Cosmos SDK, there is no convention to sign arbitrary messages like in Ethereum. We propose with this specification, for Cosmos SDK ecosystem, a way to sign and validate off-chain arbitrary messages.
+Currently, the Cosmos SDK has no convention for signing arbitrary messages (as in Ethereum). This specification proposes a way for the Cosmos SDK ecosystem to sign and validate arbitrary off-chain messages.
-
-This specification serves the purpose of covering every use case; this means that Cosmos SDK application developers decide how to serialize and represent `Data` to users.
+This specification aims to cover a wide range of use cases; application developers decide how to serialize and represent `Data` to users.

26-28: Fix grammar and complete the sentence.

Current text contains agreement errors and a sentence fragment. Suggested patch:

-Having the ability to sign messages off-chain has proven to be a fundamental aspect of nearly any blockchain. The notion of signing messages off-chain has many added benefits such as saving on computational costs and reducing transaction throughput and overhead. Within the context of the Cosmos, some of the major applications of signing such data include, but is not limited to, providing a cryptographic secure and verifiable means of proving validator identity and possibly associating it with some other framework or organization. In addition, having the ability to sign Cosmos messages with a Ledger or similar HSM device.
+Having the ability to sign messages off‑chain is fundamental to most blockchains. It offers benefits such as saving computational costs and reducing transaction throughput and overhead. In the Cosmos context, major applications include, but are not limited to, providing a cryptographically secure and verifiable means of proving validator identity and associating it with other frameworks or organizations. In addition, the ability to sign Cosmos messages with a Ledger or similar HSM device is desirable.

32-35: Minor style: infinitive form and modal usage.

-The aim is being able to sign arbitrary messages, even using Ledger or similar HSM devices.
+The aim is to enable signing arbitrary messages, including via Ledger or similar HSM devices.
-As a result, signed messages should look roughly like Cosmos SDK messages but **must not** be a valid on-chain transaction. `chain-id`, `account_number` and `sequence` can all be assigned invalid values.
+As a result, signed messages should resemble Cosmos SDK messages but **must not** be valid on-chain transactions. `chain-id`, `account_number`, and `sequence` may be assigned invalid values.

40-41: Consistency: off-chain hyphenation and singular “functionality.”

-To create the `offchain` proto definitions, we extend the auth module with `offchain` package to offer functionalities to verify and sign offline messages.
+To create the `offchain` proto definitions, we extend the auth module with an `offchain` package to offer functionality to verify and sign off‑chain messages.

54-57: Fix developer phrasing and object examples.

-`MsgSignData` allows developers to sign arbitrary bytes validatable offchain only. `Signer` is the account address of the signer. `Data` is arbitrary bytes which can represent `text`, `files`, `object`s. It's applications developers decision how `Data` should be deserialized, serialized and the object it can represent in their context.
-It's applications developers decision how `Data` should be treated, by treated we mean the serialization and deserialization process and the Object `Data` should represent.
+`MsgSignData` allows developers to sign arbitrary bytes that are verifiable off‑chain only. `Signer` is the account address of the signer. `Data` is arbitrary bytes that can represent text, files, or objects. It is up to application developers to decide how `Data` is serialized/deserialized and what object it represents in their context.
+It is up to application developers to decide how `Data` is handled, i.e., its serialization/deserialization process and the object `Data` should represent.

124-126: Formalize responsibility wording and tighten the sentence.

-* Regarding security in `MsgSignData`, the developer using `MsgSignData` is in charge of making the content contained in `Data` non-replayable when, and if, needed.
-* The offchain package will be further extended with extra messages that target specific use cases such as, but not limited to, authentication in applications, payment channels, L2 solutions in general.
+* Regarding security in `MsgSignData`, developers are responsible for ensuring the content contained in `Data` is non‑replayable, when needed.
+* The `offchain` package will be further extended with messages that target specific use cases such as, but not limited to, application authentication, payment channels, and general L2 solutions.
docs/architecture/adr-034-account-rekeying.md (2)

45-46: Replace informal “anyways” and streamline sentence.

-... we do not automatically prune any accounts anyways, but we would like to keep this option open down the road ...
+... we do not automatically prune any accounts anyway, but we would like to keep this option open down the road ...

64-67: Minor clarity in consequences bullet.

Consider tightening the first sentence and ensuring present tense consistency:

-Breaks the current assumed relationship between address and pubkey as H(pubkey) = address. This has a couple of consequences.
+This breaks the current assumed relationship between address and pubkey (H(pubkey) = address). This has several consequences:
docs/architecture/adr-038-state-listening.md (3)

10-10: Fix sub-list indentation to satisfy markdownlint (MD007).

Reduce indentation to two spaces for this sub-bullet to match the preceding items and typical markdownlint settings.

-    * Remove `HaltAppOnDeliveryError()`, the errors are propagated by default, the implementations should return nil if they don't want to propagate errors.
+  * Remove `HaltAppOnDeliveryError()`. Errors are propagated by default; implementations should return `nil` if they don't want to propagate errors.

If markdownlint is enforced, verify locally that MD007 is resolved after this change.


43-44: Good catch — “accumulates” is correct. Add article for completeness.

-// NewMemoryListener creates a listener that accumulates the state writes in memory.
+// NewMemoryListener creates a listener that accumulates state writes in memory.

228-229: Align comment with terminology used elsewhere.

-// ListenCommit updates the streaming service with the latest Commit messages and state changes
+// ListenCommit updates the streaming service with the latest Commit messages and state changes.
docs/architecture/adr-039-epoched-staking.md (6)

32-35: Consistent terminology and punctuation.

The updates read well. Consider adding a reference link formatting for “tendermint/spec#217” if available, e.g., full URL, to improve portability.


71-71: Smoother phrasing for the trade-off sentence.

-When choosing the epoch length, there is a trade-off between queued state/computation buildup, and countering the previously discussed limitations of immediate execution if they apply to a given chain.
+When choosing the epoch length, there is a trade‑off between queued state and computation build‑up and mitigating the previously discussed limitations of immediate execution (as applicable to a given chain).

82-85: Use “return” (avoid “return back”) and tighten sentences.

-* **MsgCreateValidator**: Move user's self-bond to `EpochDelegationPool` immediately. Queue a message for the epoch boundary to handle the self-bond, taking the funds from the `EpochDelegationPool`. If Epoch execution fails, return back funds from `EpochDelegationPool` to user's account.
+* **MsgCreateValidator**: Move the user's self‑bond to `EpochDelegationPool` immediately. Queue a message for the epoch boundary to handle the self‑bond, taking the funds from `EpochDelegationPool`. If epoch execution fails, return the funds from `EpochDelegationPool` to the user's account.
@@
-* **MsgDelegate**: Move user's funds to `EpochDelegationPool` immediately. Queue a message for the epoch boundary to handle the delegation, taking the funds from the `EpochDelegationPool`. If Epoch execution fails, return back funds from `EpochDelegationPool` to user's account.
+* **MsgDelegate**: Move the user's funds to `EpochDelegationPool` immediately. Queue a message for the epoch boundary to handle the delegation, taking the funds from `EpochDelegationPool`. If epoch execution fails, return the funds from `EpochDelegationPool` to the user's account.

92-92: Clarify apparent contradiction in slash queuing vs immediate effect.

The bullet says the slash event “gets queued ... to apply at the end of the epoch” and “should be set up such that this slash applies immediately.” Please clarify whether:

  • jailing applies immediately while weight reduction is applied at the epoch boundary, or
  • both jailing and weight updates are deferred.

If it is the former, suggest:

-* **Slash Event**: Whenever a slash event is created, it gets queued in the slashing module to apply at the end of the epoch. The queues should be set up such that this slash applies immediately.
+* **Slash Event**: Whenever a slash event is created, jailing is applied immediately, while the associated weight reduction is queued to apply at the end of the epoch.

104-104: Minor term: “hash map” vs “hashmap.”

-... by maintaining an auxiliary hashmap for indexing upcoming staking events by address)
+... by maintaining an auxiliary hash map for indexing upcoming staking events by address)

111-111: Slightly crisper phrasing.

-We leave it out of scope for how to weight future computation versus current computation in gas pricing, and have it set such that they are weighted equally for now.
+How to weight future versus current computation in gas pricing is out of scope; for now, treat them as weighted equally.
📜 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 bb1dcdc and 02c8d00.

📒 Files selected for processing (9)
  • docs/architecture/adr-031-msg-service.md (3 hunks)
  • docs/architecture/adr-032-typed-events.md (1 hunks)
  • docs/architecture/adr-033-protobuf-inter-module-comm.md (5 hunks)
  • docs/architecture/adr-034-account-rekeying.md (3 hunks)
  • docs/architecture/adr-035-rosetta-api-support.md (5 hunks)
  • docs/architecture/adr-036-arbitrary-signature.md (3 hunks)
  • docs/architecture/adr-037-gov-split-vote.md (2 hunks)
  • docs/architecture/adr-038-state-listening.md (5 hunks)
  • docs/architecture/adr-039-epoched-staking.md (4 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/architecture/adr-036-arbitrary-signature.md

[style] ~124-~124: Consider using more formal and concise wording here.
Context: ...ata, the developer using MsgSignDatais in charge of making the content contained inData` ...

(RESPONSIBLE_FOR)

docs/architecture/adr-034-account-rekeying.md

[style] ~46-~46: The word ‘anyways’ is informal American English. Did you mean “anyway”?
Context: ...do not automatically prune any accounts anyways, but we would like to keep this option ...

(ANYWAYS)

docs/architecture/adr-039-epoched-staking.md

[style] ~82-~82: Consider using just “return”.
Context: ...egationPool. If Epoch execution fails, return back funds from EpochDelegationPool` to use...

(RETURN_BACK)


[style] ~84-~84: Consider using just “return”.
Context: ...egationPool. If Epoch execution fails, return back funds from EpochDelegationPool` to use...

(RETURN_BACK)


[style] ~107-~107: ‘Merging together’ might be wordy. Consider a shorter alternative.
Context: ...transaction when its done immediately. (Merging together costs of p2p overhead, state access ove...

(EN_WORDINESS_PREMIUM_MERGING_TOGETHER)

🪛 markdownlint-cli2 (0.17.2)
docs/architecture/adr-038-state-listening.md

10-10: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


228-228: Hard tabs
Column: 1

(MD010, no-hard-tabs)

docs/architecture/adr-039-epoched-staking.md

29-29: Hard tabs
Column: 1

(MD010, no-hard-tabs)


30-30: Hard tabs
Column: 1

(MD010, no-hard-tabs)


31-31: Hard tabs
Column: 1

(MD010, no-hard-tabs)


32-32: Hard tabs
Column: 1

(MD010, no-hard-tabs)

⏰ 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 (23)
docs/architecture/adr-031-msg-service.md (5)

14-15: Grammar improvement LGTM

Clearer phrasing without affecting technical meaning.


19-21: Clarity improvement LGTM

Editorial cleanup; no change in substance.


108-110: Encoding section wording LGTM

Accurate and clearer wording for Any packing.


113-114: Decoding sentence LGTM

Correct subject-verb agreement and readability.


160-161: Method reference wording LGTM

“from the context.Context parameter” reads correctly now.

docs/architecture/adr-033-protobuf-inter-module-comm.md (4)

45-46: Word choice fix LGTM

“simply by calling” reads better; no technical change.


151-152: AI summary inconsistency: receiver field name not updated here

The AI summary mentions correcting fooMsgServer.moduleKey to foo.moduleKey, but this line still uses fooMsgServer.moduleKey. The diff above addresses it.

Likely an incorrect or invalid review comment.


273-281: Dependency declaration wording LGTM

Possessive “its” is correct; example remains clear.


333-335: Authorization sentence clarity LGTM

“authorize specific module accounts” reads correctly.

docs/architecture/adr-035-rosetta-api-support.md (5)

12-12: Changelog spacing/wording LGTM

Editorial; no technical change.


36-36: Wording simplification LGTM

Less redundancy in “release series” phrasing.


56-57: Section intro wording LGTM

Reads more naturally; content unchanged.


123-125: Comment label fix LGTM

“ByHeight” comment now matches method name.


193-193: Past participle correction LGTM

“spun in offline mode” is correct.

docs/architecture/adr-032-typed-events.md (1)

156-157: Grammar fix LGTM

The sentence now reads correctly and clearly.

docs/architecture/adr-037-gov-split-vote.md (3)

17-18: Singular “option” LGTM

Improves precision without changing meaning.


19-20: “Oftentimes” usage LGTM

Standardized form; clearer prose.


56-57: Lowercase “rates” LGTM

Consistent with sentence casing and style.

docs/architecture/adr-036-arbitrary-signature.md (1)

119-121: LGTM — clear articulation of current limitations.

The bullets accurately capture the constraints (fixed address–pubkey relationship; multisig unsupported).

docs/architecture/adr-034-account-rekeying.md (1)

17-20: LGTM — context is clearer and uses correct hyphenation.

Edits improve readability (cannot, three‑week, on‑chain). No further changes needed here.

docs/architecture/adr-038-state-listening.md (2)

117-129: Interface docstring alignment.

Wording aligns with the later use in rootmulti. LGTM.


723-724: Em dashes are a readability improvement; keep them.

The neutral bullet reads well with em dashes and matches house style. LGTM.

docs/architecture/adr-039-epoched-staking.md (1)

22-25: LGTM — clearer framing of the motivation and alternative design.

Edits improve precision (“simplest from an implementation perspective”, epoched guarantee). No additional changes needed.

@aljo242 aljo242 enabled auto-merge August 11, 2025 13:12
@aljo242 aljo242 added this pull request to the merge queue Aug 11, 2025
Merged via the queue into cosmos:main with commit 6433a0b Aug 11, 2025
40 of 41 checks passed
warpbuild-benchmark-bot bot added a commit to WarpBuilds/cosmos-sdk that referenced this pull request Aug 11, 2025
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