Conversation
commit: |
WalkthroughThis pull request restructures and expands the project's documentation. It reorganises documentation files into a new Pre-merge checks❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
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. Comment |
There was a problem hiding this comment.
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
📒 Files selected for processing (33)
.smithery/index.cjsAGENTS.mdREADME-ext.mdREADME.mddocs/CONFIGURATION.mddocs/DEMOS.mddocs/DEVICE_CODE_SIGNING.mddocs/GETTING_STARTED.mddocs/OVERVIEW.mddocs/PRIVACY.mddocs/README.mddocs/SESSION_DEFAULTS.mddocs/TROUBLESHOOTING.mddocs/dev/ARCHITECTURE.mddocs/dev/CODE_QUALITY.mddocs/dev/CONTRIBUTING.mddocs/dev/ESLINT_TYPE_SAFETY.mddocs/dev/MANUAL_TESTING.mddocs/dev/NODEJS_2025.mddocs/dev/PLUGIN_DEVELOPMENT.mddocs/dev/README.mddocs/dev/RELEASE_PROCESS.mddocs/dev/RELOADEROO.mddocs/dev/RELOADEROO_FOR_XCODEBUILDMCP.mddocs/dev/RELOADEROO_XCODEBUILDMCP_PRIMER.mddocs/dev/SMITHERY.mddocs/dev/TESTING.mddocs/dev/TEST_RUNNER_ENV_IMPLEMENTATION_PLAN.mddocs/dev/ZOD_MIGRATION_GUIDE.mddocs/dev/session-aware-migration-todo.mddocs/dev/session_management_plan.mdscripts/check-code-patterns.jssrc/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.tsfile extensions for all relative imports of internal TypeScript files (e.g.,import { tool } from './tool.ts')
Use.tsextensions for re-exports from internal modules (e.g.,export { default } from '../shared/tool.ts')
Use.jsextensions only for external package imports (e.g.,import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js')
Never use.jsextensions 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.mddocs/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.mddocs/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.mddocs/dev/ARCHITECTURE.mdsrc/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.mdsrc/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.mddocs/OVERVIEW.mddocs/TROUBLESHOOTING.mddocs/README.mddocs/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.mddocs/README.mddocs/dev/CONTRIBUTING.mddocs/dev/MANUAL_TESTING.mddocs/PRIVACY.mdscripts/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. [
[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.mdis 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.mdtoESLINT_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.mdexists atdocs/dev/ESLINT_TYPE_SAFETY.mdand that no other files in the codebase still reference the oldESLINT_RULES.mdlocation.scripts/check-code-patterns.js (2)
20-20: Documentation path reference correctly updated.Line 20 updates the path reference from
docs/CODE_QUALITY.mdtodocs/dev/CODE_QUALITY.mdto 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.mdfromdocs/dev/PLUGIN_DEVELOPMENT.mdproperly resolves todocs/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.mdandTESTING.mdexist atdocs/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.mdto 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.mdwithout a path component. This assumes the file exists atdocs/dev/PLUGIN_DEVELOPMENT.md. Confirm the file is located at this path, or adjust the relative path accordingly (e.g.,../PLUGIN_DEVELOPMENT.mdif the file is atdocs/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.mdandPLUGIN_DEVELOPMENT.mdexist in thedocs/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.mdexists 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.cjsfile is generated by thenpx smithery buildcommand (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 runningnpm 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.
|
|
||
| > [!IMPORTANT] | ||
| > Incremental builds are highly experimental and your mileage may vary. Please report issues to the [issue tracker](https://github.com/cameroncooke/XcodeBuildMCP/issues). |
There was a problem hiding this comment.
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.
| > [!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.
| ## Building and running iOS app in Claude Desktop | ||
| https://github.com/user-attachments/assets/e3c08d75-8be6-4857-b4d0-9350b26ef086 |
There was a problem hiding this comment.
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.
| ## 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) |
There was a problem hiding this comment.
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.
| - [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.
| ### One click install | ||
| If you are using Cursor or VS Code you can use the quick install links below. |
There was a problem hiding this comment.
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.
| ### 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. [
🤖 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.
| For more info see the OpenAI Codex configuration docs: | ||
| https://github.com/openai/codex/blob/main/docs/config.md#connecting-to-mcp-servers |
There was a problem hiding this comment.
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.
| 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.
| > [!NOTE] | ||
| > You can also ask you agent to run the doctor tool which will provide a more representative output. | ||
|
|
There was a problem hiding this comment.
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.
| > [!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."
| ## 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) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, check the README.md file at line 93 to confirm the grammar issue
sed -n '80,102p' README.mdRepository: 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
doneRepository: 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.
| ## 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.
Note
Overhauls documentation structure with clear user and developer guides, expanded tooling references, and Reloaderoo integration, without changing runtime code.
AGENTS.mdwith project overview, commands, architecture, testing philosophy, TypeScript import standards, and release processREADME.mdwith streamlined Smithery install, requirements, notes, privacy, and consolidated docs linksGETTING_STARTED.md,CONFIGURATION.md,SESSION_DEFAULTS.md,PRIVACY.md,TROUBLESHOOTING.md,DEVICE_CODE_SIGNING.md,DEMOS.md,OVERVIEW.mddocs/README.mdand 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 guidesTOOLS.mdmaintained via scriptWritten by Cursor Bugbot for commit 4f67ce6. This will update automatically on new commits. Configure here.