permissionkit

Manage parental consent workflows for child communication across UIKit and SwiftUI.

Updated May 6, 2026
One-click install
npx skills add https://github.com/Roy-wonji/claude-config --skill permissionkit-roy-wonji
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: permissionkit
Source: https://github.com/Roy-wonji/claude-config/tree/main/skills/swift-ios-skills/skills/permissionkit
Command: npx skills add https://github.com/Roy-wonji/claude-config --skill permissionkit-roy-wonji

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

PermissionKit helps you safely request parental or guardian approval when a child needs to communicate in ways that are governed by communication limits.

Core Features & Use Cases

  • Parental approval flow: Create a PermissionQuestion, present it via AskCenter or PermissionButton, and receive a PermissionResponse with approval or denial.
  • Communication-limit awareness: Check whether communication limits are enabled and whether specific handles are known before requesting permission.
  • Rich SwiftUI prompts: Build child-friendly permission UI using PermissionButton, optionally enhanced with person display information like names and avatars.
  • Use case: If a child tries to message a contact and the app enforces communication limits, generate a PermissionQuestion for that contact and actions (e.g., message or audio call) and then enable or restrict communication based on the parent’s decision.

Quick Start

Create a PermissionQuestion<CommunicationTopic> for the child’s communication handle and action, present it using AskCenter.shared.ask(...) (UIKit) or PermissionButton (SwiftUI), and handle the resulting approvals and denials by observing AskCenter.shared.responses(for:).

Frequently Asked Questions about permissionkit

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I request parental consent for child communication in a SwiftUI app?▼

Request parental consent by constructing a PermissionQuestion with CommunicationHandle and CommunicationTopic, then presenting it via PermissionButton in SwiftUI to receive an asynchronous approval or denial response.

How does asynchronous permission response handling work for multiple contacts?▼

Asynchronous permission responses are handled by observing AskCenter.shared.responses(for:), which delivers individual approval or denial results for multiple contacts as parents interact with the consent prompts.

Can I check if communication limits are enabled before requesting parental approval?▼

Yes, PermissionKit allows you to verify whether communication limits are enabled and whether specific handles are known before generating a PermissionQuestion to request parental approval.

Does PermissionKit support both UIKit and SwiftUI for presenting parental approval flows?▼

PermissionKit supports both UIKit and SwiftUI, allowing you to present parental consent workflows using AskCenter.shared.ask for UIKit or PermissionButton for SwiftUI interfaces.

What errors should I handle when implementing a parental consent workflow?▼

When implementing parental consent workflows, you must safely handle AskError cases that may occur during the construction of PermissionQuestion or while observing asynchronous responses from AskCenter.

How do I build a child-friendly permission UI with names and avatars?▼

Build a child-friendly permission UI by using PermissionButton in SwiftUI, optionally enhancing it with person display information like names and avatars to present the communication approval prompt.