Skip to content

Add cmux sidebar builder skill - #3

Merged
lawrencecchen merged 3 commits into
mainfrom
feat-cmux-sidebar-vibe-skill
Jun 4, 2026
Merged

lawrencecchen merged 3 commits into
mainfrom
feat-cmux-sidebar-vibe-skill

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Jun 4, 2026 •

Copy link
Copy Markdown
Contributor

Adds a public cmux-sidebar-builder skill for left-sidebar custom sidebars backed by cmux's runtime SwiftUI-style interpreter.

The skill points agents at the current cmux source entrypoints, ~/.config/cmux/sidebars/*.swift, the beta flag, and Aziz's original interpreter PR: manaflow-ai/cmux#5254

@azooz2003-bit can you review the interpreter/source pointers and make sure the guidance matches the intended left-sidebar workflow?

Validation:

  • python3 -m json.tool skills.sh.json
  • Ruby YAML/frontmatter parse for skills/cmux-sidebar-builder/SKILL.md and agents/openai.yaml
  • git diff --check

Note: the bundled skill-creator quick validator was not runnable because this shell is missing PyYAML.

@coderabbitai

coderabbitai Bot commented Jun 4, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@lawrencecchen, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 53 minutes and 14 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0b642aa7-202d-435d-9916-81fe88cf102a

📥 Commits

Reviewing files that changed from the base of the PR and between d740e24 and b7253a3.

📒 Files selected for processing (4)
  • README.md
  • skills.sh.json
  • skills/cmux-sidebar-builder/SKILL.md
  • skills/cmux-sidebar-builder/agents/openai.yaml
📝 Walkthrough

Walkthrough

A new cmux-sidebar-vibe skill is introduced to enable building custom left-sidebar views in cmux using a runtime SwiftUI-style interpreter. The skill is registered in the workspace automation group, documented with technical guidance and AI agent metadata, and cataloged in the project README.

Changes

cmux-sidebar-vibe Skill

Layer / File(s) Summary
Skill registration and interface metadata
skills.sh.json, skills/cmux-sidebar-vibe/agents/openai.yaml
cmux-sidebar-vibe is added to the Workspace automation group's skill array, and interface metadata (display_name, short_description, default_prompt) is defined for the OpenAI agent.
Skill documentation and workflow
skills/cmux-sidebar-vibe/SKILL.md
Comprehensive documentation covers feature provenance, config directory location (~/.config/cmux/sidebars/), key interpreter and app source entrypoints, authoring rules for the supported SwiftUI-style subset, and verification guidance for config-only versus code changes.
README catalog entries
README.md
New skill entry is added to the Skills table and the directory structure is documented in the skills/ layout.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A sidebar vibe blooms bright,
Swiftly interpreted in flight,
Custom views dance left and right,
Code and config, pure delight! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: adding a new cmux sidebar builder skill, which is reflected across all modified files (README, skills.sh.json, SKILL.md, and openai.yaml).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-cmux-sidebar-vibe-skill

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.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d740e24c78

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread skills/cmux-sidebar-builder/SKILL.md Outdated
ls ~/.config/cmux/sidebars
```

Then ensure `customSidebars.beta.enabled` is on and ask the user to select the named sidebar from the left sidebar picker. If cmux CLI/settings helpers are available, use them to enable the beta yourself.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Don't enable the sidebar beta through cmux settings

In the config-only flow, an agent that follows this instruction with the existing cmux-settings helper will write customSidebars.beta.enabled into ~/.config/cmux/cmux.json; that helper is explicitly for schema-backed cmux.json settings, and customSidebars is not part of that schema, so validation reports an unknown key and the beta flag remains off. This should point to the actual Settings/Beta toggle or a confirmed UserDefaults/CLI mechanism instead of the cmux settings helpers.

Useful? React with 👍 / 👎.

@lawrencecchen lawrencecchen changed the title Add cmux sidebar vibe skill Add cmux sidebar builder skill Jun 4, 2026
@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Renamed the skill from cmux-sidebar-vibe to cmux-sidebar-builder per naming feedback. @azooz2003-bit review request still stands for the interpreter/source guidance.

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

🧹 Nitpick comments (2)
skills/cmux-sidebar-vibe/SKILL.md (2)

68-68: 💤 Low value

Consider clarifying the testing restriction.

The guidance discourages running local xcodebuild ... test but doesn't explain why. If there's a specific reason (e.g., tests require special setup, long build times, CI-only resources), consider adding a brief explanation. If this is not a hard requirement, the phrasing could be softened.

💡 Suggested clarification
-For interpreter or app changes, prefer focused package tests for `CmuxSwiftRender` plus the smallest real dogfood reload. Do not run local cmux `xcodebuild ... test`; use the project's remote or CI test guidance.
+For interpreter or app changes, prefer focused package tests for `CmuxSwiftRender` plus the smallest real dogfood reload. For full test suite runs, prefer the project's CI workflow over local `xcodebuild ... test` to avoid long build times and ensure consistency with the project's test environment.
🤖 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 `@skills/cmux-sidebar-vibe/SKILL.md` at line 68, The guidance about not running
local `xcodebuild ... test` for CmuxSwiftRender is too terse—update the SKILL.md
sentence referencing CmuxSwiftRender to either briefly state the reason (e.g.,
tests require CI-only resources, special environment/setup, or long/fragile
local builds) or soften the requirement to “prefer” CI/remote runs unless you
have the necessary local setup; mention `CmuxSwiftRender` and the xcodebuild
command explicitly so readers know which tests the guidance applies to.

66-66: ⚡ Quick win

Clarify how to enable the beta flag.

The guidance mentions enabling customSidebars.beta.enabled but doesn't specify the exact configuration path or command. Based on learnings, the cmux-settings skill handles writing to ~/.config/cmux/cmux.json.

📝 Suggested enhancement for beta flag guidance

Consider adding specific guidance, such as:

-Then ensure `customSidebars.beta.enabled` is on and ask the user to select the named sidebar from the left sidebar picker. If cmux CLI/settings helpers are available, use them to enable the beta yourself.
+Then ensure `customSidebars.beta.enabled` is on and ask the user to select the named sidebar from the left sidebar picker. To enable the beta flag, use the `cmux-settings` skill to write to `~/.config/cmux/cmux.json`, or if a cmux CLI command is available, use `cmux settings set customSidebars.beta.enabled true` (verify the exact command with `cmux settings --help`).

Based on learnings, use the cmux-settings skill for global config writes in cmux configuration files.

🤖 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 `@skills/cmux-sidebar-vibe/SKILL.md` at line 66, Update the guidance to
explicitly show how to enable the beta flag by instructing authors to set the
configuration key customSidebars.beta.enabled to true using the cmux-settings
skill (i.e., call the cmux-settings helper to write the flag into global cmux
config) and then tell users to open the left sidebar picker and select the named
sidebar; reference the config key customSidebars.beta.enabled and the
cmux-settings skill so readers know which setting and helper to use.
🤖 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.

Nitpick comments:
In `@skills/cmux-sidebar-vibe/SKILL.md`:
- Line 68: The guidance about not running local `xcodebuild ... test` for
CmuxSwiftRender is too terse—update the SKILL.md sentence referencing
CmuxSwiftRender to either briefly state the reason (e.g., tests require CI-only
resources, special environment/setup, or long/fragile local builds) or soften
the requirement to “prefer” CI/remote runs unless you have the necessary local
setup; mention `CmuxSwiftRender` and the xcodebuild command explicitly so
readers know which tests the guidance applies to.
- Line 66: Update the guidance to explicitly show how to enable the beta flag by
instructing authors to set the configuration key customSidebars.beta.enabled to
true using the cmux-settings skill (i.e., call the cmux-settings helper to write
the flag into global cmux config) and then tell users to open the left sidebar
picker and select the named sidebar; reference the config key
customSidebars.beta.enabled and the cmux-settings skill so readers know which
setting and helper to use.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 490b126c-10bc-45fa-9cfb-bf05f51b96b4

📥 Commits

Reviewing files that changed from the base of the PR and between d236406 and d740e24.

📒 Files selected for processing (4)
  • README.md
  • skills.sh.json
  • skills/cmux-sidebar-vibe/SKILL.md
  • skills/cmux-sidebar-vibe/agents/openai.yaml

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Tried the skill locally. It produced ~/.config/cmux/sidebars/builder-test.swift, enabled customSidebars.beta.enabled for the nightly/dev defaults domains, and selected cmux.sidebar.custom.builder-test.

Validation from the tryout:

  • swift test --package-path repo/Packages/CmuxSwiftRender passed, including 34 Swift interpreter tests and corpus coverage.

I also updated the skill to document that customSidebars.beta.enabled is UserDefaults-backed rather than a cmux.json setting in current builds.

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

This is the skill that the user will invoke right? If so we should bundle the interpreter package shape in the same dir so that the agent knows what the current intepreter capabilties are

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

3 issues found across 4 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="skills/cmux-sidebar-builder/agents/openai.yaml">

<violation number="1" location="skills/cmux-sidebar-builder/agents/openai.yaml:4">
P3: Terminology inconsistency: `short_description` says "SwiftUI-style interpreter" (accurate — a DSL interpreter for SwiftUI-like declarative syntax) but `default_prompt` says "Swift interpreter" (which reads as an interpreter for the Swift programming language). These describe different things: the sidebar DSL is a limited declarative subset, not general-purpose Swift.</violation>
</file>

<file name="skills/cmux-sidebar-builder/SKILL.md">

<violation number="1" location="skills/cmux-sidebar-builder/SKILL.md:69">
P2: `<bundle-id>` in the `defaults write` commands is parsed by the shell as a stdin redirection (redirect from file `bundle-id`), not as a literal placeholder argument. Both `defaults write` commands will fail because the bundle-id domain argument is consumed by the redirection parser rather than passed to `defaults write`.

Fix: Replace `<bundle-id>` with a concrete example bundle ID such as `com.manaflow.cmux.dev`, since the surrounding note already lists the actual bundle IDs to use.</violation>

<violation number="2" location="skills/cmux-sidebar-builder/SKILL.md:70">
P2: Verification step uses an Extension sidebar provider key, which conflicts with this skill’s left-sidebar interpreted workflow and can misconfigure the wrong sidebar surface.</violation>
</file>

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

Re-trigger cubic

Comment on lines +69 to +70
defaults write <bundle-id> customSidebars.beta.enabled -bool true
defaults write <bundle-id> cmuxExtensionSidebar.providerId "cmux.sidebar.custom.<name>"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: <bundle-id> in the defaults write commands is parsed by the shell as a stdin redirection (redirect from file bundle-id), not as a literal placeholder argument. Both defaults write commands will fail because the bundle-id domain argument is consumed by the redirection parser rather than passed to defaults write.

Fix: Replace <bundle-id> with a concrete example bundle ID such as com.manaflow.cmux.dev, since the surrounding note already lists the actual bundle IDs to use.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/cmux-sidebar-builder/SKILL.md, line 69:

<comment>`<bundle-id>` in the `defaults write` commands is parsed by the shell as a stdin redirection (redirect from file `bundle-id`), not as a literal placeholder argument. Both `defaults write` commands will fail because the bundle-id domain argument is consumed by the redirection parser rather than passed to `defaults write`.

Fix: Replace `<bundle-id>` with a concrete example bundle ID such as `com.manaflow.cmux.dev`, since the surrounding note already lists the actual bundle IDs to use.</comment>

<file context>
@@ -0,0 +1,75 @@
+Then ensure `customSidebars.beta.enabled` is on and ask the user to select the named sidebar from the left sidebar picker. This is not a `cmux.json` setting in current cmux builds; it is stored in the app's `UserDefaults.standard` domain. For temporary local dogfood only, it is acceptable to set the running app domain directly:
+
+```bash
+defaults write <bundle-id> customSidebars.beta.enabled -bool true
+defaults write <bundle-id> cmuxExtensionSidebar.providerId "cmux.sidebar.custom.<name>"
+```
</file context>
Suggested change
defaults write <bundle-id> customSidebars.beta.enabled -bool true
defaults write <bundle-id> cmuxExtensionSidebar.providerId "cmux.sidebar.custom.<name>"
defaults write com.manaflow.cmux.dev customSidebars.beta.enabled -bool true
defaults write com.manaflow.cmux.dev cmuxExtensionSidebar.providerId "cmux.sidebar.custom.<name>"


```bash
defaults write <bundle-id> customSidebars.beta.enabled -bool true
defaults write <bundle-id> cmuxExtensionSidebar.providerId "cmux.sidebar.custom.<name>"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: Verification step uses an Extension sidebar provider key, which conflicts with this skill’s left-sidebar interpreted workflow and can misconfigure the wrong sidebar surface.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/cmux-sidebar-builder/SKILL.md, line 70:

<comment>Verification step uses an Extension sidebar provider key, which conflicts with this skill’s left-sidebar interpreted workflow and can misconfigure the wrong sidebar surface.</comment>

<file context>
@@ -0,0 +1,75 @@
+
+```bash
+defaults write <bundle-id> customSidebars.beta.enabled -bool true
+defaults write <bundle-id> cmuxExtensionSidebar.providerId "cmux.sidebar.custom.<name>"
+```
+
</file context>

interface:
display_name: "cmux Sidebar Builder"
short_description: "Build left-sidebar custom views with cmux's runtime SwiftUI-style interpreter."
default_prompt: "Use this skill to create, inspect, or revise cmux left-sidebar custom sidebars in ~/.config/cmux/sidebars using the runtime Swift interpreter and current cmux docs/source entrypoints."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: Terminology inconsistency: short_description says "SwiftUI-style interpreter" (accurate — a DSL interpreter for SwiftUI-like declarative syntax) but default_prompt says "Swift interpreter" (which reads as an interpreter for the Swift programming language). These describe different things: the sidebar DSL is a limited declarative subset, not general-purpose Swift.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/cmux-sidebar-builder/agents/openai.yaml, line 4:

<comment>Terminology inconsistency: `short_description` says "SwiftUI-style interpreter" (accurate — a DSL interpreter for SwiftUI-like declarative syntax) but `default_prompt` says "Swift interpreter" (which reads as an interpreter for the Swift programming language). These describe different things: the sidebar DSL is a limited declarative subset, not general-purpose Swift.</comment>

<file context>
@@ -0,0 +1,4 @@
+interface:
+  display_name: "cmux Sidebar Builder"
+  short_description: "Build left-sidebar custom views with cmux's runtime SwiftUI-style interpreter."
+  default_prompt: "Use this skill to create, inspect, or revise cmux left-sidebar custom sidebars in ~/.config/cmux/sidebars using the runtime Swift interpreter and current cmux docs/source entrypoints."
</file context>

@lawrencecchen
lawrencecchen merged commit 6529d20 into main Jun 4, 2026
4 checks passed
@lawrencecchen
lawrencecchen deleted the feat-cmux-sidebar-vibe-skill branch June 4, 2026 00:23
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.

2 participants