Source profileQuality 94/100Review permissions

gaelic-ghost/socket/plugins/server-side-swift/skills/openapi-rpc-workflow/SKILL.md

openapi-rpc-workflow

Design, generate, implement, test, and diagnose Swift OpenAPI and RPC-style server contracts using Swift OpenAPI Generator, OpenAPIRuntime, OpenAPIHummingbird, OpenAPIVapor, SwiftPM plugins, Dash docsets, official GitHub/SPI documentation, and clear handoffs to Vapor or Hummingbird workflows.

Source repository stars
6
Declared platforms
1
Static risk flags
1
Last source update
2026-08-21
Source checked
2026-08-25

Decision brief

What it does: where it fits

Design, generate, implement, test, and diagnose Swift OpenAPI and RPC-style server contracts using Swift OpenAPI Generator, OpenAPIRuntime, OpenAPIHummingbird, OpenAPIVapor, SwiftPM plugins, Dash docsets, official GitHub/SPI documentation, and clear handoffs to Vapor or Hummingbird workflows.

Best for

  • Use this skill when adding, editing, validating, or consuming an OpenAPI document in a Swift package.
  • Use this skill when wiring Swift OpenAPI Generator into Package.swift, openapi-generator-config.yaml, generated sources, or SwiftPM plugin commands.
  • Use this skill when implementing generated server stubs with APIProtocol, Operations, Components, OpenAPIRuntime, OpenAPIHummingbird, or OpenAPIVapor.

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexDeclaredSource recordInstall path and trigger
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/gaelic-ghost/socket --skill "plugins/server-side-swift/skills/openapi-rpc-workflow"
Safe inspection promptEditorial

Inspect the Agent Skill "openapi-rpc-workflow" from https://github.com/gaelic-ghost/socket/blob/1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d/plugins/server-side-swift/skills/openapi-rpc-workflow/SKILL.md at commit 1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Planning Workflow

    1. Inspect project shape: - Package.swift - OpenAPI document path, usually openapi.yaml, openapi.yml, or openapi.json - openapi-generator-config.yaml - generated source directories or build-plugin output assumptions - executable target, library target, and test targets - Humming…

    Inspect project shape:Package.swiftOpenAPI document path, usually openapi.yaml, openapi.yml, or openapi.json
  2. 02

    SwiftPM And Generator Setup

    When adding Apple's Swift OpenAPI Generator to an existing package:

    add the generator package as a dependency in Package.swiftadd the plugin to the target that owns the OpenAPI documentadd OpenAPIRuntime and the selected transport product to the target dependencies
  3. 03

    Purpose

    Build or diagnose contract-first server-side Swift work without mixing up three different things:

    the OpenAPI description, which is the HTTP API contractSwift OpenAPI Generator, which generates Swift types, client calls, and server protocol stubs from that contractthe server transport, such as OpenAPIHummingbird or OpenAPIVapor, which registers a generated APIProtocol implementation on a real Hummingbird or Vapor app
  4. 04

    When To Use

    Use this skill when adding, editing, validating, or consuming an OpenAPI document in a Swift package.

    Use this skill when adding, editing, validating, or consuming an OpenAPI document in a Swift package.Use this skill when wiring Swift OpenAPI Generator into Package.swift, openapi-generator-config.yaml, generated sources, or SwiftPM plugin commands.Use this skill when implementing generated server stubs with APIProtocol, Operations, Components, OpenAPIRuntime, OpenAPIHummingbird, or OpenAPIVapor.
  5. 05

    Source Check

    Prefer repo-local Swift files, checked-out dependency sources, Dash MCP or Dash HTTP for installed Swift package DocC first, then official online docs when Dash/local coverage is missing or stale:

    Dash Swift docsets usually live under /Library/Application Support/Dash/Swift DocSets/.Look for appleswiftopenapigenerator, appleswiftopenapiruntime, hummingbirdprojectswiftopenapihummingbird, vaporswiftopenapivapor, hummingbirdprojecthummingbird, vaporvapor, and swiftlangswiftpackagemanager.If querying Dash directly, inspect each docset's Contents/Resources/docSet.dsidx with sqlite3 and search for symbols or guide titles before falling back to the web.

Permission review

Static risk signals and limitations

Runs scripts

medium · line 130

The documentation asks the agent to run terminal commands or scripts.

run the app through the repository's existing `swift run App serve`, `app.execute()`, or documented command path

Runs scripts

medium · line 141

