Skills
Browse Apple Text skills by topic family and routing role.
Apple Text ships 39 skills. This page is the canonical grouped catalog: choose the topic family first, then use each skill’s role label to narrow further.
Start Here
Section titled “Start Here”If the user does not know the catalog yet, start with /apple-text:ask.
Browse By Skill Family
Section titled “Browse By Skill Family”These sections group related skills by subsystem so SwiftUI wrappers, TextKit runtime issues, and rich-text modeling stop competing for the same slot.
Front Door Skills
Section titled “Front Door Skills”Start here when the request is broad, needs triage, or should route through the shortest high-signal entry point.
| Skill | Role | When to Use |
|---|---|---|
apple-text | Router | Use when the user has an Apple text-system problem but the right specialist skill is not obvious, or when the request mixes multiple text subsystems. |
apple-text-audit | Workflow | Use when reviewing Apple text code for TextKit fallback risk, editing lifecycle bugs, deprecated APIs, or Writing Tools breakage. |
apple-text-recipes | Workflow | Use when building common text features or looking up quick recipes. |
apple-text-textkit-diag | Diagnostic | Use when debugging broken text. |
apple-text-apple-docs | Reference | Use when you need official Apple-authored documentation, exact API signatures, or Swift diagnostic explanations from Xcode-bundled docs. |
View And Stack Decisions
Section titled “View And Stack Decisions”Use these when the main job is choosing the right text view, platform surface, or TextKit stack.
| Skill | Role | When to Use |
|---|---|---|
apple-text-views | Decision | Use when choosing between SwiftUI Text/TextField/TextEditor, UITextView, or NSTextView. |
apple-text-layout-manager-selection | Decision | Use when choosing between TextKit 1 and TextKit 2, evaluating migration risk, or comparing NSLayoutManager vs NSTextLayoutManager. |
apple-text-appkit-vs-uikit | Decision | Use when comparing NSTextView and UITextView capabilities or porting editor behavior between macOS and iOS. |
SwiftUI And Wrapper Boundaries
Section titled “SwiftUI And Wrapper Boundaries”Use these when the hard part is crossing between SwiftUI and UIKit or AppKit text systems.
| Skill | Role | When to Use |
|---|---|---|
apple-text-texteditor-26 | Reference | Use when building rich-text editing with SwiftUI TextEditor on iOS 26+ or evaluating whether it replaces a UITextView wrapper. |
apple-text-representable | Workflow | Use when wrapping UITextView or NSTextView in SwiftUI. |
apple-text-swiftui-bridging | Decision | Use when deciding whether a text type or attribute crosses the SwiftUI/TextKit boundary cleanly, or checking interoperability rules. |
TextKit Runtime And Layout
Section titled “TextKit Runtime And Layout”Use these for fallback behavior, layout invalidation, viewport rendering, and direct TextKit runtime mechanics.
| Skill | Role | When to Use |
|---|---|---|
apple-text-exclusion-paths | Reference | Use when text needs to wrap around images or shapes, building multi-column text layout, or using exclusion paths, linked containers, and NSTextTable. |
apple-text-fallback-triggers | Reference | Use when debugging or preventing TextKit 2 fallback to TextKit 1. |
apple-text-layout-invalidation | Reference | Use when debugging stale layout or working with ensureLayout, invalidateLayout, or the invalidation model in TextKit 1 and 2. |
apple-text-measurement | Reference | Use when text is clipping, truncating unexpectedly, or when measuring text size, calculating boundingRect, or sizing views to fit text content. |
apple-text-textkit1-ref | Reference | Use when working with TextKit 1 and you need NSLayoutManager, NSTextStorage, or NSTextContainer APIs. |
apple-text-textkit2-ref | Reference | Use when working with TextKit 2 and you need NSTextLayoutManager or NSTextContentManager APIs. |
apple-text-viewport-rendering | Reference | Use when working with viewport layout, line-fragment geometry, rendering attributes, font substitution, or scroll-driven layout. |
Editor Features And Interaction
Section titled “Editor Features And Interaction”Use these for editing behaviors such as Writing Tools, undo, input, interaction, accessibility, and clipboard flows.
| Skill | Role | When to Use |
|---|---|---|
apple-text-accessibility | Workflow | Use when implementing VoiceOver, Dynamic Type, or accessibility traits in custom Apple text editors. |
apple-text-drag-drop | Workflow | Use when customizing drag and drop in Apple text editors. |
apple-text-find-replace | Workflow | Use when implementing find and replace in text editors. |
apple-text-interaction | Workflow | Use when customizing selection, edit menus, link taps, gestures, cursor appearance, or long-press actions in text editors. |
apple-text-pasteboard | Workflow | Use when handling copy, cut, or paste in text editors. |
apple-text-spell-autocorrect | Workflow | Use when implementing spell checking, autocorrect, or text completion. |
apple-text-undo | Workflow | Use when implementing or debugging undo/redo in text editors. |
apple-text-writing-tools | Workflow | Use when integrating Writing Tools. |
apple-text-dynamic-type | Reference | Use when implementing Dynamic Type scaling, custom font metrics, accessibility sizes, or content size category changes. |
apple-text-input-ref | Reference | Use when implementing or debugging UITextInput, UIKeyInput, or NSTextInputClient. |
Rich Text And Formatting
Section titled “Rich Text And Formatting”Use these when the work centers on attributed content, formatting attributes, attachments, colors, or Markdown semantics.
| Skill | Role | When to Use |
|---|---|---|
apple-text-attributed-string | Decision | Use when choosing between AttributedString and NSAttributedString, defining custom attributes, or converting between them. |
apple-text-attachments-ref | Reference | Use when embedding images, custom views, Genmoji, or other non-text content inline. |
apple-text-colors | Reference | Use when choosing text colors, semantic colors, dark mode adaptation, or wide-color/HDR text across UIKit, AppKit, and SwiftUI. |
apple-text-formatting-ref | Reference | Use when looking up NSAttributedString.Key values, underline styles, shadows, lists, tables, or view-compatibility rules. |
apple-text-line-breaking | Reference | Use when configuring line break mode, hyphenation, truncation, line height, paragraph spacing, or tab stops via NSParagraphStyle. |
apple-text-markdown | Reference | Use when working with Markdown in SwiftUI Text or AttributedString. |
Text Model And Foundation Utilities
Section titled “Text Model And Foundation Utilities”Use these for storage, parsing, Core Text, bidirectional text, and Foundation or NaturalLanguage text utilities.
| Skill | Role | When to Use |
|---|---|---|
apple-text-storage | Reference | Use when working with NSTextStorage, NSTextContentStorage, or NSTextContentManager. |
apple-text-bidi | Reference | Use when handling bidirectional text, RTL languages, writing direction controls, or cursor behavior in Arabic/Hebrew. |
apple-text-core-text | Reference | Use when working with Core Text for glyph-level access, custom typesetting, hit testing, font tables, or when TextKit 2 lacks the glyph APIs you need. |
apple-text-foundation-ref | Reference | Use when using Foundation or NaturalLanguage text utilities. |
apple-text-parsing | Decision | Use when deciding between Swift Regex and NSRegularExpression, bridging regex results to NSRange, or choosing a parsing strategy. |
Need A Role-Based View?
Section titled “Need A Role-Based View?”Use Problem Routing when the answer shape is clearer than the subsystem and you want to scan routers, workflows, diagnostics, decisions, and references directly.