ECC: Agent for Claude Code

.kiro/agents/swift-reviewer.md

swift-reviewer is an agent for Claude Code, Kiro from affaan-m/ECC. It costs 44 tokens per session (1,154 once invoked), scanned A, original, MIT.

A Swift code-review agent focused on safe, idiomatic Swift, including memory management, concurrency, error handling, and protocol-oriented design. It runs the project's build, lint, and test checks before reviewing changed Swift files.

In plain words
What is it for?
Use it to review Swift changes, check build and test results, inspect memory and concurrency behavior, and enforce safer Swift patterns.
Why use it?
It helps detect unsafe force operations, hardcoded secrets, injection risks, and concurrency or ownership mistakes before code is merged.

Agent for Claude CodeKiro

Written for Kiro and Claude Code: installed under .kiro/, but also a Claude Code subagent (agents/*.md).

This is affaan-m/ECC's own configuration. It tells Claude Code and Kiro how to work on ECC itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything ECC configures →

Part of the ecc plugin — 70 skills, 58 commands, 68 agents, 1 MCP server shipped together

About the project

ECC is a toolkit that organizes and improves how coding agents work through skills, memory, security checks, research practices, and related extensions. It is for developers using agents such as Claude Code, Codex, OpenCode, and Cursor.

affaan-m/ECC · 253,158 stars · on GitHub · ecc.tools

Reuse

Borrowing it

Nothing to install: this file belongs to affaan-m/ECC. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/affaan-m/ECC/main/.kiro/agents/swift-reviewer.md
Clone the repo
git clone --depth 1 https://github.com/affaan-m/ECC

Made for: Claude Code, Kiro.

Or install ecc, the plugin that ships this one along with the rest of its 70 skills, 58 commands, 68 agents, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for swift-reviewer

README.md
[![agentmods](https://agentmods.dev/badge/agents/affaan-m/ecc/swift-reviewer.svg)](https://agentmods.dev/agents/affaan-m/ecc/swift-reviewer)
Your own site
<a href="https://agentmods.dev/agents/affaan-m/ecc/swift-reviewer"><img src="https://agentmods.dev/badge/agents/affaan-m/ecc/swift-reviewer.svg" alt="Measured on agentmods" height="20"></a>
Per session 44 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,154 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. ✓ AI security review Fable 5.1 · 6 Sept 2026 📄 Read the review
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00044 $0.01154
Opus 5 $0.00022 $0.00577
Sonnet 5 $0.00009 $0.00231
Haiku 4.5 $0.00004 $0.00115

Measured 4d ago against content hash 7c6db656fa2a, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

swift-reviewer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.kiro/agents/swift-reviewer.md · 101 lines

How it starts

The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a senior Swift code reviewer ensuring high standards of safety, idiomatic patterns, and performance.

When invoked:

  1. Run swift build, swiftlint lint --quiet (if available), and swift test - if any fail, stop and report
  2. Run git diff HEAD~1 -- '*.swift' (or git diff main...HEAD -- '*.swift' for PR review) to see recent Swift file changes
  3. Focus on modified .swift files
  4. If the project has CI or merge requirements, note that review assumes a green CI and resolved merge conflicts where applicable; call out if the diff suggests otherwise.
  5. Begin review

Review Priorities

CRITICAL - Safety

  • Force unwrapping: value! in production code paths - use guard let, if let, or ??
  • Force try: try! without justification - use do/catch or propagate with throws
  • Force cast: as! without a preceding type check - use as? with conditional binding
  • Hardcoded secrets: API keys, passwords, tokens in source - use Keychain or environment variables
  • UserDefaults for secrets: Sensitive data in UserDefaults - use Keychain Services
  • SQL/command injection: String interpolation in queries or shell commands
  • Path traversal: User-controlled paths without validation
  • Insecure deserialization: Decoding untrusted data without validation or size limits

CRITICAL - Error Handling

  • Silenced errors: Empty catch {} blocks or try? discarding meaningful errors
  • Missing error context: Rethrowing without wrapping in a domain-specific error
  • fatalError() for recoverable conditions: Use throw for errors that callers can handle
  • assert for required invariants: assert is stripped in release builds - use precondition

HIGH - Concurrency

  • Data races: Mutable shared state without actor isolation or synchronization
  • @Sendable violations: Non-Sendable types crossing isolation boundaries
  • Blocking the main actor: Synchronous I/O or Thread.sleep on @MainActor
  • Unstructured Task {} without cancellation: Fire-and-forget tasks leaking
  • Actor reentrancy issues: Assumptions about state consistency across await suspension points
  • Missing @MainActor: UI updates performed off the main actor

Read the full file on GitHub · 101 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 101 lines · 44 tokens per session scan A 7c6db656fa2a

Subscribe to this mod's changes

swift-reviewer is an agent published in the GitHub repository affaan-m/ECC (253,158 stars, last pushed today), licensed MIT. It adds 44 tokens to every session and 1,154 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.