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.