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

axiom-uikit

Use when bridging UIKit and SwiftUI, modernizing UIKit apps (scene lifecycle, resizability), debugging Auto Layout, Combine, TextKit, PencilKit, or UIKit animations.

インストール方法を見る

含まれるファイル(11)

  • SKILL.md9.9 KB
  • agents/openai.yaml179 B
  • skills/adaptive-layout.md5.9 KB
  • skills/auto-layout-debugging.md18.5 KB
  • skills/combine-patterns.md23.4 KB
  • skills/pencilkit-paperkit-ref.md17.4 KB
  • skills/pencilkit-paperkit.md15.2 KB
  • skills/textkit-ref.md33.4 KB
  • skills/uikit-animation-debugging.md17.7 KB
  • skills/uikit-bridging.md30.7 KB
  • skills/uikit-modernization.md26.3 KB

SKILL.md(原文)

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

UIKit & Bridging

You MUST use this skill for ANY UIKit bridging, Auto Layout, Combine, TextKit, or UIKit animation work.

<!-- AXIOM_AUDITOR_INLINE_BEGIN — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->

Auditors are skills here. Where this router says "Launch some-auditor agent", invoke the matching Codex skill instead — same procedure, no Claude Code agent required.

Available: axiom-audit-resize.

The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.

<!-- AXIOM_AUDITOR_INLINE_END -->

Quick Reference

Symptom / TaskReference
UIViewRepresentable, UIViewControllerRepresentableSee skills/uikit-bridging.md
Embedding SwiftUI in UIKit (UIHostingController)See skills/uikit-bridging.md
Coordinator pattern, updateUIView lifecycleSee skills/uikit-bridging.md
Building adaptive UIKit layout: guides, width-conditional constraints, compositional layout, self-sizing cellsSee skills/adaptive-layout.md
"Unable to simultaneously satisfy constraints"See skills/auto-layout-debugging.md
Constraint conflicts, ambiguous layoutSee skills/auto-layout-debugging.md
Views not appearing, positioned incorrectlySee skills/auto-layout-debugging.md
CAAnimation completion handler not firingSee skills/uikit-animation-debugging.md
Spring physics wrong on device, duration mismatchSee skills/uikit-animation-debugging.md
Animation jank, CATransaction timingSee skills/uikit-animation-debugging.md
Combine publishers, AnyCancellable lifecycleSee skills/combine-patterns.md
@Published properties, Combine ↔ async/awaitSee skills/combine-patterns.md
When to use Combine vs async/awaitSee skills/combine-patterns.md
UIScene lifecycle required, resizable apps, size classes, tab sidebar OS27See skills/uikit-modernization.md
iPhone Mirroring compat: indirect input, companion Face ID, portrait trapSee skills/uikit-modernization.md
Scene edges: teardown, activation requests, per-scene restoration, external display, activeAppearanceSee skills/uikit-modernization.md
Nav bar title and subtitle: UINavigationItem.subtitle, largeSubtitleView, attributedTitle/attributedSubtitle, subtitle text attributes (iOS 26)See skills/uikit-modernization.md
Automated resize-readiness scan (scene lifecycle, UIScreen.main, fixed-canvas, Mirroring input, iPhone Duo)axiom-audit-resize
iPhone Duo in UIKit: vertical bars, the fold, window requests on the outer displaySee axiom-swiftui (skills/iphone-duo.md) — UIKit equivalents sit beside each SwiftUI API
TextKit 2 architecture, NSTextLayoutManagerSee skills/textkit-ref.md
Writing Tools integration (iOS 26)See skills/textkit-ref.md
Viewport rendering surfaces, attachment reuse, collapsible text OS27See skills/textkit-ref.md
SwiftUI TextEditor, TextKit 1 migrationSee skills/textkit-ref.md
Grammar checking (UITextChecker), per-edge text-block borders OS27See skills/textkit-ref.md
PencilKit canvas, PKToolPicker, drawing persistenceSee skills/pencilkit-paperkit.md
Apple Pencil Pro (squeeze, barrel roll, hover, haptics)See skills/pencilkit-paperkit.md
Handwriting recognition (PKStrokeRecognizer), stroke identity/slicing OS27See skills/pencilkit-paperkit-ref.md
PaperKit markup canvas (shapes, images, text + drawing)See skills/pencilkit-paperkit-ref.md
PaperKit programmatic markup model (subelements, adornments) OS27See skills/pencilkit-paperkit-ref.md