The documentation asks the agent to run terminal commands or scripts.

Run the smallest SwiftPM command that forces generation and type-checking, usually `swift build` or `swift test`.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score94/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars6SourceRepository attention, not individual Skill quality
Compatibility1 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
gaelic-ghost/socket
Skill path
plugins/server-side-swift/skills/openapi-rpc-workflow/SKILL.md
Commit
1140bc0b60f2c938b81d67dcee88a5eeb2e2f39d
License
Apache-2.0
Collected
2026-08-25
Default branch
main
View the original SKILL.md

OpenAPI And RPC Workflow

Purpose

Build or diagnose contract-first server-side Swift work without mixing up three different things:

  • the OpenAPI description, which is the HTTP API contract
  • Swift OpenAPI Generator, which generates Swift types, client calls, and server protocol stubs from that contract
  • the server transport, such as OpenAPIHummingbird or OpenAPIVapor, which registers a generated APIProtocol implementation on a real Hummingbird or Vapor app

For RPC-style services, first identify whether the user really means OpenAPI-backed HTTP operations, JSON-RPC over HTTP, gRPC, MCP-style tool calls, or a framework-specific client/server contract. Keep plain HTTP routes as the default when the service does not need a stronger protocol contract.

When To Use

  • Use this skill when adding, editing, validating, or consuming an OpenAPI document in a Swift package.
  • Use this skill when wiring Swift OpenAPI Generator into Package.swift, openapi-generator-config.yaml, generated sources, or SwiftPM plugin commands.
  • Use this skill when implementing generated server stubs with APIProtocol, Operations, Components, OpenAPIRuntime, OpenAPIHummingbird, or OpenAPIVapor.
  • Use this skill when choosing between Hummingbird and Vapor as the server transport for a generated API.
  • Use this skill when diagnosing generated-code drift, operation ID changes, missing schemas, request/response typing, transport registration, or OpenAPI validation failures.
  • Use this skill when a user says "RPC" and the next decision is whether OpenAPI, JSON-RPC, gRPC, MCP, or ordinary routes fit the service boundary.
  • Do not use this skill for generic Vapor or Hummingbird route work that has no generated OpenAPI contract. Use the framework-specific workflow instead.
  • Do not use this skill for Apple-platform app, simulator, preview, or Xcode project membership work.

Source Check

Prefer repo-local Swift files, checked-out dependency sources, Dash MCP or Dash HTTP for installed Swift package DocC first, then official online docs when Dash/local coverage is missing or stale:

  • Dash Swift docsets usually live under ~/Library/Application Support/Dash/Swift DocSets/.
  • Look for appleswiftopenapigenerator, appleswiftopenapiruntime, hummingbirdprojectswiftopenapihummingbird, vaporswiftopenapivapor, hummingbirdprojecthummingbird, vaporvapor, and swiftlangswiftpackagemanager.
  • If querying Dash directly, inspect each docset's Contents/Resources/docSet.dsidx with sqlite3 and search for symbols or guide titles before falling back to the web.
  • Use apple/swift-openapi-generator for generator behavior, package plugin setup, examples, supported OpenAPI features, and links to generated-code documentation.
  • Use apple/swift-openapi-runtime for generated runtime types and middleware concepts.
  • Use hummingbird-project/swift-openapi-hummingbird for Hummingbird server transport behavior.
  • Use vapor/swift-openapi-vapor for Vapor server transport behavior.
  • Use hummingbird-project/hummingbird-lambda when diagnosing Hummingbird-generated AWS Lambda adapter behavior.
  • Use swift-server/swift-openapi-lambda only when the repository intentionally chose that separate OpenAPI Lambda transport.
  • Use Swift Package Manager documentation for SwiftPM plugin, target, build, and test behavior.
  • Use OpenAPITools/openapi-generator only when the repository is intentionally using the Java-based OpenAPI Generator CLI instead of Apple's Swift package plugin.

Do not claim current generator, transport, or package-plugin behavior from memory when current official docs or local Dash docsets can be checked.

