Skip to content

Restructure and improve docs#162

Merged
cameroncooke merged 1 commit intomainfrom
docs_refactor
Jan 5, 2026
Merged

Restructure and improve docs#162
cameroncooke merged 1 commit intomainfrom
docs_refactor

Conversation

@cameroncooke
Copy link
Owner

@cameroncooke cameroncooke commented Jan 5, 2026

Note

Overhauls documentation structure with clear user and developer guides, expanded tooling references, and Reloaderoo integration, without changing runtime code.

  • Adds AGENTS.md with project overview, commands, architecture, testing philosophy, TypeScript import standards, and release process
  • Updates README.md with streamlined Smithery install, requirements, notes, privacy, and consolidated docs links
  • Introduces user docs: GETTING_STARTED.md, CONFIGURATION.md, SESSION_DEFAULTS.md, PRIVACY.md, TROUBLESHOOTING.md, DEVICE_CODE_SIGNING.md, DEMOS.md, OVERVIEW.md
  • Creates developer docs hub docs/README.md and deep dives: ARCHITECTURE.md, PLUGIN_DEVELOPMENT.md, CONTRIBUTING.md, CODE_QUALITY.md, ESLINT_TYPE_SAFETY.md, MANUAL_TESTING.md, NODEJS_2025.md, RELEASE_PROCESS.md, Smithery notes, and multiple Reloaderoo guides
  • Documents plugin/resource auto-discovery, DI testing (no Vitest mocking), focused facades import pattern, session-aware defaults, and MCP resources
  • Notes generated docs: TOOLS.md maintained via script

Written by Cursor Bugbot for commit 4f67ce6. This will update automatically on new commits. Configure here.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Jan 5, 2026

Open in StackBlitz

npm i https://pkg.pr.new/cameroncooke/XcodeBuildMCP/xcodebuildmcp@162

commit: 4f67ce6

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 5, 2026

Walkthrough

This pull request restructures and expands the project's documentation. It reorganises documentation files into a new docs/ directory structure with separate user and developer sections. New user-facing documentation covers getting started, configuration, device code signing, session defaults, troubleshooting, privacy, and demos. The primary README is updated with new sections, whilst README-ext.md is deleted. Developer documentation is reorganised into a docs/dev/ subdirectory with an index. Minor code changes update documentation reference paths in error messages, script headers, and configuration files. The .smithery/index.cjs file receives licence information updates. No functional logic or public API signatures are modified.

Pre-merge checks

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 13.33% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Restructure and improve docs' accurately describes the main objective of the pull request, which involves comprehensive documentation reorganisation and enhancement.
Description check ✅ Passed The description is directly related to the changeset, detailing the specific documentation additions, updates, and restructuring efforts across multiple files and sections.

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.

@cameroncooke cameroncooke merged commit 3d8e91d into main Jan 5, 2026
7 of 8 checks passed
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 7

Fix all issues with AI Agents 🤖
In @docs/CONFIGURATION.md:
- Around line 38-40: Add a comma before "and" in the compound sentence on the
line that reads "Incremental builds are highly experimental and your mileage may
vary" so it becomes "Incremental builds are highly experimental, and your
mileage may vary." Ensure the updated sentence is inside the same [!IMPORTANT]
admonition block shown in the diff.

In @docs/DEMOS.md:
- Around line 9-10: Wrap the bare URL
"https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086"
in a markdown link so it no longer appears as a raw URL (e.g., replace the bare
URL on the "## Building and running iOS app in Claude Desktop" line with a
markdown link text and the same URL as the target).

In @docs/dev/README.md:
- Line 26: Replace the non-hyphenated "todo" in the markdown link text with the
hyphenated noun form "to-do" so the line reads "[Session-aware migration
to-do](session-aware-migration-todo.md) — update the link text only, leaving the
target filename session-aware-migration-todo.md unchanged.

In @docs/GETTING_STARTED.md:
- Around line 15-16: Change the heading text "One click install" to the
hyphenated modifier form "One-click install" in the docs; update the heading
string in the GETTING_STARTED.md content (the "### One click install" line) to
"### One-click install" so the modifier is correctly hyphenated.
- Around line 55-56: The markdown contains a bare URL
"https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers"
which violates MD034; replace the bare URL with a markdown link by wrapping it
in square brackets with descriptive text and the URL in parentheses (e.g.,
[OpenAI Codex configuration
docs](https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers))
so the link is not bare and remains readable.

