From agentic-development-workflow
Guides interactive feature design on the integration branch: explores problem, proposes solution, reviews design, commits artifacts using OpenSpec.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentic-development-workflow:designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Interactive feature design on the **integration branch** (`$BASE` — `main` in single-branch mode, `develop` in two-branch mode; see [git-ref](../git-ref/SKILL.md) → "Integration Branch"). Explore the problem, propose a solution, review the design, and commit artifacts — all in conversation with the user.
Interactive feature design on the integration branch ($BASE — main in single-branch mode, develop in two-branch mode; see git-ref → "Integration Branch"). Explore the problem, propose a solution, review the design, and commit artifacts — all in conversation with the user.
Where this fits:
/aep-onboard → /aep-scaffold → [ /aep-design → /aep-launch → /aep-build → /aep-wrap ]
▲ you are here
Session: Main session, interactive with user Input: Feature idea or user request (optionally informed by product context) Output: OpenSpec change committed to the integration branch (proposal, design, specs, tasks)
This skill works in two modes, auto-detected at startup:
ls product-context.yaml 2>/dev/null
Standalone mode (no product-context.yaml) — Feature lifecycle runs independently. Proceed directly to prerequisites and design phases.
Product-cycle mode (has product-context.yaml) — Feature is part of a larger product lifecycle (/aep-envision → /aep-map → /aep-dispatch → /aep-design):
product-context.yaml for project-wide contextopenspec_change set in the YAML), load that story's acceptance criteria, interface obligations, and relevant architecture module/aep-dispatch, the OpenSpec change already exists — /opsx:propose refines it rather than starting from scratchBefore starting, verify dependencies are available.
Run this check:
for cmd in git openspec; do
printf "%-15s" "$cmd:"
which $cmd >/dev/null 2>&1 && echo "OK ($(which $cmd))" || echo "MISSING"
done
# PR/MR tool (need at least one):
printf "%-15s" "gh or glab:"
(which gh >/dev/null 2>&1 || which glab >/dev/null 2>&1) && echo "OK" || echo "MISSING"
If any required tool is missing, run /aep-onboard first.
Check that OpenSpec skills exist:
for skill in openspec-explore openspec-propose openspec-apply-change openspec-archive-change; do
printf "%-35s" "$skill:"
[ -f ".claude/skills/$skill/SKILL.md" ] && echo "OK" || echo "MISSING"
done
If OpenSpec skills are missing, run /aep-scaffold first.
Before starting design, decide on the workflow mode. This choice carries through to /aep-launch and /aep-build.
All phases + separate evaluator agent. Use for:
Simplified flow, no evaluator. Use for:
"Every component in a harness encodes an assumption about what the model can't do on its own. Those assumptions deserve stress-testing." — Anthropic, "Harness Design for Long-Running Application Development"
With each model upgrade, re-evaluate which phases provide value.
Invoke the explore skill to think through the feature:
/opsx:explore
Use this phase to:
docs/ if the feature warrants itInvoke the propose skill to generate a full proposal:
/opsx:propose
This creates the OpenSpec change with all artifacts:
proposal.md — what and whydesign.md — how, key decisions, risksspecs/**/*.md — detailed requirements and scenariostasks.md — implementation checklistBefore implementation, review the proposal from non-functional angles:
What NOT to review: Business logic (decided in Phase 1), cosmetic preferences.
If adjustments are needed, update the OpenSpec change files directly.
Light mode: Skip Phase 3 entirely.
After design is complete, commit all artifacts to the integration branch ($BASE):
# Resolve $BASE — see git-ref "Integration Branch" (override → develop → main)
BASE=$(git config --get aep.integration-branch 2>/dev/null || true)
[ -z "$BASE" ] && { git show-ref --verify --quiet refs/heads/develop \
|| git show-ref --verify --quiet refs/remotes/origin/develop; } && BASE=develop
BASE=${BASE:-main}
git pull --ff-only origin "$BASE"
git add openspec/changes/<change-name>/ docs/
git commit -m "feat: add <change-name> architecture doc and OpenSpec change"
git push origin "$BASE"
This ensures the workspace will have all artifacts when it's created from $BASE. The --ff-only pull avoids overwriting concurrent pushes.
Design is complete. Proceed to:
/aep-launch
This spawns an autonomous workspace session to implement the feature.
npx claudepluginhub memorysaver/agentic-engineering-patterns --plugin patternsGuides design validation through collaborative dialogue before coding begins. Use when creating features, building components, or modifying behavior to prevent wasted work.
Use when starting any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements, and design before implementation.
Guides structured design brainstorming before implementation — explores codebase, asks clarifying questions, proposes approaches with trade-offs, and writes an approved spec. Use to avoid premature coding.