بنقرة واحدة
adr
Generate an Architecture Decision Record for a technical decision
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Generate an Architecture Decision Record for a technical decision
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Adversarial critic workflow for the limited-stock booking system. Use when the user asks AI to attack a design or implementation for Redis outage, oversell, undersell, duplicate booking/payment, retry storm, fallback collapse, correctness gaps, or operational blind spots.
Skeptical first-principles design review skill. Use when the user asks whether a design, architecture, product plan, API, data model, workflow, or system design truly satisfies the real requirements. Reviews from fundamentals: decompose claims into requirements, assumptions, constraints, evidence, invariants, trade-offs, failure modes, and simpler alternatives. Inspired by first-principles reasoning and Cartesian doubt, but does not impersonate any real person.
Validate current project phase deliverables against PRD checklist
Resilience4j circuit breaker, retry, rate limiter, and bulkhead patterns with testing strategies. Use when implementing fault tolerance between services.
Design partner mode for system design practice. Activated when the user wants to design a new system (chat, notification, news feed, URL shortener, etc.). Sets up topic directory, uses the project mock-interview document, loads the matching problem from sysdesign-question-bank, marks the topic as active in .omx/state/, and conducts a back-and-forth Clarifying → High Level → Drill Down conversation, updating <topic>/System-Design-Document/mock-interview.md immediately as each decision lands. Uses Alex Xu Vol.1's canned numbers as the starting point (book-first), user adjusts. NOT an interview — the user drives, this skill is a design collaborator with a calculator (back-of- envelope, latency estimation via auto-injected sysdesign-frameworks) and a reference book (sysdesign-question-bank).
Promote a filled mock-interview.md into a formal Software Design Document (sdd.md) following the IEEE 1016 / Atlassian / Google design-doc style. Activated when the user says they are ready to write the SDD. Reads the topic's mock-interview.md AND the topic's conversation log files (which capture the back-and-forth detail not preserved in the structured mock-interview), then asks the user the SDD-specific questions that mock-interview doesn't cover (Constraints, ADRs, Risk Register, Rollout, Testing strategy). Writes sdd.md incrementally as decisions land.
| name | adr |
| description | Generate an Architecture Decision Record for a technical decision |
| argument-hint | <decision topic> |
| disable-model-invocation | true |
| allowed-tools | Read, Glob, Grep, Write, Bash |
You are generating an Architecture Decision Record (ADR) for this decision topic: $ARGUMENTS
docs/adr/ matching the pattern ADR-*.mdADR-001-kafka-over-rabbitmq.md -> 001)docs/adr/ does not exist or contains no ADR files, the new ADR number is 001Example:
ADR-001-..., ADR-002-..., ADR-003-...004Before writing the ADR, ask the user these three questions. Wait for answers before proceeding.
Questions to ask (present all three at once):
Problem context: What specific problem or situation prompted this decision? What constraints or requirements drove the need to choose?
Alternatives considered: What other options were evaluated besides "$ARGUMENTS"? For each alternative, what were the key trade-offs?
Decision rationale: Why was this option chosen over the alternatives? What were the deciding factors (performance, team familiarity, cost, operational complexity, alignment with existing stack)?
Create a URL-safe slug from the decision topic $ARGUMENTS:
Example: "Kafka over RabbitMQ for async messaging" -> kafka-over-rabbitmq-for-async-messaging
Using the answers from the interview, fill in this template completely. Do not leave any section blank.
# ADR-{NNN}: {Title from $ARGUMENTS}
## Status
Proposed
## Date
{today's date in YYYY-MM-DD format}
## Context
{Describe the problem, the forces at play, and the constraints that make this decision necessary.
Include relevant technical context from the project: Java 21, Spring Boot 3.x, PostgreSQL, Kafka (KRaft), ElasticSearch + nori, current project phase.
2-4 sentences minimum.}
## Decision
{State the decision made clearly and directly.
Start with: "We will use..." or "We have decided to..."
1-3 sentences.}
## Alternatives Considered
| Option | Pros | Cons | Reason Not Chosen |
|--------|------|------|-------------------|
| {Option A — the chosen option} | {list pros} | {list cons} | Chosen |
| {Option B} | {list pros} | {list cons} | {why rejected} |
| {Option C, if applicable} | {list pros} | {list cons} | {why rejected} |
## Consequences
### Positive
- {consequence 1}
- {consequence 2}
- {consequence 3}
### Negative / Trade-offs
- {trade-off 1}
- {trade-off 2}
### Neutral
- {neutral impact 1, e.g., "Team will need to learn X"}
## Implementation Notes
| Aspect | Detail |
|--------|--------|
| Affected components | {list services or layers impacted} |
| Migration required | Yes / No — {brief description if yes} |
| Related skills | {e.g., `.omc/skills/event-driven.md` for Kafka conventions} |
| Related ADRs | {ADR-NNN if supersedes or relates to another decision, else "None"} |
## Metrics
How will we know this decision was correct? Define measurable success criteria:
| Metric | Target | Measurement Method |
|--------|--------|--------------------|
| {metric 1, e.g., "Message delivery latency"} | {target, e.g., "< 100ms p99"} | {how, e.g., "Prometheus histogram"} |
| {metric 2} | {target} | {how} |
| {metric 3, e.g., "Operational incidents caused by this technology"} | {target, e.g., "0 per month after 3-month stabilization"} | {how, e.g., "PagerDuty alert count"} |
## Review Date
{date 3 months from today — format YYYY-MM-DD}
Set a reminder to revisit this decision and update status to Accepted or Deprecated based on metrics.
docs/adr/ directory if it does not existdocs/adr/ADR-{NNN}-{slug}.md
Where {NNN} is the auto-incremented number from Step 1 and {slug} is from Step 3.
| Status | Meaning |
|---|---|
| Proposed | Decision identified but not yet ratified |
| Accepted | Team has agreed; decision is in effect |
| Deprecated | Decision is no longer valid; superseded by a newer ADR |
| Superseded | Replaced — link to the new ADR number |
To update an ADR status later, edit the ## Status section of the saved file and add a note with the date and reason.