From ados
Leads interactive technical-decision planning sessions to discover ADR numbers, elicit decision drivers, explore alternatives, and produce planning context for /write-decision.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ados:plan-decisionsonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<purpose>
/write-decision <number> and, where relevant, to link back to related changes (workItemRef).This command never writes files or modifies Git state; it operates purely via conversational planning and read-only repository inspection.
User invocation (natural-language friendly):/plan-decision [] [free-text context]
Examples:
/plan-decision
→ Auto-discover next ADR number from doc/decisions/, then ask what decision we are shaping.
/plan-decision 12
→ Treat 12 as the intended ADR number (normalized internally to 0012), then start refinement questions.
/plan-decision 0042 Choose data sharding strategy for multi-tenant billing
→ Use 0042 as ADR number and seed initial understanding from the idea text.
Notes:
All other planning inputs (context, problem framing, drivers, alternatives, trade-offs, verification criteria, etc.) must be elicited interactively from the user and/or derived from existing documentation by summarization. No unstated assumptions may be invented. $ARGUMENTS
<adr_number_resolution>
Primary goal: determine the canonical numeric ADR number (zero-padded to exactly 4 digits) for this planning session.
Resolution rules:
If adrNumberHint is provided:
If no adrNumberHint:
doc/decisions/<TYPE>-*-*.md (where TYPE defaults to ADR).0001 as the first number.Once confirmed by the user, refer to this as:
Use zeroPad4 consistently when referencing this decision record in summaries, e.g. <TYPE>-<zeroPad4> and /write-decision <zeroPad4>.
This command MUST NOT create folders or files in doc/decisions/; it only proposes and confirms the numeric identifier for use by /write-decision.
</adr_number_resolution>
<context_sources> The planning agent may read from the repository to ground its questions and synthesis, but must not modify any files.
Primary context sources:
doc/spec/**: current system and feature-level specifications.doc/overview/**: domain and product overviews (north star, architecture overviews, glossary/ubiquitous language).doc/changes/**/*--*--*/chg-*-spec.md: change specifications that may have motivated or be impacted by this decision.doc/decisions/**: existing ADRs for precedent or constraints.doc/contracts/**: REST, events, and data contracts relevant to the decision.doc/domain/**, doc/diagrams/**, and other documentation under doc/ that inform architecture, flows, and constraints.Usage rules:
<session_flow> Overall planning session flow (per ADR number):
Initialization & orientation
PDEV-123 or GH-456) or is broader/cross-cutting.Clarify context and problem framing
Identify and validate decision drivers
Shape the option space (alternatives)
Evaluate options and converge on a recommendation
Trade-offs, consequences, and scope boundaries
High-level implementation and rollout concept
Verification criteria and confidence
Consolidation and readiness check
<questioning_strategy> The command must enforce disciplined, high-signal questioning inspired by the Archie prompt, adapted for ADR planning:
<planning_summary_structure> When the user confirms that planning feels complete enough to draft the decision record, synthesize a compact, structured planning summary that is easy for both humans and the /write-decision command to consume.
The final message of a completed planning session MUST include a block in this form (field order and naming must match exactly; values are illustrative; /write-decision consumes this block directly):
<technical_decision_planning_summary>
adr.number: 0007
adr.slug_hint: data-sharding-strategy
adr.title: Choose data sharding strategy for multi-tenant billing
status_hint: Proposed
owners: ["team-platform", "@cto"]
service: "billing-service"
labels: ["architecture", "storage", "scalability"]
related_changes: ["PDEV-123"]
decision_scope: "service" # e.g. service | cross-service | organization-wide
audience: internal
summary: |
Short, 1–3 sentence summary of the decision: what architectural choice is being made and why it matters, without low-level solution detail.
context: |
Concise description of current state, triggering events, constraints, and any relevant prior ADRs or changes.
problem_framing: |
Reframed technical problem in objective terms, focusing on underlying causes rather than symptoms.
decision_drivers:
- "Reduce operational complexity while supporting 10x tenant growth."
- "Preserve strong consistency for billing and invoicing workflows."
- "Minimize migration risk over the next 6 months."
mental_models_and_techniques:
- "First Principles"
- "5 Whys"
- "Second-Order Thinking"
alternatives:
- id: "ALT-0"
name: "Do nothing / keep current shared-table approach"
summary: "Retain existing shared tables without explicit sharding strategy."
pros: ["No migration effort", "Zero immediate risk"]
cons: ["Unbounded tenant growth risk", "Operational complexity under load"]
- id: "ALT-1"
name: "Single-tenant database per large tenant"
summary: "Move high-value tenants to their own database instances."
pros: ["Strong isolation", "Per-tenant performance tuning"]
cons: ["Operational overhead", "Complex routing and management"]
- id: "ALT-2"
name: "Shared database with schema-based sharding"
summary: "Use a shared database with tenant_id-based sharding and guardrails."
pros: ["Balanced isolation vs. operability", "Simpler migrations"]
cons: ["Still shared blast radius if misconfigured"]
recommended_decision:
choice: "Shared database with schema-based sharding"
rationale: |
Summary of why this option best satisfies the validated drivers, including explicit trade-offs against alternatives.
assumptions: - "Peak tenant count remains within <X> over next 18 months." - "Team has capacity to build sharding middleware and observability."
non_goals: - "[OUT] Optimize for multi-region active/active in this ADR."
tradeoffs_and_consequences:
positive: - "Improved scalability for high-traffic tenants." - "Clearer ownership boundaries for sharded data."
negative: - "Increased complexity in routing and migration tooling." - "Potential for uneven shard utilization requiring rebalancing."
unknowns: - "Long-term cost profile of managing many shards."
implementation_plan_high_level:
- "Define sharding key and guardrails in contracts and specs."
- "Introduce sharding-aware data access layer behind current APIs."
- "Plan and execute phased migration of tenants to sharded layout."
- "Update observability and runbooks for sharded topology."
verification_criteria:
- metric: "P95 read latency for sharded tables"
target: "≤ 200ms under 2x current peak load"
window: "First 30 days after full rollout"
- metric: "Migration incident rate"
target: "0 Sev-1 incidents during rollout"
window: "Migration period"
confidence_rating: "medium" # low | medium | high
confidence_rationale: |
Short explanation of why confidence is low/medium/high, referencing data, precedent, or gaps.
open_questions:
- id: "OQ-ADR-1"
question: "Do we require cross-region failover within this decision scope?"
owner: "@platform-lead"
blocking: false
references:
- "doc/changes/2026-01/2026-01-15--PDEV-123--new-billing-model/chg-PDEV-123-spec.md"
- "doc/spec/features/billing/tenants.md"
- "doc/decisions/ADR-0003-database-vendor-choice.md"
</technical_decision_planning_summary>
Notes:
decision_type field determines which TYPE prefix /write-decision will use (defaults to ADR).
</planning_summary_structure><handoff_to_write_decision>
After emitting the <technical_decision_planning_summary> block:
Immediately output a concise, human-readable recap, for example:
Recommend the exact next command, using the confirmed zeroPad4 number:
Next step: run "/write-decision <zeroPad4>" to generate the canonical decision record from this planning context.If the decision is clearly linked to one or more changes (workItemRef), also recommend ensuring that the corresponding change spec front-matter links back to this decision record once created.
Do NOT call /write-decision automatically. The user must trigger this command when ready.
Do NOT output the full decision record template as the final answer; only the <technical_decision_planning_summary> block is treated as the authoritative planning snapshot for downstream commands.
</handoff_to_write_decision>
/plan-decision and says: "We need to decide our long-term message broker strategy (Kafka vs. managed queues)."<technical_decision_planning_summary> for ADR-0004 and suggests: /write-decision 0004.Example 2 — ADR driven by an existing change:
/plan-decision 21 and says: "PDEV-123 introduces a new billing pipeline; we need an ADR for how we model idempotency and retries."<technical_decision_planning_summary> for ADR-0021 with related_changes: ["PDEV-123"] and suggests using /write-decision 0021 next.
npx claudepluginhub juliusz-cwiakalski/agentic-delivery-os --plugin adosRecords a post-hoc or asynchronous architecture decision as a MADR ADR when the decision was not captured during the synchronous design pass. Confirms worthiness, numbers the ADR, fills context/drivers/options/outcome/consequences, and supports a Proposed→Accepted review flow.
Interactively create an architecture decision record (ADR) to document architectural decisions, technology choices, or design decisions with context, options, and consequences.
Generates Architecture Decision Records with context, rationale, alternatives, and status lifecycle. Prevents forgotten design rationale.