Skip to content

release: add coverage and Xcode MCP guidance#129

Merged
gaelic-ghost merged 1 commit into
mainfrom
docs/coverage-and-xcode27-mcp
Jul 13, 2026
Merged

release: add coverage and Xcode MCP guidance#129
gaelic-ghost merged 1 commit into
mainfrom
docs/coverage-and-xcode27-mcp

Conversation

@gaelic-ghost

@gaelic-ghost gaelic-ghost commented Jul 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add shared coverage evidence, comparison, artifact, and gating guidance.
  • Document Xcode xcodebuild plus xccov and SwiftPM coverage flows.
  • Record Xcode 27 MCP capability additions without inventing a coverage MCP API.
  • Bump Socket to 9.3.0.

Verification

  • Apple Dev Skills: 243 tests passed.
  • Child documentation validation passed.
  • Root marketplace metadata validation passed.

Summary by CodeRabbit

  • New Features

    • Added comprehensive SwiftPM and Xcode code coverage guidance, including collection, reporting, validation, and comparison practices.
    • Expanded Xcode workflow guidance for beta-era MCP capabilities, simulator interaction, debugging, runtime insights, and localization workflows.
  • Documentation

    • Clarified testing workflows, coverage boundaries, evidence requirements, CLI fallbacks, and MCP tool discovery.
  • Chores

    • Updated the release version across the project and available plugins from 9.2.1 to 9.3.0.
  • Tests

    • Added checks covering SwiftPM coverage documentation, Xcode coverage guidance, and capability-based MCP documentation.

Why:
Document complete Xcode and SwiftPM coverage collection and reporting paths, and align Xcode 27 MCP guidance with Apple's documented capability additions.

Verification:
uv run pytest
bash plugins/apple-dev-skills/.github/scripts/validate_repo_docs.sh
uv run scripts/validate_socket_metadata.py
@gaelic-ghost gaelic-ghost added the documentation Improvements or additions to documentation label Jul 13, 2026
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The change synchronizes plugin and package versions to 9.3.0 and expands Apple development skill documentation with shared coverage policies, SwiftPM and Xcode coverage workflows, Xcode 27 MCP guidance, and tests validating the new documentation.

Changes

Release metadata and Apple workflow guidance

