Audit and improve web accessibility following WCAG 2.1 guidelines. Use when asked to "improve accessibility", "a11y audit", "WCAG compliance", "screen reader support", "keyboard navigation", or "make accessible".
日本語の概要は準備中です。原文の説明を表示しています。
Applies battle-tested clean code principles to writing, reviewing, and refactoring code. Covers naming, functions, comments, error handling, class design, and the critical difference between clever code and clear code.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Code is read 10x more than it's written. Every naming choice, every function boundary, every abstraction layer either helps or hurts the next person who reads it — including future you.
The principles below are language-agnostic. For idiomatic patterns and syntax, read the reference matching your surface's Languages column:
| Language | Reference |
|---|---|
| TypeScript / JavaScript | references/typescript.md |
| Python | references/python.md |
| Go | references/go.md |
| Rust | references/rust.md |
Names should reveal intent. If a name requires a comment to explain it, the name is wrong.
| Bad | Good | Why |
|---|---|---|
d | elapsedDays | What is d? |
list | activeUsers | What kind of list? |
processData() | validateAndSaveOrder() | What processing? |
temp | filteredResults | Temporary what? |
flag | isEligibleForDiscount | What flag? |
doStuff() | sendWelcomeEmail() | What stuff? |
Manager | OrderProcessor | Manager of what? |
Utils | StringFormatter | Util for what? |
Rules:
UserRepository, PaymentGateway)calculateTotal, sendNotification)isActive, hasPermission, canEdit)MAX_RETRY_ATTEMPTS, not MAX)id, url, api are fine; usr, mgr, proc are not)A function that does one thing well is easy to name, test, and reuse. A function that does three things is hard to name, impossible to test independently, and couples three responsibilities.
The test: Can you describe the function without using "and"? If not, split it.
❌ processOrder(order)
— validates order
— calculates total with tax
— saves to database
— sends confirmation email
✅ validateOrder(order) → throws if invalid
calculateOrderTotal(items) → returns numeric total
submitOrder(order) → orchestrates the above
Function size limits:
❌ createUser(name, isAdmin)
✅ createUser(name) / createAdmin(name)
❌ sendEmail(to, from, subject, body, cc)
✅ sendEmail(options) ← options is a structured type
Good code doesn't need comments to explain WHAT it does. Comments should explain WHY — the non-obvious reasoning, business rules, or constraints.
❌ // Increment counter by one
counter += 1
❌ // Check if user is admin
if user.role == "admin"
✅ // Stripe requires amount in cents, not dollars
amountInCents = round(price * 100)
✅ // FDA regulation 21 CFR Part 11 requires audit trail
auditLog.record(changeEvent)
✅ // WARNING: This query locks the orders table — avoid during peak hours
db.execute(batchUpdateQuery)
Delete these comments immediately:
// TODO: fix this later — fix it now or create a tracked issue// This is a hack — then don't commit the hack// I don't know why this works — figure it out before shippingErrors are not edge cases — they're expected behavior. Handle them explicitly.
❌ try { save(order) } catch { log("error") }
→ What error? What happens to the order?
❌ try { processPayment(order) } catch { throw Error("Something went wrong") }
→ Useless to the caller
✅ try {
processPayment(order)
} catch InsufficientFundsError:
return { success: false, code: "INSUFFICIENT_FUNDS", retry: false }
catch PaymentGatewayError:
logger.error("Payment gateway failure", { orderId: order.id })
return { success: false, code: "GATEWAY_ERROR", retry: true }
catch unknown:
rethrow → Unknown errors bubble up
DRY violation — same logic copy-pasted in 3+ places:
tax1 = price1 * 0.08
tax2 = price2 * 0.08
tax3 = price3 * 0.08
→ Extract: calculateTax(price)
Over-abstraction — premature DRY that couples unrelated things:
❌ handleEntity(type, action, data) → "universal" handler for everything
Rule of Three: Duplicate once is acceptable. Duplicate twice means extract.
High-level policy (business logic)
│
▼
┌─────────────────────┐
│ Domain Layer │ Pure logic, no I/O
│ (models, rules) │
└─────────────────────┘
│
┌─────────────────────┐
│ Application Layer │ Orchestrates domain objects
│ (use cases) │
└─────────────────────┘
│
┌─────────────────────┐
│ Infrastructure │ I/O, databases, APIs
│ (adapters) │
└─────────────────────┘
│
Low-level detail (frameworks, drivers)
Before committing code, check:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Audit and improve web accessibility following WCAG 2.1 guidelines. Use when asked to "improve accessibility", "a11y audit", "WCAG compliance", "screen reader support", "keyboard navigation", or "make accessible".
日本語の概要は準備中です。原文の説明を表示しています。
Structured methodology for adversarial thinking — generating attack scenarios, abuse cases, race conditions, and security edge cases against specs and implementations. Produces spec-level gap items, not code-level fixes.
日本語の概要は準備中です。原文の説明を表示しています。
Orchestrate multiple Antigravity skills through guided workflows for SaaS MVP delivery, security audits, AI agent builds, and browser QA.
日本語の概要は準備中です。原文の説明を表示しています。
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
日本語の概要は準備中です。原文の説明を表示しています。
Manage API versioning and evolution with URL/header/query strategies, deprecation workflows, breaking change classification, sunset headers, and consumer-driven contract testing. Use when designing versioning strategy, deprecating endpoints, or evolving API contracts.
日本語の概要は準備中です。原文の説明を表示しています。
Analyzes codebase structure, data flow, module relationships, and key patterns to generate and maintain a living architecture document (ARCHITECTURE.md).
日本語の概要は準備中です。原文の説明を表示しています。