Skillstrand

Getting started

Add the package, then one skill file.

The package builds its planners on Linux. The Apple types, the sample app, and a real skills bundle need the Xcode 27.3 beta.

1. Depend on the package

dependencies: [
    .package(path: "Skillstrand")
],
targets: [
    .target(name: "MyApp", dependencies: ["Skillstrand"])
]

2. Put a skills bundle in the app target

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.

3. Run the sample

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.

4. Turn on the preview trait when you have the beta

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.