In @docs/TROUBLESHOOTING.md:
- Around line 23-25: Fix the grammar in the sentence "You can also ask you agent
to run the doctor tool which will provide a more representative output." by
replacing "you" with "your" and adding a comma after "agent" so it reads: "You
can also ask your agent to run the doctor tool, which will provide a more
representative output."

In @README.md:
- Around line 80-102: In the "Notes" bullet that currently reads "Device tools
require code signing to be configured in Xcode. See
[docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md)." replace the period
with a comma and lowercase "See" so it reads "Device tools require code signing
to be configured in Xcode, see
[docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md)." to correct the
grammar.
🧹 Nitpick comments (1)
docs/OVERVIEW.md (1)

3-3: Add comma before "so" in compound sentence.

Line 3 contains two independent clauses connected by "so"; a comma is needed before the conjunction. This follows standard English punctuation rules for compound sentences.

-XcodeBuildMCP is a Model Context Protocol (MCP) server that exposes Xcode operations as tools and resources for AI assistants and other MCP clients. It uses a plugin-based architecture with workflow groups so clients can access Xcode projects, simulators, devices, and Swift packages through a standard interface.
+XcodeBuildMCP is a Model Context Protocol (MCP) server that exposes Xcode operations as tools and resources for AI assistants and other MCP clients. It uses a plugin-based architecture with workflow groups, so clients can access Xcode projects, simulators, devices, and Swift packages through a standard interface.
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 639f6c7 and 4f67ce6.

📒 Files selected for processing (33)
  • .smithery/index.cjs
  • AGENTS.md
  • README-ext.md
  • README.md
  • docs/CONFIGURATION.md
  • docs/DEMOS.md
  • docs/DEVICE_CODE_SIGNING.md
  • docs/GETTING_STARTED.md
  • docs/OVERVIEW.md
  • docs/PRIVACY.md
  • docs/README.md
  • docs/SESSION_DEFAULTS.md
  • docs/TROUBLESHOOTING.md
  • docs/dev/ARCHITECTURE.md
  • docs/dev/CODE_QUALITY.md
  • docs/dev/CONTRIBUTING.md
  • docs/dev/ESLINT_TYPE_SAFETY.md
  • docs/dev/MANUAL_TESTING.md
  • docs/dev/NODEJS_2025.md
  • docs/dev/PLUGIN_DEVELOPMENT.md
  • docs/dev/README.md
  • docs/dev/RELEASE_PROCESS.md
  • docs/dev/RELOADEROO.md
  • docs/dev/RELOADEROO_FOR_XCODEBUILDMCP.md
  • docs/dev/RELOADEROO_XCODEBUILDMCP_PRIMER.md
  • docs/dev/SMITHERY.md
  • docs/dev/TESTING.md
  • docs/dev/TEST_RUNNER_ENV_IMPLEMENTATION_PLAN.md
  • docs/dev/ZOD_MIGRATION_GUIDE.md
  • docs/dev/session-aware-migration-todo.md
  • docs/dev/session_management_plan.md
  • scripts/check-code-patterns.js
  • src/utils/command.ts
💤 Files with no reviewable changes (1)
  • README-ext.md
