Skip to content

Add developer guide; remove usage-guide docs - #49

Merged
leynos merged 3 commits into
mainfrom
terragon/review-usage-guide-docs-vhbfo8
Dec 23, 2025
Merged

Add developer guide; remove usage-guide docs#49
leynos merged 3 commits into
mainfrom
terragon/review-usage-guide-docs-vhbfo8

Conversation

@leynos

@leynos leynos commented Dec 22, 2025

Copy link
Copy Markdown
Owner

Summary

  • Introduces a new Lading developer guide documenting internal APIs, testing patterns, and development workflows for contributors.
  • Removes the standalone usage guide to consolidate user-facing information in docs/users-guide.md and reduce duplication.

Changes

Added

  • docs/developers-guide.md: New comprehensive guide covering:
    • Development invocation: how to run the tool locally (e.g., uv run python -m lading.cli --help)
    • Testing hooks: end-to-end tests using cmd-mox, and LADING_USE_CMD_MOX_STUB environment variable guidance
    • Workspace discovery helpers: load_cargo_metadata and load_workspace, plus a description of the WorkspaceGraph model
    • Programmatic publish options: examples of PublishOptions (e.g., preserving symlinks, automatic cleanup)

Removed

  • docs/usage-guide.md: Removed user-oriented usage guide. Content has been migrated to docs/users-guide.md.

Rationale

  • Provide a clear separation between developer-oriented and user-oriented documentation.
  • Centralize internal APIs, testing patterns, and development workflows in a single guide while keeping the user guide focused on end-user workflows and configuration.

How to review

  • Scan docs/developers-guide.md to ensure its sections align with current codebase and tooling.
  • Confirm that user-facing content remains accessible via docs/users-guide.md.
  • Check for consistency in references and any cross-links.

Impact

  • Documentation-only change; no code changes.

🌿 Generated by Terry


ℹ️ Tag @terragon-labs to ask questions and address PR feedback

📎 Task: https://www.terragonlabs.com/task/9634e82a-6552-457f-ab0f-8899375b398d

Summary by Sourcery

Add a dedicated developer guide documenting Lading’s internal APIs and workflows while removing the deprecated standalone usage guide.

Documentation:

  • Introduce docs/developers-guide.md to describe internal APIs, testing patterns, workspace helpers, and programmatic publish options for contributors.
  • Remove docs/usage-guide.md now that user-facing content is consolidated in docs/users-guide.md.

• Add `docs/developers-guide.md` with detailed info on internal APIs, testing patterns, workspace helpers, and programmatic publish options.
• Remove `docs/usage-guide.md`, consolidating end-user CLI reference into users-guide.md as noted.

This reorganization improves documentation clarity by separating developer-focused content from user-facing guides.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Dec 22, 2025

Copy link
Copy Markdown

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Summary by CodeRabbit

  • Documentation
    • Added a Developer Guide to help contributors with development workflows, testing patterns, workspace discovery and programmatic publish options.
    • Removed the Usage Guide that previously described CLI usage, installation, subcommands and configuration details.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

Replace the user-facing usage guide with a developer-focused guide that documents CLI invocation, testing hooks, workspace discovery helpers, and programmatic publish options for contributors (≤50 words).

Changes

Cohort / File(s) Summary
New developer guide
docs/developers-guide.md
Add developer documentation: CLI invocation and help; cmd-mox testing hooks and LADING_USE_CMD_MOX_STUB; workspace discovery helpers (load_cargo_metadata, load_workspace) with error handling and manifest/readme behaviour; programmatic PublishOptions (preserve_symlinks, cleanup, staging overrides).
Removed usage guide
docs/usage-guide.md
Remove the user-facing usage guide that documented installation, CLI subcommands (bump, publish), global options, logging, configuration file usage, workspace discovery overview, and testing hooks.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

📚 Out with the old guide, in with the new,
Developers find their path made true,
Tests and workspaces, options in sight,
CLI and APIs now set aright,
Ship the docs and light the view!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarises the primary changes—adding a developer guide and removing the usage-guide documentation.
Description check ✅ Passed The description provides clear context for the changes, explaining the rationale, what was added and removed, and how to review the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch terragon/review-usage-guide-docs-vhbfo8

