本文へ移動
cccskills
無料GitHub で公開

ios-design-stack

Invocable iOS design pipeline. When called with a design prompt, runs an autonomous loop: designs iOS screens in Pencil MCP following Apple HIG, reviews for taste using Design Philosophy, validates with XcodeBuildMCP, and iterates until done. Use as: /ios-design-stack "Design a [screen] for [app] with [requirements]"

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

/ios-design-stack

Autonomous iOS design pipeline. Give it a prompt, it designs, reviews, builds, and iterates until the result passes both taste and build checks.

When Invoked

Parse the user's prompt as the design brief. Then run this pipeline as a loop until the design passes all checks.

Pipeline

┌─────────────────────────────────────────────────┐
│  1. SETUP     Load tokens + guidelines          │
│  2. DESIGN    Create screen in Pencil MCP       │
│  3. REVIEW    Taste-check with Design Philosophy│
│  4. BUILD     Export SwiftUI, build, screenshot  │
│  5. VERIFY    Compare screenshot to design       │
│  6. ITERATE   Fix issues, loop to step 2         │
│  7. DONE      All checks pass                    │
└─────────────────────────────────────────────────┘

Step 1: Setup

Load the iOS design skills in this repo:

Read: skills/ios-design-tokens/SKILL.md     ← iOS HIG tokens (colors, type, spacing)
Read: skills/pencil-ios-design/SKILL.md     ← Pencil MCP iOS workflow
Read: skills/design-philosophy/SKILL.md     ← taste principles

Then initialize:

  1. Call get_editor_state to check Pencil MCP is available
  2. Call open_document("new") or open existing .pen file
  3. Call set_variables with iOS design tokens from ios-design-tokens skill
  4. Call get_guidelines(topic="mobile-app") for Apple HIG rules

If the user specified an aesthetic (e.g., "dark, minimal, premium"): 5. Call get_style_guide_tags then get_style_guide(tags=[...]) to get style direction

Step 2: Design

Using the pencil-ios-design skill as your guide:

  1. Call find_empty_space_on_canvas(width=393, height=852) for iPhone 15 Pro frame size
  2. Call batch_design to create the screen layout. Max 25 operations per call.

Mandatory iOS rules:

  • 59pt top safe area (Dynamic Island)
  • 34pt bottom safe area (home indicator)
  • 16-20pt horizontal margins
  • All touch targets ≥ 44x44pt
  • 8pt spacing grid
  • SF Pro typography only, using iOS type scale
  • iOS semantic colors only (not hardcoded hex)
  • Continuous corners (squircle)

Refer to the common screen patterns in pencil-ios-design for Login, Settings, Detail, and other standard layouts.

Step 3: Review (Design Philosophy)

Before building, taste-check the design. Ask these questions:

  1. What's the one feeling this creates? Write it in one word.
  2. What would you remove? Cut at least one element.
  3. Does every element earn its place? If removing it changes nothing, remove it.
  4. Would Apple ship this? Be honest.