🧰 Additional context used
📓 Path-based instructions (1)
**/*.ts

📄 CodeRabbit inference engine (AGENTS.md)

**/*.ts: Use .ts file extensions for all relative imports of internal TypeScript files (e.g., import { tool } from './tool.ts')
Use .ts extensions for re-exports from internal modules (e.g., export { default } from '../shared/tool.ts')
Use .js extensions only for external package imports (e.g., import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js')
Never use .js extensions for imports of internal TypeScript files

Files:

  • src/utils/command.ts
🧠 Learnings (13)
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Create new tools by adding files to the appropriate tool directory - they will be automatically loaded and exposed to MCP clients through the plugin-based architecture

Applied to files:

  • AGENTS.md
  • docs/dev/ARCHITECTURE.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Create new resources by adding files to the appropriate resource directory - they will be automatically loaded and exposed to MCP clients through the plugin-based architecture

Applied to files:

  • AGENTS.md
  • docs/dev/ARCHITECTURE.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Applies to **/*.test.ts : Do NOT use Vitest mocking utilities (vi.mock(), vi.fn(), vi.spyOn(), etc.) - use Dependency Injection with injectable executors instead

Applied to files:

  • AGENTS.md
  • docs/dev/ARCHITECTURE.md
  • src/utils/command.ts
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Applies to **/*.test.ts : Import core Logic functions from tool files and pass mock executors (createMockExecutor or createMockFileSystemExecutor) to simulate different outcomes

Applied to files:

  • AGENTS.md
  • src/utils/command.ts
  • .smithery/index.cjs
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Applies to **/*.ts : Never use `.js` extensions for imports of internal TypeScript files

Applied to files:

  • AGENTS.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Applies to **/*.ts : Use `.js` extensions only for external package imports (e.g., `import { McpServer } from 'modelcontextprotocol/sdk/server/mcp.js'`)

Applied to files:

  • AGENTS.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Applies to **/*.ts : Use `.ts` file extensions for all relative imports of internal TypeScript files (e.g., `import { tool } from './tool.ts'`)

Applied to files:

  • AGENTS.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Applies to **/*.ts : Use `.ts` extensions for re-exports from internal modules (e.g., `export { default } from '../shared/tool.ts'`)

Applied to files:

  • AGENTS.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Follow standardized development workflow with feature branches, structured pull requests, and linear commit history - never push to main directly or force push without permission

Applied to files:

  • AGENTS.md
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Set XCODEBUILDMCP_ENABLED_WORKFLOWS environment variable to a comma-separated list of workflow directory names to limit the toolset (e.g., 'simulator,project-discovery'). The 'session-management' workflow is always auto-included

Applied to files:

  • docs/SESSION_DEFAULTS.md
  • docs/OVERVIEW.md
  • docs/TROUBLESHOOTING.md
  • docs/README.md
  • docs/CONFIGURATION.md
📚 Learning: 2025-07-22T19:54:12.588Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: example_projects/iOS/.cursor/rules/errors.mdc:0-0
Timestamp: 2025-07-22T19:54:12.588Z
Learning: Please don't fix any code errors unless reported by XcodeBuildMCP server tool responses.

Applied to files:

  • docs/TROUBLESHOOTING.md
  • docs/README.md
  • docs/dev/CONTRIBUTING.md
  • docs/dev/MANUAL_TESTING.md
  • docs/PRIVACY.md
  • scripts/check-code-patterns.js
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Use CommandExecutor for handling external shell command interactions in tools and tests

Applied to files:

  • src/utils/command.ts
📚 Learning: 2025-12-31T21:42:22.713Z
Learnt from: CR
Repo: cameroncooke/XcodeBuildMCP PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-31T21:42:22.713Z
Learning: Use FileSystemExecutor for handling file system operations in tools and tests

Applied to files:

  • src/utils/command.ts
🪛 LanguageTool
docs/dev/README.md

[grammar] ~26-~26: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...ent_plan.md) - Session-aware migration todo

(TO_DO_HYPHEN)

docs/DEMOS.md

[style] ~6-~6: Would you like to use the Oxford spelling “Utilizing”? The spelling ‘Utilising’ is also correct.
Context: ...3e6450-8743-4379-a76c-de2dd2b678a3) ## Utilising the new UI automation and screen captur...

(OXFORD_SPELLING_Z_NOT_S)

AGENTS.md

[uncategorized] ~119-~119: Possible missing comma found.
Context: ...d and exposed to MCP clients. For more information see @docs/dev/PLUGIN_DEVELOPMENT.md ##...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~123-~123: In the grammatical structure ‘pronoun + be/get + used + to + verb’, the verb ‘used’ is used with the gerund.
Context: ...y to interact with the server. They are used to provide data to tools and are organized into di...

(ADMIT_ENJOY_VB)


[uncategorized] ~125-~125: Possible missing comma found.
Context: ...d and exposed to MCP clients. For more information see @docs/dev/PLUGIN_DEVELOPMENT.md ##...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~144-~144: Possible missing comma found.
Context: ...ed interfaces and Zod schemas For more information see @docs/dev/ARCHITECTURE.md ## Testi...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/OVERVIEW.md

[uncategorized] ~3-~3: Use a comma before ‘so’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...-based architecture with workflow groups so clients can access Xcode projects, simu...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~20-~20: Possible missing preposition found.
Context: ... TOOLS.md. ## Next steps - Get started: [GETTING_STARTED.md](GETTING_S...

(AI_HYDRA_LEO_MISSING_TO)

docs/TROUBLESHOOTING.md

[grammar] ~9-~9: The singular proper name ‘Doctor’ must be used with a third-person or a past tense verb.
Context: ...vailability and permissions. ## Doctor tool The doctor tool checks system configura...

(HE_VERB_AGR)


[uncategorized] ~24-~24: “you” seems less likely than “your” (belonging to you).
Context: ...ty status > [!NOTE] > You can also ask you agent to run the doctor tool which will...