Planning Workflow

  1. Inspect project shape:
    • Package.swift
    • OpenAPI document path, usually openapi.yaml, openapi.yml, or openapi.json
    • openapi-generator-config.yaml
    • generated source directories or build-plugin output assumptions
    • executable target, library target, and test targets
    • Hummingbird or Vapor app construction and route registration
    • generated names such as APIProtocol, Operations, Components, Client, and transport imports
  2. Identify the contract owner:
    • spec-first service where the OpenAPI document drives generated server stubs
    • existing service where routes need an OpenAPI description
    • shared client/server package
    • internal RPC-like boundary where OpenAPI may or may not be the right shape
  3. Confirm the generator stack:
    • Apple's Swift OpenAPI Generator package plugin for SwiftPM-first projects
    • OpenAPIHummingbird for Hummingbird server registration
    • OpenAPIVapor for Vapor server registration
    • URLSession or AsyncHTTPClient transports for generated clients when needed
    • OpenAPITools CLI only when the repo already chose that toolchain
  4. Keep generated code out of source control when the project uses SwiftPM build plugins, unless the repository explicitly commits generated sources.
  5. Keep the OpenAPI document and generator config reviewable, because they are the API contract and the generated Swift surface depends on them.
  6. Validate in the narrowest useful order: spec validity, generation/build, server registration tests, then runtime HTTP checks if needed.

Contract Design

For OpenAPI-backed work:

  • give every operation a stable, readable operationId
  • model request bodies, response bodies, parameters, headers, and status codes explicitly
  • use shared schemas for values that cross more than one operation
  • keep error responses typed enough that clients can handle them predictably
  • avoid exposing internal database or framework types in the contract
  • treat operation ID or schema renames as API surface changes, because generated Swift symbol names may change

For RPC-style work:

  • choose OpenAPI when the boundary is HTTP operations with typed requests and responses
  • choose JSON-RPC only when method-call semantics are actually part of the protocol
  • choose gRPC only when the project has protobuf, streaming, or interoperability reasons that justify the extra toolchain
  • choose MCP-style tools only when the caller is an agent/tool runtime rather than a normal HTTP API client
  • keep ordinary Hummingbird or Vapor routes when the API is small, local, or not ready for a shared generated contract

SwiftPM And Generator Setup

When adding Apple's Swift OpenAPI Generator to an existing package:

  • add the generator package as a dependency in Package.swift
  • add the plugin to the target that owns the OpenAPI document
  • add OpenAPIRuntime and the selected transport product to the target dependencies
  • add or update openapi-generator-config.yaml for generated client, server, types, or access modifier choices
  • keep dependency URLs fetchable from GitHub or package registries, not local paths

Before editing Package.swift, inspect the current package tools version, target names, dependency style, and whether the repo pins exact versions, branches, or ranges.

Hummingbird Transport

Use OpenAPIHummingbird when the service already uses Hummingbird or when Hummingbird is the chosen server framework.

For projects generated by current hb init Lambda + OpenAPI templates, keep the distinction sharp:

  • OpenAPIHummingbird registers generated APIProtocol handlers on the Hummingbird Router.
  • hummingbird-lambda adapts that Hummingbird router to the selected AWS Lambda event type, such as API Gateway V2.
  • swift-openapi-lambda is a separate valid Swift OpenAPI Lambda transport, but it is not the transport generated by the Hummingbird template.
  • When a project may need both long-running server and Lambda deployments, keep the generated APIProtocol implementation transport-neutral and put server or Lambda differences in thin executable or adapter targets.

Typical shape:

  • build the Router
  • create the handler type that conforms to generated APIProtocol
  • call generated registerHandlers on the Hummingbird router or documented transport
  • create and run the Application through the repository's existing Hummingbird lifecycle

For request-context access from generated handlers, check current OpenAPIHummingbird docs before implementing. The transport documentation has used a task-local middleware pattern so generated endpoints can reach the Hummingbird request context without turning the generated protocol implementation into a generic dependency container.

Hand off to hummingbird-server-workflow for route grouping, middleware order, request contexts, Hummingbird testing, service lifecycle, and deployment details that are not specific to OpenAPI generation.

Vapor Transport

Use OpenAPIVapor when the service already uses Vapor or when Vapor is the chosen server framework.

Typical shape:

  • create or reuse the Vapor Application
  • create VaporTransport with the app or routes builder
  • create the handler type that conforms to generated APIProtocol
  • call generated registerHandlers on the transport
  • run the app through the repository's existing swift run App serve, app.execute(), or documented command path

For request access from generated handlers, check current OpenAPIVapor docs before implementing. The transport documentation includes a request-injection pattern using swift-dependencies; only add that dependency when the service genuinely needs direct Vapor Request access inside generated handlers.

Hand off to vapor-server-workflow for controllers, middleware, Fluent migrations, environment setup, app commands, and deployment details that are not specific to OpenAPI generation.