Decision Tree

digraph uikit {
    start [label="UIKit task" shape=ellipse];
    what [label="What do you need?" shape=diamond];

    start -> what;
    what -> "skills/uikit-bridging.md" [label="wrap UIKit in SwiftUI\nor SwiftUI in UIKit"];
    what -> "skills/adaptive-layout.md" [label="build adaptive layout\n(guides, constraint sets,\ncompositional)"];
    what -> "skills/auto-layout-debugging.md" [label="constraint errors,\nlayout issues"];
    what -> "skills/uikit-animation-debugging.md" [label="CAAnimation bugs,\nspring physics,\ncompletion handlers"];
    what -> "skills/combine-patterns.md" [label="publishers, sinks,\n@Published,\nasync/await bridge"];
    what -> "skills/textkit-ref.md" [label="text layout,\nWriting Tools,\nTextKit migration"];
    what -> "skills/pencilkit-paperkit.md" [label="drawing canvas,\nApple Pencil,\nPaperKit markup"];
    what -> "skills/uikit-modernization.md" [label="scene lifecycle (required 27),\nresizable apps,\nsize classes"];
}
  1. Scene-lifecycle migration, "app won't launch on 27", resizability, size classes, tab sidebar? → skills/uikit-modernization.md 0b. App misbehaves in iPhone Mirroring (gestures dead, Face ID blocked, layout stuck portrait)? → skills/uikit-modernization.md 0c. iPhone Duo / foldable iPhone (vertical bars, the fold, outer-display window requests)? → axiom-swiftui (skills/iphone-duo.md)
  2. UIViewRepresentable / UIViewControllerRepresentable / UIHostingController? → skills/uikit-bridging.md
  3. "Unable to simultaneously satisfy constraints" / layout bugs? → skills/auto-layout-debugging.md 2b. Building a layout that adapts (layout guides, size-class constraint sets, compositional column math, self-sizing cells)? → skills/adaptive-layout.md
  4. CAAnimation completion missing / spring physics wrong / animation jank? → skills/uikit-animation-debugging.md
  5. Combine publishers / AnyCancellable / @Published / Combine ↔ async bridge? → skills/combine-patterns.md
  6. TextKit 2 / Writing Tools / TextEditor / TextKit 1 migration? → skills/textkit-ref.md
  7. PencilKit canvas / Apple Pencil / PaperKit markup? → skills/pencilkit-paperkit.md
  8. Pure SwiftUI view question (no UIKit bridging)? → /skill axiom-swiftui
  9. Design decisions, HIG, Liquid Glass, SF Symbols, typography? → /skill axiom-design
  10. Block retain cycles in UIKit callbacks? → See axiom-performance (skills/objc-block-retain-cycles.md)
  11. Memory leaks from Combine subscriptions? → Start with skills/combine-patterns.md, then axiom-performance if leak persists

Conflict Resolution

uikit vs swiftui: When working with UI code:

  • Use uikit when wrapping UIKit in SwiftUI or vice versa, or debugging UIKit-specific issues (Auto Layout, CAAnimation)
  • Use swiftui for pure SwiftUI views, navigation, layout, animations

uikit vs concurrency: When Combine interacts with async/await:

  • Use uikit (skills/combine-patterns.md) for bridging Combine pipelines with async/await
  • Use concurrency for pure async/await patterns, actors, Sendable