(AI_HYDRA_LEO_CP_YOU_YOUR)


[uncategorized] ~24-~24: Possible missing comma found.
Context: ...an also ask you agent to run the doctor tool which will provide a more representativ...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/DEVICE_CODE_SIGNING.md

[grammar] ~17-~17: It seems that the correct verb form here is “tool”.
Context: ...gning automatically. ## Related docs - Tools reference: TOOLS.md - Troub...

(AGREEMENT_SENT_START_2)

README.md

[uncategorized] ~93-~93: Possible missing comma found.
Context: ...more information or to opt out of error telemetry see docs/PRIVACY.md....

(AI_HYDRA_LEO_MISSING_COMMA)

docs/GETTING_STARTED.md

[uncategorized] ~15-~15: When ‘One-click’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...ebuildmcp --client client-name ``` ### One click install If you are using Cursor or VS C...

(ONE_CLICK_HYPHEN)


[uncategorized] ~16-~16: Possible missing comma found.
Context: ...k install If you are using Cursor or VS Code you can use the quick install links bel...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~16-~16: The word ‘install’ is not a noun.
Context: ...Cursor or VS Code you can use the quick install links below. [![Install MCP Server](ht...

(A_INSTALL)


[uncategorized] ~55-~55: Possible missing comma found.
Context: ...ml tool_timeout_sec = 600 ``` For more info see the OpenAI Codex configuration docs...

(AI_HYDRA_LEO_MISSING_COMMA)

docs/CONFIGURATION.md

[uncategorized] ~40-~40: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...cremental builds are highly experimental and your mileage may vary. Please report is...

(COMMA_COMPOUND_SENTENCE_2)

🪛 markdownlint-cli2 (0.18.1)
docs/DEMOS.md

10-10: Bare URL used

(MD034, no-bare-urls)

docs/GETTING_STARTED.md

56-56: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (25)
docs/dev/session-aware-migration-todo.md (1)

5-5: Improve documentation navigability with Markdown hyperlink.

Converting the reference to a proper Markdown hyperlink enhances readability and allows readers to navigate directly to the related documentation. The target file session_management_plan.md is present in the docs/dev/ directory, so the link functions correctly.

docs/dev/MANUAL_TESTING.md (2)

280-280: Optional feature documentation placement is clear.

Line 280 appropriately adds the AXe video capture setup as an optional prerequisite with a helpful note that it is not required for unit tests.


748-750: Final summary sentence is clear and complete.

The concluding sentence in the manual testing process now ends with "exclusively" as updated, reinforcing the black-box testing principle and providing a proper conclusion to the comprehensive testing guide.

docs/dev/CODE_QUALITY.md (1)

38-38: Documentation reference updated to reflect new doc structure.

Line 38 correctly updates the reference from ESLINT_RULES.md to ESLINT_TYPE_SAFETY.md, which aligns with the PR's documentation restructuring. This change should be verified to ensure the target file exists in the new location.

Please confirm that ESLINT_TYPE_SAFETY.md exists at docs/dev/ESLINT_TYPE_SAFETY.md and that no other files in the codebase still reference the old ESLINT_RULES.md location.

scripts/check-code-patterns.js (2)

20-20: Documentation path reference correctly updated.

Line 20 updates the path reference from docs/CODE_QUALITY.md to docs/dev/CODE_QUALITY.md to match the new documentation structure. This maintains consistency with the new docs organisation across the PR.

Verify that no other path references to the old documentation location remain in this file or that all such references have been updated consistently throughout the PR.


813-813: Proper file termination with newline added.

Line 813 now includes a newline after the main(); call, which is a standard best practice for file endings in both POSIX conventions and many linters.

docs/TROUBLESHOOTING.md (1)

1-37: Well-structured troubleshooting guide.

The document provides clear, actionable guidance with good cross-references to related documentation and the doctor tool. The structure (quick triage → doctor tool details → common issues → related docs) follows best practices for troubleshooting documentation.

docs/dev/PLUGIN_DEVELOPMENT.md (2)

1-100: Comprehensive and well-organised plugin development guide.

The document provides clear, step-by-step guidance covering tool creation, workflow groups, resources, testing patterns, and development workflows. Code examples are practical and follow established patterns. The emphasis on dependency injection and the ban on Vitest mocking aligns with the project's testing architecture. The section on "Updating TOOLS.md Documentation" (lines 672–760) particularly strengthens developer accountability for maintaining documentation accuracy.


