Install
$ agentstack add skill-gaelic-ghost-socket-core-animation-layer-workflow ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Core Animation Layer Workflow
SwiftData And SwiftUI Rule
When a task combines SwiftData with SwiftUI, keep SwiftData directly coupled to SwiftUI through Apple's data-driven path: modelContainer, environment modelContext, @Query, SwiftData model objects, and bindings. Do not add repositories, stores, service layers, DTO mirrors, view-model caches, wrapper objects, or other abstraction layers between SwiftData and SwiftUI. If this skill is not the right owner for SwiftData-backed SwiftUI work, hand off to apple-dev-skills:swiftui-app-architecture-workflow instead of inventing an intermediate data layer.
Purpose
Use this skill to decide when Core Animation is the right layer-backed rendering or animation surface, then guide implementation, repair, and validation without confusing layer ownership with SwiftUI, AppKit, or UIKit view ownership.
It is not the default path for ordinary SwiftUI motion, AppKit/UIKit control animation, app architecture, or Xcode execution.
When To Use
- Use this skill when the task mentions Core Animation, QuartzCore,
CALayer,CAAnimation,CABasicAnimation,CAKeyframeAnimation,CAAnimationGroup,CATransaction,CAMediaTiming,presentationLayer,modelLayer, or layer trees. - Use this skill when the task mentions layer-backed AppKit views,
wantsLayer,UIView.layer,layerClass, customCALayersubclasses, shape layers, gradient layers, text layers, tiled layers, emitter layers, replicator layers, or transform layers. - Use this skill when the work needs model-layer versus presentation-layer reasoning, implicit-animation repair, explicit-animation timing, hit-testing during animation, layer-content scaling, or layer-backed performance diagnosis.
- Recommend
swiftui-animation-workflowwhen SwiftUI-native state animation, transitions, phase/keyframe animation, or reduce-motion behavior is enough. - Recommend
appkit-app-architecture-workfloworswiftui-app-architecture-workflowwhen the real issue is ownership, view structure, scene structure, or lifecycle. - Recommend
xcode-build-run-workflowwhen the next step is build, preview, simulator, screenshot, runtime diagnostics, Instruments handoff, or project-file validation.
Single-Path Workflow
- Classify the layer job:
- view backing layer
- custom layer drawing
- implicit property animation
- explicit
CAAnimation - layer tree composition
- model/presentation mismatch
- layer bridge from SwiftUI, AppKit, or UIKit
- performance or rendering artifact diagnosis
- Apply the Apple docs gate:
- read the relevant Apple 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
- Decide whether Core Animation is justified:
- stay in SwiftUI, AppKit, or UIKit when their animation helpers cover the behavior clearly
- use Core Animation when the task needs layer tree composition, presentation-layer inspection, custom layer subclasses, specialized layer types, or lower-level timing
- consider SpriteKit, SceneKit, Metal, AVFoundation, or Canvas when the task is really game, 3D, GPU rendering, video, or SwiftUI drawing work
- Choose the layer ownership boundary:
- UIKit view backing layer
- AppKit layer-backed view
- standalone sublayer tree owned by a view/controller/representable
- custom layer class with explicit inputs
- SwiftUI bridge via representable or hosting boundary
- Choose the animation path:
- implicit animation through property changes and transactions
- explicit animation object when timing, repeat, key path, fill behavior, or presentation continuity requires it
- disabled actions when layout or data updates must not animate
- framework-level animation when Core Animation is unnecessary
- Check model and presentation behavior:
- update the model layer to the intended final value
- use presentation layer only for in-flight visual state, hit testing, or diagnostics
- avoid leaving animations that visually finish but snap because the model layer was not updated
- Return one recommendation path with:
- the layer ownership boundary
- chosen layer or animation primitive
- documented behavior relied on
- artifact, timing, or performance risk
- validation or handoff step
Inputs
request: optional free-text task description used to classify the Core Animation question.target_framework: optional framework emphasis such asswiftui,appkit,uikit, ormixed.target_platforms: optional platform list such asios,macos,tvos,visionos, ormixed-apple.current_code: optional relevant files or snippets.symptom: optional issue such as snap-back, flicker, blurry contents, wrong timing, missed hit test, or performance drop.- Defaults:
- Apple docs-first guidance always applies
- higher-level Apple UI framework animation is preferred unless Core Animation solves a concrete problem
- Xcode or Instruments validation is reported as a handoff unless actually run
Outputs
statussuccess: the request belongs to this workflow and a layer recommendation is readyhandoff: another skill owns the next step after Core Animation-aware classificationblocked: docs, target platform, code, or validation context is insufficient for an honest recommendationpath_typelayer-ownershipimplicit-animationexplicit-animationmodel-presentation-repairperformance-diagnosishandoffoutput- classified layer job
- chosen ownership boundary
- chosen layer or animation primitive
- model/presentation behavior to preserve
- documented Apple behavior relied on
- validation or handoff step
Guards and Stop Conditions
- Do not drop into Core Animation when SwiftUI, AppKit, or UIKit animation APIs solve the problem cleanly.
- Do not change a UIKit view's backing layer delegate; Apple documents that the view is the layer's delegate.
- Do not use presentation-layer values as durable model state.
- Do not rely on removed layers, stale presentation layers, or animations that leave the model layer at the old value.
- Do not add timers for animation timing when
CAAnimation,CATransaction, display links, or framework primitives fit. - Do not claim performance, frame pacing, or Instruments evidence unless the relevant validation actually ran.
- Stop with
blockedwhen the issue depends on visual artifacts, timing, or device behavior that cannot be inspected in the current environment.
Fallbacks and Handoffs
- Recommend
swiftui-animation-workflowfor SwiftUI-native state animation, transitions, phase/keyframe animation, symbol effects, or reduce-motion behavior. - Recommend
swiftui-app-architecture-workfloworappkit-app-architecture-workflowwhen view/lifecycle ownership is the real blocker. - Recommend
apple-ui-accessibility-workflowwhen animation or visual effects need broader accessibility review. - Recommend
xcode-build-run-workflowfor build, run, preview, simulator, screenshot, runtime diagnostics, or Instruments handoff. - 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 applying layer-backed changes.
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 layer classification, model/presentation repair, animation primitive choice, and validation handoffs. If future iterations add deterministic layer-tree diagnostics, document those helpers before relying on them.
References
Workflow References
references/layer-ownership-and-animation-rules.mdreferences/model-presentation-and-performance.mdreferences/customization-flow.md
Support References
- Recommend
explore-apple-swift-docswhen the user needs direct Apple-docs lookup instead of Core Animation workflow guidance. - Recommend
references/snippets/apple-xcode-project-core.mdwhen the user needs reusable Xcode project policy before validating layer-backed app changes. - Apple documentation anchors to verify include Core Animation Support,
UIView.layer,UIView.layerClass,NSView.layer,NSImagelayer contents,CALayer,CAAnimation,CATransaction, and Core Animation specialized layer types.
Script Inventory
scripts/customization_config.py
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: gaelic-ghost
- Source: gaelic-ghost/socket
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.