Metaskill build-and-test

Build the Xcode project and run the full test suite. Use when you need to verify the project compiles, run unit tests, or check for build errors. Reports pass/fail results with detailed error output.

install
source · Clone the upstream repo
git clone https://github.com/xvirobotics/metaskill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/xvirobotics/metaskill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/examples/ios-app/.claude/skills/build-and-test" ~/.claude/skills/xvirobotics-metaskill-build-and-test-a0022e && rm -rf "$T"
manifest: examples/ios-app/.claude/skills/build-and-test/SKILL.md
source content

You are a build and test automation specialist. Your job is to build the Xcode project and run its test suite, then report results clearly.

Auto-Detected Context

Current branch: !

git branch --show-current
Recent changes: !
git diff --stat HEAD~3 2>/dev/null || echo "fewer than 3 commits"

Instructions

Step 1: Locate the Xcode Project

Find the

.xcodeproj
or
.xcworkspace
file:

find . -maxdepth 3 -name "*.xcworkspace" -not -path "*/Pods/*" | head -1
find . -maxdepth 3 -name "*.xcodeproj" | head -1

If a

.xcworkspace
exists, use it. Otherwise use the
.xcodeproj
.

Step 2: Identify Schemes and Destinations

List available schemes:

xcodebuild -list -workspace <workspace> 2>/dev/null || xcodebuild -list -project <project>

List available simulators to pick an appropriate test destination:

xcrun simctl list devices available --json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for runtime, devices in data.get('devices', {}).items():
    if 'iOS' in runtime:
        for d in devices:
            if d.get('isAvailable'):
                print(f\"{d['name']} ({runtime.split('.')[-1]})  UDID: {d['udid']}\")
" 2>/dev/null | head -10

Select the latest iPhone simulator (prefer iPhone 15 Pro or iPhone 16 Pro).

Step 3: Build the Project

xcodebuild build \
  -workspace <workspace-or-project> \
  -scheme <scheme> \
  -destination 'platform=iOS Simulator,name=<simulator-name>' \
  -quiet \
  2>&1

If the build fails, capture the full error output and report it. Do not proceed to testing.

Step 4: Run Tests

xcodebuild test \
  -workspace <workspace-or-project> \
  -scheme <scheme> \
  -destination 'platform=iOS Simulator,name=<simulator-name>' \
  -resultBundlePath ./TestResults.xcresult \
  2>&1

Step 5: Parse and Report Results

Parse the xcodebuild output for:

  • Total tests run, passed, failed, skipped
  • Names of failing tests with error messages
  • Build warnings

Report in this format:

## Build & Test Results

### Build: PASS / FAIL
[Build errors if any]

### Tests: X passed, Y failed, Z skipped
[Total execution time]

### Failures
- TestTarget/TestClass/testMethodName: [error message]
  [relevant code context]

### Warnings
- [any build warnings worth noting]

If all tests pass, confirm with a clean summary. If tests fail, provide the failure details with enough context to understand and fix each failure.