672-760: Path references in the documentation are correct. The relative path ../TOOLS.md from docs/dev/PLUGIN_DEVELOPMENT.md properly resolves to docs/TOOLS.md, which exists at the expected location in the repository structure.

docs/dev/ARCHITECTURE.md (2)

1-556: Excellent architecture documentation with clear design principles.

The document provides a thorough overview of XcodeBuildMCP's architecture, covering runtime flow, core design principles (plugin autonomy, pure functions, type safety), module organisation with the focused facades pattern, tool naming conventions, and testing architecture. The emphasis on dependency injection and the ban on Vitest mocking is clearly documented and consistent with the actual testing requirements. Code examples are practical and follow established patterns. The section on tool naming conventions and the glossary (lines 364–400) particularly aids both developers and users in understanding the tool ecosystem.


265-265: All referenced documentation files exist and are correctly linked.

The files PLUGIN_DEVELOPMENT.md and TESTING.md exist at docs/dev/ as referenced in lines 265, 414, and 502 of ARCHITECTURE.md.

src/utils/command.ts (1)

206-206: Documentation paths updated to align with dev-docs restructuring.

The error message paths correctly reference docs/dev/TESTING.md to guide developers to the new documentation location. This aligns with the PR's broader documentation restructuring.

Also applies to: 223-223

docs/dev/README.md (1)

1-26: Well-structured developer documentation index.

The new docs/dev/README.md provides clear navigation with four well-organised sections covering contributor onboarding, tooling, release processes, and technical deep dives. The document successfully consolidates the scattered developer documentation into a unified index.

AGENTS.md (1)

107-107: Documentation reference paths updated for dev-docs restructuring.

All references to developer documentation have been correctly updated from @docs/ paths to @docs/dev/ paths, maintaining consistency with the new documentation directory structure. This ensures AI assistants receive accurate guidance references.

Also applies to: 119-119, 125-125, 144-144, 158-158, 192-192

docs/DEVICE_CODE_SIGNING.md (1)

1-18: Well-structured device code signing documentation.

The setup instructions are clear and actionable, with appropriate scope boundaries (cannot auto-configure signing, can build/install/launch/test after signing is set). The related links provide good navigation to complementary docs.

docs/dev/CONTRIBUTING.md (4)

254-273: Verify relative path targets for PLUGIN_DEVELOPMENT.md.

Lines 256 and 273 reference PLUGIN_DEVELOPMENT.md without a path component. This assumes the file exists at docs/dev/PLUGIN_DEVELOPMENT.md. Confirm the file is located at this path, or adjust the relative path accordingly (e.g., ../PLUGIN_DEVELOPMENT.md if the file is at docs/PLUGIN_DEVELOPMENT.md).


200-214: Approve architecture and code standards section.

The path adjustments to reference CLAUDE.md, TOOLS.md, and CONFIGURATION.md are correct for the docs/dev/ location. The code quality requirements and TypeScript standards are well-defined and appropriate.


335-350: Well-documented submission and testing workflow.

The pre-commit checklist and submission guidelines are comprehensive and appropriately mandatory. The emphasis on building, testing, and documentation updates aligns with the project's quality standards.


218-226: No action required — relative paths are correct.

The file locations have been verified: both TESTING.md and PLUGIN_DEVELOPMENT.md exist in the docs/dev/ directory, so the relative path references at lines 218 and 226 are correct and will not break.

.smithery/index.cjs (2)

44-44: Documentation reference is correct and properly configured.

The file docs/dev/TESTING.md exists and contains comprehensive testing guidelines including sections on testing philosophy, test architecture, dependency injection strategy, and test patterns. The error messages at lines 44 and 48 correctly reference this documentation to guide developers on proper testing patterns, particularly regarding mock executor usage.


41-50: File is auto-generated by the Smithery build tool.

The .smithery/index.cjs file is generated by the npx smithery build command (defined in package.json scripts) and should not be hand-edited. The minification and variable naming are expected output from the Smithery bundler. If changes are needed, update the source configuration and regenerate this file by running npm run build.

docs/README.md (1)

1-26: Excellent documentation index structure.

The reorganisation creates a clear, user-friendly entry point with logical grouping (Start here → User guides → Developer docs). The separation of essential workflows from user guides is sensible, and the relative links support discoverability across the new docs/ directory.

docs/SESSION_DEFAULTS.md (1)

1-26: Clear explanation of session-aware defaults.

Well-structured documentation covering the mechanism, usage workflow, opt-out path, and rationale. The JSON example effectively demonstrates the configuration, and cross-references to related documentation support discoverability.

