executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
sf-symbolsSF Symbols end-to-end — choosing and configuring the 7,000+ system symbols (rendering modes, variable color/draw, gradients), authoring custom symbols that interpolate across weights, and the animation preset vocabulary. Use when picking iconography, building custom symbols, animating symbol state changes, or rendering values as symbols.
Independent GitHub snapshot · Automated classification · Original documentation governs
Over 7,000 system symbols with free platform consistency, Dynamic Type alignment, and
accessibility — the default answer to "we need an icon." This skill covers using them well,
authoring custom ones that behave like system ones, and the animation vocabulary.
(Animation implementation patterns live in design/animation-patterns → symbol-effects.md;
this skill owns selection, authoring, and rendering.)
imageScale, weights match adjacent text).variableValue (0–1) to render magnitude — signal bars, progress.
Thresholds distribute evenly; 0% is the only "empty" state (a symbol reads "full" before 100%).
Variable Draw (SF Symbols 7) renders the path at a percentage instead of activating
layers — an alternative for progress/temperature; a symbol can carry both but renders one.Presets: Bounce · Pulse · Variable Color · Scale · Appear · Disappear · Replace · Draw On/Off (SF Symbols 7). Behavior classes: discrete (one-off), indefinite (until removed — always pair with removal logic), transition, content transition.
.contentTransition(.symbolEffect(.replace)) — and prefer Magic
Replace (preserves matching enclosures, uses Draw Off/On where supported) for state pairs
like mute/unmute..symbolEffectsRemoved() blocks them on subviews.symbolEffect, UIKit addSymbolEffect) in
design/animation-patterns/symbol-effects.md.The workflow that makes a custom glyph behave like a system one:
Erase punches shapes out of layers behind; Hidden excludes a layer
from a mode. For variable color, z-order = activation order (first-to-fill at bottom).❌ Common failures: baking effects into art (breaks rendering modes) · mismatched path counts across sources (kills interpolation) · re-ordering paths after annotation (forces re-annotation) · shipping a filled base variant as the only variant.
For icon reviews: Location | Current | Symbol exists? (name) | Mode/config | Action.
For custom-symbol requests: the 6-step authoring checklist above with per-step status.
design/animation-patterns (symbol-effects implementation), design/typography (SF font pairing), generators/app-icon-generator (app icons are NOT symbols)