Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@
[![Coverage](https://img.shields.io/badge/coverage-92.19%25-brightgreen.svg)](./SPECS/ARCHIVE/P5-T14_Code_Coverage/)
[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.SoundBlaster%2Fxcode--mcpbridge--wrapper-blue)](https://registry.modelcontextprotocol.io)

Version badge maintenance: run `make badge-version` (or `make badge-version-check` in CI).

A Python wrapper that makes Xcode 26.3's MCP bridge compatible with Cursor and other strict MCP-spec-compliant clients.
A Python wrapper that makes Xcode 26.3's MCP bridge compatible with Cursor and
other strict MCP-spec-compliant clients.

## The Problem

Expand Down
6 changes: 5 additions & 1 deletion SPECS/ARCHIVE/INDEX.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# mcpbridge-wrapper Tasks Archive

**Last Updated:** 2026-03-01 (P1-T4 archived)
**Last Updated:** 2026-03-01 (P1-T7 archived)

## Archived Tasks

| Task ID | Folder | Archived | Verdict |
|---------|--------|----------|---------|
| P1-T7 | [P1-T7_Hide_README_version_badge_maintenance_note/](P1-T7_Hide_README_version_badge_maintenance_note/) | 2026-03-01 | PASS |
| P1-T4 | [P1-T4_Update_docs_broker_robustness/](P1-T4_Update_docs_broker_robustness/) | 2026-03-01 | PASS |
| P2-T5 | [P2-T5_Warn_when_broker_lacks_web_ui/](P2-T5_Warn_when_broker_lacks_web_ui/) | 2026-03-01 | PASS |
| P2-T4 | [P2-T4_Surface_broker_unavailability_as_JSONRPC_error/](P2-T4_Surface_broker_unavailability_as_JSONRPC_error/) | 2026-03-01 | PASS |
Expand Down Expand Up @@ -302,6 +303,9 @@

| Date | Task ID | Action |
|------|---------|--------|
| 2026-03-01 | P1-T7 | Archived REVIEW_P1-T7_readme_badge_note report |
| 2026-03-01 | P1-T7 | Archived FOLLOWUP_P1-T7_readme_badge_note report |
| 2026-03-01 | P1-T7 | Archived Hide README version badge maintenance note (PASS) |
| 2026-03-01 | P1-T4 | Archived Update docs to reflect broker robustness improvements (PASS) |
| 2026-03-01 | P2-T3 | Archived Fix double-spawn race condition when MCP client toggles rapidly (PASS) |
| 2026-03-01 | P2-T1 | Archived Replace --broker-spawn/--broker-connect with single --broker flag (PASS) |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Follow-up Report — P1-T7 README Badge Maintenance Note

## Source Review
- `SPECS/INPROGRESS/REVIEW_P1-T7_readme_badge_note.md`

## Decision
- FOLLOW-UP skipped.

## Rationale
- Review found no actionable issues (no blocker/high/medium/low findings).
- No additional tasks were added to `SPECS/Workplan.md`.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# PRD — P1-T7: Hide README version badge maintenance note

## Context

The README currently includes an internal maintenance instruction line:
`Version badge maintenance: run make badge-version (or make badge-version-check in CI).`

This task hides that line from public README content while keeping the version badge itself visible and unchanged.

## Scope

- In scope:
- Remove the maintenance note line from `README.md`.
- Preserve surrounding badges and README rendering.
- Out of scope:
- Changing badge URL, version value, or badge automation scripts.
- Any code/runtime behavior changes.

## Deliverables

1. `README.md` updated to remove the maintenance note string.
2. Validation report documenting checks performed.

## Acceptance Criteria

- [ ] `README.md` no longer contains the exact string:
`Version badge maintenance: run make badge-version (or make badge-version-check in CI).`
- [ ] Version badge remains visible in the badges area.
- [ ] No unintended README formatting regressions are introduced.

## Validation Plan

- Run `rg -n "Version badge maintenance" README.md` and confirm no matches.
- Inspect top README section (`nl -ba README.md | sed -n '1,30p'`) to confirm badge block remains present.

## Risks and Mitigations

- Risk: Removing the line could collapse spacing around the badge block.
- Mitigation: Manually inspect the first 30 lines of `README.md` after change.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Validation Report — P1-T7

**Task:** P1-T7 — Hide README version badge maintenance note
**Date:** 2026-03-01
**Verdict:** PASS

## Checks Run

1. `rg -n "Version badge maintenance" README.md`
- Result: no matches.
2. `nl -ba README.md | sed -n '1,22p'`
- Result: version badge block remains present at the top of the README.
3. `pytest -q`
- Result: pass (669 passed, 18 skipped).
4. `ruff check src/`
- Result: pass.
5. `mypy src/`
- Result: pass.
6. `pytest --cov`
- Result: pass; total coverage 90.92% (>=90%).

## Acceptance Criteria Mapping

- [x] `README.md` no longer contains the exact string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).`
- [x] Version badge remains visible and functional after removing the maintenance note.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## REVIEW REPORT — P1-T7 README Badge Maintenance Note

**Scope:** 63c45e8..fde1dac
**Files:** 7

### Summary Verdict
- [x] Approve
- [ ] Approve with comments
- [ ] Request changes
- [ ] Block

### Critical Issues
- None.

### Secondary Issues
- None.

### Architectural Notes
- Change is documentation-only and intentionally does not alter badge automation tooling.
- Task lifecycle artifacts (PRD + validation report) were archived in a dedicated task folder.

### Tests
- `pytest -q` passed (669 passed, 18 skipped).
- `ruff check src/` passed.
- `mypy src/` passed.
- `pytest --cov` passed with 90.92% total coverage.

### Next Steps
- No actionable follow-up items identified.
4 changes: 2 additions & 2 deletions SPECS/INPROGRESS/next.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# No Active Task

**Status:** Idle — P1-T4 archived. Select the next task from `SPECS/Workplan.md`.
**Status:** Idle — P1-T7 archived. Select the next task from `SPECS/Workplan.md`.

## Recently Archived

- **P1-T7** — Hide README version badge maintenance note (2026-03-01, PASS)
- **P1-T4** — Update docs to reflect broker robustness improvements (2026-03-01, PASS)
- **P2-T5** — Warn or restart daemon when --web-ui requested but running broker lacks it (2026-03-01, PASS)
- **P2-T4** — Surface broker unavailability as JSON-RPC error instead of silent timeout (2026-03-01, PASS)
- **P2-T3** — Fix double-spawn race condition when MCP client toggles rapidly (2026-03-01, PASS)
- **P2-T1** — Replace --broker-spawn/--broker-connect with single --broker flag (2026-03-01, PASS)
- **P2-T2** — Self-healing stale socket and PID file recovery (2026-03-01, PASS)
12 changes: 12 additions & 0 deletions SPECS/Workplan.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,18 @@ Add new tasks using the canonical template in [TASK_TEMPLATE.md](TASK_TEMPLATE.m
- [ ] DocC mirror updated to match
- [ ] `make doccheck-all` passes

#### ✅ P1-T7: Hide README version badge maintenance note
- **Status:** ✅ Completed (2026-03-01)
- **Description:** Hid from `README.md` the string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` while preserving the visible version badge.
- **Priority:** P3
- **Dependencies:** none
- **Parallelizable:** yes
- **Outputs/Artifacts:**
- `README.md` — maintenance note string removed from badge area
- **Acceptance Criteria:**
- [x] `README.md` no longer contains the exact string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).`
- [x] Version badge remains visible and functional after removing the maintenance note

### Phase 2: Broker Robustness

#### ✅ P2-T1: Replace --broker-spawn/--broker-connect with single --broker flag
Expand Down
5 changes: 2 additions & 3 deletions Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# ``XcodeMCPWrapper``

A Python wrapper that enables external AI agents to connect to Xcode via the Model Context Protocol (MCP).
A Python wrapper that enables external AI agents to connect to Xcode via the
Model Context Protocol (MCP).

## Source Code

Expand All @@ -10,8 +11,6 @@ A Python wrapper that enables external AI agents to connect to Xcode via the Mod
[![Version](https://img.shields.io/badge/version-0.3.3-blue.svg)](https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.3.3)
<!-- version-badge:end -->

Version badge maintenance: run `make badge-version` (or `make badge-version-check` in CI).

## Overview

Xcode 26.3+ includes an MCP bridge (`xcrun mcpbridge`) that exposes Xcode's internal capabilities to MCP clients. However, it has a protocol compatibility issue that prevents it from working with strict MCP spec followers like Cursor.
Expand Down