docs/CONFIGURATION.md (1)

1-57: Comprehensive and well-structured configuration documentation.

The documentation effectively covers environment variable configuration, provides a practical JSON example, and clearly enumerates all available workflows. The explanation of session-aware defaults and opt-out mechanisms is thorough, and cross-references support discovery of related configuration options.

docs/PRIVACY.md (1)

1-20: Well-structured privacy documentation.

This file clearly explains the Sentry monitoring approach, what data is collected, and provides straightforward opt-out instructions. The related docs section appropriately directs users to configuration and troubleshooting resources.

Comment on lines +38 to +40

> [!IMPORTANT]
> Incremental builds are highly experimental and your mileage may vary. Please report issues to the [issue tracker](https://github.com/cameroncooke/XcodeBuildMCP/issues).
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add comma in compound sentence (line 40).

Line 40 contains a compound sentence that requires a comma before "and": "Incremental builds are highly experimental and your mileage may vary" should read "Incremental builds are highly experimental, and your mileage may vary."

🔎 Proposed fix
- > Incremental builds are highly experimental and your mileage may vary. Please report issues to the [issue tracker](https://github.com/cameroncooke/XcodeBuildMCP/issues).
+ > Incremental builds are highly experimental, and your mileage may vary. Please report issues to the [issue tracker](https://github.com/cameroncooke/XcodeBuildMCP/issues).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> [!IMPORTANT]
> Incremental builds are highly experimental and your mileage may vary. Please report issues to the [issue tracker](https://github.com/cameroncooke/XcodeBuildMCP/issues).
> [!IMPORTANT]
> Incremental builds are highly experimental, and your mileage may vary. Please report issues to the [issue tracker](https://github.com/cameroncooke/XcodeBuildMCP/issues).
🧰 Tools
🪛 LanguageTool

[uncategorized] ~40-~40: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...cremental builds are highly experimental and your mileage may vary. Please report is...

(COMMA_COMPOUND_SENTENCE_2)

🤖 Prompt for AI Agents
In @docs/CONFIGURATION.md around lines 38-40, Add a comma before "and" in the
compound sentence on the line that reads "Incremental builds are highly
experimental and your mileage may vary" so it becomes "Incremental builds are
highly experimental, and your mileage may vary." Ensure the updated sentence is
inside the same [!IMPORTANT] admonition block shown in the diff.

Comment on lines +9 to +10
## Building and running iOS app in Claude Desktop
https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Wrap the bare URL in a markdown link.

Line 10 contains a bare URL which violates markdown best practices (MD034). Wrap it in a markdown link for consistency with the rest of the file.

 ## Building and running iOS app in Claude Desktop
-https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086
+[Video: Building and running iOS app in Claude Desktop](https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Building and running iOS app in Claude Desktop
https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086
## Building and running iOS app in Claude Desktop
[Video: Building and running iOS app in Claude Desktop](https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

10-10: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In @docs/DEMOS.md around lines 9-10, Wrap the bare URL
"https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086"
in a markdown link so it no longer appears as a raw URL (e.g., replace the bare
URL on the "## Building and running iOS app in Claude Desktop" line with a
markdown link text and the same URL as the target).

- [Zod migration guide](ZOD_MIGRATION_GUIDE.md)
- [Test runner env plan](TEST_RUNNER_ENV_IMPLEMENTATION_PLAN.md)
- [Session management plan](session_management_plan.md)
- [Session-aware migration todo](session-aware-migration-todo.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix hyphenation in "to-do" noun form.

Line 26 should use the hyphenated form "to-do" (noun) rather than "todo" for grammatical correctness.

🔎 Proposed fix
-  [Session-aware migration todo](session-aware-migration-todo.md)
+  [Session-aware migration to-do](session-aware-migration-todo.md)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- [Session-aware migration todo](session-aware-migration-todo.md)
- [Session-aware migration to-do](session-aware-migration-todo.md)
🧰 Tools
🪛 LanguageTool

[grammar] ~26-~26: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...ent_plan.md) - Session-aware migration todo

(TO_DO_HYPHEN)

🤖 Prompt for AI Agents
In @docs/dev/README.md around line 26, Replace the non-hyphenated "todo" in the
markdown link text with the hyphenated noun form "to-do" so the line reads
"[Session-aware migration to-do](session-aware-migration-todo.md) — update the
link text only, leaving the target filename session-aware-migration-todo.md
unchanged.

Comment on lines +15 to +16
### One click install
If you are using Cursor or VS Code you can use the quick install links below.
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add hyphen to "One-click install".

Line 15 should use the hyphenated form "One-click install" when used as a modifier.

-### One click install
+### One-click install
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### One click install
If you are using Cursor or VS Code you can use the quick install links below.
### One-click install
If you are using Cursor or VS Code you can use the quick install links below.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~15-~15: When ‘One-click’ is used as a modifier, it is usually spelled with a hyphen.
Context: ...ebuildmcp --client client-name ``` ### One click install If you are using Cursor or VS C...

(ONE_CLICK_HYPHEN)


[uncategorized] ~16-~16: Possible missing comma found.
Context: ...k install If you are using Cursor or VS Code you can use the quick install links bel...

(AI_HYDRA_LEO_MISSING_COMMA)


[grammar] ~16-~16: The word ‘install’ is not a noun.
Context: ...Cursor or VS Code you can use the quick install links below. [![Install MCP Server](ht...

(A_INSTALL)

🤖 Prompt for AI Agents
In @docs/GETTING_STARTED.md around lines 15-16, Change the heading text "One
click install" to the hyphenated modifier form "One-click install" in the docs;
update the heading string in the GETTING_STARTED.md content (the "### One click
install" line) to "### One-click install" so the modifier is correctly
hyphenated.

Comment on lines +55 to +56
For more info see the OpenAI Codex configuration docs:
https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Wrap the bare URL in a markdown link.

Line 56 contains a bare URL which violates markdown best practices (MD034). Wrap it in a markdown link for consistency with the file.

 For more info see the OpenAI Codex configuration docs:
-https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers
+[OpenAI Codex MCP Server Configuration](https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
For more info see the OpenAI Codex configuration docs:
https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers
For more info see the OpenAI Codex configuration docs:
[OpenAI Codex MCP Server Configuration](https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~55-~55: Possible missing comma found.
Context: ...ml tool_timeout_sec = 600 ``` For more info see the OpenAI Codex configuration docs...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 markdownlint-cli2 (0.18.1)

56-56: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In @docs/GETTING_STARTED.md around lines 55-56, The markdown contains a bare URL
"https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers"
which violates MD034; replace the bare URL with a markdown link by wrapping it
in square brackets with descriptive text and the URL in parentheses (e.g.,
[OpenAI Codex configuration
docs](https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers))
so the link is not bare and remains readable.

Comment on lines +23 to +25
> [!NOTE]
> You can also ask you agent to run the doctor tool which will provide a more representative output.

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Correct grammar on line 24.

Line 24 contains two grammar errors: "you" should be "your", and a comma is needed after "agent".

🔎 Proposed fix
- > You can also ask you agent to run the doctor tool which will provide a more representative output.
+ > You can also ask your agent to run the doctor tool, which will provide a more representative output.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> [!NOTE]
> You can also ask you agent to run the doctor tool which will provide a more representative output.
> [!NOTE]
> You can also ask your agent to run the doctor tool, which will provide a more representative output.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~24-~24: “you” seems less likely than “your” (belonging to you).
Context: ...ty status > [!NOTE] > You can also ask you agent to run the doctor tool which will...

(AI_HYDRA_LEO_CP_YOU_YOUR)


[uncategorized] ~24-~24: Possible missing comma found.
Context: ...an also ask you agent to run the doctor tool which will provide a more representativ...

(AI_HYDRA_LEO_MISSING_COMMA)

🤖 Prompt for AI Agents
In @docs/TROUBLESHOOTING.md around lines 23-25, Fix the grammar in the sentence
"You can also ask you agent to run the doctor tool which will provide a more
representative output." by replacing "you" with "your" and adding a comma after
"agent" so it reads: "You can also ask your agent to run the doctor tool, which
will provide a more representative output."

Comment on lines +80 to +102
## Requirements

## View the full Readme
- macOS 14.5 or later
- Xcode 16.x or later
- Node.js 18.x or later

To read the full Readme with manual installation instructions, configuration options, feature list and demos click the link below.
## Notes

[View the full Readme](README-ext.md)
- XcodeBuildMCP requests xcodebuild to skip macro validation to avoid errors when building projects that use Swift Macros.
- Device tools require code signing to be configured in Xcode. See [docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md).

## Privacy

XcodeBuildMCP uses Sentry for error telemetry. For more information or to opt out of error telemetry see [docs/PRIVACY.md](docs/PRIVACY.md).

## Documentation

- Getting started: [docs/GETTING_STARTED.md](docs/GETTING_STARTED.md)
- Configuration and options: [docs/CONFIGURATION.md](docs/CONFIGURATION.md)
- Tools reference: [docs/TOOLS.md](docs/TOOLS.md)
- Troubleshooting: [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)
- Privacy: [docs/PRIVACY.md](docs/PRIVACY.md)
- Contributing: [docs/dev/CONTRIBUTING.md](docs/dev/CONTRIBUTING.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

# First, check the README.md file at line 93 to confirm the grammar issue
sed -n '80,102p' README.md

Repository: cameroncooke/XcodeBuildMCP

Length of output: 969


🏁 Script executed:

# Verify existence of all referenced documentation files
files=(
  "docs/GETTING_STARTED.md"
  "docs/CONFIGURATION.md"
  "docs/TOOLS.md"
  "docs/TROUBLESHOOTING.md"
  "docs/PRIVACY.md"
  "docs/DEVICE_CODE_SIGNING.md"
  "docs/dev/CONTRIBUTING.md"
)

echo "Checking for documentation files..."
for file in "${files[@]}"; do
  if [ -f "$file" ]; then
    echo "✅ Found: $file"
  else
    echo "❌ Missing: $file"
  fi
done

Repository: cameroncooke/XcodeBuildMCP

Length of output: 321


Add missing comma for proper grammar on line 93.

The documentation restructuring is well-organised, and all referenced files are present. However, line 93 requires a minor grammar correction:

Grammar fix
- XcodeBuildMCP uses Sentry for error telemetry. For more information or to opt out of error telemetry see [docs/PRIVACY.md](docs/PRIVACY.md).
+ XcodeBuildMCP uses Sentry for error telemetry. For more information or to opt out of error telemetry, see [docs/PRIVACY.md](docs/PRIVACY.md).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Requirements
## View the full Readme
- macOS 14.5 or later
- Xcode 16.x or later
- Node.js 18.x or later
To read the full Readme with manual installation instructions, configuration options, feature list and demos click the link below.
## Notes
[View the full Readme](README-ext.md)
- XcodeBuildMCP requests xcodebuild to skip macro validation to avoid errors when building projects that use Swift Macros.
- Device tools require code signing to be configured in Xcode. See [docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md).
## Privacy
XcodeBuildMCP uses Sentry for error telemetry. For more information or to opt out of error telemetry see [docs/PRIVACY.md](docs/PRIVACY.md).
## Documentation
- Getting started: [docs/GETTING_STARTED.md](docs/GETTING_STARTED.md)
- Configuration and options: [docs/CONFIGURATION.md](docs/CONFIGURATION.md)
- Tools reference: [docs/TOOLS.md](docs/TOOLS.md)
- Troubleshooting: [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)
- Privacy: [docs/PRIVACY.md](docs/PRIVACY.md)
- Contributing: [docs/dev/CONTRIBUTING.md](docs/dev/CONTRIBUTING.md)
## Requirements
- macOS 14.5 or later
- Xcode 16.x or later
- Node.js 18.x or later
## Notes
- XcodeBuildMCP requests xcodebuild to skip macro validation to avoid errors when building projects that use Swift Macros.
- Device tools require code signing to be configured in Xcode. See [docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md).
## Privacy
XcodeBuildMCP uses Sentry for error telemetry. For more information or to opt out of error telemetry, see [docs/PRIVACY.md](docs/PRIVACY.md).
## Documentation
- Getting started: [docs/GETTING_STARTED.md](docs/GETTING_STARTED.md)
- Configuration and options: [docs/CONFIGURATION.md](docs/CONFIGURATION.md)
- Tools reference: [docs/TOOLS.md](docs/TOOLS.md)
- Troubleshooting: [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)
- Privacy: [docs/PRIVACY.md](docs/PRIVACY.md)
- Contributing: [docs/dev/CONTRIBUTING.md](docs/dev/CONTRIBUTING.md)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~93-~93: Possible missing comma found.
Context: ...more information or to opt out of error telemetry see docs/PRIVACY.md....

(AI_HYDRA_LEO_MISSING_COMMA)

🤖 Prompt for AI Agents
In @README.md around lines 80-102, In the "Notes" bullet that currently reads
"Device tools require code signing to be configured in Xcode. See
[docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md)." replace the period
with a comma and lowercase "See" so it reads "Device tools require code signing
to be configured in Xcode, see
[docs/DEVICE_CODE_SIGNING.md](docs/DEVICE_CODE_SIGNING.md)." to correct the
grammar.

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.

1 participant