Agent skill
swiftui-api-gap
Generate and maintain deterministic SwiftUI-vs-Raven API parity reports and automation. Use when users ask to audit missing SwiftUI components/APIs, refresh coverage reports, reduce report noise, tune matching logic (owner-qualified names, constructors, operators), or update the weekly GitHub Actions PR workflow that publishes Reports/swiftui-api-gap/gap_report.md.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/swiftui-api-gap
SKILL.md
SwiftUI API Gap
Overview
Use this skill to keep Raven's SwiftUI parity tracking deterministic, actionable, and automated.
Primary implementation files:
Scripts/swiftui_api_gap_report.py.github/workflows/swiftui-api-gap-report.ymlDocumentation/SwiftUI-API-Gap-Automation.md
Primary artifact:
Reports/swiftui-api-gap/gap_report.md
Workflow
- Run report generation.
Scripts/swiftui_api_gap_report.py --repo-root . --output-dir Reports/swiftui-api-gap
- Validate outputs exist.
ls -lh Reports/swiftui-api-gap
- Check report quality quickly.
- Confirm summary section has counts and coverage.
- Confirm named APIs are separate from operator-like overloads.
- Confirm constructor coverage is owner-qualified (
Type.init) and not globally skipped.
- If asked to improve actionability, prioritize:
- Owner-qualified matching for members (
Type.func,Type.var,Type.init). - Noise separation for operator-like signatures.
- Stable high-signal lists for components/modifiers.
- Clear markdown sections that humans can triage.
Automation
Weekly workflow:
.github/workflows/swiftui-api-gap-report.yml- Runs Monday via cron.
- Uses macOS runner compatible with Swift/Xcode tooling.
- Uploads artifact bundle.
- Opens/updates PR with refreshed report.
When editing automation:
- Keep
Reports/swiftui-api-gap/gap_report.mdinadd-pathsfor PR commits. - Keep workflow
permissionsat least:contents: writepull-requests: write
- Keep
workflow_dispatchso maintainers can run immediately.
Matching Rules
Use these rules unless user asks to change methodology:
- Source of truth:
swift-api-digesteragainst AppleSwiftUImodule. - Build SwiftUI inventory from digester output.
- Build Raven inventory from public declarations under
Sources/Raven/**/*.swift. - Match by owner-qualified member names when possible.
- Keep constructors scored by owner (
Type.init) unless upgraded to full signature matching. - Keep operator overloads summarized separately from named actionable APIs.
Troubleshooting
- If skill tooling scripts fail with missing
yaml, use repo venv:
venv/bin/python -m pip install pyyaml
-
If report looks noisy, inspect:
missing.operator_likeingap_report.json- owner context fields in high-signal sections
-
If workflow cannot be triggered remotely, ensure workflow file is committed to default branch first.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?