jthorare

design-evolve

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.

jthorare 1 3 Updated 3w ago
GitHub

Install

npx skillscat add jthorare/agentic-workflow/design-evolve

Install via the SkillsCat registry.

SKILL.md

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:// or https:// → web. Dispatch to design-evolve-web.
  • Argument is an existing filesystem path (a .swift file, or a directory containing Swift files / an Xcode project) — verify by globbing/reading it → iOS. Dispatch to design-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

  1. Echo before dispatching: dispatch: <sub-skill> args=<args>
  2. Dispatch literally, passing all user-supplied arguments through unchanged:
    • Web: Invoke skill design-evolve-web with args "<original args verbatim>"
    • iOS: Invoke skill design-evolve-ios with args "<original args verbatim>"
  3. design-evolve-web requires a URL — if web was chosen and no URL is present, stop and ask. design-evolve-ios prompts 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

Categories