Skip to content

Add Roughdraft markdown review handoff - #4450

Closed
austinywang wants to merge 19 commits into
mainfrom
feat-roughdraft-md-integration
Closed

austinywang wants to merge 19 commits into
mainfrom
feat-roughdraft-md-integration

Conversation

@austinywang

@austinywang austinywang commented May 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds a cmux roughdraft open <path> CLI handoff for Roughdraft, a local-first Markdown review app for commenting, suggesting edits, and collaborating with coding agents.

Research

  • Read roughdraft.md, /docs, /api, /download, /signup, robots.txt, sitemap.xml, and the Vite bundle. The static routes all serve the same sparse React app, but the bundle exposes /setup.md, /spec/roughdraft-flavored-markdown.md, local /api/markdown-file and /api/review-events paths, and https://github.com/Lex-Inc/roughdraft.
  • Read https://roughdraft.md/setup.md, the Roughdraft README, CLI docs, and server source. Roughdraft has a published npm CLI (roughdraft@0.1.8) with roughdraft open <path> --print-url --no-watch, a local server on localhost, direct file-backed Markdown editing, CriticMarkup review state, watch, and experimental MCP support.
  • Searched public web, npm, Homebrew, and GitHub. The npm package and public GitHub repo are real; no Homebrew formula/cask was found.
  • Reviewed related cmux work: existing markdown surfaces and CLI (cmux markdown), PR Add markdown surfaces to workspace layouts #3581 for markdown surface layouts, and PR feat: add note surface type with cmux note CLI #4332 for note surfaces. This PR avoids duplicating those surface/editor efforts and builds on the existing browser-pane placement path.

Chosen integration

Picked the smallest useful integration that works today without a Roughdraft account or hosted API: ask the installed Roughdraft CLI for a local document URL without opening an external browser, then open that URL inside a cmux browser pane.

This keeps Roughdraft as the source of truth for review semantics and uses cmux only for workspace placement.

User-facing surface area

  • New command: cmux roughdraft open <path>.
  • Shorthand: cmux roughdraft <path>.
  • Options: --workspace, --surface, --window, --focus.
  • Output: plain text summary with created surface/pane/path/url, or JSON via global --json.
  • No new keyboard shortcut, setting, or native panel type.

Manual verification after HQ dev build launches

  1. Confirm Roughdraft is installed or install it explicitly: npm i -g roughdraft.
  2. In a cmux terminal, create or pick a Markdown file, for example README.md.
  3. Run cmux roughdraft open README.md --focus true.
  4. Verify a cmux browser pane opens to a localhost Roughdraft URL for that file, not the default external browser.
  5. Add a Roughdraft comment or suggested edit, save/done in Roughdraft, and verify the Markdown file on disk contains Roughdraft/CriticMarkup review markup.
  6. Run cmux roughdraft --help and verify the command help documents the Roughdraft handoff.

Verification

  • Source-level sanity only: git diff --check.
  • Did not run local tests, xcodebuild, or ./scripts/reload.sh per task instructions.

View with Codesmith Autofix with Codesmith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.


Note

Medium Risk
Spawns an external CLI and loads its returned URL in an embedded browser pane; failures are contained with validation and sanitized errors, but depend on third-party tooling being installed and responsive.

Overview
Adds cmux roughdraft to open a local Markdown file in a Roughdraft review UI inside a cmux browser split, instead of using the built-in markdown viewer.

The CLI runs roughdraft open <path> --print-url --no-watch (30s timeout), accepts only an http/https document URL from stdout, then calls browser.open_split with optional --workspace, --surface, --window, and --focus (default workspace from $CMUX_WORKSPACE_ID when no window is set). Shorthand cmux roughdraft <path> is supported; success output is plain text or --json.

runProcess now surfaces timedOut so Roughdraft failures can distinguish timeouts from non-zero exits without leaking subprocess output. User-facing errors are localized and sanitized (status code only on failure). Help, top-level command list, docs/cli-contract.md, and a test with a fake roughdraft on PATH verify no socket traffic when the external CLI fails.

