Getting started
The package builds its planners on Linux. The Apple types, the sample app, and a real skills bundle need the Xcode 27.3 beta.
dependencies: [
.package(path: "Skillstrand")
],
targets: [
.target(name: "MyApp", dependencies: ["Skillstrand"])
]
One Skills.skillsbundle per app. Inside it, each skill is a folder whose name matches the name field, containing only SKILL.md.
Skills.skillsbundle/
└── Skills/
└── capture-to-task/
└── SKILL.md
The file needs name and description, nothing else in the front matter, then a body. SkillBundleValidator checks the same limits the 27.3 toolchain documents: 1–64 lowercase characters for the name, a single-line description of at most 1024 characters.
brew install xcodegen cd Examples/SampleApp xcodegen generate open SkillstrandSample.xcodeproj
The signing team is empty and signing is off, so a simulator build does not ask for a team. Fill in a team before you run on a device. The sample walks all four skills and shows the Spotlight diff. Shortcuts are registered from SampleShortcuts.
Pass SKILLSTRAND_IOS_27_3_SDK as an active compilation condition to compile @AppIntent(.tool) in the sample. Without that flag the sample still builds the stable intents.