Generating Swift Package Docs
johnrogers/claude-swift-engineering
A skill your agent uses when encountering unfamiliar import statements, exploring dependency APIs, or when user asks "what's import X" or "what does X do".
Writes and maintains DocC /// comments for the public API of the TMDb Swift package, following the project's summary patterns and comment structure.
$ npx skills add adamayoung/TMDb --skill document-swift -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adamayoung/TMDb document-swift --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/document-swift .claude/skills/document-swift && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "document-swift" agent skill from https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swift into .claude/skills/document-swift/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-swift", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swiftType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add adamayoung/TMDb --skill document-swift -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adamayoung/TMDb document-swift --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/document-swift .agents/skills/document-swift && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "document-swift" agent skill from https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swift into .agents/skills/document-swift/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-swift", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adamayoung/TMDb --skill document-swift -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adamayoung/TMDb document-swift --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/document-swift .cursor/skills/document-swift && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "document-swift" agent skill from https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swift into .cursor/skills/document-swift/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-swift", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/adamayoung/TMDb.git --path .claude/skills/document-swift--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add adamayoung/TMDb --skill document-swift -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adamayoung/TMDb document-swift --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/document-swift .gemini/skills/document-swift && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "document-swift" agent skill from https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swift into .gemini/skills/document-swift/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-swift", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install adamayoung/TMDb document-swiftInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add adamayoung/TMDb --skill document-swift -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/document-swift .github/skills/document-swift && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "document-swift" agent skill from https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swift into .github/skills/document-swift/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-swift", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add adamayoung/TMDb --skill document-swift -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install adamayoung/TMDb document-swift --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adamayoung/TMDb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/document-swift .opencode/skills/document-swift && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "document-swift" agent skill from https://github.com/adamayoung/TMDb/tree/main/.claude/skills/document-swift into .opencode/skills/document-swift/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "document-swift", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
document-swiftWrites and maintains DocC /// comments for the public API of the TMDb Swift package, following the project's summary patterns and comment structure.
The skill is the project's single source of truth for documentation style, applied while each declaration is written, because a public symbol without a /// comment is unfinished and make build-docs treats warnings as errors. It covers only public declarations, every one of them with no self-explanatory exceptions, uses /// rather than block comments and keeps lines to 100 characters.
Summaries follow patterns by kind: methods start with a verb phrase, properties are noun phrases, types read as a model representing a noun, protocols describe an interface for providing data from TMDb, and initializers create an object. Sections follow a fixed order of API link, Precondition, Parameters, Throws and Returns. Service protocol methods link to the TMDb API reference, parameters use the singular or plural list form, and methods with a page parameter note the allowed range. A documentation-writer agent follows the same rules for bulk sweeps.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit a3f1311. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
makeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
developer.themoviedb.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Swift DocC Documentation loads about 2.6k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 999 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from adamayoung/TMDb at commit a3f1311, republished under its Apache-2.0 licence (© adamayoung). 999 words, ~2,575 tokens.
.claude/skills/document-swift/SKILL.md (or your agent's skills folder).The canonical guide for documenting public API in the TMDb Swift package. Apply
these conventions inline, in the same step you write the declaration — a
public symbol without a /// comment is not finished (CLAUDE.md requires it,
and make build-docs runs warnings-as-errors, so a miss breaks the build). For
documenting many files at once, the documentation-writer agent follows these
same rules in an isolated context.
public declarations — skip internal, private,
fileprivate, package.init(from:) / encode(to:) in a public extension need
comments too (a common miss)./// style — never /** */.The first /// line after the opening blank /// is the summary. Match the
project's house style by declaration kind:
Be concise. Extra detail goes in later paragraphs only when it adds something the signature doesn't.
Opening ///, summary, blank ///, then sections in this order, each separated
by a blank /// line: API link → Precondition → Parameters → Throws →
Returns. No trailing whitespace on blank /// lines.
/// [TMDb API - <Category>: <Endpoint>](https://developer.themoviedb.org/reference/<slug>)- Parameter name: (singular) for exactly one parameter;
- Parameters: with an indented list for two or more.page parameter add a
/// - Precondition: line — e.g. page can be between 1 and 1000./// - Throws: TMDb error ``TMDbError``.; for
Decodable inits, list the specific DecodingError cases.language: "ISO 639-1 language code to display results in. Defaults to the
client's configured default language."country: "ISO 3166-1 country code."page: "The page of results to return."id parameters: "The identifier of the [entity]."session: "The user's TMDb session." TMDbError .<doc:/TMDb/ArticleName>.URL? property representing an image path — posterPath,
backdropPath, profilePath, logoPath, stillPath — must add, on its own
paragraph: "To generate a full URL see doc:/TMDb/GeneratingImageURLs."Service method, multiple parameters (note Precondition + plural Parameters):
///
/// Returns the user reviews for a movie.
///
/// [TMDb API - Movies: Reviews](https://developer.themoviedb.org/reference/movie-reviews)
///
/// - Precondition: `page` can be between `1` and `1000`.
///
/// - Parameters:
/// - movieID: The identifier of the movie.
/// - page: The page of results to return.
/// - language: ISO 639-1 language code to display results in.
/// Defaults to the client's configured default language.
///
/// - Throws: TMDb error ``TMDbError``.
///
/// - Returns: Reviews for the matching movie as a pageable list.
///
func reviews(
forMovie movieID: Movie.ID,
page: Int?,
language: String?
) async throws -> ReviewPageableListService method, single parameter (singular Parameter):
///
/// Returns a review's details.
///
/// [TMDb API - Reviews: Details](https://developer.themoviedb.org/reference/review-details)
///
/// - Parameter id: The identifier of the review.
///
/// - Throws: TMDb error ``TMDbError``.
///
/// - Returns: Matching review.
///
func details(forReview id: Review.ID) async throws -> ReviewModel struct with an image path and a matching initializer:
///
/// A model representing a movie.
///
public struct MovieListItem: Identifiable, Codable, Equatable, Hashable, Sendable {
///
/// Movie identifier.
///
public let id: Int
///
/// Movie poster path.
///
/// To generate a full URL see <doc:/TMDb/GeneratingImageURLs>.
///
public let posterPath: URL?
///
/// Creates a movie list item object.
///
/// - Parameters:
/// - id: Movie identifier.
/// - posterPath: Movie poster path.
///
public init(id: Int, posterPath: URL? = nil)
}Initializer parameter descriptions must stay consistent with the corresponding property documentation.
When public API changes, update Sources/TMDb/TMDb.docc/ so make build-docs
(warnings-as-errors) stays green. Catalog layout:
Sources/TMDb/TMDb.docc/
├── TMDb.md # Main catalog with topic sections
├── Extensions/
│ ├── TMDbClient.md # TMDbClient properties
│ └── <ServiceName>Service.md # Service method groupings
├── GettingStarted/
├── HowTos/
└── Resources/Extensions/<ServiceName>Service.md; add the service
and its return types to TMDb.md; add the property to TMDbClient.md. reviews(forMovie:page:language:) .TMDb.md.Extension file shape:
# ``MovieService``
## Topics
### Reviews
- ``reviews(forMovie:page:language:)``README.md carries a human-facing overview that drifts out of date as the API
grows — update it in the same change, then run make lint-markdown:
## Available Services) — one row per service,
| **serviceName** | capability, capability, … |.**Comprehensive API Coverage** feature bullet so the number stays
accurate.## Features) → add or amend a bullet when the change
introduces a headline, user-visible capability (a new search mode, a new
formatting conformance, etc.), not for routine endpoint additions.## Setup, ## Common Use Cases) → if the change alters a
usage pattern shown in an example, update the example; these aren't compiled, so
verify types, property names, and try/await by hand. Example blocks must show
the swift-tools-version that matches Package.swift.swift-tools-version changed, or a new tool/dependency is required (bump
Prerequisites).Rule of thumb: the README is the at-a-glance map of the API — if a user reading only the Features list and the service table would now have a wrong or incomplete picture, fix it here. Skip churn for purely internal changes.
/// ?, Array of...) — write complete descriptions.Person doc, or
Movie.ID where Person.ID is meant.@available unless it matches the enclosing type's declaration./// comment.[TMDb API - …] link.Parameter(s) is correct; order is Parameters → Throws →
Returns.TMDb.md, TMDbClient.md) reflects the
current public API.README.md overview is in sync — the Available Services table (row +
capability words), the service count in the Features bullet, the
Features list for any headline capability, and any affected code examples.make build-docs to confirm docs compile with no warnings, and
make lint-markdown if README.md (or any .md) changed.For Apple API specifics (concurrency safety, availability, behaviour), look it up
with the sosumi MCP tools rather than guessing. For documenting async/actor/
Sendable API, the swift-concurrency skill has the concurrency vocabulary.
© adamayoung, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/document-swift of adamayoung/TMDb.
Open the folder on GitHubat commit a3f1311
Swift DocC Documentation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Swift DocC Documentation this skilladamayoung/TMDb | 178 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Generating Swift Package Docsjohnrogers/claude-swift-engineering | 231 | — | ~272 | Automated safety check: Pass | MIT | |
| Swift Concurrencyhenrypldev/react-native-nitro-mlx | 100 | 3 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Core Data ExpertAvdLee/Core-Data-Agent-Skill | 315 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Swift Concurrencynimblehq/ios-templates | 110 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Generate Dochyochan/react-native-nitro-sound | 961 | — | ~824 | Automated safety check: Pass | MIT |
johnrogers/claude-swift-engineering
A skill your agent uses when encountering unfamiliar import statements, exploring dependency APIs, or when user asks "what's import X" or "what does X do".
henrypldev/react-native-nitro-mlx
Diagnose Swift Concurrency issues, refactor callback-based code to async/await, and guide Swift 6 migration when working with tasks, actors, @MainActor, Sendable, data races, thread safety, or…
AvdLee/Core-Data-Agent-Skill
Expert Core Data guidance (iOS/macOS): stack setup, fetch requests & NSFetchedResultsController, saving/merge conflicts, threading & Swift Concurrency, batch operations & persistent history…
nimblehq/ios-templates
Write, review, or fix Swift 6 concurrency code using actors, Sendable, structured concurrency, and the strict data-race-safety model.
hyochan/react-native-nitro-sound
Create or update react-native-nitro-sound API documentation, examples, migration notes, FAQ entries, changelog or release notes, and compiled AI context.
jjjkkkjjj/Matft
Procedure for adding tests for Matft's image processing (Matft.image., indexing or channel swapping on images, etc.), generating comparison images that put the result next to an OpenCV reference…
adamayoung/TMDb
Diagnoses a failing scheduled TMDb Integration run, re-runs transient failures, and fixes real API drift on its own branch with a PR, merging it only when told to.
adamayoung/TMDb
Drives an approved plan to completion test-first, deriving a Canon TDD test list, showing it before any code and stopping only when every item is written, passing and green.
adamayoung/TMDb
Grooms the Backlog column of a GitHub project board by re-verifying each issue against current main, closing dead ones, promoting actionable ones to Ready and naming the decision the rest need.
adamayoung/TMDb
Has your agent build features and fix bugs in Canon TDD order: write a test list, then one failing test, make it pass, refactor, and repeat until the list is empty.
adamayoung/TMDb
Records non-obvious lessons from a finished task, such as gotchas, API quirks and design decisions, into a project's knowledge folder before a pull request opens.
adamayoung/TMDb
Cut a new TMDb release — work out the next SemVer version from the evidence, do the pre-tag housekeeping a tag would otherwise freeze in place, draft release notes, then tag and publish the GitHub…
Works with
Categories
Writes and maintains DocC /// comments for the public API of the TMDb Swift package, following the project's summary patterns and comment structure. The skill is the project's single source of truth for documentation style, applied while each declaration is written, because a public symbol without a /// comment is unfinished and make build-docs treats warnings as errors. It covers only public declarations, every one of them with no self-explanatory exceptions, uses /// rather than block comments and keeps lines to 100 characters.
Swift DocC Documentation fits situations like: adding a public protocol, struct or method to the TMDb package; fixing missing documentation warnings in the DocC build; documenting a model's properties and initializers; keeping the DocC catalog in sync after an API change.
Run `npx skills add adamayoung/TMDb --skill document-swift -a claude-code`. Or copy the skill folder (.claude/skills/document-swift in adamayoung/TMDb) into .claude/skills/document-swift in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adamayoung/TMDb --skill document-swift -a codex`. Or copy the skill folder (.claude/skills/document-swift in adamayoung/TMDb) into .agents/skills/document-swift in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add adamayoung/TMDb --skill document-swift -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/document-swift, .gemini/skills/document-swift, .github/skills/document-swift and .opencode/skills/document-swift in your project.
Going by SKILL.md and its folder, Swift DocC Documentation needs the command-line tools its instructions call (make). Our summary lists: The TMDb Swift package with its make build-docs target.
SKILL.md names 1 domain. In commands or code: developer.themoviedb.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Swift DocC Documentation is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Swift DocC Documentation: Generating Swift Package Docs (johnrogers/claude-swift-engineering, 231 stars), Swift Concurrency (henrypldev/react-native-nitro-mlx, 100 stars), Core Data Expert (AvdLee/Core-Data-Agent-Skill, 315 stars) and Swift Concurrency (nimblehq/ios-templates, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
adamayoung (a GitHub user) maintains it in adamayoung/TMDb, which has 178 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 3, 2026.
Source: adamayoung/TMDb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.