📜 Recent review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f738002 and 403f29d.

📒 Files selected for processing (1)
  • docs/developers-guide.md
🧰 Additional context used
📓 Path-based instructions (2)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

docs/**/*.md: Use the markdown files within the docs/ directory as a knowledge base and source of truth for project requirements, dependency choices, and architectural decisions.
Proactively update relevant files in the docs/ directory when new decisions are made, requirements change, libraries are added/removed, or architectural patterns evolve to keep documentation accurate and current.

docs/**/*.md: Use British English based on the Oxford English Dictionary (en-GB-oxendict) with suffixes: -ize in words like 'realize' and 'organization', -lyse in words like 'analyse' and 'paralyse', -our in words like 'colour' and 'behaviour', -re in words like 'centre' and 'calibre', double 'l' in words like 'cancelled' and 'counsellor', maintain 'e' in words like 'likeable', -ogue in words like 'catalogue'
Use the Oxford comma in documentation: 'ships, planes, and hovercraft' where it aids comprehension
Treat company names as collective nouns in documentation, for example 'Lille Industries are expanding'
Write headings in sentence case
Use Markdown headings (#, ##, ###, and so on) in order without skipping levels
Follow markdownlint recommendations for Markdown formatting
Always provide a language identifier for fenced code blocks; use 'plaintext' for non-code text
Use '-' as the first level bullet and renumber lists when items change in Markdown
Prefer inline links using text or angle brackets around the URL in Markdown
Ensure blank lines before and after bulleted lists and fenced blocks in Markdown
Ensure tables have a delimiter line below the header row in Markdown
Expand any uncommon acronym on first use, for example, Continuous Integration (CI)
Wrap paragraphs at 80 columns in documentation
Wrap code at 120 columns in documentation
Do not wrap tables in documentation
Use footnotes referenced with [^label] in Markdown documentation
Include Mermaid diagrams in documentation where they add clarity
When embedding figures in documentation, use ![alt text](path/to...

Files:

  • docs/developers-guide.md
**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

**/*.md: For Markdown files (.md only), ensure changes pass lint checks via make markdownlint.
For Markdown files (.md only), ensure Mermaid diagrams pass validation using nixie via make nixie.

Files:

  • docs/developers-guide.md

⚙️ CodeRabbit configuration file

**/*.md: * Avoid 2nd person or 1st person pronouns ("I", "you", "we")

  • Use en-GB-oxendict (-ize / -yse / -our) spelling and grammar
  • Headings must not be wrapped.
  • Documents must start with a level 1 heading
  • Headings must correctly increase or decrease by no more than one level at a time
  • Use GitHub-flavoured Markdown style for footnotes and endnotes.
  • Numbered footnotes must be numbered by order of appearance in the document.

Files:

  • docs/developers-guide.md
🔍 Remote MCP Deepwiki

Additional context relevant to PR #49 (add developers-guide.md; remove usage-guide.md)

  • Repository docs/wiki includes a Development Guide and pages that document the exact internals referenced by the PR (workspace discovery, bump/publish behavior, testing hooks, cmd-mox, PublishOptions, load_cargo_metadata, load_workspace, WorkspaceGraph, CargoMetadataError). These pages exist under "Development Guide" / "Workspace Discovery" / "Publish Command" etc.,

  • cmd-mox testing hook and env vars are implemented and documented:

    • Production code routes external commands via plumbum; when LADING_USE_CMD_MOX_STUB is truthy it routes requests to cmd-mox IPC and requires CMOX_IPC_SOCKET. The code normalizes cargo subcommands into namespaced tokens (e.g., cargo::check) for stubbing. Relevant implementation & usage docs/tests present.
  • Internal API names and behaviors referenced in the new developer guide are present in code/docs:

    • load_cargo_metadata / load_workspace: execute cargo metadata --format-version 1, parse JSON, build WorkspaceGraph and WorkspaceCrate entries (including readme.workspace detection via tomlkit). Errors raise CargoMetadataError variants.
    • WorkspaceGraph / WorkspaceCrate / WorkspaceDependency: immutable model, topological sort, manifest_name vs name handling for aliased deps.
    • PublishOptions fields (preserve_symlinks, cleanup, build_directory, command_runner, allow_dirty) and their semantics (default preserve_symlinks=True, cleanup registers atexit handler, command_runner for test injection).
    • Preflight checks: git status, cargo check, cargo test; preflight options (test_exclude, unit_tests_only) and how arguments are composed.
    • Bump behavior: _WORKSPACE_SELECTORS, dependency requirement preservation, TOML fence rewriting in docs via markdown-it-py + tomlkit.
  • docs/usage-guide.md content appears to already be present in the repository docs/wiki (Installation and Quick Start, Command Reference, Configuration Guide). The PR's claim to migrate user-facing content to docs/users-guide.md should be verified by checking that those user-facing topics still exist under docs/users-guide.md or equivalent (wiki shows usage-guide material exists). Reviewer action: confirm PR moved/renamed usage-guide.md content and that no user-facing content was inadvertently deleted.

Concrete reviewer checklist derived from gathered context

  • Verify new docs/developers-guide.md accurately reflect:

    • load_cargo_metadata / load_workspace behavior and error types (CargoMetadataError family).
    • WorkspaceGraph model fields and manifest readme.workspace detection (tomlkit usage).
    • PublishOptions fields and defaults (preserve_symlinks=True, cleanup behavior, command_runner injection).
    • Preflight checks flow (git status, cargo check/test) and env var cmd-mox behavior (LADING_USE_CMD_MOX_STUB, CMOX_IPC_SOCKET).
    • Bump doc rewriting behavior (markdown TOML fences, operator preservation).
  • Confirm docs/usage-guide.md removal did not lose user-facing content:

    • Ensure docs/users-guide.md (or equivalent) contains the user-facing invocation, install, and command examples present in previous usage-guide (uv run, console script, options, examples). If not present, request the PR author to restore/move those sections.
  • Confirm cross-links and references:

    • Any references in developers-guide.md to code symbols (function/class names, env vars) match exact names used in code/docs (as listed above).

Sources

  • Deepwiki_read_wiki_structure (leynos/lading) — page list and presence of Development Guide / Command Reference / Workspace Discovery.
  • Deepwiki_read_wiki_contents (leynos/lading) — detailed pages covering CLI, configuration, workspace model, bump/publish command internals, preflight checks, cmd-mox testing hooks, and PublishOptions.
⏰ Context from checks skipped due to timeout of 120000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Sourcery review
🔇 Additional comments (1)
docs/developers-guide.md (1)

1-97: Approve changes.

The file meets all coding guidelines and documentation standards. Cross-linked references to docs/users-guide.md and docs/cmd-mox-usage-guide.md are correctly positioned and resolve to existing files. Formatting, spelling, and structural requirements are satisfied throughout.


Comment @coderabbitai help to get the list of available commands and usage tips.

@sourcery-ai

sourcery-ai Bot commented Dec 22, 2025

Copy link
Copy Markdown

Reviewer's Guide

Adds a new developer-focused documentation guide for internal APIs and workflows, and removes the deprecated usage guide in favor of the consolidated users guide, with no code changes.

Flow diagram for updated documentation structure

flowchart TD
  A["Repository_docs_directory"] --> B["users_guide_md
(user oriented CLI and config guide)"]
  A --> C["developers_guide_md
(contributor oriented internal APIs and workflows)"]
  B --> D["End_users
(run CLI, configure lading_toml)"]
  C --> E["Contributors
(development invocation, testing hooks, workspace helpers, publish options)"]
  F["usage_guide_md
(removed, content migrated)"] -.removed.-> B
Loading

File-Level Changes

Change Details Files
Introduce a developer guide documenting internal APIs, testing patterns, and development workflows.
  • Create docs/developers-guide.md as the central reference for contributor-focused documentation.
  • Describe how to invoke the CLI implementation module directly via uv and python -m.
  • Document testing patterns using cmd-mox and LADING_USE_CMD_MOX_STUB for e2e behavioural tests.
  • Explain workspace discovery helpers load_cargo_metadata and load_workspace, including error handling and WorkspaceGraph details.
  • Outline programmatic publish options via PublishOptions when calling prepare_workspace.
docs/developers-guide.md
Remove the legacy usage guide now that content has been consolidated into the users guide.
  • Delete docs/usage-guide.md from the documentation set.
  • Rely on docs/users-guide.md as the single source for user-facing usage documentation.
docs/usage-guide.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@leynos
leynos marked this pull request as ready for review December 23, 2025 04:00

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hey - I've found 2 issues, and left some high level feedback:

  • Consider turning references like docs/users-guide.md and cmd-mox-usage-guide.md into explicit Markdown links so contributors can navigate between guides directly from the rendered docs.
  • In the PublishOptions section, it might help to briefly note the default values for preserve_symlinks and cleanup so readers understand how the examples differ from the standard behavior.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Consider turning references like `docs/users-guide.md` and `cmd-mox-usage-guide.md` into explicit Markdown links so contributors can navigate between guides directly from the rendered docs.
- In the `PublishOptions` section, it might help to briefly note the default values for `preserve_symlinks` and `cleanup` so readers understand how the examples differ from the standard behavior.

## Individual Comments

### Comment 1
<location> `docs/developers-guide.md:9` </location>
<code_context>
+
+## Development invocation
+
+The console script resolves to `lading.cli.main`. During development you can
+invoke the implementation module directly:
+
</code_context>

<issue_to_address>
**issue (review_instructions):** The sentence uses the second-person pronoun "you", which the guidelines prohibit.

Rephrase to avoid second-person narration, for example "During development, the implementation module can be invoked directly".

<details>
<summary>Review instructions:</summary>

**Path patterns:** `**/*.md`

**Instructions:**
Avoid 2nd person or 1st person pronouns ("I", "you", "we").

</details>
</issue_to_address>

### Comment 2
<location> `docs/developers-guide.md:21` </location>
<code_context>
+Behavioural tests invoke the CLI as an external process and spy on the `python`
+executable with [`cmd-mox`](./cmd-mox-usage-guide.md). Setting
+`LADING_USE_CMD_MOX_STUB` to a truthy value such as `1` or `true` forces
+publish pre-flight checks to proxy through the cmd-mox IPC server so that the
+suite can assert on `cargo::<subcommand>` invocations without launching real
+tools. This pattern keeps the tests faithful to real user interactions while
</code_context>

<issue_to_address>
**issue (review_instructions):** "IPC" is introduced without expanding the acronym on first use.

Please expand IPC on first mention, for example "inter-process communication (IPC) server".

<details>
<summary>Review instructions:</summary>

**Path patterns:** `**/*.md`

**Instructions:**
Define uncommon acronyms on first use.

</details>
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment thread docs/developers-guide.md Outdated
Comment thread docs/developers-guide.md Outdated
- Updated link to user guide with relative path and markdown format.
- Reworded sentences for better readability and correctness.
- Expanded IPC abbreviation for clarity.
- Clarified defaults and options in `PublishOptions` usage section.
- General cleanup and formatting improvements in documentation.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 6

📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1ef7e3b and 5c4b151.

📒 Files selected for processing (2)
  • docs/developers-guide.md
  • docs/usage-guide.md
💤 Files with no reviewable changes (1)
  • docs/usage-guide.md
🧰 Additional context used
📓 Path-based instructions (2)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

docs/**/*.md: Use the markdown files within the docs/ directory as a knowledge base and source of truth for project requirements, dependency choices, and architectural decisions.
Proactively update relevant files in the docs/ directory when new decisions are made, requirements change, libraries are added/removed, or architectural patterns evolve to keep documentation accurate and current.

docs/**/*.md: Use British English based on the Oxford English Dictionary (en-GB-oxendict) with suffixes: -ize in words like 'realize' and 'organization', -lyse in words like 'analyse' and 'paralyse', -our in words like 'colour' and 'behaviour', -re in words like 'centre' and 'calibre', double 'l' in words like 'cancelled' and 'counsellor', maintain 'e' in words like 'likeable', -ogue in words like 'catalogue'
Use the Oxford comma in documentation: 'ships, planes, and hovercraft' where it aids comprehension
Treat company names as collective nouns in documentation, for example 'Lille Industries are expanding'
Write headings in sentence case
Use Markdown headings (#, ##, ###, and so on) in order without skipping levels
Follow markdownlint recommendations for Markdown formatting
Always provide a language identifier for fenced code blocks; use 'plaintext' for non-code text
Use '-' as the first level bullet and renumber lists when items change in Markdown
Prefer inline links using text or angle brackets around the URL in Markdown
Ensure blank lines before and after bulleted lists and fenced blocks in Markdown
Ensure tables have a delimiter line below the header row in Markdown
Expand any uncommon acronym on first use, for example, Continuous Integration (CI)
Wrap paragraphs at 80 columns in documentation
Wrap code at 120 columns in documentation
Do not wrap tables in documentation
Use footnotes referenced with [^label] in Markdown documentation
Include Mermaid diagrams in documentation where they add clarity
When embedding figures in documentation, use ![alt text](path/to...

Files:

  • docs/developers-guide.md
**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

**/*.md: For Markdown files (.md only), ensure changes pass lint checks via make markdownlint.
For Markdown files (.md only), ensure Mermaid diagrams pass validation using nixie via make nixie.

Files:

  • docs/developers-guide.md

⚙️ CodeRabbit configuration file

**/*.md: * Avoid 2nd person or 1st person pronouns ("I", "you", "we")

  • Use en-GB-oxendict (-ize / -yse / -our) spelling and grammar
  • Headings must not be wrapped.
  • Documents must start with a level 1 heading
  • Headings must correctly increase or decrease by no more than one level at a time
  • Use GitHub-flavoured Markdown style for footnotes and endnotes.
  • Numbered footnotes must be numbered by order of appearance in the document.

Files:

  • docs/developers-guide.md
🪛 LanguageTool
docs/developers-guide.md

[uncategorized] ~9-~9: A comma is probably missing here.
Context: ...t resolves to lading.cli.main. During development you can invoke the implementation modul...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


[uncategorized] ~20-~20: Possible missing preposition found.
Context: ...uthy value such as 1 or true forces publish pre-flight checks to proxy through the ...

(AI_HYDRA_LEO_MISSING_TO)


[style] ~47-~47: Would you like to use the Oxford spelling “normalizes”? The spelling ‘normalises’ is also correct.
Context: ...data["workspace_root"]) ``` The helper normalises the workspace path, invokes `cargo meta...

(OXFORD_SPELLING_Z_NOT_S)


[uncategorized] ~50-~50: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...etadataError` with a descriptive message so callers can present actionable feedback...

(COMMA_COMPOUND_SENTENCE_2)


[style] ~75-~75: Would you like to use the Oxford spelling “customize”? The spelling ‘customise’ is also correct.
Context: ...orkspaceprogrammatically, callers can customise behaviour viaPublishOptions: - Pub...

(OXFORD_SPELLING_Z_NOT_S)

🔍 Remote MCP

The repository isn't indexed in Deepwiki yet. Let me try a web search to verify the technical details mentioned in the PR and gather relevant context about the project.Based on the search results, I can see that the web searches returned information about Elixir's Mox (a mocking library) and general Rust workspace/Cargo knowledge, but not specific information about the "lading" project itself. The searches indicate the project isn't readily discoverable via web or Deepwiki. Let me provide a summary of what I can verify from the PR context and note what would need verification:

Summary of PR Context Review

Key Information Found

Rust Workspace & Publishing Context:
The cargo_metadata crate provides a Rust API for reading metadata, which aligns with the PR's mention of load_cargo_metadata. The cargo metadata command provides information about workspace members and resolved dependencies in JSON format, useful for developers who need to programmatically access metadata about their Rust projects. This validates the technical relevance of documenting workspace discovery helpers.

Rust 1.90 brings support for a new command, cargo publish --workspace, that will automatically publish all of the crates in a workspace in the proper order, which provides context for the programmatic publish options mentioned in the developer guide.

Unverified Claims Requiring Attention

The following technical details from the PR cannot be verified via available resources:

  1. cmd-mox testing framework - Web searches returned results for Elixir's "Mox" mocking library, not a Rust tool called "cmd-mox". This tool needs verification that it exists and is actually used in the lading project.

  2. LADING_USE_CMD_MOX_STUB environment variable - No results found. Requires verification this is an actual environment variable used in the project.

  3. Internal API functions - Functions like load_cargo_metadata, load_workspace, WorkspaceGraph, and PublishOptions are claimed to be internal APIs but cannot be verified without access to the actual codebase.

  4. Documentation migration - The claim that usage guide content was migrated to docs/users-guide.md cannot be verified without repository access.

Recommendations for Review

Critical verifications needed:

  • Confirm that cmd-mox is the correct tool name (not a typo or misremembering of another testing framework)
  • Verify all internal API names are accurate and currently match the codebase
  • Confirm that docs/users-guide.md exists and contains the migrated content from docs/usage-guide.md
  • Check that documentation examples (e.g., uv run python -m lading.cli --help) reflect the actual current CLI invocation method

Review effort: The AI summary suggests "Low" estimated code review effort due to documentation-only changes, which is appropriate. However, technical accuracy verification requires examining the actual codebase since the specific APIs and tools mentioned are not discoverable through public documentation.

⏰ Context from checks skipped due to timeout of 120000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Sourcery review
🔇 Additional comments (2)
docs/developers-guide.md (2)

18-19: Wrap lines and verify referenced file.

Line 18 exceeds 80 columns (81 characters). Additionally, confirm that ./cmd-mox-usage-guide.md exists in the repository before merging.


5-5: Verify that docs/users-guide.md exists.

Line 5 references docs/users-guide.md as the location for end-user CLI reference and configuration guide. Confirm this file exists in the repository and contains migrated user-facing documentation from the removed docs/usage-guide.md.

Comment thread docs/developers-guide.md Outdated
Comment thread docs/developers-guide.md Outdated
Comment thread docs/developers-guide.md
Comment thread docs/developers-guide.md Outdated
Comment thread docs/developers-guide.md Outdated
Comment thread docs/developers-guide.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 (5)
docs/developers-guide.md (5)

3-5: Reflow paragraph to respect 80-column wrap limit.

Lines 3–4 exceed the 80-column boundary (82 and 81 characters respectively). Restructure the introduction as:

This guide documents internal APIs, testing patterns, and development
workflows for contributors to lading. For the end-user CLI reference and
lading.toml configuration, see the user guide.

Update the link format to match.

Proposed fix
-This guide documents internal APIs, testing patterns, and development workflows
-for contributors to `lading`. For the end-user CLI reference and `lading.toml`
-configuration, see the [user guide](./users-guide.md).
+This guide documents internal APIs, testing patterns, and development
+workflows for contributors to `lading`. For the end-user CLI reference and
+`lading.toml` configuration, see the [user guide](./users-guide.md).

48-48: Use Oxford English spelling for -ize suffix.

Replace "normalises" with "normalizes" per the en-GB-oxendict spelling guideline.

Proposed fix
-The helper normalises the workspace path, invokes
+The helper normalizes the workspace path, invokes

50-51: Add comma before coordinating conjunction in compound sentence.

Insert a comma before "so" to clarify the compound sentence joining two independent clauses:

Proposed fix
-Any execution errors or invalid output raise `CargoMetadataError` with a
-descriptive message so callers can present actionable feedback to users.
+Any execution errors or invalid output raise `CargoMetadataError` with a
+descriptive message, so callers can present actionable feedback to users.

20-22: Fix passive construction grammar.

Line 20 uses an incomplete passive construction. Change "forces publish pre-flight checks to proxy through the cmd-mox inter-process communication (IPC) server" to "forces publish pre-flight checks to be proxied through the cmd-mox inter-process communication (IPC) server" so the sentence reads naturally.

Proposed fix
-`LADING_USE_CMD_MOX_STUB` to a truthy value such as `1` or `true` forces
-publish pre-flight checks to proxy through the cmd-mox inter-process
-communication (IPC) server so that the
+`LADING_USE_CMD_MOX_STUB` to a truthy value such as `1` or `true` forces
+publish pre-flight checks to be proxied through the cmd-mox inter-process
+communication (IPC) server so that the

76-76: Use Oxford English spelling for -ize suffix.

Replace "customise" with "customize" per the en-GB-oxendict spelling guideline.

Proposed fix
-When invoking `lading.commands.publish.prepare_workspace` programmatically,
-callers can customise behaviour via `PublishOptions`. The defaults are
+When invoking `lading.commands.publish.prepare_workspace` programmatically,
+callers can customize behaviour via `PublishOptions`. The defaults are
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5c4b151 and f738002.

📒 Files selected for processing (1)
  • docs/developers-guide.md
🧰 Additional context used
📓 Path-based instructions (2)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

docs/**/*.md: Use the markdown files within the docs/ directory as a knowledge base and source of truth for project requirements, dependency choices, and architectural decisions.
Proactively update relevant files in the docs/ directory when new decisions are made, requirements change, libraries are added/removed, or architectural patterns evolve to keep documentation accurate and current.

docs/**/*.md: Use British English based on the Oxford English Dictionary (en-GB-oxendict) with suffixes: -ize in words like 'realize' and 'organization', -lyse in words like 'analyse' and 'paralyse', -our in words like 'colour' and 'behaviour', -re in words like 'centre' and 'calibre', double 'l' in words like 'cancelled' and 'counsellor', maintain 'e' in words like 'likeable', -ogue in words like 'catalogue'
Use the Oxford comma in documentation: 'ships, planes, and hovercraft' where it aids comprehension
Treat company names as collective nouns in documentation, for example 'Lille Industries are expanding'
Write headings in sentence case
Use Markdown headings (#, ##, ###, and so on) in order without skipping levels
Follow markdownlint recommendations for Markdown formatting
Always provide a language identifier for fenced code blocks; use 'plaintext' for non-code text
Use '-' as the first level bullet and renumber lists when items change in Markdown
Prefer inline links using text or angle brackets around the URL in Markdown
Ensure blank lines before and after bulleted lists and fenced blocks in Markdown
Ensure tables have a delimiter line below the header row in Markdown
Expand any uncommon acronym on first use, for example, Continuous Integration (CI)
Wrap paragraphs at 80 columns in documentation
Wrap code at 120 columns in documentation
Do not wrap tables in documentation
Use footnotes referenced with [^label] in Markdown documentation
Include Mermaid diagrams in documentation where they add clarity
When embedding figures in documentation, use ![alt text](path/to...

Files:

  • docs/developers-guide.md
**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

**/*.md: For Markdown files (.md only), ensure changes pass lint checks via make markdownlint.
For Markdown files (.md only), ensure Mermaid diagrams pass validation using nixie via make nixie.

Files:

  • docs/developers-guide.md

⚙️ CodeRabbit configuration file

**/*.md: * Avoid 2nd person or 1st person pronouns ("I", "you", "we")

  • Use en-GB-oxendict (-ize / -yse / -our) spelling and grammar
  • Headings must not be wrapped.
  • Documents must start with a level 1 heading
  • Headings must correctly increase or decrease by no more than one level at a time
  • Use GitHub-flavoured Markdown style for footnotes and endnotes.
  • Numbered footnotes must be numbered by order of appearance in the document.

Files:

  • docs/developers-guide.md
🪛 LanguageTool
docs/developers-guide.md

[uncategorized] ~20-~20: Possible missing preposition found.
Context: ...uthy value such as 1 or true forces publish pre-flight checks to proxy through the ...

(AI_HYDRA_LEO_MISSING_TO)


[style] ~48-~48: Would you like to use the Oxford spelling “normalizes”? The spelling ‘normalises’ is also correct.
Context: ...data["workspace_root"]) ``` The helper normalises the workspace path, invokes `cargo meta...

(OXFORD_SPELLING_Z_NOT_S)


[uncategorized] ~51-~51: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...etadataError` with a descriptive message so callers can present actionable feedback...

(COMMA_COMPOUND_SENTENCE_2)


[style] ~76-~76: Would you like to use the Oxford spelling “customize”? The spelling ‘customise’ is also correct.
Context: ...orkspaceprogrammatically, callers can customise behaviour viaPublishOptions`. The def...

(OXFORD_SPELLING_Z_NOT_S)

🔍 Remote MCP Deepwiki

Summary of additional repository context relevant to this PR review

  • Repository docs/wiki exists and documents the exact internals referenced by the PR: workspace discovery, bump/publish command behavior, testing hooks, and developer workflows. (Pages present: Overview, Development Guide, Command Reference, bump, publish, Preflight Checks, Publication Planning, Workspace Staging, Configuration Guide, Development Guide, etc.),

  • cmd-mox testing hook and env var are present and documented:

    • The test harness supports an IPC-based subprocess stub called cmd-mox; production code switches to the stub when LADING_USE_CMD_MOX_STUB is set; CMOX_IPC_SOCKET must be provided for IPC. (Used by preflight/cargo invocations and workspace metadata invocation.)
  • Internal API names referenced in the PR exist and match the docs:

    • load_cargo_metadata / load_workspace / WorkspaceGraph model / CargoMetadataError are documented in workspace discovery and models pages.
    • PublishOptions and its fields (preserve_symlinks, cleanup, build_directory, command_runner, allow_dirty) are documented in the publish command page.
    • BumpOptions, bump behavior, and documentation-fence rewriting logic are documented in the bump command page.
  • CLI invocation examples cited in the PR (uv run python -m lading.cli --help or uv run lading --help) match the documented CLI usage and entry point (console script lading → lading.cli:main).

  • docs/usage-guide.md content (user-facing) is present in the repo's docs pages; the wiki indicates the same content and that it is used by CLI docs/quickstart — ensure the PR migration moved/renamed usage-guide → users-guide as claimed. The wiki references docs/usage-guide.md in multiple places.

Concrete reviewer action items (based on above findings)

  • Verify the PR actually adds docs/developers-guide.md matching the documented internal APIs (load_cargo_metadata, load_workspace, WorkspaceGraph, PublishOptions, cmd-mox usage) — names and behaviors in the new doc should match code and the documentation already present in the repository.
  • Confirm LADING_USE_CMD_MOX_STUB and CMOX_IPC_SOCKET are documented consistently (exists in preflight/workspace metadata docs) and that examples in developers-guide.md match the repository's cmd-mox integration.
  • Confirm user-facing content removed from docs/usage-guide.md is present in docs/users-guide.md (PR claims migration); the repository wiki shows usage-guide content — ensure no user docs were lost.

Tools/sources used

  • Deepwiki_read_wiki_structure (leynos/lading) — confirmed available wiki pages.
  • Deepwiki_read_wiki_contents (leynos/lading) — retrieved page contents documenting the exact APIs, env vars, CLI, testing hooks, and options described above.
⏰ Context from checks skipped due to timeout of 120000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Sourcery review
🔇 Additional comments (1)
docs/developers-guide.md (1)

19-19: Cross-reference to ./cmd-mox-usage-guide.md is valid; the file exists in the repository.

Comment thread docs/developers-guide.md
Extended the programmatic publish options section with detailed
explanations of PublishOptions parameters including allow_dirty, live,
build_directory, preserve_symlinks, and cleanup. Added security notes
and usage examples for better clarity.

Co-authored-by: terragon-labs[bot] <terragon-labs[bot]@users.noreply.github.com>
@leynos
leynos merged commit 76266d2 into main Dec 23, 2025
4 checks passed
@leynos
leynos deleted the terragon/review-usage-guide-docs-vhbfo8 branch December 23, 2025 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant