Official agent skill

Audit Build Warnings

by bitwarden in bitwarden/ios

Build the Bitwarden iOS app, capture all compiler and lint warnings, categorize them into Swift 6 concurrency vs actionable, and interactively fix the actionable ones.

OfficialGPL-3.0Auto-check passedMobile

Install Audit Build Warnings

skills CLI
$ npx skills add bitwarden/ios --skill audit-build-warnings -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bitwarden/ios audit-build-warnings --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bitwarden/ios.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/audit-build-warnings .claude/skills/audit-build-warnings && rm -rf skills-src

Use ~/.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/

Facts

Skill name
audit-build-warnings
GitHub stars
696
Token cost
~1.9k tokens
SKILL.md length
819 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
GPL-3.0

At a glance

Build the Bitwarden iOS app, capture all compiler and lint warnings, categorize them into Swift 6 concurrency vs actionable, and interactively fix the actionable ones.

  • Works in 7 steps: Pre-process (auto-fix before building) → Build & Capture → Categorize → …
  • Asked to audit build warnings
  • SKILL.md covers Setup, Phase 1: Pre-process (auto-fix…, Phase 2: Build & Capture and Phase 3: Categorize, plus 5 more sections
  • Calls xcodebuild and swift

What it does

Audit Build Warnings is an agent skill from bitwarden/ios, published by the product's own GitHub organization. Build the Bitwarden iOS app, capture all compiler and lint warnings, categorize them into Swift 6 concurrency vs actionable, and interactively fix the actionable ones. Use when asked to "audit build warnings", "fix warnings", "clean up warnings", "build warnings", or to reduce compiler noise before a PR.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering iOS development. It works with Swift and iOS. The repository describes itself as: Bitwarden mobile apps (Password Manager and Authenticator) for iOS. The licence is GPL-3.0.

When your agent uses it

  • Asked to audit build warnings
  • Clean up warnings
  • Reduce compiler noise before a PR

Example prompts

  • “audit build warnings”
  • “fix warnings”
  • “clean up warnings”
  • “/audit-build-warnings”

Requirements

  • Pre-approved tools (allowed-tools): AskUserQuestion, Bash(grep:*), Bash(mkdir:*), Bash(mint run swiftformat:*), Bash(mint run swiftlint:*), Bash(mint run xcodegen:*), Bash(rm .claude/tmp/bitwarden_build_output.txt), Bash(rm .claude/tmp/build_warnings_report.md), Bash(Scripts/audit-build-warnings-prep.sh), Bash(xcodebuild:*), Edit, Grep, Read, Write

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Pre-process (auto-fix before building)
  2. Build & Capture
  3. Categorize
  4. Report
  5. Confirm Exclusions
  6. Fix
  7. Summary & Cleanup

What it can do on your machine

Read from SKILL.md and the folder at commit 08f8c1d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • AskUserQuestion
    • Bash(grep:*)
    • Bash(mkdir:*)
    • Bash(mint run swiftformat:*)
    • Bash(mint run swiftlint:*)
    • Bash(mint run xcodegen:*)
    • Bash(rm .claude/tmp/bitwarden_build_output.txt)
    • Bash(rm .claude/tmp/build_warnings_report.md)
    • Bash(Scripts/audit-build-warnings-prep.sh)
    • Bash(xcodebuild:*)

    …and 4 more on the same allowed-tools line.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • xcodebuild
    • swift

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Audit Build Warnings loads about 1.9k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 819 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from bitwarden/ios at commit 08f8c1d, republished under its GPL-3.0 licence (© bitwarden). 819 words, ~1,931 tokens.

Download SKILL.mdSave it as .claude/skills/audit-build-warnings/SKILL.md (or your agent's skills folder).
name
audit-build-warnings
description
Build the Bitwarden iOS app, capture all compiler and lint warnings, categorize them into Swift 6 concurrency vs actionable, and interactively fix the actionable ones. Use when asked to "audit build warnings", "fix warnings", "clean up warnings", "build warnings", or to reduce compiler noise before a PR.
allowed-tools
AskUserQuestion, Bash(grep:*), Bash(mkdir:*), Bash(mint run swiftformat:*), Bash(mint run swiftlint:*), Bash(mint run xcodegen:*), Bash(rm .claude/tmp/bitwarden_build_output.txt), Bash(rm .claude/tmp/build_warnings_report.md), Bash(Scripts/audit-build-warnings-prep.sh), Bash(xcodebuild:*), Edit, Grep, Read, Write

Audit Build Warnings

Setup

Determine the build scheme from the user's phrasing; default to Bitwarden if none specified. Generate the Xcode project for the selected scheme (.xcodeproj files are gitignored):

SchemeDescriptionSpec
Bitwarden (default)Password Managerproject-pm.yml
AuthenticatorAuthenticatorproject-bwa.yml
BitwardenKitBitwardenKitproject-bwk.yml
TestHarnessTest Harnessproject-bwth.yml
bash
mint run xcodegen --spec <SPEC>

Read simulator config — always read these files, never hardcode values:

bash
DEVICE=$(tr -d '\n' < .test-simulator-device-name)
OS=$(tr -d '\n' < .test-simulator-ios-version)

Phase 1: Pre-process (auto-fix before building)

Run all deterministic auto-fixers before the build so their warnings never appear in the report.

bash
Scripts/audit-build-warnings-prep.sh

The script prints an === autofix-summary === block at the end. Read those counts — they appear in the Phase 4 report, but the individual changes are not listed as actionable warnings since they're already fixed.

Phase 2: Build & Capture

Run the build for testing and capture all output to a temp file:

bash
mkdir -p .claude/tmp
xcodebuild build-for-testing \
  -workspace Bitwarden.xcworkspace \
  -scheme <SCHEME> \
  -destination "platform=iOS Simulator,name=$DEVICE,OS=$OS" \
  -configuration Debug \
  2>&1 | tee .claude/tmp/bitwarden_build_output.txt

Confirm the build result (** BUILD SUCCEEDED ** vs ** BUILD FAILED **). If it failed, report errors and stop — don't proceed to warning fixes.

Extract unique warnings (exclude timestamp lines starting with the year):

bash
grep -E "warning:" .claude/tmp/bitwarden_build_output.txt \
  | grep -v "^20[0-9][0-9]" \
  | sort -u

Phase 3: Categorize

Classify every warning into one of these buckets:

🔴 Swift 6 Concurrency (always skip — tracked separately)

Keywords that identify these: Sendable, non-Sendable, actor-isolated, nonisolated, @preconcurrency, main actor, Sendable closure, sendable closure, data races, Swift 6 language mode

🟡 Actionable (candidates for fixing)

Everything else, sub-divided by fix type:

  • SwiftLint — file_length, line_length, orphaned_doc_comment, and any other warnings not resolved by Phase 1
  • Swift compiler — deprecation warnings, always-true/always-false casts, protocol near-matches
  • Retroactive conformance — extension declares a conformance of imported type … to imported protocol
⚪ Default Skips (propose to user unless they override)

These categories are typically intentional or in third-party code — default to skipping them:

  • Vendored / third-party code: any file under paths like BitwardenWatchShared/MessagePack/, **/Vendor/, or other vendored directories
  • Deprecated API warnings where the replacement requires non-trivial SDK changes (flag these for the user to decide)
  • Always-true / always-false casts ('as' test is always true) — may be intentional defensive guards
  • Protocol near-match warnings in third-party code

Phase 4: Report

Write a temporary markdown report to .claude/tmp/build_warnings_report.md (gitignored — do NOT write to Docs/ or any other tracked directory).

Structure:

  1. Pre-fix summary: files touched by SwiftFormat and SwiftLint --fix in Phase 1
  2. Summary table: count per category
  3. Swift 6 Concurrency section: list all warnings grouped by sub-theme (actor isolation, Sendable captures, etc.) — presented for awareness, not fixing
  4. Actionable section: list all remaining warnings grouped by type (SwiftLint, compiler, retroactive conformance)
  5. Default skips section: list warnings proposed to skip with rationale
  6. Fix feasibility notes: auto-fixable vs manual vs complex

Present the summary table to the user inline (don't make them open the file).

Phase 5: Confirm Exclusions

Ask the user one question:

"Here are the [N] actionable warnings I found. By default I'll skip: [list default-skip items]. Which additional warnings (if any) would you like to exclude before I fix the rest?"

Accept free-form input, or "none" / "proceed as-is".

Record the final exclusion list.

Show full SKILL.md (345 more words)Show less

Phase 6: Fix

Apply fixes for each remaining actionable warning not in the exclusion list, one file at a time:

  • Superfluous // swiftlint:disable: delete the disable comment line
  • Unused closure parameter: replace the named parameter with _
  • Line length violation in a comment: break the comment line; maintain indentation/continuation markers
  • Line length violation in a function signature: break to multi-line. Always add a trailing comma on the last parameter when doing so — Swift 6.2 + trailingCommas rule require it
  • file_length violation: add // swiftlint:disable file_length as the very first line of the file, before any imports or doc comments. Do NOT place it between a doc comment and its declaration (this would trigger orphaned_doc_comment)
  • Retroactive conformance (extension declares a conformance of imported type X to imported protocol Y): add @retroactive before the protocol name in the extension conformance list
Verify after manual fixes

Run a targeted SwiftLint + SwiftFormat lint check on only the files that were changed:

bash
mint run swiftlint lint <file1> <file2> ... | grep -E "warning:|error:"
mint run swiftformat --lint --lenient <file1> <file2> ...

If new violations appear, fix them before proceeding.

Phase 7: Summary & Cleanup

  1. Present a final summary:

    • How many warnings were auto-fixed in Phase 1 (SwiftFormat + SwiftLint --fix)
    • How many warnings were manually fixed (by type)
    • Which warnings were intentionally skipped (and why)
    • How many Swift 6 concurrency warnings remain (with a note that these require a dedicated effort)
  2. Suggest next steps:

    • Commit the fixes using bitwarden-delivery-tools:committing-changes
    • If there are 10+ Swift 6 warnings, suggest creating a PM ticket to track them
  3. Ask the user whether to delete the temp artifacts (both are gitignored under .claude/tmp/, so there is no repo-hygiene obligation — the user may want to re-inspect them):

    • .claude/tmp/build_warnings_report.md
    • .claude/tmp/bitwarden_build_output.txt

    Only run the rm commands if the user confirms.

Guard Rails

Never fix Swift 6 concurrency warnings in this workflow — they require actor annotations, @preconcurrency imports, or protocol-level changes that need intentional review, not automated fixing.

Never modify BitwardenSdk types directly — they come from the Rust SDK. Use @retroactive conformances instead.

Stop and surface any warning that would require changing a public API, moving a file between modules, or touching the Bitwarden SDK — these need human review before fixing.

© bitwarden, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/audit-build-warnings of bitwarden/ios.

Open the folder on GitHubat commit 08f8c1d

Compare with similar skills

Audit Build Warnings 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.

Audit Build Warnings compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Audit Build Warnings this skillbitwarden/ios696—~1.9kAutomated safety check: PassGPL-3.0
Swift Refactorpproenca/dot-skills215—~3kAutomated safety check: PassMIT
Swift ConcurrencyHoangNguyen0403/agent-skills-standard571—~545Automated safety check: PassMIT
Swiftui Expert SkillAFK-surf/OpenBridge4302 repos~3.9kAutomated safety check: PassMIT
Inspector MCPipedro/Inspector170—~3.4kAutomated safety check: PassMIT
Swiftui AnimationAstraFoundry/KumoApp291—~4.1kAutomated safety check: PassAGPL-3.0

Similar skills

  • Swift Refactor

    pproenca/dot-skills

    Swift and SwiftUI refactoring patterns aligned with the iOS 26 / Swift 6.2 clinic modular MVVM-C architecture (Airbnb + OLX SPM layout).

    215 GitHub stars~3k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Swift Concurrency

    HoangNguyen0403/agent-skills-standard

    Implement async/await, Actors, and structured concurrency in Swift.

    571 GitHub stars~545 tokensUpdated today
    MobileAuto-check passed
  • Swiftui Expert Skill

    AFK-surf/OpenBridge

    Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, modern APIs, Swift concurrency, and iOS 26+ Liquid Glass adoption.

    430 GitHub starsUsed in 2 repos~3.9k tokens
    MobileAuto-check passed
  • Inspector MCP

    ipedro/Inspector

    A skill your agent uses when an agent needs to inspect a live iOS app through the Inspector MCP bridge, register or troubleshoot InspectorMCPServer for a consumer Xcode project, or query, resolve…

    170 GitHub stars~3.4k tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Swiftui Animation

    AstraFoundry/KumoApp

    Implement, review, or improve SwiftUI animations and transitions.

    291 GitHub stars~4.1k tokensUpdated 4 mo ago
    MobileAuto-check passed
  • Woo iOS Swift 6 Migration

    woocommerce/woocommerce-ios

    Diagnose and fix Swift strict-concurrency warnings in WooCommerce iOS.

    358 GitHub stars~3.2k tokensUpdated today
    MobileAuto-check: notes

More from bitwarden/ios

All 11 skills in this repo
  • Testing iOS Code

    bitwarden/ios

    Official

    Write tests, add test coverage, unit test, or add missing tests for Bitwarden iOS.

    696 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Build Test Verify

    bitwarden/ios

    Official

    Build the project, run tests, lint, format, spell check, generate mocks, or verify the build passes for Bitwarden iOS.

    696 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Official

    Convert a hand-written bespoke mock to a Sourcery AutoMockable-generated mock.

    696 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Official

    Evaluates a bitwarden/ios "Update SDK to" PR against the sdk-swift commit range for compile-time, runtime and serialization breaking changes, maps affected symbols to iOS call sites, and applies…

    696 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Fixing Flaky Tests

    bitwarden/ios

    Official

    Diagnose and fix flaky (intermittently failing) tests in Bitwarden iOS.

    696 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Official

    Implement, write code, add a new screen, create a feature, new view, new processor, or wire up a new service in Bitwarden iOS.

    696 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Works with

Questions about Audit Build Warnings

What does Audit Build Warnings do?

Build the Bitwarden iOS app, capture all compiler and lint warnings, categorize them into Swift 6 concurrency vs actionable, and interactively fix the actionable ones. Audit Build Warnings is an agent skill from bitwarden/ios, published by the product's own GitHub organization. Build the Bitwarden iOS app, capture all compiler and lint warnings, categorize them into Swift 6 concurrency vs actionable, and interactively fix the actionable ones.

When should I use Audit Build Warnings?

Audit Build Warnings fits situations like: asked to audit build warnings; clean up warnings; reduce compiler noise before a PR.

How do I install Audit Build Warnings in Claude Code?

Run `npx skills add bitwarden/ios --skill audit-build-warnings -a claude-code`. Or copy the skill folder (.claude/skills/audit-build-warnings in bitwarden/ios) into .claude/skills/audit-build-warnings in your project. Claude Code loads it when a task matches its description.

How do I install Audit Build Warnings in Codex?

Run `npx skills add bitwarden/ios --skill audit-build-warnings -a codex`. Or copy the skill folder (.claude/skills/audit-build-warnings in bitwarden/ios) into .agents/skills/audit-build-warnings in your project. Codex loads it when a task matches its description.

Can I use Audit Build Warnings in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bitwarden/ios --skill audit-build-warnings -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/audit-build-warnings, .gemini/skills/audit-build-warnings, .github/skills/audit-build-warnings and .opencode/skills/audit-build-warnings in your project.

What does Audit Build Warnings need to run?

Going by SKILL.md and its folder, Audit Build Warnings needs the command-line tools its instructions call (xcodebuild and swift). Its frontmatter pre-approves these tools: AskUserQuestion, Bash(grep:*), Bash(mkdir:*), Bash(mint run swiftformat:*), Bash(mint run swiftlint:*), Bash(mint run xcodegen:*), Bash(rm .claude/tmp/bitwarden_build_output.txt), Bash(rm .claude/tmp/build_warnings_report.md), Bash(Scripts/audit-build-warnings-prep.sh), Bash(xcodebuild:*), Edit, Grep, Read, Write.

Does Audit Build Warnings access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Audit Build Warnings safe to install?

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.

What licence does Audit Build Warnings use?

Audit Build Warnings is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Audit Build Warnings use?

About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Audit Build Warnings?

Skills that share tags, products or a category with Audit Build Warnings: Swift Refactor (pproenca/dot-skills, 215 stars), Swift Concurrency (HoangNguyen0403/agent-skills-standard, 571 stars), Swiftui Expert Skill (AFK-surf/OpenBridge, 430 stars) and Inspector MCP (ipedro/Inspector, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Audit Build Warnings?

bitwarden (a GitHub organization, an official publisher) maintains it in bitwarden/ios, which has 696 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 9, 2026.

Source: bitwarden/ios on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.