From the Design Philosophy skill:

  • Typography creates hierarchy, not color or weight
  • Whitespace = premium. Cramped = cheap.
  • One focal point per screen
  • One accent color maximum
  • Less, but better. (Dieter Rams #10)

If the design fails taste review, go back to Step 2 and simplify. Do NOT proceed to build until taste passes.

Step 4: Build

Export the design and validate it compiles:

  1. Export the Pencil design nodes to SwiftUI code
  2. Create/update the Swift file in the project
  3. Build with XcodeBuildMCP: xcodebuild build
  4. Run in simulator: xcrun simctl boot + install + launch
  5. Capture screenshot: xcodebuildmcp screenshot

If XcodeBuildMCP is not available, skip to Step 5 with the Pencil screenshot only.

Step 5: Verify

Compare the build screenshot (or Pencil screenshot) against the design:

Call: get_screenshot(nodeId="frame-id")
Call: snapshot_layout(nodeId="frame-id", problemsOnly=true)
Call: search_all_unique_properties(nodeId="frame-id", properties=["fillColor", "fontFamily", "fontSize"])

Verification checklist:

  • Spacing follows 8pt grid
  • All touch targets ≥ 44pt
  • Typography hierarchy is clear (squint test passes)
  • One focal point dominates the screen
  • Only SF Pro font family used
  • Only iOS type scale sizes (11, 12, 13, 15, 16, 17, 20, 22, 28, 34)
  • Only semantic colors (no random hex)
  • Continuous corners, not circular
  • Safe areas respected (top 59pt, bottom 34pt)
  • No layout issues (snapshot_layout reports clean)
  • Code compiles without warnings (if built)
  • Screenshot matches design intent

Step 6: Iterate

If any checks fail:

  1. Identify the specific issue
  2. Fix it in the Pencil design (batch_design update operations)
  3. Re-verify (back to Step 5)
  4. If it's a taste issue, revisit Step 3
  5. If it's a build issue, revisit Step 4

Continue iterating until ALL checks pass.

Step 7: Done

When all checks pass, report:

DESIGN COMPLETE

Screen: [name]
Feeling: [one word]
Checks passed:
  ✓ Typography: SF Pro, iOS type scale
  ✓ Spacing: 8pt grid
  ✓ Colors: iOS semantic tokens
  ✓ Touch targets: ≥ 44pt
  ✓ Safe areas: respected
  ✓ Taste: [one sentence on why it passes]
  ✓ Build: compiles, zero warnings
  ✓ Screenshot: matches design intent

Files:
  - [.pen file path]
  - [.swift file path]

Using with Ralph Loop

For fully autonomous iteration, wrap this skill in a Ralph Loop:

/ralph-loop "Run /ios-design-stack with this brief:

[USER'S DESIGN BRIEF HERE]

Success criteria:
- Design passes all verification checks
- Code compiles without warnings
- Screenshot matches design intent
- Taste check passes (would Apple ship this?)

Output <promise>DESIGN_COMPLETE</promise> when all checks pass." --max-iterations 15

The Ralph Loop will keep re-running the pipeline until it converges on a design that passes every check. Typical: 3-5 iterations for a simple screen.

External Dependencies

ToolSourceRequired?
Pencil MCPpencil.devYes — the design canvas
XcodeBuildMCPgetsentry/XcodeBuildMCPOptional — for build validation
Ralph Loopanthropics/claude-codeOptional — for autonomous iteration

Skills in This Repo

SkillWhat it does
skills/design-philosophy/Taste principles — Dieter Rams, "less but better"
skills/ios-design-tokens/iOS HIG tokens — typography, colors, spacing, radii
skills/pencil-ios-design/iOS Pencil MCP workflow — how to design iOS screens

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

When the user wants to A/B test App Store product page elements to improve conversion rate. Also use when the user mentions "A/B test", "product page optimization", "test my screenshots", "test my icon", "conversion rate optimization", "CPP", or "custom product pages". For screenshot design, see screenshot-optimization. For metadata optimization, see metadata-optimization.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

Discover and configure Bluetooth and Wi-Fi accessories using AccessorySetupKit. Use when presenting a privacy-preserving accessory picker, defining discovery descriptors for BLE or Wi-Fi devices, handling accessory session events, migrating from CoreBluetooth permission-based scanning, or setting up accessories without requiring broad Bluetooth permissions.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

Implement, review, or improve Live Activities and Dynamic Island experiences in iOS apps using ActivityKit. Use when building real-time updating widgets for the Lock Screen and Dynamic Island — delivery tracking, sports scores, ride-sharing status, workout timers, media playback, or any time-sensitive information that updates in real time. Also use when working with ActivityKit, ActivityAttributes, Activity lifecycle (request/update/end), Dynamic Island layouts (compact/minimal/expanded), push-to-update Live Activities, or Lock Screen live widgets.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

Measure ad effectiveness with privacy-preserving attribution using AdAttributionKit. Use when registering ad impressions, handling attribution postbacks, updating conversion values, implementing re-engagement attribution, configuring publisher or advertiser apps, or replacing SKAdNetwork with AdAttributionKit for ad measurement.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

alarmkit

無料

Implement AlarmKit alarms and countdown timers for iOS and iPadOS with Lock Screen, Dynamic Island, and Apple Watch system UI. Covers AlarmManager scheduling, AlarmAttributes and AlarmPresentation, AlarmButton stop and snooze actions, authorization, state observation, and Live Activity integration. Use when building wake-up alarms, countdown timers, or alarm-style alerts that need Apple's system alarm experience.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

When the user wants to optimize their Google Play Store listing — title, short description, full description, keywords, ratings, or Play Store-specific features. Use when the user mentions "Google Play", "Android", "Play Store", "Play Console", "short description", "full description indexed", "Google Play ASO", or wants Google Play-specific keyword, creative, or ratings strategy. For iOS App Store optimization, see aso-audit and metadata-optimization.

日本語の概要は準備中です。原文の説明を表示しています。

JordanCoin/ios-skills-collection62026年9月10日 更新

JordanCoin のスキルをすべて見る

このスキルの問題を報告する