Swiftui animation workflow
Skill gaelic-ghost/socket/plugins/apple-dev-skills/skills/swiftui-animation-workflow
The Source for macOS Agent Workflows
npx -y skills add gaelic-ghost/socket --skill swiftui-animation-workflowAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Guide SwiftUI animation design, implementation, repair, and validation across withAnimation, animation(_:value:), transactions, transitions, content transitions, matchedGeometryEffect, navigation transitions, PhaseAnimator, KeyframeAnimator, TimelineView, symbol effects, reduce-motion behavior, previews, and performance-aware handoffs. Use when a task mentions SwiftUI animation, motion, transition design, animated state changes, hero transitions, phase or keyframe animation, symbolEffect in SwiftUI, reduce motion, or repairing confusing or over-broad animation behavior.
SKILL.md
9.0 KB, as published. Nobody here has run it
SwiftUI Animation Workflow
Purpose
Use this skill to design, implement, repair, and validate SwiftUI motion that stays state-driven, accessible, and grounded in Apple documentation. The skill owns SwiftUI animation selection, transition decisions, phase/keyframe motion, symbol-effect routing, reduce-motion checks, and preview or runtime validation handoffs.
It is not the SwiftUI app architecture workflow, not the SF Symbols selection workflow, and not the Core Animation layer workflow.
When To Use
- Use this skill when the user asks for SwiftUI animation, motion, transition, symbol-effect, or animated state-change guidance.
- Use this skill when code uses
withAnimation,animation(_:value:), binding animation,transaction,transition,contentTransition,matchedGeometryEffect,navigationTransition,PhaseAnimator,KeyframeAnimator,TimelineView,Canvas, orsymbolEffect. - Use this skill when an animation is too broad, triggers unexpectedly, does not animate, ignores reduce-motion expectations, performs poorly, or mixes state ownership with side-effectful motion code.
- Use this skill when the user wants a design choice between simple state animation, transition, matched geometry, phase animation, keyframes, timeline-driven rendering, or a handoff to lower-level rendering.
- Recommend
swiftui-app-architecture-workflowwhen the primary issue is ownership, scene structure, environment, focus, commands, or view composition rather than motion behavior. - Recommend
sf-symbols-workflowwhen the primary issue is choosing, coloring, validating, or customizing the symbol itself. - Recommend
xcode-build-run-workflowwhen the next step is preview, build, run, simulator, screenshot, or project-file validation.
Single-Path Workflow
- Classify the motion job:
- simple state transition
- insertion or removal transition
- content transition inside a stable view
- matched geometry or navigation transition
- phase-based animation
- keyframe animation
- symbol effect
- timeline or continuously updating drawing
- performance or accessibility repair
- Apply the Apple docs gate:
- read the relevant SwiftUI documentation first
- state the documented behavior being relied on before recommending implementation
- if Apple docs and the current code disagree, stop and surface the conflict
- if no relevant Apple docs can be found, say that explicitly before proceeding
- Choose the smallest motion primitive that fits the job:
withAnimationfor one user action where all dependent changes should share a transactionanimation(_:value:)for a specific view subtree reacting to a specific value- binding animation when the control binding is the intended animation boundary
transactionwhen the task needs to override or disable animation in a subtreetransitionfor view insertion or removalcontentTransitionfor content changes inside an existing viewmatchedGeometryEffector navigation transition when identity and geometry continuity matterPhaseAnimatorfor discrete phase sequencesKeyframeAnimatorfor coordinated values with explicit timingTimelineViewor lower-level rendering only when the motion is genuinely time-driven
- Keep the data flow honest:
- make animation derive from explicit state
- avoid hidden timers, global animation state, and side effects inside frequently called animation closures
- keep expensive work out of per-frame keyframe or timeline closures
- keep architecture cleanup separate from motion cleanup unless the animation bug is caused by ownership confusion
- Check accessibility and comfort:
- verify whether reduce-motion behavior should disable, simplify, or replace motion
- preserve meaning without relying on motion alone
- avoid repeated decorative motion unless the user or product explicitly wants it
- Return one recommendation path with:
- the motion job class
- chosen SwiftUI primitive
- state trigger and animation boundary
- accessibility behavior
- documented SwiftUI behavior relied on
- validation or handoff step
Inputs
request: optional free-text task description used to classify the animation question.target_platforms: optional platform list such asios,macos,watchos,visionos, ormixed-apple.motion_goal: optional desired effect such as feedback, transition, attention, loading, progress, delight, or continuity.current_code: optional relevant SwiftUI code or file paths.validation_surface: optional validation preference such as preview, simulator, unit snapshot, device, or manual review.- Defaults:
- Apple docs-first guidance always applies
- state-driven SwiftUI animation is preferred before lower-level rendering
- reduce-motion behavior must be considered for user-facing animation
Outputs
statussuccess: the request belongs to this workflow and a motion recommendation is readyhandoff: another skill owns the next step after SwiftUI animation-aware classificationblocked: current docs, code, platform, or validation context is insufficient for an honest recommendation
path_typestate-animationtransitionmatched-geometryphase-animationkeyframe-animationtimeline-renderingrepairhandoff
output- requested motion job class
- chosen SwiftUI primitive
- state trigger and animation boundary
- accessibility and reduce-motion behavior
- documented Apple behavior relied on
- validation or handoff step
Guards and Stop Conditions
- Do not use broad implicit animation when a value-scoped animation fits.
- Do not hide app, scene, or view ownership problems behind animation wrappers.
- Do not perform expensive work in
KeyframeAnimator, timeline, or per-frame content closures. - Do not use motion as the only signal for important state.
- Do not route ordinary SwiftUI animation into Core Animation unless a concrete framework limitation, host-view bridge, or layer-backed need requires it.
- Do not claim preview, simulator, or reduce-motion behavior has been verified unless that validation actually ran.
- Stop with
blockedwhen the target OS/platform range is unknown and the chosen animation API depends on availability.
Fallbacks and Handoffs
- Recommend
swiftui-app-architecture-workflowwhen state ownership, scene ownership, focus, command, environment, or composition decisions are the real blocker. - Recommend
sf-symbols-workflowwhen the work is primarily symbol selection, rendering mode, variable color, custom symbols, or symbol availability. - Recommend
apple-ui-accessibility-workflowwhen the work needs a broader accessibility implementation or review beyond reduce-motion and non-motion fallback behavior. - Recommend
xcode-build-run-workflowwhen the next step is Xcode preview, simulator, screenshot, runtime diagnostics, or project-integrity follow-through. - Recommend
explore-apple-swift-docswhen the user primarily needs raw Apple documentation lookup. - Recommend
references/snippets/apple-xcode-project-core.mdwhen repo policy or Xcode project-integrity guidance is needed before validating animation in an app project.
Customization
Use references/customization-flow.md.
scripts/customization_config.py exists to preserve the repo-wide customization-file contract, but the first version of this skill defines no runtime-enforced knobs.
Keep the first release focused on motion classification, SwiftUI primitive choice, reduce-motion behavior, and validation handoffs. If future iterations add deterministic preview or screenshot helpers, document those helpers before relying on them.
References
Workflow References
references/animation-decision-rules.mdreferences/transitions-effects-and-accessibility.mdreferences/customization-flow.md
Support References
- Recommend
explore-apple-swift-docswhen the user needs direct Apple-docs lookup instead of SwiftUI animation workflow guidance. - Recommend
references/snippets/apple-xcode-project-core.mdwhen the user needs reusable Xcode project policy before previewing or validating animation changes. - Apple documentation anchors to verify include SwiftUI Animations, Managing user interface state, Controlling the timing and movements of your animations, Unifying your app's animations, SwiftUI symbol effects, and Human Interface Guidelines Motion.
Script Inventory
scripts/customization_config.py