Detect web vs iOS automatically and delegate to /design-evolve-web (Dembrandt on a new URL) or /design-evolve-ios (extract from local Swift reference). Merges updates into design-tokens.json.
Install
npx skillscat add jthorare/agentic-workflow/design-evolve Install via the SkillsCat registry.
Before anything else: read $HOME/.agentic-workflow/toolkit/skills/_preamble.md and follow it (skill index, provider capability map, bootstrap check, session context). Run its Session Close section when this skill finishes.
Design context: read $HOME/.agentic-workflow/toolkit/skills/_design-preamble.md and follow it before continuing.
Design Evolve — Platform Dispatcher
Detects whether this is a web or iOS project and delegates to the appropriate design evolution skill. Contains no implementation logic.
Tip: If you already know the platform, invoke directly:
- Web:
/design-evolve-web <url>- iOS:
/design-evolve-ios <path/to/Theme.swift>
Step 1: Argument-Shape Routing
The argument shape usually decides the platform — validate it before any project detection:
- Argument starts with
http://orhttps://→ web. Dispatch todesign-evolve-web. - Argument is an existing filesystem path (a
.swiftfile, or a directory containing Swift files / an Xcode project) — verify by globbing/reading it → iOS. Dispatch todesign-evolve-ios. - No argument, or the argument matches neither shape (e.g. path does not exist) → fall through to Step 2. Ask only when detection is ambiguous — never silently guess a platform from a malformed argument.
Step 2: Platform Detection (only when the argument shape didn't decide)
Resolve the shared dir from the stable toolkit path, then follow the shared detection contract:
SHARED_DIR="$HOME/.agentic-workflow/toolkit/skills/_shared"
echo "contract: $SHARED_DIR/platform-detection.md"Read $SHARED_DIR/platform-detection.md and apply it exactly — the recursive iOS globs (**/Package.swift etc.) with excludes, the web package.json check, and the resolution table (both/neither present ⇒ Ask the user). Sub-skills for this dispatcher: iOS → design-evolve-ios, web → design-evolve-web.
Dispatch Contract
- Echo before dispatching:
dispatch: <sub-skill> args=<args> - Dispatch literally, passing all user-supplied arguments through unchanged:
- Web: Invoke skill
design-evolve-webwith args"<original args verbatim>" - iOS: Invoke skill
design-evolve-ioswith args"<original args verbatim>"
- Web: Invoke skill
design-evolve-webrequires a URL — if web was chosen and no URL is present, stop and ask.design-evolve-iosprompts for a path itself when the argument is absent.
Next steps
/design-mockup— build a mockup with the updated tokens/design-refine— apply the evolved language to existing screens