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
9 changes: 5 additions & 4 deletions .cursor/BUGBOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
XcodeBuildMCP is an MCP server exposing Xcode / Swift workflows as **tools** and **resources**.
Stack: TypeScript · Node.js · plugin-based auto-discovery (`src/mcp/tools`, `src/mcp/resources`).

For full details see [README.md](README.md) and [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md).
For full details see [README.md](README.md) and [Architecture](https://xcodebuildmcp.com/docs/architecture).

---

Expand Down Expand Up @@ -55,8 +55,9 @@ export const handler = (p: FooBarParams) => fooBarLogic(p);

## 4. Documentation Checklist

* `docs/TOOLS.md` must exactly mirror the structure of `src/mcp/tools/**` (exclude `__tests__` and `*-shared`).
*Diff heuristic*: if a PR adds/removes a tool but does **not** change `docs/TOOLS.md` ⇒ **warning**.
* Tool manifests, schemas, and implementations must stay aligned when tools are added, removed, or renamed.
*Diff heuristic*: tool changes without corresponding manifest/schema/fixture updates ⇒ **warning**.
* Public tool docs live at https://xcodebuildmcp.com/docs/tools and are synced from release data; do not require static in-repo tools-doc parity.
* Update public docs when CLI parameters or tool names change.

---
Expand All @@ -76,7 +77,7 @@ export const handler = (p: FooBarParams) => fooBarLogic(p);

1. **External-boundary violations**: confirm tests use injected executors/filesystem for external side effects.
2. **DI compliance**: check direct `child_process` / `fs` imports in MCP tool logic; standalone utilities with simple commands are acceptable.
3. **Docs accuracy**: compare `docs/TOOLS.md` against `src/mcp/tools/**`.
3. **Docs accuracy**: compare tool manifests, schemas, fixtures, and implementation changes; public tool docs are generated at https://xcodebuildmcp.com/docs/tools.
4. **Style**: ensure ESLint and Prettier pass (`npm run lint`, `npm run format:check`).

---
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/tool-authoring-guidance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,15 +76,15 @@ jobs:

${fileList}${hiddenText}

Please review the [Tool Authoring Cookbook](https://github.com/${owner}/${repo}/blob/main/docs/dev/TOOL_AUTHORING_COOKBOOK.md) before merging.
Please review the [Tool Authoring guide](https://xcodebuildmcp.com/docs/tool-authoring) before merging.

Checklist:
- Run \`npm run test:snapshots\` for any added, modified, or deleted tool.
- If fixtures need to change, regenerate them with \`npm run test:snapshots:update\` and review the diff.
- Add, update, or remove the matching MCP, CLI, and JSON fixtures for the changed tool surface.
- Run \`npm run test:schema-fixtures\` after changing structured output schemas or JSON fixtures.
- Keep tool manifests, workflow manifests, output schemas, structured content, generated docs, and fixtures aligned.
- If you changed tool metadata, run \`npm run docs:update\` and \`npm run docs:check\`.
- Keep tool manifests, workflow manifests, output schemas, structured content, and fixtures aligned.
- If you changed tool metadata, run \`npm run docs:check\`.

Snapshot tests are intentionally not a required PR gate because they are slow and environment-sensitive. This reminder exists so contributors know when they need to run them locally for tool additions, changes, and removals.`;

Expand Down
3 changes: 1 addition & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ When reading issues:
- Technical prose only, be kind but direct (e.g., "Thanks @user" not "Thanks so much @user!")

## Docs
- If modifying or adding/removing tools run `npm run docs:update` to update the TOOLS.md file, never edit this file directly.
-
### Changelog
Location: `CHANGELOG.md`
Expand Down Expand Up @@ -61,7 +60,7 @@ Use these sections under `## [Unreleased]`:
- Do NOT just kill the run — first inspect the process tree (`ps -ef | grep -E "vitest|xcodebuild|simctl|devicectl"`) to identify what's stuck.
- Common hang causes: locked physical device, stale simulator state, `devicectl diagnose` waiting for password, orphaned daemon process.
- Capture what you find before killing, so the root cause can be fixed rather than papered over.
- If physical-device snapshot tests hang after the final test summary, the likely cause is Apple post-failure diagnostics invoking `devicectl diagnose`, which may prompt for a macOS password and wedge in automated runs; see `docs/dev/device-snapshot-password-hang-rca.md`.
- If physical-device snapshot tests hang after the final test summary, the likely cause is Apple post-failure diagnostics invoking `devicectl diagnose`, which may prompt for a macOS password and wedge in automated runs.

## **CRITICAL** Tool Usage Rules **CRITICAL**
- NEVER use sed/cat to read a file or a range of a file. Always use the native read tool.
Expand Down
1 change: 0 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ When reading issues:
- Technical prose only, be kind but direct (e.g., "Thanks @user" not "Thanks so much @user!")

## Docs
- If modifying or adding/removing tools run `npm run docs:update` to update the TOOLS.md file, never edit this file directly.
-
### Changelog
Location: `CHANGELOG.md`
Expand Down
27 changes: 0 additions & 27 deletions NEXT_STEPS_MIGRATION_TODO.md

This file was deleted.

Loading
Loading