Testing And Validation

Prefer this order:

  1. Validate the OpenAPI document with the repository's existing validator when one exists.
  2. Run the smallest SwiftPM command that forces generation and type-checking, usually swift build or swift test.
  3. Add pure Swift tests for domain transformations that generated handlers call.
  4. Add Hummingbird or Vapor route tests for generated handler registration, request decoding, response encoding, status codes, and error bodies.
  5. Use curl only when runtime binding, headers, streaming, middleware, or end-to-end server behavior cannot be proven through tests.

When validation fails, name the exact contract element, generated symbol, package target, or transport registration point that failed. Include the likely cause, such as a missing operationId, unsupported schema shape, stale generated output assumption, wrong target plugin configuration, missing transport dependency, or framework middleware order.

Output Shape

Return:

  1. Contract shape: OpenAPI document path, generator config, generated Swift surface, selected transport, and handler owner.
  2. Docs used: Dash docsets, GitHub repositories, SPI docs, or official framework docs consulted.
  3. Command path: exact SwiftPM, generator, validation, test, run, or HTTP commands run or recommended.
  4. Behavior: operations, inputs, outputs, errors, transport registration, framework handoffs, and RPC-fit decision.
  5. Validation: spec checks, build, tests, server run, or HTTP check results.
  6. Handoffs: Vapor, Hummingbird, SwiftPM, gRPC, MCP, OpenAPITools CLI, client generation, deployment, or observability follow-up when the task crosses this skill's boundary.

Guardrails

  • Do not call all RPC-shaped work OpenAPI; make the protocol choice explicit.
  • Do not use OpenAPITools CLI when the Swift package is using Apple's Swift OpenAPI Generator plugin.
  • Do not commit machine-local dependency paths, generated cache directories, secrets, or local service credentials.
  • Do not silently rename operation IDs or shared schemas in public contracts.
  • Do not add Vapor request injection, Hummingbird task-local context access, gRPC, protobuf, or MCP runtime dependencies unless the project has a concrete need for that protocol behavior.
  • Do not treat generated handlers as the place for unrelated business rules; call tested domain code from the generated protocol implementation.

Frequently asked questions

What to verify before installation and use

What does the openapi-rpc-workflow source document cover?

Design, generate, implement, test, and diagnose Swift OpenAPI and RPC-style server contracts using Swift OpenAPI Generator, OpenAPIRuntime, OpenAPIHummingbird, OpenAPIVapor, SwiftPM plugins, Dash docsets, official GitHub/SPI documentation, and clear handoffs to Vapor or Hummingbird workflows.

How do I install openapi-rpc-workflow?

The source record exposes this install command: npx skills add https://github.com/gaelic-ghost/socket --skill "plugins/server-side-swift/skills/openapi-rpc-workflow". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: codex.

Which permission-related actions were detected?

Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 9420

upex-galaxy/agentic-qa-boilerplate

test-automation

Plan, write, and review automated tests following KATA (Komponent Action Test Architecture) on Playwright + TypeScript, or explain existing automated tests in a sealed read-only mode. Use when writing E2E or API/integration tests, creating Page or Api components, designing ATCs, parameterizing test data, registering fixtures, reviewing test code for KATA compliance, or requesting break-down-tests / a plain-English test breakdown. The explain mode reads source and reports assertions without enter

Computed 9420

upex-galaxy/agentic-qa-boilerplate

test-documentation

Analyze, prioritize, and document test cases in TMS (Jira/Xray), or repair an existing Story-ATS-ATP-ATR-TC cascade through a sealed explicit mode. Use for Test/ATP/ATR artifacts, ROI and automation verdicts, maintaining traceability, fix-traceability, or broken TMS links. The repair-traceability mode audits, plans, waits for explicit approval, applies, and verifies without launching the general documentation workflow. Do NOT use for writing test code (test-automation) or running suites (regress

Computed 8125,166

openai/skills

chatgpt-apps

Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.

Computed 976

mgiovani/cc-arsenal

team-review

Multi-agent review team: architecture, security, performance, testing, style, docs/UX, plus an adversary that cross-examines the other 6, for security-sensitive, architectural, or large PRs (15+ files) where a single-agent pass risks missing cross-cutting issues. Use for auth/payments/PII changes, schema/pattern changes, compliance sign-off, or when asked to 'get the review team on this' / 'multi-agent review' / 'thorough review before merge'. For a standard PR or a quick pre-merge check, use /r