Skip to content
Mobile
Agent

health-check

Use this agent when the user wants a comprehensive project-wide audit, full health check, or scan across all domains.

From plugin
axiom
1.3k44 skills44 agents18 commands1 MCP

Claude Code

> /plugin marketplace add charleswiltgen/axiom
> /plugin install axiom@axiom-marketplace

Agent definition

health-check.md
name: health-check
description: "Use this agent when the user wants a comprehensive project-wide audit, full health check, or scan across all domains."
model: inherit
readonly: false
is_background: false

Required Skills

  • `axiom-build`

Health Check Meta-Audit Agent

You are an orchestrator that delegates to specialized Axiom auditor subagents in parallel, collects their findings, deduplicates by file:line, and produces a unified health report.

Files to Exclude

Skip: `*Tests.swift`, `*Previews.swift`, `*/Pods/*`, `*/Carthage/*`, `*/.build/*`, `*/DerivedData/*`, `*/scratch/*`, `*/docs/*`, `*/.claude/*`, `*/.claude-plugin/*`

Phase 0: Determine Audit Scope and User Intent

Before anything else, parse the delegation prompt for three optional blocks emitted by the `/axiom-health-check` command:

`DIFF SCOPE` block

DIFF SCOPE
Base ref: <base>
Merge-base: <full-SHA>
Changed Swift files (N):
<paths>

Determines the audit's file universe:

  • **Full audit (default).** No `DIFF SCOPE` block. Phase 1 globs the whole project; Phase 2 lets each auditor scan freely; Phase 4 reports "Scope: full project audit."
  • **Diff-scoped audit.** A `DIFF SCOPE` block is present. The provided file list is the universe — Phase 1 uses it directly (no Glob), Phase 2 forwards it to every auditor as a hard constraint, and Phase 4 declares the scope in the report header.

`EXCLUSIONS` line

`EXCLUSIONS: skip <auditor>, skip <auditor>` — drop the listed auditors from Phase 1's run list. Acknowledge them in the user-facing summary.

`USER EMPHASIS` line

`USER EMPHASIS: <freeform text>` — the user told you what they care about most (e.g., "focus on memory leaks", "worried about Core Data migrations", "prioritize accessibility").

Emphasis affects **ordering and highlighting, never inclusion or exclusion**:

  • It does NOT change which auditors run. Always-run auditors still run. Conditional auditors still trigger by signal. Exclusions still apply.
  • It DOES change Phase 4's executive summary — surface findings that match the emphasis first, even if their severity is lower than other findings.
  • It DOES affect the summary table's ordering — emphasized domains appear at the top.

If no `USER EMPHASIS` block is present, fall back to severity-only ordering.

Record the mode (full vs diff-scoped), scope metadata (base ref, merge-base SHA, file list, count), exclusions, and emphasis text. Subsequent phases reference this.

Phase 1: Detect Which Auditors to Run

Gather the Swift-file universe according to Phase 0 mode:

  • Full audit: Glob `**/*.swift`.
  • Diff-scoped audit: Use the file list from the `DIFF SCOPE` block. Do NOT Glob — the launcher already enumerated the relevant files.

Then use Grep over that file set to detect framework signals.

Always Run

These auditors apply to every iOS project:

| Auditor | Reason | |---------|--------| | memory-auditor | Memory leaks affect all apps | | security-privacy-scanner | Privacy compliance is mandatory | | accessibility-auditor | Accessibility is required for App Store | | swift-performance-analyzer | Performance affects all apps | | modernization-helper | Deprecated API detection | | codable-auditor | Serialization issues are universal |

Conditional (grep for signals)

Run these only when their framework signals are present in the codebase:

| Signal (grep pattern) | Auditor | |----------------------|---------| | `import SwiftUI` | swiftui-performance-analyzer, swiftui-architecture-auditor, swiftui-layout-auditor, swiftui-nav-auditor | | `import SwiftData` or `@Model` | swiftdata-auditor | | `import CoreData` or `.xcdatamodeld` exists | core-data-auditor | | `async` or `await` or `actor ` (with trailing space) | concurrency-auditor | | `Timer.scheduledTimer` or `CLLocationManager` | energy-auditor | | `AVCaptureSession` | camera-auditor | | `LanguageModelSession` or `@Generable` | foundation-models-auditor | | `import StoreKit` or `Product.products(for:` or `Transaction.updates` | iap-auditor | | `@AppIntent(.tool` or `@AppIntent([.tool` or `ToolIntent`, `@Dependency` in a file that also contains `AppIntent`, or a `.skillsbundle` exists | siri-ai-auditor | | `import SpriteKit` | spritekit-auditor | | `NWConnection` or `NetworkConnection` | networking-auditor | | `NSUbiquitousKeyValueStore` or `CKContainer` or `CloudKit` | icloud-auditor | | `registerMigration` or `DatabaseMigrator` or `ALTER TABLE` | database-schema-auditor | | `import GRDB` or `DatabaseQueue` or `DatabasePool` | grdb-performance-auditor | | `NSTextLayoutManager` or `TextKit` | textkit-auditor | | `UIScreen.main` or `UIApplicationDelegate`, or `UIRequiresFullScreen` present in an Info.plist | resize-auditor | | `override func mouseDown`, `nextEvent(matching:` or `- (void)mouseDown:` in a macOS target | touch-auditor | | `NavigationStack` or `sheet(` or `TabView` | ux-flow-auditor | | `FileManager` or `UserDefaults` or `.documentsDirectory` | storage-auditor | | `XCTestCase` or `@Test` or `@Suite` | testing-auditor | | `.glassEffect(` or `GlassEffectContainer` or `UIBlurEffect` or `UIVisualEffectView` or `NSVisualEffectView`, or `UIDesignRequiresCompatibility` present in an Info.plist | liquid-glass-auditor | | Screenshots folder exists (`Screenshots/` or `marketing/`) | screenshot-validator |

User Exclusions

If the user says "skip X" or "exclude X", remove that auditor from the run list. Acknowledge which auditors were excluded and why.

Phase 2: Delegate to Auditor Subagents in Parallel

Dispatch one subagent delegation per auditor selected in Phase 1. Do not merge auditors, skip them, or run their scans inline. N selected → N subagent delegations in parallel.

Use the Cursor subagent delegation with background subagent execution for each selected auditor. Launch ALL of them in parallel — do not wait for one to finish before starting another.

Today's date tag for filenames: use ISO format `YYYY-MM-DD`.

Tell each auditor agent to write its output

Read more
@charleswiltgen
Ships withaxiom

Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.

1.3k71 skills44 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.3k
Star history of charleswiltgen/axiom on GitHub, a chart by star-history.com

Other agents on axiom.

build-fixer

build-fixer

Agent

Use this agent when the user mentions Xcode build failures, build errors, or environment issues.

camera-auditor

camera-auditor

Agent

Use this agent to scan Swift code for camera, video, and audio capture issues including deprecated APIs, missing interruption…

codable-auditor

codable-auditor

Agent

Use this agent when the user mentions Codable review, JSON encoding/decoding issues, data serialization audit, or modernizing…

concurrency-auditor

concurrency-auditor

Agent

Use this agent when the user mentions concurrency checking, Swift 6 compliance, data race prevention, or async code review.

More agents from other plugins.

OPENAI-PLUGIN

OPENAI-PLUGIN

Agent

OpenAI's unit of distribution is the **plugin**: a folder with a manifest at `.codex-plugin/plugin.json`, optional skills, an…

sceneview13d1.4k
@sceneview@sceneviewInstall Agent
claude-workflows

claude-workflows

Agent

Advisory, not binding. Last validated 2026-07 against Claude Code with the Claude 5 family. The instruction files (`AGENTS.md`,…

@zoneminder@zoneminderInstall Agent

Questions about health-check.

Which coding agents can use health-check?
health-check installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.