Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
df69048
Experimental support for Xcode Tools MCP
cameroncooke Feb 4, 2026
f4604d6
Add Xcode agent detection
cameroncooke Feb 4, 2026
907cfe3
Refactor tool/workflow system to use YAML manifests as single source …
cameroncooke Feb 4, 2026
7bba878
Add annotations to manifest schema
cameroncooke Feb 4, 2026
da74a21
Refactor tool system to use YAML manifests and named exports
cameroncooke Feb 5, 2026
8c0cda0
Add simulator name-to-ID resolution for session defaults
cameroncooke Feb 5, 2026
3da0e48
Add automatic Xcode IDE state synchronization
cameroncooke Feb 5, 2026
9b182d4
Fix xcode-ide workflow and bridge gating
cameroncooke Feb 5, 2026
c020042
Use manifest metadata only for tool annotations
cameroncooke Feb 5, 2026
6c31331
Fix docs:update to read YAML manifests directly
cameroncooke Feb 5, 2026
bcbf0fe
chore: remove legacy npm tools scripts and analysis helpers
cameroncooke Feb 5, 2026
9709946
fix(cli): Show only CLI-exposed workflow commands
cameroncooke Feb 5, 2026
f87be52
fix(xcode-ide): decouple bridge tool handlers from MCP server
cameroncooke Feb 5, 2026
10b8b4a
Wire xcode-tools dynamic tools to CLI mode
cameroncooke Feb 5, 2026
ff4d3f2
ref(runtime): Simplify daemon routing and normalize manifests
cameroncooke Feb 6, 2026
2d480e5
fix(xcode-ide): Bound IDE state fallback to workspace root
cameroncooke Feb 6, 2026
0246a2c
fix: require mcp subcommand in QA docs and harden Swift escaping
cameroncooke Feb 6, 2026
78e31b9
fix: harden signal shutdown error handling
cameroncooke Feb 6, 2026
e2c5d6e
fix: deduplicate tool catalog entries and correct screenshot device m…
cameroncooke Feb 6, 2026
cedc0d2
refactor(cli): use manifest-declared CLI names instead of prefix stri…
cameroncooke Feb 6, 2026
b7683cd
feat(cli): add explicit CLI names to all tool manifests
cameroncooke Feb 6, 2026
51c878f
Merge branch 'main' into xcode-tools-support
cameroncooke Feb 6, 2026
af358e2
🐛 fix(cli): resolve correct tool via direct invocation instead of fla…
cameroncooke Feb 6, 2026
13807c9
📝 docs: correct hideWhenXcodeAgentMode predicate description
cameroncooke Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 5 additions & 5 deletions .claude/agents/xcodebuild-mcp-qa-tester.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ After testing `list_sims` tool, update the report:
## Detailed Test Results

### Tool: list_sims ✅ PASSED
**Command:** `npx reloaderoo@latest inspect call-tool list_sims --params '{}' -- node build/index.js`
**Command:** `npx reloaderoo@latest inspect call-tool list_sims --params '{}' -- node build/cli.js mcp`
**Verification:** Command returned JSON array with 6 simulator objects
**Validation Summary:** Successfully discovered 6 available simulators with UUIDs, names, and boot status
**Timestamp:** 2025-01-29 14:30:15
Expand All @@ -87,8 +87,8 @@ After testing `list_sims` tool, update the report:
### Pre-Testing Setup
- Always start by building the project: `npm run build`
- Verify Reloaderoo is available: `npx reloaderoo@latest --help`
- Check server connectivity: `npx reloaderoo@latest inspect ping -- node build/index.js`
- Get server information: `npx reloaderoo@latest inspect server-info -- node build/index.js`
- Check server connectivity: `npx reloaderoo@latest inspect ping -- node build/cli.js mcp`
- Get server information: `npx reloaderoo@latest inspect server-info -- node build/cli.js mcp`

### Systematic Testing Workflow
1. **Create Initial Report**: Generate test report with all checkboxes unchecked
Expand All @@ -108,15 +108,15 @@ After testing `list_sims` tool, update the report:

### Tool Testing Process
For each tool:
1. Execute test with `npx reloaderoo@latest inspect call-tool <tool_name> --params '<json>' -- node build/index.js`
1. Execute test with `npx reloaderoo@latest inspect call-tool <tool_name> --params '<json>' -- node build/cli.js mcp`
2. Verify response format and content
3. **IMMEDIATELY** update test report with result
4. Check the box and add detailed verification summary
5. Move to next tool