Reviewed by Cursor Bugbot for commit 4703cf2. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Adds a CLI handoff to open local Markdown files in Roughdraft inside a cmux browser split by calling the roughdraft CLI to fetch a document URL. Validates http/https URLs, bypasses the remote proxy for Roughdraft URLs, and opens in-app with localized help and sanitized errors.

  • New Features

    • Command: cmux roughdraft open <path>; shorthand cmux roughdraft <path>; plain text or --json output.
    • Placement flags: --workspace, --surface, --window, --focus; defaults to $CMUX_WORKSPACE_ID when --window isn’t set. 30s CLI timeout; accepts only valid http/https URLs. Localized cmux roughdraft --help; top-level command list and docs/cli-contract.md updated.
  • Bug Fixes

    • Always sets bypass_remote_proxy: true for Roughdraft URLs; test covers the proxy bypass.
    • Preserves process timeout state to distinguish timeouts vs non-zero exits; does not leak subprocess output. Localized errors for unknown subcommand/flags, unexpected args, missing path, and no-URL; tests cover sanitized failure output.

Written for commit b7bd864. Summary will update on new commits.

Review in cubic

Summary by CodeRabbit

  • New Features

    • Added a top-level roughdraft CLI command to open a Markdown file in a Roughdraft browser pane, including shorthand and open forms with --workspace, --surface, --window, and --focus options, returning either JSON or a formatted success message.
  • Bug Fixes

    • Improved error handling for failed/timeout document URL resolution when invoking the external Roughdraft CLI.
  • Documentation

    • Updated CLI command docs and help/probe text for roughdraft, including detailed usage examples.
  • Localization

    • Added localized strings for roughdraft usage, success output, and error states.
  • Tests

    • Added coverage for sanitized roughdraft open failure output, plus support for environment overrides in CLI test runs.

@vercel

vercel Bot commented May 20, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Jun 14, 2026 11:08pm
cmux-staging Building Building Preview, Comment Jun 14, 2026 11:08pm

@coderabbitai

coderabbitai Bot commented May 20, 2026 •

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a top-level roughdraft CLI command that shells out to the external Roughdraft CLI to obtain a document URL and opens it in a cmux browser pane via a browser.open_split RPC; updates help/docs/localizations and adds a failure-sanitization test. runProcess now reports timeouts.

Changes

Roughdraft command support

Layer / File(s) Summary
Command routing and implementation
CLI/cmux.swift
Dispatcher adds roughdraft case and implements runRoughdraftCommand: parses --workspace, --window, --surface, --focus; validates open or shorthand path; resolves path; calls roughdraftDocumentURL(for:) to run external roughdraft CLI and extract the first http(s) URL; builds browser.open_split params (conditional workspace handling), calls client.sendV2, and emits JSON or localized success output. runProcess now returns a timedOut flag.
Help text, docs, and localization
CLI/cmux.swift, docs/cli-contract.md, Resources/Localizable.xcstrings
Help/usage text and concise command list updated; docs/cli-contract.md adds the roughdraft entry and a no-socket help probe for cmux roughdraft --help; localization keys for errors, usage, and output were added.
Tests and test helpers
cmuxTests/CMUXOpenCommandTests.swift
Adds testRoughdraftOpenFailureUsesSanitizedError that uses a fake roughdraft binary via PATH override and asserts sanitized failure output; extends runCLI to accept environmentOverrides.

Sequence Diagram

sequenceDiagram
  participant User as User/Dispatcher
  participant runRough as runRoughdraftCommand
  participant urlHelper as roughdraftDocumentURL
  participant extRough as External Roughdraft CLI
  participant clientAPI as client.sendV2

  User->>runRough: dispatch "cmux roughdraft open <path>" or "cmux roughdraft <path>"
  runRough->>runRough: parse options & validate args (--workspace/--window/--surface/--focus)
  runRough->>urlHelper: request document URL for <path>
  urlHelper->>extRough: run "roughdraft open <path> --print-url --no-watch"
  extRough-->>urlHelper: stdout with http(s) URL
  urlHelper-->>runRough: return first http(s) URL
  runRough->>clientAPI: sendV2(method: "browser.open_split", params including roughdraft_url, path, placement ids, focus)
  clientAPI-->>runRough: pane/surface response (created_split, ids)
  runRough-->>User: JSON or localized success message
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • manaflow-ai/cmux#4211: Both PRs thread --window context through CLI argument parsing into window_id-scoped v2 RPC parameters (e.g., roughdraft forwarding window_id into browser.open_split).
  • manaflow-ai/cmux#4451: Both PRs extend CMUXOpenCommandTests.runCLI(...) to accept environmentOverrides for mocking external CLI binaries, alongside adding new subcommand dispatch paths in CLI/cmux.swift.

Poem

