adr-management
When you need to record why a decision was made — creates and manages Architecture Decision Records.
73 skills tagged category · scope axis.
When you need to record why a decision was made — creates and manages Architecture Decision Records.
When frontend and backend need to agree before coding — designs REST/gRPC APIs with OpenAPI spec.
When consumers need to know how to call your API — endpoint docs, OpenAPI specs, request/response examples.
When the API contract is ready and needs code behind it — implements handlers/controllers with validation.
When you need auth that won't become a breach headline — implements JWT, OAuth2, or RBAC safely.
First-touch protocol for a new project — read README/AGENTS.md/ADRs, find build/test/CI commands, hot zones, entry points, and test layout; emit an onboarding cheat-sheet other Aparigraha skills consume.
When the same expensive query runs hundreds of times — implements caching patterns with proper invalidation.
When users need to know what changed and why — conventional commits parsing, semantic versioning, release notes.
Before deleting or refactoring code that looks unused or weird, reconstruct why it exists from history, tests, comments, and call-graph; produce a memo plus an edge-case checklist that gates the change.
When you need CI that catches failures before they hit main — generates GitHub Actions/GitLab CI with artifact gating.
When the codebase has accumulated cruft — removes noise, enforces formatting, safely renames identifiers.
When you have a spec and need idiomatic code — generates from specs with language convention enforcement.
When a PR needs more than a thumbs-up — review checklists, defect categories, severity classification.
When your API is fast but your database calls aren't — repository pattern, query optimization, N+1 prevention.
When data modeling decisions will outlast the code — schema design, normalization, migration planning, indexing.
When queries are the bottleneck — index analysis, query plan optimization, connection pooling.
When future-you needs to know why past-you chose this — ADR authoring with context, decision, consequences.
When you're not sure what depends on what — builds dependency graphs, detects cycles, audits for staleness and CVEs.
When your supply chain is only as strong as its weakest dep — checks for CVEs and license compliance.
When dependencies drift and Dependabot floods you with PRs — automated updates with semver and lockfile discipline.
Mine the project's declared dependencies and produce a per-capability inventory of utilities the team already imports — advisory, never auto-rewrites.
When old APIs need to die without breaking consumers — sunset timelines, migration paths, impact analysis.
When your Docker image is bloated and slow to build — generates optimized multi-stage Dockerfiles.
When the team uses different words for the same thing — creates a domain glossary, entity map, and Protected Terms.
When every module handles errors differently — standardizes error types, logging, and response formats.
When errors cascade instead of being contained — exception hierarchies, retry strategies, graceful degradation.
When "how long will this take?" needs a real answer — PERT estimation, relative sizing, confidence intervals.
When the team needs git discipline without git fights — branching strategies, commit conventions, conflict resolution.
When production is down and the clock is ticking — triage, mitigate, and resolve outages with postmortem.
When code needs to explain itself to future readers — JSDoc/docstrings, comment quality, self-documenting patterns.
When unit tests pass but the system doesn't work — tests across component boundaries with Docker containers.
When tribal knowledge walks out the door with departing teammates — wikis, runbooks, onboarding guides.
When you need reproducible K8s deployments — generates Helm charts and Kubernetes manifests.
When the framework is 3 versions behind and nobody wants to touch it — plans major upgrades safely.
When the answer is buried in 10,000 log lines — parsing, pattern recognition, event correlation, anomaly detection.
When you need to move data without losing it — version upgrades, data migration, rollback strategies.
Smallest correct change that solves the problem. No drive-by formatting or opportunistic refactors; diff-size caps, reversibility checks, and commit splitting when concerns are tangled.
When you need to know something is broken before users tell you — SLIs/SLOs, alerting, distributed tracing.
When you suspect tests pass but don't actually catch bugs — verifies test quality by injecting faults.
When your API docs are stale or missing — generates Swagger/OpenAPI YAML from code.
When two heads are better than one — driver/navigator roles, mob programming, knowledge transfer protocols.
When the app is slow but you don't know where — bottleneck identification, complexity analysis, caching review.
Pre-compute once, share via context object to all pipeline stages.
When PRs linger or get rubber-stamped — templates, review assignments, merge criteria that work.
When requirements exist but need structure — selects the right PRD format (lean, full, working-backwards, hypothesis) and produces a living document with versioning and lifecycle.
When something is slow and you need proof of where — analyzes logs/traces to find bottlenecks and hotspots.
Fast approximate results (Phase 1) then slow enriched results (Phase 2).
When a new contributor clones the repo and has no idea where to start — creates READMEs with usage and install guides.
When code needs restructuring but tests must stay green — safe refactoring with test-first verification.
When you need to restructure code without breaking behavior — complex refactors with strict test verification.
When release day shouldn't mean manually writing changelog — parses git logs for changelogs and version bumps.
Adaptive cleanup framework — start simple, discover value, pivot toward greater good.
When scope is fuzzy — interviews the user for goals, constraints, and success metrics before coding starts.
Circuit breaker, retry with backoff, bulkhead isolation, fallback chains, timeouts.
Monitor constraints (memory, CPU, time, rate limits), adapt behavior gracefully.
Before writing any new utility, scan the codebase and declared dependencies for an equivalent. Reuse only after fit and edge-case validation.
Before you ship something that keeps you up at night — identifies risks, scores probability/impact, plans mitigations.
When the bug is a symptom, not the cause — 5-whys, fault trees, git bisection, symptom-to-cause mapping.
Single schema powers defaults, validation, storage, and UI generation.
Composable evaluation — independent micro-scorers with shared context and explicit weights.
When code needs a security audit before shipping — scans for OWASP Top 10 vulnerabilities and anti-patterns.
When security can't be an afterthought — OWASP Top 10 scan, vulnerability detection, secret scanning.
Detect the project's existing conventions (naming, formatting, errors, logging, tests) and produce a house-style profile downstream skills consult — awareness, not enforcement.
When you need to see the big picture before building — component diagrams, data flow, trade-off analysis.
When a task feels too big to start — breaks it into dependency-ordered subtasks with T-shirt sizing.
When you want tests to drive the design — Red-Green-Refactor cycle with coverage targets.
When tech debt is everywhere but you can only fix some — categorization, impact scoring, payoff prioritization.
When infrastructure should be versioned like code — generates Terraform/OpenTofu IaC modules.
When you need a testing philosophy, not just tests — defines the pyramid, coverage targets, and conventions.
When you're unsure what to test next — coverage analysis, test type selection, boundary condition identification.
Before attackers find the holes — identifies STRIDE threats, assesses risk, plans mitigations.
When you need metrics without false-failing the build — separates collection (Pass 1) from gating (Pass 2).
When a function needs proof it works — generates unit tests for Jest, JUnit, Go Test, PyTest.