Finally, Apple Frees us from Domains

// Written by // // Read it in about 5 minutes // RE: Siri

Domains were never going to work1. And Siri was, unfortunately, always going to remain Siri.

Nobody wanted that, especially developers. Before 27.3, unless your app fit into a blessed domain, there weren’t many opportunities we could take advantage of in our apps. Why? It’s simple:

Apps do not fit into pretty little boxes.

Apple tried to do two things. They wanted a Siri that understood what our apps could do, and a system broad enough to include apps of every shape and size. But that was never going to happen; we still had to squeeze our apps into boxes Apple picked.

For apps like mine, they tried to achieve both and ended up accomplishing neither.

But lo, with a random post on X, I saw that Apple is finally freeing us from domains. You can supply your arbitrary app intent definitions to the system, and even supply skill files in Markdown to help Siri know how, and when, to use them.

Here’s a concrete example from Elite Hoops. I already have app intents to:

  1. Create a player
  2. Open a team

This is how it was before:

Hey Siri, add a player to a team in Elite Hoops.

That’s a real one you can try in Elite Hoops through App Shortcuts today. Siri could run that action and ask for the missing details: team, name, position and jersey number. I could also build a shortcut that added the player and then opened the team.

But I had to wire those steps together. Blegh.

This is what we can do now:

Hey Siri, add Maya to the Tigers in Elite Hoops. She’s a point guard, number 12. Then open that team.

Once I tack on the new macro to expose those actions as tools for Siri, this is the type of stuff the new system is designed to handle: find the Tigers, fill in Maya’s details, add her, then open the team. The coach says what they want, and Siri can choose and combine the actions. And, best of all…

…Apple didn't have to invent a basketball domain first!

And the conversation could keep going — yes, the promises of that commercial are coming to fruition. Say I’ve diagrammed plays with “press break” in their names or notes:

Okay, find my press break plays. We’re running those tonight.

Then, once Siri has found them:

Now email Coach Jones those play notes using Mail.

I wouldn’t need to repeat “Elite Hoops,” rely on fickle phrasing that has to be just right, or even bother listing the plays again. Of course, the context has to come from somewhere: here, I told Siri which plays we’re running tonight. It wouldn’t magically know our game plan just because I added Maya to the roster. And, again, I could already build a shortcut to find and email content before; the new opportunity for us is that now, Siri can put together that workflow conversationally.

And then there’s App Skills, which let us give Siri a Markdown file explaining how to use my app’s actions together. For me, that’d be things like:

  1. What a coach means
  2. When to ask a follow-up
  3. Which actions to use together

For working with a coach’s library, I could write a SKILL.md that looks something like this:

---
name: coaching-library
description: Help coaches find, review, add notes to, and share plays, drills, and practice plans in Elite Hoops.
---
Start with the coach's goal. They may describe a basketball
concept, a practice focus, or a change they want to make
rather than name a specific item or action.

Use the request, conversation, and available onscreen context
to identify the relevant content. Find matches using names,
notes, and other available properties. Carry established
selections into follow-ups; ask when the target is unclear.

Use saved content when reviewing or summarizing the library.
To record coaching feedback, use the edit coaching notes
action. Add to existing notes unless replacement is requested.
Distinguish a reusable drill from its instance in a practice
so feedback goes on the item the coach means.

When sharing, use the selected content's available transferable
representation with the requested destination. Clarify an
ambiguous recipient or selection before proceeding.

Add a Skills Bundle to your app target in Xcode, then put the file here:

Skills.skillsbundle/
└── Skills/
    └── coaching-library/
        └── SKILL.md

Putting it all together, Siri reads the description to decide when the skill applies, then reads the instructions. The app intents still do the work, but now the skill is added guidance. As God intended.

But…dude…..FINALLY! Finally! A direction that makes absolute sense for Siri.

Until next time ✌️

  1. They were never going to work for the app ecosystem at large; the variety is too large to fit into existing definitions. ↩

···

Spot an issue, anything to add?

Reach Out.

Don't Launch to an Empty Room →