I'm a rabbit who found a markdown door,
I hop to Roughdraft, the URL I store,
I nudge a pane to open, split or reuse,
I hum while editors wake and fuse.
🐇📄✨


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 1 warning)

Check name Status Explanation Resolution
Cmux Full Internationalization ❌ Error All 10 new roughdraft localization keys in Resources/Localizable.xcstrings are missing translations for the Khmer (km) locale, which is already supported by the catalog (402 existing keys include km). Add Khmer (km) translations for all 10 roughdraft keys: cli.help.roughdraft, cli.roughdraft.error.* (7 keys), cli.roughdraft.output.opened, and cli.roughdraft.usage.open in Resources/Localizable.xcstrings.
Docstring Coverage ⚠️ Warning Docstring coverage is 23.08% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (19 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add Roughdraft markdown review handoff' is clear and specific, accurately capturing the main change—adding a new CLI command for Roughdraft integration.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed No Swift 6 actor isolation violations introduced. New functions are private helpers on CMUXCLI struct; new value types (CLIProcessResult/CLIProcessDataResult) have no sendability issues; CLIProcess...
Cmux Swift Blocking Runtime ✅ Passed The PR reuses existing subprocess execution infrastructure that employs DispatchSemaphore for coordinating I/O on background utility queues, which is appropriate. No new blocking primitives are int...
Cmux Expensive Synchronous Load ✅ Passed The PR adds roughdraftDocumentURL() as a synchronous subprocess invocation only in CLI/cmux.swift, called from the CLI command dispatcher (not a socket handler, SwiftUI body, didSet, close handler,...
Cmux Cache Substitution Correctness ✅ Passed The roughdraft command uses CMUX_WORKSPACE_ID as transient session context via an established pattern used in 6+ other commands; workspace_id is only passed to browser.open_split and never persiste...
Cmux No Hacky Sleeps ✅ Passed PR contains only Swift code changes (excluded from runtime-no-hacky-sleeps) and documentation/localization (out of scope). No TypeScript, JavaScript, shell, or build/runtime scripts modified.
Cmux Algorithmic Complexity ✅ Passed The PR introduces no algorithmic complexity violations. The roughdraft feature is a CLI-only command that executes once per user invocation, not a hot path. Code uses linear-time algorithms on boun...
Cmux Swift Concurrency ✅ Passed New roughdraft functions (runRoughdraftCommand, roughdraftDocumentURL) use only synchronous code with throw-based error handling. The runProcess update adds a timedOut flag without introducing asyn...
Cmux Swift @Concurrent ✅ Passed No Swift concurrency violations found. New roughdraft functions are synchronous (not async), call runProcess synchronously, and have no improper @concurrent or actor isolation annotations.
Cmux Swift File And Package Boundaries ✅ Passed PR adds focused 175-line CLI command handler following established dispatcher pattern; below 250-line growth threshold for oversized file; preserves clear extraction path; no new mixed responsibili...
Cmux Swift Logging ✅ Passed The PR passes the Swift logging check. All print statements in CLI/cmux.swift (roughdraft command) are CLI output statements following the same pattern as existing commands; error messages are loca...
Cmux User-Facing Error Privacy ✅ Passed Error messages appropriately sanitize vendor/upstream details: syntax errors mention "roughdraft" as cmux command name (like existing "memory" pattern), while tool-failure messages use generic "Mar...
Cmux Swiftui State Layout ✅ Passed PR modifies only CLI/cmux.swift and tests for command dispatch/process execution—no SwiftUI views, @Observable, @Published, GeometryReader, or state mutation present.
Cmux Architecture Rethink ✅ Passed The PR adds a straightforward CLI command dispatcher without violating architectural rules. No new timing repairs, polling, mutable state, observers, or split lifecycle ownership. Clear invariant (...
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PR adds CLI command dispatcher for roughdraft that calls backend browser.open_split; no new NSWindow, NSPanel, NSWindowController, SwiftUI Window, or WindowGroup code introduced.
Cmux Source Artifacts ✅ Passed All five changed files are legitimate source artifacts: hand-written Swift source/tests, documentation, and localization catalogs in standard repository locations; no generated logs, caches, or art...
Description check ✅ Passed The PR description comprehensively covers all required template sections with detailed research, design rationale, user-facing API, and manual verification steps.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-roughdraft-md-integration

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

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

@greptile-apps

greptile-apps Bot commented May 20, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

Adds cmux roughdraft [open] <path> to open a local Markdown file in a Roughdraft review browser pane by delegating to the roughdraft CLI (--print-url --no-watch, 30 s timeout) and directing the returned localhost URL into browser.open_split with bypass_remote_proxy: true.

  • New command with --workspace, --surface, --window, --focus flags; $CMUX_WORKSPACE_ID default; plain-text and --json output paths; shorthand cmux roughdraft <path> supported.
  • Error handling: distinct localized messages for timeout vs non-zero exit; raw subprocess stdout/stderr never surfaces to the user; regression test asserts no sensitive tokens appear.
  • Localization: all 9 new cli.roughdraft.* string-catalog keys carry genuine translations in 20 locales; runProcess wrapper extended with timedOut in a backward-compatible way (existing callers use named field access).

Confidence Score: 5/5

Safe to merge. The new roughdraft command is a thin integration layer: spawn an external CLI, validate its output, open a browser split. All previously identified review concerns have been resolved in the current commit.

The implementation is well-scoped. Error sanitization is verified by a regression test that asserts sensitive subprocess output never reaches the user. Localization covers all 20 locale entries with genuine translations. The runProcess tuple extension adds a field without breaking existing named-field callers. URL validation correctly rejects non-http/https and host-less URLs. No actor isolation, blocking primitive, or unhandled-state issues were found in the changed code.

No files require special attention.

Important Files Changed

Filename Overview
CLI/cmux.swift Adds ~176 lines: roughdraft command handler, URL validation, sanitized error messages with localized strings, and exposes timedOut from runProcess. Existing callers of runProcess use named field access so the 4-tuple extension is backward compatible. Logic is clean.
Resources/Localizable.xcstrings Adds 9 new cli.roughdraft.* keys with genuine translations across 20 locales (ar, bs, da, de, en, es, fr, it, ja, km, ko, nb, pl, pt-BR, ru, th, tr, uk, zh-Hans, zh-Hant). Translations appear real, not English copies.
cmuxTests/CMUXOpenCommandTests.swift Adds two tests: failure test asserts sanitized error output (no raw stdout/stderr/paths), bypass test asserts bypass_remote_proxy=true via a succeeding fake roughdraft binary. Both use environmentOverrides to inject PATH.
docs/cli-contract.md Adds roughdraft entry to command table and a help probe. Probe matches the localized help string prefix.
.github/swift-file-length-budget.tsv Bumps cmux.swift budget by 176 lines to 34033. Routine tracking update consistent with the file's established growth pattern.

Sequence Diagram

sequenceDiagram
    actor User
    participant cmux as cmux CLI
    participant rd as roughdraft CLI
    participant socket as cmux Socket
    participant browser as Browser Pane

    User->>cmux: cmux roughdraft open path.md
    cmux->>rd: /usr/bin/env roughdraft open path.md --print-url --no-watch (30s timeout)
    rd-->>cmux: stdout: http://127.0.0.1:PORT/roughdraft/path
    Note over cmux: validate http/https + non-empty host
    cmux->>socket: "browser.open_split(url, bypass_remote_proxy=true, workspace_id, ...)"
    socket-->>cmux: surface_id, pane_id, created_split
    cmux->>browser: opens localhost Roughdraft URL
    cmux-->>User: "OK surface=... pane=... path=... url=..."
Loading

Reviews (14): Last reviewed commit: "Merge remote-tracking branch 'origin/mai..." | Re-trigger Greptile

Comment thread CLI/cmux.swift Outdated
Comment thread CLI/cmux.swift

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CLI/cmux.swift`:
- Around line 4328-4333: The current throw includes raw upstream stdout/stderr
from the roughdraft invocation (variables result, message, detail) which may
leak sensitive internals; instead replace the detailed inclusion with a
sanitized, user-friendly message: keep the CLIError text about installing
Roughdraft but drop raw result.stdout/result.stderr, or if you want minimal
diagnostics include only a sanitized/truncated snippet (e.g., first non-empty
line, stripped of paths/stack traces) and indicate it’s a truncated diagnostic.
Update the code around result, message, detail and the CLIError throw to use the
sanitized string.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 526e7a7f-7d89-41e0-b57a-165ece625ccc

📥 Commits

Reviewing files that changed from the base of the PR and between e53b979 and 12cee18.

📒 Files selected for processing (2)
  • CLI/cmux.swift
  • docs/cli-contract.md

Comment thread CLI/cmux.swift Outdated

@cubic-dev-ai cubic-dev-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.

1 issue found across 2 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread CLI/cmux.swift 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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CLI/cmux.swift`:
- Line 4328: Replace the hardcoded, branded error thrown by CLIError in the
throw site (the throw CLIError(...) that currently references "Roughdraft", "npm
i -g roughdraft" and result.status) with a localized, generic message via your
app's localization helper (e.g. NSLocalizedString or the project's i18n
utility); keep the message provider-agnostic (e.g. "Failed to open required
tool. Please install it and retry.") and optionally append non-branded
machine-readable details like result.status separately or as metadata rather
than in the user-facing string; update the throw to use the localization key and
include result.status only where appropriate for logs or diagnostics.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3e22cd54-c855-49f3-b7a8-0216c2fea442

📥 Commits

Reviewing files that changed from the base of the PR and between 12cee18 and f202fee.

📒 Files selected for processing (1)
  • CLI/cmux.swift

Comment thread CLI/cmux.swift Outdated
Comment thread CLI/cmux.swift
Comment thread CLI/cmux.swift Outdated

@cubic-dev-ai cubic-dev-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.

1 issue found across 1 file (changes from recent commits).

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread CLI/cmux.swift Outdated

@cubic-dev-ai cubic-dev-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.

1 issue found across 3 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread cmuxTests/CMUXOpenCommandTests.swift Outdated

@cursor cursor 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e4fbe67. Configure here.

Comment thread cmuxTests/CMUXOpenCommandTests.swift

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CLAUDE.md`:
- Around line 235-250: This review comment is providing positive feedback
acknowledging that the new Skills section in CLAUDE.md is a helpful and
well-organized addition for developers to locate task-specific documentation. No
fix is required; the implementation shown in the diff already successfully
addresses the organizational goal by providing a clear, structured skill map
with relevant references to different development areas (cmux-dev-workflow,
cmux-architecture, cmux-backend, cmux-testing, etc.).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4d51be97-acda-454b-9409-6cbccd559ddb

📥 Commits

Reviewing files that changed from the base of the PR and between 4703cf2 and ecea1ca.

📒 Files selected for processing (2)
  • CLAUDE.md
  • CLI/cmux.swift
💤 Files with no reviewable changes (1)
  • CLI/cmux.swift

@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.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CLAUDE.md`:
- Around line 235-250: This review comment is providing positive feedback
acknowledging that the new Skills section in CLAUDE.md is a helpful and
well-organized addition for developers to locate task-specific documentation. No
fix is required; the implementation shown in the diff already successfully
addresses the organizational goal by providing a clear, structured skill map
with relevant references to different development areas (cmux-dev-workflow,
cmux-architecture, cmux-backend, cmux-testing, etc.).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 4d51be97-acda-454b-9409-6cbccd559ddb

📥 Commits

Reviewing files that changed from the base of the PR and between 4703cf2 and ecea1ca.

📒 Files selected for processing (2)
  • CLAUDE.md
  • CLI/cmux.swift
💤 Files with no reviewable changes (1)
  • CLI/cmux.swift
🛑 Comments failed to post (1)
CLAUDE.md (1)

235-250: 🧹 Nitpick | 🔵 Trivial | 💤 Low value

New Skills section provides helpful reference map for task-specific development areas.

The addition of a structured skill map at the end of CLAUDE.md helps developers quickly locate task-specific documentation for different areas of the codebase (e.g., cmux-localization, cmux-testing, cmux-ghostty). This is a useful organizational addition to the document.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@CLAUDE.md` around lines 235 - 250, This review comment is providing positive
feedback acknowledging that the new Skills section in CLAUDE.md is a helpful and
well-organized addition for developers to locate task-specific documentation. No
fix is required; the implementation shown in the diff already successfully
addresses the organizational goal by providing a clear, structured skill map
with relevant references to different development areas (cmux-dev-workflow,
cmux-architecture, cmux-backend, cmux-testing, etc.).

@lawrencecchen lawrencecchen added the stale-revisit Closed after 30+ days without activity; preserved for possible revisit or reopening. label Sep 23, 2026
@github-project-automation github-project-automation Bot moved this from Todo to Done in cmux backlog Sep 23, 2026

This branch was successfully deployed

1 active deployment
Preview – cmux — b7bd8648 Deployed Jun 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale-revisit Closed after 30+ days without activity; preserved for possible revisit or reopening.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants