AB cocoapods-to-spm
Migrates an existing Capacitor iOS app from CocoaPods to Swift Package Manager (SPM) before CocoaPods Trunk goes read-only (expected December 2, 2026). Use when the app still has ios/App/Podfile, Pods/, Podfile.lock or App.xcworkspace and the user wants CapApp-SPM, runs or recovers from `npx cap spm-migration-assistant`, needs debug.xcconfig / CAPACITOR_DEBUG wired up, sees "Some installed Capacitor plugins are not compatible with SPM" or "<plugin> does not have a Package.swift", or plans the Capacitor 9 upgrade where SPM is the default. Do not use for adding SPM support inside a plugin repository (use capacitor-plugin-spm-support), the UIScene lifecycle migration (use capacitor-uiscene-migration), full version upgrades (use capacitor-app-upgrades), or generic iOS build debugging (use debugging-capacitor).
Migrates an existing Capacitor iOS app from CocoaPods to Swift Package Manager (SPM) before CocoaPods Trunk goes read-only (expected December 2, 2026).
As a process B 74/100 · Nearly there — weak spots: inputs and preconditions
The same skill appears in 1 more place: capgo-skills
How to improve
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 2
✓ No critical or high findings
Medium and low: 2
-
low Broad scope
meta-dynamic-shellSKILL.md:47Shell command executed automatically when the skill loads (Claude Code !`cmd` preamble)!`node -e "const fs=require('fs');if(!fs.existsSync('package.json'))process.exit(0);const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));const out=[];for(const section of ['dependencies','devD -
low Broad scope
meta-dynamic-shellSKILL.md:50Shell command executed automatically when the skill loads (Claude Code !`cmd` preamble)!`find ios -maxdepth 5 \( -name 'Podfile' -o -name 'Podfile.lock' -o -name 'Pods' -o -name 'App.xcworkspace' -o -name 'Package.swift' -o -name 'Package.resolved' -o -name 'CapApp-SPM' -o -name 'debug.
Files scanned: 3. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
✓ No remarks against the Agent Skills spec
Process rating: all ten parameters 74/100
- 0Inputs and preconditions. Does not say what the process needs to start
- 60Tools and files. Uses tools (bash, node) that frontmatter does not declare
- 60Result and completion. Output format stated, no completion criterion
- 85Steps. 33 steps, 1 vague phrases
- 100When it triggers. States when to use and when not to
- 100Failures and branches. 1 branches, has a failure section
- 100Consistency. Name and required fields are in place
- 100Execution cost. Instruction body is 2643 tokens
- 100Running it twice. Mutating operations check current state
- 100Progress reporting. Reports progress
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +3Description length 817: 120–800 characters recommended
- +1No license
- +2Single-language instructions
- +5Description quotes 2 example trigger phrases
- +4Description says when NOT to use the skill
- +4Structure: 17 headings
- +3Step-by-step instructions: 33 items
- +3Output format is stated explicitly
- +4Has examples (4 code blocks)
- +4Reference files are cited in the instructions (1 of 1)
Quality base 70; lint remarks subtract, signals add up to 100. Result: 97.