From ados
Leads an interactive planning session to define a change's scope, contracts, risks, and outcomes. Prepares context for /write-spec by resolving workItemRef, scanning docs, and eliciting all required spec fields.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ados:plan-changesonnetThis 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>
This command:
PDEV-123, GH-456) by scanning existing change specs or querying the tracker.doc/spec/ and related docs./write-spec (WHY, outcomes, boundaries, contracts, risks, NFRs, etc.).<change_planning_summary> plus a clear recommendation to invoke /write-spec <workItemRef>.This command never writes files or modifies Git state; it operates purely via conversational planning and read-only repository inspection.
User invocation: /plan-change [] [free-text idea / context] Examples: /plan-change → Query tracker or discover next workItemRef, then ask what you want to change. /plan-change PDEV-123 → Use PDEV-123 as the intended workItemRef, then start refinement questions. /plan-change GH-456 New tenant billing model for enterprise customers → Use GH-456 as workItemRef and seed initial understanding from the idea text. rawArguments: content after the command name (available via $ARGUMENTS). workItemRefHint: first token matching `-` pattern (e.g., `PDEV-123`, `GH-456`); OPTIONAL. ideaSeed: remainder of rawArguments after stripping workItemRefHint; may be empty.<workItemRef_resolution> Primary goal: determine the canonical workItemRef for this planning session.
Resolution rules:
If workItemRefHint is provided:
PDEV-123, GH-456).If no workItemRefHint:
doc/changes/**/chg-*-spec.md.chg-PDEV-123-spec.md → PDEV-123).@pm or ask user to provide an existing reference.Once confirmed, use workItemRef consistently in all summaries and handoff commands.
This command MUST NOT create folders or files in doc/changes/; it only proposes and confirms the identifier for downstream commands.
</workItemRef_resolution>
<context_sources> The planning agent may read from the repository to ground questions, but must not modify files.
Primary sources:
doc/spec/**: system-level and feature-level specifications.doc/overview/**: domain and product overview documents.doc/decisions/**: architecture decision records.doc/domain/**, doc/diagrams/**: architecture, flows, constraints.doc/changes/**/chg-*-spec.md for related changes.Usage rules:
<session_flow>
Initialization & orientation
Clarify problem and context
Define goals and success metrics
Outline functional capabilities and flows
Identify interfaces & integration contracts
Non-functional requirements and telemetry
Dependencies, risks, assumptions
Affected components and scope boundaries
[CREATE], [MODIFY], [DEPRECATE], [REMOVE].[OUT]), "Deferred / Maybe-Later".Acceptance criteria and rollout strategy
Consolidation and readiness check
<change_planning_summary>.
</session_flow><questioning_strategy>
<planning_summary_structure> When planning is complete, synthesize compact structured summary:
<change_planning_summary>
change.workItemRef: PDEV-123
change.type: feat
change.slug_hint: new-tenant-billing-model
change.title: New tenant billing model for enterprise customers
version_impact: minor
risk_level: medium
owners: ["team-billing", "@product-owner"]
service: "billing-service"
labels: ["billing", "enterprise", "payments"]
audience: internal
security_impact: medium
summary: |
Short, 1-3 sentence elevator pitch of the change.
context: |
Current state, pain points, constraints.
problem_statement: |
"Because <limitation>, <user> cannot <outcome>, resulting in <impact>."
goals:
business: ["...", "..."]
user: ["...", "..."]
operational: ["...", "..."]
success_metrics:
- name: "Checkout conversion rate"
baseline: "2.1%"
target: "≥ 3.0%"
window: "first 90 days after rollout"
functional_capabilities:
- id: "F-1"
name: "Configurable tenant billing model"
description: "..."
rationale: "..."
user_and_system_flows:
- id: "Flow-1"
name: "Tenant admin configures billing model"
summary: "..."
interfaces:
rest_endpoints: - id: "API-1"
method: "POST"
path: "/api/billing/tenants/{tenantId}/billing-model"
purpose: "Create or update tenant billing model"
visibility: "internal"
events: - id: "EVT-1"
name: "TenantBillingModelChanged"
topic: "billing.tenant-model.changed"
data_model_impacts: - id: "DM-1"
summary: "New BillingModel entity..."
non_functional_requirements:
- id: "NFR-Perf-1"
summary: "P95 latency ≤ 300ms under 200 RPS."
telemetry_and_observability:
- summary: "Metrics, logs, alerts required."
risks:
- id: "RSK-1"
description: "..."
impact: "H|M|L"
probability: "H|M|L"
mitigation: "..."
assumptions:
- "..."
dependencies:
internal: ["..."]
external: ["..."]
affected_components_high_level:
- tag: "[MODIFY]"
component: "Billing Service"
notes: "Add support for tenant-specific billing rules."
acceptance_criteria_examples:
- id: "AC-F1-1"
text: "Given <precondition> When <action> Then <outcome>."
rollout_and_change_management: |
High-level rollout concept, migration notes, rollback triggers.
open_questions:
blocking: - id: "OQ-1"
question: "..."
owner: "..."
non_blocking: - id: "OQ-2"
question: "..."
owner: "..."
decisions:
- id: "DEC-1"
title: "Chosen billing model representation"
chosen_option_and_rationale: "..."
status: "Final|Pending|Revisit"
</change_planning_summary>
</planning_summary_structure>
<handoff_to_spec>
After emitting <change_planning_summary>:
/write-spec <workItemRef>./write-plan <workItemRef>./write-spec or /write-plan automatically.Example 2 — Bug fix (ref provided):
/plan-change GH-456 + "Fix 500 errors on invoice download."fix; clarifies if any behavior changes allowed.<change_planning_summary> for GH-456 and suggests /write-spec GH-456.
npx claudepluginhub juliusz-cwiakalski/agentic-delivery-os --plugin adosCreates change directory with SPEC.md (type-specific), dynamic phased PLAN.md for features, bugfixes, refactors, epics, and updates INDEX.md using project settings.
Creates OpenSpec change proposals by analyzing codebase for affected files, dependencies, and risks. Generates tasks and test strategies from proposals. Use for planning features in OpenSpec projects.
Lightweight planning for small, quick changes. Combines propose, spec, and optional design into one conversational pass, then writes tasks.md for implementation.