Importing skills
Shipping a Mac app means solving problems that have nothing to do with your app: notarization, release checks, certificates. Somebody — maybe you, last project — already solved them. This chapter imports that knowledge into 4Notice as skills, from a skills repo.
If the concepts are new, the Speccify section explains them; here we just do it.
1. Add the source
Section titled “1. Add the source”In iKanban AI’s skills tab, under Sources, add the repo by URL
(or speccify add in the terminal). For 4Notice the source is a
private GitHub repo of skill bundles; access rides on the same gh
credentials git already uses. The project remembers its dependencies
in speccify.yaml:
dependencies: git+https://github.com/<you>/<skills-repo>#skills/macos-notarize-tauri: ^1.0 git+https://github.com/<you>/<skills-repo>#skills/release-checks: ^1.0The repo URL is the identity, tags are the versions, a bundle is a
directory — git+<url>#<path>.
2. Import = expand
Section titled “2. Import = expand”Importing a skill from the sources list runs the expand step and ends with a task list handed to the agent. What actually landed in 4Notice from two requested skills:
.agent/skills/macos-notarize-tauri/ ← requested.agent/skills/apple-developer-id-cert/ ← came along: the first one `uses` it.agent/skills/release-checks/ ← requested.agent/tools/check-entitlements/ TOOL.md + fixtures.agent/tools/check-plist-keys/ TOOL.md + fixtures.agent/tools/orphan-strings/ TOOL.md + fixtures.agent/tools/verify-signatures/ TOOL.md (contract only — see below).agent/speccify/expansions.yaml ← provenanceNote the second line: dependencies between skills resolve at expand
time — macos-notarize-tauri declares it builds on
apple-developer-id-cert, so that skill arrives as its own normal
skill beside it. Nothing refers back to the source anymore.
3. Execute: the agent implements the tools
Section titled “3. Execute: the agent implements the tools”The tool folders arrive with contracts and fixtures but no
implementations for your machine — that’s the
point. One agent run implemented the three
release-checks tools (macos.py, macos.sh) from their contracts.
And one tool deliberately stayed a contract: verify-signatures
won’t be needed until notarization, so it isn’t implemented yet.
Import doesn’t oblige you to build everything on day one — an
unimplemented tool is visible as such in the tools tab and in the
provenance record, not forgotten.
4. Evaluate: check, then trust
Section titled “4. Evaluate: check, then trust”speccify tool check check-entitlements # → verifiedspeccify tool check check-plist-keys # → verifiedspeccify tool check orphan-strings # → verifiedEach check runs the contract’s examples against the fresh
implementation (how that works). After that,
the agent uses these skills like any local one — and logs an
agent_run line in the ticket history when it does.
The whole import was one atomic commit in 4Notice, subject “Import skills from speccify-first-test and implement their tools” — skills, tools, fixtures, provenance, 3× verified, all in one reviewable step.
Next: the direction that makes this a cycle — exporting what 4Notice taught you.