uikit vs performance: When animations or layout cause performance issues:

  1. Try uikit FIRST — Most animation jank is CATransaction timing or layer state, not a profiling issue
  2. Only use performance if animation logic is correct but rendering is slow

uikit vs axiom-data: When @Published properties relate to data persistence:

  • Use uikit for Combine publisher patterns and @Published lifecycle
  • Use axiom-data for SwiftData/Core Data model layer concerns

Anti-Rationalization

ThoughtReality
"I'll just use UIHostingController, it's simple"Hosting has sizing, lifecycle, and navigation edge cases. skills/uikit-bridging.md covers the gotchas.
"Auto Layout error is just a warning, I'll ignore it"Unsatisfied constraints cause unpredictable layout at runtime. Fix them now.
"I know how CAAnimation works"90% of CAAnimation bugs are CATransaction timing, not Core Animation. Check skills/uikit-animation-debugging.md.
"Combine is dead, just rewrite with async/await"Combine has no deprecation notice. Rewriting working pipelines wastes time. skills/combine-patterns.md covers when to migrate vs maintain.
"TextKit 1 still works fine"TextKit 1 misses Writing Tools integration and has known layout bugs Apple won't fix. See skills/textkit-ref.md.
"I'll store cancellables in a local variable"Local AnyCancellable deallocates immediately, killing the subscription.
"I'll archive the PKCanvasView to save the drawing"Archiving the view loses editability. Persist drawing.dataRepresentation(). See skills/pencilkit-paperkit.md.
"My tool picker won't show, the API must be broken"The canvas must becomeFirstResponder() after setVisible(_:forFirstResponder:). See skills/pencilkit-paperkit.md.

Example Invocations

User: "How do I wrap a UIKit view in SwiftUI?" → Read: skills/uikit-bridging.md

User: "I'm getting 'Unable to simultaneously satisfy constraints'" → Read: skills/auto-layout-debugging.md

User: "My CAAnimation completion handler never fires" → Read: skills/uikit-animation-debugging.md

User: "Should I use Combine or async/await for this?" → Read: skills/combine-patterns.md

User: "How do I integrate Writing Tools with my text editor?" → Read: skills/textkit-ref.md

User: "How do I add an Apple Pencil drawing canvas with the tool picker?" → Read: skills/pencilkit-paperkit.md

User: "How do I add a PaperKit markup canvas with shapes and text?" → Read: skills/pencilkit-paperkit-ref.md

User: "My SwiftUI view has a memory leak from a Combine subscription" → Read: skills/combine-patterns.md

User: "How do I embed SwiftUI in my UIKit app?" → Read: skills/uikit-bridging.md

User: "Audit my app for screen resizing support" → axiom-audit-resize (or axiom-audit-resize)

User: "My custom pinch gesture stops working when the app runs in iPhone Mirroring" → Read: skills/uikit-modernization.md

User: "How do I vary my collection view's column count with the window width?" → Read: skills/adaptive-layout.md

レビュー

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

同じリポジトリのスキル

概要と使いどころ

Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.

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

CharlesWiltgen/Axiom1,2062026年10月13日 更新

axiom-ai

無料

Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation Models, @Generable, LanguageModelSession, Tool protocol, eval suites, model-as-judge scoring, SpeechTranscriber, CoreML.

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

CharlesWiltgen/Axiom1,2062026年10月13日 更新

Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs analysis.

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

CharlesWiltgen/Axiom1,2062026年10月13日 更新

Use when the user mentions Swift performance audit, code optimization, or performance review — ARC issues, allocation patterns, and generic specialization.

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

CharlesWiltgen/Axiom1,2062026年10月13日 更新

Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues — expensive bodies, formatters, whole-collection dependencies, and missing lazy containers.

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

CharlesWiltgen/Axiom1,2062026年10月13日 更新

Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose WHY a specific test fails.

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

CharlesWiltgen/Axiom1,2062026年10月13日 更新

CharlesWiltgen のスキルをすべて見る

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