Agent skill
design-practice
Apply the 6-phase design framework (Describe, Diagnose, Delimit, Direction, Design, Develop) to understand a problem before implementing a solution.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/design-practice-charly-vibes-wai-2
SKILL.md
Apply the 6-phase design framework to understand a problem before implementing a solution.
Phases
Work through each phase sequentially. Do not skip phases. The goal is understanding, not artifacts.
PHASE 1: DESCRIBE (Symptoms)
Objective: Capture the reality without imposing solutions.
-
Gather signals:
- What symptoms are observed? (errors, complaints, metrics)
- Where do they occur? (files, components, conditions)
- When did they start? (commits, deployments, changes)
- Who is affected? (users, systems, processes)
-
Write a neutral description:
- Facts only, no speculation on causes
- No mention of solutions
- Observable behaviors, not interpretations
Output format:
## Description
### Observed Symptoms
- [Symptom 1]: [Where/When observed]
- [Symptom 2]: [Where/When observed]
### Signal Sources
- [Bug reports, logs, user complaints, metrics]
### Timeline
- [When symptoms first appeared, any patterns]
Anti-patterns to avoid:
- "The database is slow" (diagnosis, not description)
- "We need to add caching" (solution, not description)
- "Users are confused by the UI" (interpretation, not observation)
Correct examples:
- "Page load time exceeds 5s when user count > 100"
- "Error rate increased from 0.1% to 2.3% after deploy on Jan 15"
- "Users submit support tickets asking how to find the export button"
PHASE 2: DIAGNOSE (Root Cause)
Objective: Identify the mechanism causing the symptoms.
-
Generate multiple hypotheses:
- List at least 3 possible causes
- "If I only have one hypothesis, I'm probably wrong"
-
Test hypotheses systematically:
- Use logic to rule things out (negative progress)
- Use evidence to support remaining hypotheses
- Divide and conquer (git bisect, component isolation)
-
Write the Problem Statement:
Problem Statement Template:
## Problem Statement
**Current behavior:** [What happens now - factual]
**Mechanism:** [Root cause - how/why it happens]
**Evidence:**
- [Fact supporting this diagnosis]
- [Fact supporting this diagnosis]
**Ruled out:**
- [Hypothesis A]: [Why it's not this]
- [Hypothesis B]: [Why it's not this]
Quality check: The solution should feel obvious after writing the right problem statement. If it doesn't, the diagnosis is incomplete.
PHASE 3: DELIMIT (Scope)
Objective: Define what's in and what's out.
-
Set explicit boundaries:
- What subset of the problem will we solve?
- What constraints do we accept?
- What's explicitly NOT being addressed?
-
Document non-goals:
- Future considerations
- Related problems not in scope
- Nice-to-haves deferred
Output format:
## Scope
### In Scope
- [What we will address]
- [Specific constraints we'll work within]
### Out of Scope (Non-Goals)
- [What we explicitly won't do]
- [Why it's deferred]
### Constraints
- [Technical limitations]
- [Time/resource constraints]
- [Compatibility requirements]
Why this matters: Prevents scope creep. Sets the "physics" of the project before considering solutions.
PHASE 4: DIRECTION (Strategic Approach)
Objective: Select the best approach from viable alternatives.
-
Generate multiple approaches:
- Status Quo: Always include "do nothing" as baseline
- Approach A: [First viable approach]
- Approach B: [Different viable approach]
- Approach C: [If applicable]
-
Build a Decision Matrix:
Decision Matrix Structure:
## Decision Matrix
| Criterion | Status Quo | Approach A | Approach B |
|-----------|------------|------------|------------|
| [Criterion 1] | [Fact] | [Fact] | [Fact] |
| [Criterion 2] | [Fact] | [Fact] | [Fact] |
| [Criterion 3] | [Fact] | [Fact] | [Fact] |
### Criteria Definitions
- **[Criterion 1]**: [What this measures]
- **[Criterion 2]**: [What this measures]
### Assessment Key
- Green: Desirable
- Yellow: Acceptable with trade-offs
- Red: Problematic or blocking
Rules for Decision Matrix:
- Text is FACT (neutral, objective descriptions)
- Color/assessment is JUDGMENT (subjective evaluation)
- Status Quo is always the first column
- Each cell must be specific, not "good" or "bad"
- Select and justify:
### Decision
**Selected approach:** [Approach name]
**Rationale:** [Why this approach best addresses the scoped problem]
**Trade-offs accepted:** [What we're giving up]
PHASE 5: DESIGN (Tactical Plan)
Objective: Create detailed blueprint for implementation.
Only after Direction is selected:
-
Define specifics:
- Data structures and schemas
- API signatures and contracts
- Component responsibilities
- Error handling approach
- Edge cases
-
Write Implementation Plan:
Use the standard implementation plan format with:
- Phases that can be independently verified
- TDD approach (tests before implementation)
- Specific file paths and changes
- Success criteria for each phase
Hammock time: Write the plan, then sleep on it. Read it the next day before proceeding.
PHASE 6: DEVELOP (Execute)
Objective: Translate design into working code.
If Phases 1-5 were rigorous, this phase should feel mechanical:
- Follow the plan
- Write tests first
- Implement to pass tests
- Verify against success criteria
If you're struggling in this phase: Return to earlier phases. Struggling to code usually means the design is incomplete.
Process Rules
- No phase skipping: Each phase builds on the previous
- Artifacts are thinking tools: Not bureaucracy, but aids to understanding
- Hammock time: Sleep on ideas before committing to them
- Multiple hypotheses: One idea is a trap; generate alternatives
- Incremental over iterative: Understand → Design → Code → Value (not Code → Fail → Learn)
When to Return to Earlier Phases
- Can't write Problem Statement clearly → Back to Describe (need more symptoms)
- Solution doesn't feel obvious → Back to Diagnose (incomplete root cause)
- Scope keeps expanding → Back to Delimit (boundaries not firm)
- Can't choose between approaches → Back to Direction (need more criteria or research)
- Implementation keeps hitting surprises → Back to Design (missing edge cases)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?