Layer / File(s) Summary
Version metadata synchronization
plugins/*/.codex-plugin/plugin.json, plugins/*/pyproject.toml, pyproject.toml
Plugin manifests and package metadata are updated from 9.2.1 to 9.3.0.
Shared and SwiftPM coverage workflow
plugins/apple-dev-skills/ROADMAP.md, plugins/apple-dev-skills/shared/references/*, plugins/apple-dev-skills/skills/swift-package-testing-workflow/*, plugins/apple-dev-skills/tests/test_swift_package_testing_workflow.py
Adds shared coverage rules, SwiftPM coverage collection and discovery guidance, workflow references, and documentation assertions.
Xcode coverage collection and reporting
plugins/apple-dev-skills/skills/xcode-testing-workflow/*, plugins/apple-dev-skills/tests/test_xcode_testing_workflow.py
Documents Xcode coverage collection through xcodebuild and xccov, CLI fallbacks, comparison and failure boundaries, and the MCP coverage boundary.
Xcode 27 MCP capability guidance
plugins/apple-dev-skills/skills/xcode-coding-intelligence-workflow/*, plugins/apple-dev-skills/tests/test_xcode_coding_intelligence_workflow.py
Adds capability-based Xcode 27 MCP discovery guidance, source evidence, and tests for live-tool-inventory and coverage-boundary wording.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change by highlighting the added coverage and Xcode MCP guidance.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/coverage-and-xcode27-mcp

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.

@gaelic-ghost
gaelic-ghost merged commit cf15816 into main Jul 13, 2026
1 of 2 checks passed
@gaelic-ghost
gaelic-ghost deleted the docs/coverage-and-xcode27-mcp branch July 13, 2026 01:28

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
plugins/apple-dev-skills/tests/test_xcode_coding_intelligence_workflow.py (1)

84-91: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Test the complete coverage boundary, not only its negative wording.

This test would still pass if the documentation removed the xcodebuild/xccov fallback or broadened “live Xcode MCP session” to “live Xcode session.” Add positive assertions for both terms and the MCP-qualified exception.

Proposed assertions
         self.assertIn("discover the live Xcode MCP tool inventory", skill_text)
         self.assertIn("Documented Xcode 27 MCP Additions", evidence_text)
         self.assertIn("do not document a dedicated MCP code-coverage reporting tool", evidence_text)
+        self.assertIn("xcodebuild", skill_text)
+        self.assertIn("xccov", skill_text)
+        self.assertIn("live Xcode MCP session", evidence_text)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/apple-dev-skills/tests/test_xcode_coding_intelligence_workflow.py`
around lines 84 - 91, Update test_xcode27_mcp_additions_stay_capability_based to
assert that the relevant documentation retains both “xcodebuild” and “xccov,”
explicitly references a “live Xcode MCP” session, and preserves the
MCP-qualified exception rather than only checking its negative wording.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/code-coverage.md`:
- Around line 27-31: Clarify the first “Failure Boundaries” bullet so the
missing coverage JSON is considered a collection failure only after running
swift test with --enable-code-coverage. Preserve the existing distinction from
zero coverage and leave the other bullets unchanged.

In
`@plugins/apple-dev-skills/skills/xcode-coding-intelligence-workflow/references/source-evidence.md`:
- Around line 163-167: Update the coverage fallback statement in “Documented
Xcode 27 MCP Additions” to require a documented live Xcode MCP session, not
merely a live Xcode session. Preserve the existing xcodebuild plus xccov
fallback and the restriction against undocumented coverage APIs.

In
`@plugins/apple-dev-skills/skills/xcode-testing-workflow/references/code-coverage.md`:
- Line 36: Update the missing-artifact rule in the coverage guidance so it
applies only when coverage collection is enabled or requested, not to every
successful xcodebuild test run. Preserve the classification for coverage-enabled
runs lacking an .xcresult or readable xccov report.

In `@plugins/apple-dev-skills/skills/xcode-testing-workflow/SKILL.md`:
- Line 10: Update the description of scripts/run_workflow.py in the skill
overview to identify it as the planner for MCP-first workflows, official CLI
fallback planning, and the .pbxproj warning boundary, not as the executor of MCP
tests. Preserve the existing statement that MCP execution remains agent-side and
keep the scope focused on test workflow planning.

---

Nitpick comments:
In `@plugins/apple-dev-skills/tests/test_xcode_coding_intelligence_workflow.py`:
- Around line 84-91: Update test_xcode27_mcp_additions_stay_capability_based to
assert that the relevant documentation retains both “xcodebuild” and “xccov,”
explicitly references a “live Xcode MCP” session, and preserves the
MCP-qualified exception rather than only checking its negative wording.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1099b1bd-d38e-4fe4-919f-cd019ca5ba18

📥 Commits

Reviewing files that changed from the base of the PR and between c74ee9b and 85bf584.

⛔ Files ignored due to path filters (8)
  • plugins/agent-portability-skills/uv.lock is excluded by !**/*.lock
  • plugins/apple-dev-skills/uv.lock is excluded by !**/*.lock
  • plugins/cardhop-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/productivity-skills/uv.lock is excluded by !**/*.lock
  • plugins/python-skills/uv.lock is excluded by !**/*.lock
  • plugins/things-app/mcp/uv.lock is excluded by !**/*.lock
  • plugins/things-app/uv.lock is excluded by !**/*.lock
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (42)
  • plugins/agent-portability-skills/.codex-plugin/plugin.json
  • plugins/agent-portability-skills/pyproject.toml
  • plugins/agentdeck/.codex-plugin/plugin.json
  • plugins/android-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/.codex-plugin/plugin.json
  • plugins/apple-dev-skills/ROADMAP.md
  • plugins/apple-dev-skills/pyproject.toml
  • plugins/apple-dev-skills/shared/references/code-coverage-contract.md
  • plugins/apple-dev-skills/skills/swift-package-testing-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/code-coverage.md
  • plugins/apple-dev-skills/skills/xcode-coding-intelligence-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/xcode-coding-intelligence-workflow/references/source-evidence.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/SKILL.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/references/cli-fallback-matrix.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/references/code-coverage.md
  • plugins/apple-dev-skills/skills/xcode-testing-workflow/references/mcp-tool-matrix.md
  • plugins/apple-dev-skills/tests/test_swift_package_testing_workflow.py
  • plugins/apple-dev-skills/tests/test_xcode_coding_intelligence_workflow.py
  • plugins/apple-dev-skills/tests/test_xcode_testing_workflow.py
  • plugins/cardhop-app/.codex-plugin/plugin.json
  • plugins/cardhop-app/mcp/pyproject.toml
  • plugins/cloud-deployment-skills/.codex-plugin/plugin.json
  • plugins/cloud-inference-skills/.codex-plugin/plugin.json
  • plugins/dotnet-skills/.codex-plugin/plugin.json
  • plugins/game-dev-skills/.codex-plugin/plugin.json
  • plugins/network-protocol-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/.codex-plugin/plugin.json
  • plugins/productivity-skills/pyproject.toml
  • plugins/python-skills/.codex-plugin/plugin.json
  • plugins/python-skills/pyproject.toml
  • plugins/reverse-engineering-skills/.codex-plugin/plugin.json
  • plugins/rust-skills/.codex-plugin/plugin.json
  • plugins/server-side-jvm/.codex-plugin/plugin.json
  • plugins/server-side-swift/.codex-plugin/plugin.json
  • plugins/spotify/.codex-plugin/plugin.json
  • plugins/swift-lang/.codex-plugin/plugin.json
  • plugins/swiftasb-skills/.codex-plugin/plugin.json
  • plugins/things-app/.codex-plugin/plugin.json
  • plugins/things-app/mcp/pyproject.toml
  • plugins/things-app/pyproject.toml
  • plugins/web-dev-skills/.codex-plugin/plugin.json
  • pyproject.toml

Comment on lines +27 to +31
## Failure Boundaries

- A passing `swift test` without an exported coverage JSON is a coverage-collection failure, not a zero-coverage result.
- Keep package coverage reports out of version control unless the package has an explicit artifact policy.
- Do not create a coverage gate without a repository-owned metric and exclusion policy.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the target file with line numbers.
sed -n '1,120p' plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/code-coverage.md | cat -n

# Find related coverage wording in the skill.
rg -n "coverage|swift test|show-codecov-path|enable-code-coverage" plugins/apple-dev-skills/skills/swift-package-testing-workflow -S

Repository: gaelic-ghost/socket

Length of output: 11478


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Pull the relevant SwiftPM docs text from the web for the exact flag semantics.
python3 - <<'PY'
import urllib.request
url = "https://docs.swift.org/swiftpm/documentation/packagemanagerdocs/swifttest/"
with urllib.request.urlopen(url, timeout=20) as r:
    html = r.read().decode("utf-8", "replace")
for needle in ["--enable-code-coverage", "--show-codecov-path", "code coverage"]:
    idx = html.find(needle)
    print(f"\n=== {needle} @ {idx} ===")
    if idx != -1:
        start = max(0, idx - 500)
        end = min(len(html), idx + 1200)
        print(html[start:end])
PY

Repository: gaelic-ghost/socket

Length of output: 2751


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Check whether the specific file exists in this repo snapshot and show its exact contents if accessible.
test -f plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/code-coverage.md && \
  sed -n '1,120p' plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/code-coverage.md | cat -n

Repository: gaelic-ghost/socket

Length of output: 2139


Scope the missing-report rule to coverage-enabled runs. The failure-boundary bullet reads as if any passing swift test without coverage JSON is an error; make it explicit that this applies after swift test --enable-code-coverage to avoid ambiguity.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@plugins/apple-dev-skills/skills/swift-package-testing-workflow/references/code-coverage.md`
around lines 27 - 31, Clarify the first “Failure Boundaries” bullet so the
missing coverage JSON is considered a collection failure only after running
swift test with --enable-code-coverage. Preserve the existing distinction from
zero coverage and leave the other bullets unchanged.

Comment on lines +163 to +167
### Documented Xcode 27 MCP Additions

Apple's Xcode 27 beta release notes describe MCP capability additions for manipulating active run state, interacting with and reading the debugger console, listing and switching schemes and run destinations, inspecting and modifying build settings/compiler flags/entitlements/Info.plist keys, runtime health insights, simulator boot/install/launch/touch/screenshot actions, preview variants, and String Catalog workflows.

The release notes do not document a dedicated MCP code-coverage reporting tool. Keep code coverage on the `xcodebuild` plus `xccov` path unless a live Xcode session exposes a documented coverage contract.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Keep the coverage fallback explicitly scoped to MCP.

Line 167 says “live Xcode session,” while the corresponding contracts in ROADMAP.md, SKILL.md, and mcp-tool-matrix.md require a documented live Xcode MCP session. Use the narrower wording so an ordinary live Xcode session cannot be interpreted as authorization for an undocumented coverage API.

Proposed wording
-The release notes do not document a dedicated MCP code-coverage reporting tool. Keep code coverage on the `xcodebuild` plus `xccov` path unless a live Xcode session exposes a documented coverage contract.
+The release notes do not document a dedicated MCP code-coverage reporting tool. Keep code coverage on the `xcodebuild` plus `xccov` path unless a live Xcode MCP session exposes a documented coverage contract.
📝 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
### Documented Xcode 27 MCP Additions
Apple's Xcode 27 beta release notes describe MCP capability additions for manipulating active run state, interacting with and reading the debugger console, listing and switching schemes and run destinations, inspecting and modifying build settings/compiler flags/entitlements/Info.plist keys, runtime health insights, simulator boot/install/launch/touch/screenshot actions, preview variants, and String Catalog workflows.
The release notes do not document a dedicated MCP code-coverage reporting tool. Keep code coverage on the `xcodebuild` plus `xccov` path unless a live Xcode session exposes a documented coverage contract.
### Documented Xcode 27 MCP Additions
Apple's Xcode 27 beta release notes describe MCP capability additions for manipulating active run state, interacting with and reading the debugger console, listing and switching schemes and run destinations, inspecting and modifying build settings/compiler flags/entitlements/Info.plist keys, runtime health insights, simulator boot/install/launch/touch/screenshot actions, preview variants, and String Catalog workflows.
The release notes do not document a dedicated MCP code-coverage reporting tool. Keep code coverage on the `xcodebuild` plus `xccov` path unless a live Xcode MCP session exposes a documented coverage contract.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@plugins/apple-dev-skills/skills/xcode-coding-intelligence-workflow/references/source-evidence.md`
around lines 163 - 167, Update the coverage fallback statement in “Documented
Xcode 27 MCP Additions” to require a documented live Xcode MCP session, not
merely a live Xcode session. Preserve the existing xcodebuild plus xccov
fallback and the restriction against undocumented coverage APIs.


## Failure Boundaries

- A successful test run without an `.xcresult` or readable `xccov` report is a coverage-collection failure, not a coverage result.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Scope the missing-artifact rule to coverage-enabled runs.

A normal xcodebuild test invocation does not necessarily request -resultBundlePath; the fallback matrix separately documents that flag for coverage collection. This sentence should not classify every successful test without an .xcresult as a coverage failure.

Proposed wording
- A successful test run without an `.xcresult` or readable `xccov` report is a coverage-collection failure, not a coverage result.
+- After a coverage-enabled test run that requested `-resultBundlePath`, a missing `.xcresult` or unreadable `xccov` report is a coverage-collection failure, not a coverage result.
📝 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
- A successful test run without an `.xcresult` or readable `xccov` report is a coverage-collection failure, not a coverage result.
- After a coverage-enabled test run that requested `-resultBundlePath`, a missing `.xcresult` or unreadable `xccov` report is a coverage-collection failure, not a coverage result.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@plugins/apple-dev-skills/skills/xcode-testing-workflow/references/code-coverage.md`
at line 36, Update the missing-artifact rule in the coverage guidance so it
applies only when coverage collection is enabled or requested, not to every
successful xcodebuild test run. Preserve the classification for coverage-enabled
runs lacking an .xcresult or readable xccov report.

## Purpose

Use this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.
Use this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, code coverage, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Describe run_workflow.py as a planner, not the MCP executor.

The document states elsewhere that the script applies configuration, safeguards, and fallback planning while MCP execution remains agent-side. Calling it the entrypoint for “MCP-first test execution” is contradictory and may send users to a script that cannot perform the promised MCP execution.

Proposed wording
-`scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.
+`scripts/run_workflow.py` is the runtime entrypoint for runtime configuration, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory; MCP execution remains agent-side.
📝 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
Use this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, code coverage, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.
Use this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, code coverage, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for runtime configuration, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory; MCP execution remains agent-side.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/apple-dev-skills/skills/xcode-testing-workflow/SKILL.md` at line 10,
Update the description of scripts/run_workflow.py in the skill overview to
identify it as the planner for MCP-first workflows, official CLI fallback
planning, and the .pbxproj warning boundary, not as the executor of MCP tests.
Preserve the existing statement that MCP execution remains agent-side and keep
the scope focused on test workflow planning.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 85bf5842ca

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

## Purpose

Use this skill as the primary execution workflow for test-focused work in existing Swift Package Manager repositories. Keep it focused on Swift Testing, XCTest holdouts, `.xctestplan` handoff conditions, async-test guidance, semantic accessibility-test boundaries, performance-sensitive package workload profiling, filters, retries, fixtures, and package-level test diagnosis instead of broad manifest and build/run work. `scripts/run_workflow.py` is the runtime entrypoint for repo-shape checks, test-surface command planning, and clean handoff to the build/run or Xcode-oriented surfaces when the request drifts.
Use this skill as the primary execution workflow for test-focused work in existing Swift Package Manager repositories. Keep it focused on Swift Testing, XCTest holdouts, code coverage, `.xctestplan` handoff conditions, async-test guidance, semantic accessibility-test boundaries, performance-sensitive package workload profiling, filters, retries, fixtures, and package-level test diagnosis instead of broad manifest and build/run work. `scripts/run_workflow.py` is the runtime entrypoint for repo-shape checks, test-surface command planning, and clean handoff to the build/run or Xcode-oriented surfaces when the request drifts.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Wire coverage requests into the SwiftPM runtime

For coverage-only requests such as collect coverage, the skill now advertises code coverage here, but scripts/run_workflow.py still only infers test work from words like test/xctest and build_commands() still emits plain swift test rather than swift test --enable-code-coverage plus the report-location query. That makes the documented coverage path disagree with the command-planning entrypoint: agents either block when the user says “coverage” without “test”, or run tests without collecting coverage when the request is inferred as testing.

Useful? React with 👍 / 👎.

## Purpose

Use this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.
Use this skill as the primary execution workflow for test-focused work in or around Xcode-managed projects and workspaces. Keep it focused on Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, code coverage, `.xctestplan`, destinations, launch arguments, interruption handling, attachments, accessibility-verification follow-through, Instruments profiling, `xctrace` trace capture, filters, retries, diagnostics, and test-specific Debug/Release validation instead of broad build/run or toolchain work. `scripts/run_workflow.py` is the runtime entrypoint for MCP-first test execution, official CLI fallback planning, and the remaining `.pbxproj` warning boundary when mutation enters project-file territory.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Wire coverage requests into the Xcode test runtime

For Xcode coverage requests such as collect coverage or test coverage, this skill now owns code coverage, but scripts/run_workflow.py still does not recognize coverage as a testing request and its fallback command builder only emits plain xcodebuild test commands without -enableCodeCoverage YES or -resultBundlePath. In those inputs the runtime either blocks on an otherwise valid coverage request or guides the agent to run tests without producing the .xcresult that the new coverage reference requires.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant