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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/agent-portability-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agent-portability-skills",
"version": "9.2.1",
"version": "9.3.0",
"description": "Maintainer skills for Socket-owned agent skill portability, Codex plugin surfaces, and host adapter guidance.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-portability-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "agent-portability-skills-maintenance"
version = "9.2.1"
version = "9.3.0"
description = "Maintainer-only Python tooling baseline for Agent Portability Skills."
requires-python = ">=3.11"
dependencies = []
Expand Down
2 changes: 1 addition & 1 deletion plugins/agent-portability-skills/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugins/agentdeck/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "agentdeck",
"version": "9.2.1",
"version": "9.3.0",
"description": "Local Codex runtime utilities for thread, hook, and app-server workflows.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/android-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "android-dev-skills",
"version": "9.2.1",
"version": "9.3.0",
"description": "Android, Kotlin, Java, Gradle, Android Gradle Plugin, testing, lint, UI implementation, and release-readiness workflow skills.",
"author": {
"name": "Gale",
Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "apple-dev-skills",
"version": "9.2.1",
"version": "9.3.0",
"description": "Apple development workflows for Codex, including App Intents, Liquid Glass, PhotosUI/PhotoKit, VideoToolbox codecs, ARKit spatial/face/body sensing, camera/depth capture, Core Image, Image I/O, Vision/Core ML recognition, media/audio repair, provisioning, CloudKit, TipKit, SwiftData, SwiftUI, XcodeGen, Core Animation, AppKit, Safari, security, OpenAPI, and DocC.",
"author": {
"name": "Gale",
Expand Down
3 changes: 2 additions & 1 deletion plugins/apple-dev-skills/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,7 @@ Completed
- [x] Keep build, run, preview, file-membership, and project-integrity execution with `xcode-build-run-workflow`.
- [x] Keep Swift Testing, XCTest, XCUITest, and `.xctestplan` execution with `xcode-testing-workflow`.
- [x] Mark Xcode 27 beta claims with the date checked and separate them from local Xcode 26.5 `mcpbridge` evidence.
- [x] Add shared Xcode and SwiftPM code-coverage guidance, and keep coverage reporting on documented CLI tools unless a live Xcode MCP session exposes an equivalent contract.

### Tickets

Expand All @@ -590,7 +591,7 @@ Completed
- [x] Existing Xcode execution skills keep execution ownership while linking to the setup workflow only where needed.
- [x] Beta-specific claims are dated, source-linked, and separated from stable or local-tool evidence.

Completed Milestone 47 by shipping `xcode-coding-intelligence-workflow`, updating the active skill inventory and plugin metadata, adding routing notes from build/test execution skills, and covering the new setup and permission boundary with targeted tests.
Completed Milestone 47 by shipping `xcode-coding-intelligence-workflow`, updating the active skill inventory and plugin metadata, adding routing notes from build/test execution skills, documenting Xcode 27 MCP capability additions without inventing beta tool names, adding shared Xcode and SwiftPM coverage guidance, and covering the setup, coverage, and permission boundaries with targeted tests.

## Milestone 48: Core AI and Foundation Models Workflow Planning

Expand Down
2 changes: 1 addition & 1 deletion plugins/apple-dev-skills/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "apple-dev-skills-maintainer"
version = "9.2.1"
version = "9.3.0"
description = "Maintainer tooling for the apple-dev-skills repository"
requires-python = ">=3.10"
dependencies = []
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Code Coverage Contract

Code coverage is execution evidence: it shows which instrumented code ran during a test run. It does not prove behavior is correct, tests assert the right outcomes, or UI and device paths are adequately verified.

## Default Policy

- Report coverage by target and file, and include function-level detail when the tool provides it.
- Keep test failures, coverage-collection failures, and missing-report failures as separate results.
- Default to reporting only. Do not invent a global coverage percentage, fail a build, exclude a source path, or claim changed-line coverage without an explicit repository policy.
- Treat generated, vendored, test-target, and platform-glue sources as visible in the first report. Exclude them only with a checked-in, human-readable reason.
- Do not commit generated coverage reports by default. Keep local reports ephemeral and upload CI reports only when that repository's CI policy asks for it.

## Required Evidence Packet

Every coverage result should state the toolchain and coverage command; configuration, scheme or package, and destination when applicable; report artifact path and format; target and file summary; exclusions and their reason; whether the result is comparable with a baseline; and test, collection, and report-extraction failures independently.

## Comparison And Gates

Compare coverage only when the source revision, toolchain, build configuration, selected targets, destination, and exclusion policy are compatible. A raw project-wide percentage is not a substitute for changed-file or changed-line evidence.

Add a CI gate only after the repository chooses one concrete metric: an overall minimum, target minimum, changed-file minimum, or changed-line minimum. Record the policy and allowed exceptions in the repository; keep the Apple Dev Skills default report-only.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
name: swift-package-testing-workflow
description: Guide Swift Testing, XCTest holdouts, xctestplan handoff conditions, async test design, semantic accessibility-test boundaries, test-fixture organization, and package test-diagnosis work in existing Swift Package Manager repositories. Use when Package.swift is the source of truth and the task is primarily about testing rather than package build or run work.
description: Guide Swift Testing, XCTest holdouts, code coverage, xctestplan handoff conditions, async test design, semantic accessibility-test boundaries, test-fixture organization, and package test-diagnosis work in existing Swift Package Manager repositories. Use when Package.swift is the source of truth and the task is primarily about testing rather than package build or run work.
---

# Swift Package Testing Workflow

## 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 👍 / 👎.


## When To Use

Expand Down Expand Up @@ -47,10 +47,11 @@ Use this skill as the primary execution workflow for test-focused work in existi
- preserve its explicit `swiftLanguageModes: [.v6]` package-manifest default and prefer that spelling over the legacy `swiftLanguageVersions` alias on current manifest surfaces
- preserve its package-appropriate logging, telemetry, structured-concurrency, and Swift Testing guidance
4. Run `scripts/run_workflow.py` to resolve repo shape, confirm the request stays on the testing surface, and plan the package-testing command path.
5. Use `references/package-resources-testing-and-builds.md` when the request touches Swift Testing, XCTest, `.xctestplan`, accessibility-related semantic tests, fixtures, async test discipline, or test-related Debug/Release validation.
6. Use `references/performance-sensitive-testing-and-profiling.md` when the request touches package-first instrumentation, `OSSignposter`, `xctrace`, Time Profiler, Metal System Trace, Allocations, VM Tracker, Audio, MLX, local AI, streaming, or other performance-sensitive Apple silicon workloads.
7. If the repo root is ambiguous because Xcode-managed markers are present at the same root, use `references/xcode-handoff-conditions.md` and hand off cleanly to `xcode-testing-workflow`.
8. Report which parts were agent-executed, the docs relied on, the repo-shape result, and any required next step or handoff.
5. Use `references/code-coverage.md` when the request needs SwiftPM collection, exported-JSON discovery, coverage reporting, comparison, or an explicit coverage-gate boundary.
6. Use `references/package-resources-testing-and-builds.md` when the request touches Swift Testing, XCTest, `.xctestplan`, accessibility-related semantic tests, fixtures, async test discipline, or test-related Debug/Release validation.
7. Use `references/performance-sensitive-testing-and-profiling.md` when the request touches package-first instrumentation, `OSSignposter`, `xctrace`, Time Profiler, Metal System Trace, Allocations, VM Tracker, Audio, MLX, local AI, streaming, or other performance-sensitive Apple silicon workloads.
8. If the repo root is ambiguous because Xcode-managed markers are present at the same root, use `references/xcode-handoff-conditions.md` and hand off cleanly to `xcode-testing-workflow`.
9. Report which parts were agent-executed, the docs relied on, the repo-shape result, and any required next step or handoff.

## Inputs

Expand Down Expand Up @@ -122,6 +123,7 @@ Use this skill as the primary execution workflow for test-focused work in existi

- `references/workflow-policy.md`
- `references/repo-shape-detection.md`
- `references/code-coverage.md`
- `references/package-resources-testing-and-builds.md`
- `references/performance-sensitive-testing-and-profiling.md`
- `references/xcode-handoff-conditions.md`
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# SwiftPM Code Coverage

Use SwiftPM coverage for a package-first test surface. Follow the shared [`code-coverage-contract`](../../../shared/references/code-coverage-contract.md) for evidence, artifacts, comparisons, and gates.

## Collection And Report Discovery

Run coverage as part of the test command:

```bash
swift test --enable-code-coverage
```

After a successful collection, ask the active toolchain for the exported JSON location instead of hard-coding a `.build` path:

```bash
swift test --show-codecov-path
```

Treat `--show-codecov-path` as a separate report-location query. Do not assume every SwiftPM release accepts it combined with `--enable-code-coverage`, and do not split coverage into a separate build plus `swift test --skip-build` path unless that exact toolchain has been verified.

## Reporting

Read the exported JSON from the reported path and summarize the targets and files it contains. Preserve the original artifact path in the evidence packet. If the file is missing, unreadable, or does not contain the expected coverage payload, report extraction failed; do not substitute a guessed `.build` location or a percentage inferred from test output.

SwiftPM coverage is appropriate for package targets and their ordinary tests. It does not replace app-host, XCUITest, simulator, physical-device, or Xcode test-plan coverage. Hand off to `xcode-testing-workflow` when those surfaces matter.

## 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.
Comment on lines +27 to +31

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.

Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ Beta-specific note: Xcode 27 claims in this skill were checked against Apple dev
- external-agent access through `xcrun mcpbridge`
- command, tool, approval, or permission policy
- Xcode-only agent configuration home
- Xcode 27 MCP capability discovery for run state, debugger, schemes, destinations, project settings, runtime insights, simulators, previews, or localization
- plan-mode, artifacts, diff-review, preview, build, or test handoff
- beta documentation or installed-Xcode capability check
2. Apply the Apple docs gate before making setup or behavior claims:
Expand All @@ -60,6 +61,8 @@ Beta-specific note: Xcode 27 claims in this skill were checked against Apple dev
- use `xcrun mcpbridge run-agent <agent-name>` only when intentionally launching a coding agent with Xcode-provided configuration
- use Xcode Settings > Intelligence > Plug-ins for official plug-in import checks
- use `MCP_XCODE_PID` when multiple Xcode processes make auto-detection ambiguous
- discover the live Xcode MCP tool inventory before naming a beta-era tool; Apple documents capability groups but does not make a stable tool-name contract part of this skill
- use `xcodebuild` and `xccov` for code coverage unless a live Xcode MCP session exposes and documents an equivalent coverage contract
- keep normal Codex config separate from Xcode-launched Codex config
5. Plan command and tool permissions:
- identify which agent is allowed to read files, modify source, edit project settings, build, run tests, render previews, inspect devices, or search documentation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,12 @@ Observed current behavior:
- `xcrun --find lldb-mcp` resolves the beta executable, but `xcrun lldb-mcp --help` fails before startup because dyld cannot resolve `@rpath/lib_CompilerSwiftIDEUtils.dylib`.
- A non-mutating fallback-library-path probe did not change that failure. Do not modify Xcode, copy libraries, create symlinks, or publish an environment-variable workaround; use Xcode's active debugger session until a later toolchain starts `lldb-mcp` normally.

### 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.
Comment on lines +163 to +167

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.


The Device Hub and Xcode debugger workflow references own the detailed behavior and handoffs from this probe.
- Xcode copied imported plug-ins into `~/Library/Developer/Xcode/CodingAssistant/codex/plugins/cache`.
- Xcode enabled imported plug-ins in `~/Library/Developer/Xcode/CodingAssistant/codex/config.toml`.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
name: xcode-testing-workflow
description: Guide Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, xctestplan matrices, accessibility-verification follow-through, test filtering, retries, diagnostics, and test-specific fallback work in existing Xcode-managed projects and workspaces. Use when Xcode-aware execution is needed and the task is primarily about testing rather than build or run work.
description: Guide Swift Testing, XCTest, XCUITest, XCUIAutomation-oriented mechanics, code coverage, xctestplan matrices, accessibility-verification follow-through, test filtering, retries, diagnostics, and test-specific fallback work in existing Xcode-managed projects and workspaces. Use when Xcode-aware execution is needed and the task is primarily about testing rather than build or run work.
---

# Xcode Testing Workflow

## 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.

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 👍 / 👎.


## When To Use

Expand Down Expand Up @@ -41,6 +41,7 @@ Use this skill as the primary execution workflow for test-focused work in or aro
- preserve its project-appropriate logging, telemetry, and SwiftUI architecture guidance
4. Run `scripts/run_workflow.py` to apply runtime configuration, `.pbxproj` warning safeguards, and CLI fallback planning.
5. Use the focused references for the right testing surface:
- `references/code-coverage.md` for Xcode coverage collection, `.xcresult` artifacts, `xccov` reporting, comparison, and the Xcode 27 MCP boundary
- `references/xctestplan-configurations-and-matrix.md` for `.xctestplan`, launch-argument matrices, named configurations, and Debug/Release test coverage
- `references/xcuitest-and-xcuiautomation.md` for UI automation mechanics, waits, interruption handling, activities, and attachments
- `references/ui-accessibility-verification.md` for accessibility-specific runtime verification expectations and coordination with `apple-ui-accessibility-workflow`
Expand Down Expand Up @@ -119,6 +120,7 @@ Use this skill as the primary execution workflow for test-focused work in or aro
- `references/workflow-policy.md`
- `references/mcp-tool-matrix.md`
- `references/cli-fallback-matrix.md`
- `references/code-coverage.md`
- `references/xctestplan-configurations-and-matrix.md`
- `references/xcuitest-and-xcuiautomation.md`
- `references/ui-accessibility-verification.md`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
- `xcodebuild -workspace <ws.xcworkspace> -scheme <scheme> build`
- Xcode tests:
- `xcodebuild test -project <proj.xcodeproj> -scheme <scheme> -destination '<dest>'`
- Coverage: `xcodebuild test -project <proj.xcodeproj> -scheme <scheme> -destination '<dest>' -enableCodeCoverage YES -resultBundlePath <artifacts>/<run>.xcresult`
- Coverage report: `xcrun xccov view --report --json <artifacts>/<run>.xcresult`

## Runtime and tooling

Expand All @@ -30,6 +32,8 @@
- `swift build`
- Test:
- `swift test`
- Coverage: `swift test --enable-code-coverage`
- Coverage report location: `swift test --show-codecov-path`
- Run executable target:
- `swift run <target>`
- Package commands:
Expand Down
Loading