### Resource Testing Process
For each resource:
1. Execute test with `npx reloaderoo@latest inspect read-resource "<uri>" -- node build/index.js`
1. Execute test with `npx reloaderoo@latest inspect read-resource "<uri>" -- node build/cli.js mcp`
2. Verify resource accessibility and content format
3. **IMMEDIATELY** update test report with result
4. Check the box and add detailed verification summary
Expand Down
59 changes: 44 additions & 15 deletions .claude/commands/rp-build-cli.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: Build with rp-cli context builder → chat → implement
repoprompt_managed: true
repoprompt_commands_version: 5
repoprompt_skills_version: 6
repoprompt_variant: cli
---

Expand Down Expand Up @@ -40,9 +40,12 @@ rp-cli -e 'select set src/ && context'

Use `rp-cli -e 'describe <tool>'` for help on a specific tool, or `rp-cli --help` for CLI usage.

**⚠️ TIMEOUT WARNING:** The `builder` and `chat` commands can take several minutes to complete. When invoking rp-cli, **set your command timeout to at least 2700 seconds (45 minutes)** to avoid premature termination.

---
## The Workflow

0. **Verify workspace** – Confirm the target codebase is loaded
1. **Quick scan** – Understand how the task relates to the codebase
2. **Context builder** – Call `builder` with a clear prompt to get deep context + an architectural plan
3. **Refine with chat** – Use `chat` to clarify the plan if needed
Expand All @@ -53,26 +56,51 @@ Use `rp-cli -e 'describe <tool>'` for help on a specific tool, or `rp-cli --help
## CRITICAL REQUIREMENT

⚠️ **DO NOT START IMPLEMENTATION** until you have:
1. Completed Phase 1 (Quick Scan)
2. **Called `builder`** and received its plan
1. Completed Phase 0 (Workspace Verification)
2. Completed Phase 1 (Quick Scan)
3. **Called `builder`** and received its plan

Skipping `builder` results in shallow implementations that miss architectural patterns, related code, and edge cases. The quick scan alone is NOT sufficient for implementation.

---

## Phase 0: Workspace Verification (REQUIRED)

Before any exploration, confirm the target codebase is loaded:

```bash
# First, list available windows to find the right one
rp-cli -e 'windows'

# Then check roots in a specific window (REQUIRED - CLI cannot auto-bind)
rp-cli -w <window_id> -e 'tree --type roots'
```

**Check the output:**
- If your target root appears in a window → note the window ID and proceed to Phase 1
- If not → the codebase isn't loaded in any window

**CLI Window Routing (CRITICAL):**
- CLI invocations are stateless—you MUST pass `-w <window_id>` to target the correct window
- Use `rp-cli -e 'windows'` to list all open windows and their workspaces
- Always include `-w <window_id>` in ALL subsequent commands
- Without `-w`, commands may target the wrong workspace

---

## Phase 1: Quick Scan (LIMITED - 2-3 tool calls max)

⚠️ **This phase is intentionally brief.** Do NOT do extensive exploration here—that's what `builder` is for.

Start by getting a lay of the land with the file tree:
```bash
rp-cli -e 'tree'
rp-cli -w <window_id> -e 'tree'
```

Then use targeted searches to understand how the task maps to the codebase:
```bash
rp-cli -e 'search "<key term from task>"'
rp-cli -e 'structure RootName/likely/relevant/area/'
rp-cli -w <window_id> -e 'search "<key term from task>"'
rp-cli -w <window_id> -e 'structure RootName/likely/relevant/area/'
```

Use what you learn to **reformulate the user's prompt** with added clarity—reference specific modules, patterns, or terminology from the codebase.
Expand All @@ -86,7 +114,7 @@ Use what you learn to **reformulate the user's prompt** with added clarity—ref
Call `builder` with your informed prompt. Use `response_type: "plan"` to get an actionable architectural plan.

```bash
rp-cli -e 'builder "<reformulated prompt with codebase context>" --response-type plan'
rp-cli -w <window_id> -e 'builder "<reformulated prompt with codebase context>" --response-type plan'
```

**What you get back:**
Expand Down Expand Up @@ -139,21 +167,21 @@ Implement the plan directly. **Do not use `chat` with `mode:"edit"`** – you im
**Primary tools:**
```bash
# Modify existing files (search/replace) - JSON format required
rp-cli -e 'call apply_edits {"path":"Root/File.swift","search":"old","replace":"new"}'
rp-cli -w <window_id> -e 'call apply_edits {"path":"Root/File.swift","search":"old","replace":"new"}'

# Multiline edits
rp-cli -e 'call apply_edits {"path":"Root/File.swift","search":"old\ntext","replace":"new\ntext"}'
rp-cli -w <window_id> -e 'call apply_edits {"path":"Root/File.swift","search":"old\ntext","replace":"new\ntext"}'

# Create new files
rp-cli -e 'file create Root/NewFile.swift "content..."'
rp-cli -w <window_id> -e 'file create Root/NewFile.swift "content..."'

# Read specific sections during implementation
rp-cli -e 'read Root/File.swift --start-line 50 --limit 30'
rp-cli -w <window_id> -e 'read Root/File.swift --start-line 50 --limit 30'
```

**Ask the chat when stuck:**
```bash
rp-cli -t '<tab_id>' -e 'chat "I'\''m implementing X but unsure about Y. What pattern should I follow?" --mode chat'
rp-cli -w <window_id> -t '<tab_id>' -e 'chat "I'\''m implementing X but unsure about Y. What pattern should I follow?" --mode chat'
```

---
Expand All @@ -169,13 +197,13 @@ rp-cli -t '<tab_id>' -e 'chat "I'\''m implementing X but unsure about Y. What pa

```bash
# Check current selection and tokens
rp-cli -e 'select get'
rp-cli -w <window_id> -e 'select get'

# Add a file if needed
rp-cli -e 'select add Root/path/to/file.swift'
rp-cli -w <window_id> -e 'select add Root/path/to/file.swift'

# Add a slice of a large file
rp-cli -e 'select add Root/large/file.swift:100-200'
rp-cli -w <window_id> -e 'select add Root/large/file.swift:100-200'
```

**Chat sees only the selection:** If you need the chat's insight on a file, it must be selected first.
Expand All @@ -193,6 +221,7 @@ rp-cli -e 'select add Root/large/file.swift:100-200'
- 🚫 **CRITICAL:** Doing extensive exploration (5+ tool calls) before calling `builder` – the quick scan should be 2-3 calls max
- 🚫 Reading full file contents during Phase 1 – save that for after `builder` builds context
- 🚫 Convincing yourself you understand enough to skip `builder` – you don't
- 🚫 **CLI:** Forgetting to pass `-w <window_id>` – CLI invocations are stateless and require explicit window targeting

---

Expand Down
35 changes: 30 additions & 5 deletions .claude/commands/rp-investigate-cli.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: Deep codebase investigation and architecture research with rp-cli commands
repoprompt_managed: true
repoprompt_commands_version: 5
repoprompt_skills_version: 6
repoprompt_variant: cli
---

Expand Down Expand Up @@ -40,6 +40,8 @@ rp-cli -e 'select set src/ && context'

Use `rp-cli -e 'describe <tool>'` for help on a specific tool, or `rp-cli --help` for CLI usage.

**⚠️ TIMEOUT WARNING:** The `builder` and `chat` commands can take several minutes to complete. When invoking rp-cli, **set your command timeout to at least 2700 seconds (45 minutes)** to avoid premature termination.

---
## Investigation Protocol

Expand All @@ -49,6 +51,27 @@ Use `rp-cli -e 'describe <tool>'` for help on a specific tool, or `rp-cli --help
3. **Question everything** - if something seems off, investigate it
4. **Use `builder` aggressively** - it's designed for deep exploration

### Phase 0: Workspace Verification (REQUIRED)

Before any investigation, confirm the target codebase is loaded:

```bash
# First, list available windows to find the right one
rp-cli -e 'windows'

# Then check roots in a specific window (REQUIRED - CLI cannot auto-bind)
rp-cli -w <window_id> -e 'tree --type roots'
```

**Check the output:**
- If your target root appears in a window → note the window ID and proceed to Phase 1
- If not → the codebase isn't loaded in any window

**CLI Window Routing (CRITICAL):**
- CLI invocations are stateless—you MUST pass `-w <window_id>` to target the correct window
- Use `rp-cli -e 'windows'` to list all open windows and their workspaces
- Always include `-w <window_id>` in ALL subsequent commands

### Phase 1: Initial Assessment

1. Read any provided files/reports (traces, logs, error reports)
Expand All @@ -62,7 +85,7 @@ Use `rp-cli -e 'describe <tool>'` for help on a specific tool, or `rp-cli --help
Use `builder` with detailed instructions:

```bash
rp-cli -e 'builder "Investigate: <specific area>
rp-cli -w <window_id> -e 'builder "Investigate: <specific area>

Symptoms observed:
- <symptom 1>
Expand All @@ -82,10 +105,10 @@ Areas to explore:
After `builder` returns, continue with targeted questions:

```bash
rp-cli -t '<tab_id>' -e 'chat "<specific follow-up based on findings>" --mode plan'
rp-cli -w <window_id> -t '<tab_id>' -e 'chat "<specific follow-up based on findings>" --mode plan'
```

> Pass `-t <tab_id>` to target the same tab across separate CLI invocations.
> Pass `-w <window_id>` to target the correct window and `-t <tab_id>` to target the same tab across separate CLI invocations.

### Phase 4: Evidence Gathering

Expand Down Expand Up @@ -156,12 +179,14 @@ Create a findings report as you investigate:
## Anti-patterns to Avoid

- 🚫 **CRITICAL:** Skipping `builder` and attempting to investigate by reading files manually – you'll miss critical context
- 🚫 Skipping Phase 0 (Workspace Verification) – you must confirm the target codebase is loaded first
- 🚫 Doing extensive exploration (5+ tool calls) before calling `builder` – initial assessment should be brief
- 🚫 Drawing conclusions before `builder` has built proper context
- 🚫 Reading many full files during Phase 1 – save deep reading for after `builder`
- 🚫 Assuming you understand the issue without systematic exploration via `builder`
- 🚫 Using only chat follow-ups without an initial `builder` call
- 🚫 **CLI:** Forgetting to pass `-w <window_id>` – CLI invocations are stateless and require explicit window targeting

---

Now begin the investigation. Read any provided context, then **immediately** use `builder` to start systematic exploration. Do not attempt manual exploration first.
Now begin the investigation. First run `rp-cli -e 'windows'` to find the correct window, then Read any provided context, then **immediately** use `builder` to start systematic exploration. Do not attempt manual exploration first.
27 changes: 24 additions & 3 deletions .claude/commands/rp-oracle-export-cli.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
description: Export context for oracle consultation using rp-cli
repoprompt_managed: true
repoprompt_commands_version: 5
repoprompt_skills_version: 6
repoprompt_variant: cli
---

Expand All @@ -22,10 +22,31 @@ You don't need to specify which files to include—just describe what you need h

## Workflow

### 0. Workspace Verification (REQUIRED)

Before building context, confirm the target codebase is loaded:

```bash
# First, list available windows to find the right one
rp-cli -e 'windows'

# Then check roots in a specific window (REQUIRED - CLI cannot auto-bind)
rp-cli -w <window_id> -e 'tree --type roots'
```

**Check the output:**
- If your target root appears in a window → note the window ID and proceed
- If not → the codebase isn't loaded in any window

**CLI Window Routing (CRITICAL):**
- CLI invocations are stateless—you MUST pass `-w <window_id>` to target the correct window
- Use `rp-cli -e 'windows'` to list all open windows and their workspaces
- Always include `-w <window_id>` in ALL subsequent commands

### 1. Build Context

```bash
rp-cli -e 'builder "<the task/question above>" --response-type clarify'
rp-cli -w <window_id> -e 'builder "<the task/question above>" --response-type clarify'
```

Wait for context_builder to complete. It will explore the codebase and build optimal context.
Expand All @@ -35,7 +56,7 @@ Wait for context_builder to complete. It will explore the codebase and build opt
Confirm the export path with the user (default: `~/Downloads/oracle-prompt.md`), then export:

```bash
rp-cli -e 'prompt export "<confirmed path>"'
rp-cli -w <window_id> -e 'prompt export "<confirmed path>"'
```

Report the export path and token count to the user.
Loading
Loading