5w1h-decision
About
This skill provides a structured 5W1H framework to guide systematic decision-making before coding. It helps developers prevent duplicate work, detect avoidance patterns, and ensure compliance with architectural patterns like executor/dispatcher separation. Use it to validate project decisions and maintain agile refactoring discipline.
Quick Install
Claude Code
Recommended/plugin add https://github.com/majiayu000/claude-skill-registrygit clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/5w1h-decisionCopy and paste this command in Claude Code to install this skill
Documentation
5W1H Decision Framework - Systematic Decision Making
Core Principles
Decision Philosophy: Think Before Act
| Principle | Description | Validation |
|---|---|---|
| Systematic Thinking | Every decision requires 5W1H analysis | All 6 questions answered |
| No Duplication | Check existing implementation first | Who analysis complete |
| No Avoidance | Reject escape language | Why validation passed |
| Agile Compliance | Executor/Dispatcher separation | How task type matched |
| TDD Integration | Test-first strategy required | How includes TDD steps |
Key Files
| File | Purpose |
|---|---|
.claude/output-styles/5w1h-format.md | System-level format enforcement |
.claude/methodologies/5w1h-self-awareness-methodology.md | Complete methodology |
.claude/methodologies/agile-refactor-methodology.md | Agent collaboration rules |
.claude/methodologies/claude-self-check-methodology.md | Avoidance language detection |
CLAUDE.md | Project development guidelines |
5W1H Framework Quick Reference
Who (Responsibility Attribution)
Format (Agile Refactor Compliant):
Who: {Executor Agent} (executor) | {Dispatcher} (dispatcher)
Valid Patterns:
| Scenario | Who Format |
|---|---|
| Agent implements code | parsley-flutter-developer (executor) | rosemary-project-manager (dispatcher) |
| Main thread dispatches | rosemary-project-manager (self-execute - dispatch/review) |
| Documentation agent | thyme-documentation-integrator (executor) | rosemary-project-manager (dispatcher) |
Checks:
- Searched existing Domain for duplicate functionality
- Verified Service layer implementation
- Confirmed test coverage
- Executor matches task type
What (Function Definition)
Single Responsibility Verification:
What: [Function Name]
- Description: [One sentence description]
- Input: [Explicit input types]
- Output: [Explicit output types]
- Exception: [Error handling]
Checks:
- Single responsibility (one sentence description)
- Clear input/output definition
- No overlap with existing functions
- Can write Given-When-Then test
When (Trigger Timing)
Event-Driven Format:
When: [Event Name]
- Trigger: [User action / System event]
- Event: [EventName]
- Side Effects: [List all side effects]
- Integration: [Event system integration point]
Checks:
- Clear trigger event identified
- Side effects fully documented
- Integration with Event-Driven Architecture
Where (Execution Location)
Architecture Layer Format:
Where: [Layer] / [Component]
- Architecture: [Domain/Application/Infrastructure/Presentation]
- Component: [Specific class or module]
- UseCase: [UseCase call chain]
- Call Path: UI -> UseCase -> Domain -> Service
Checks:
- Correct Clean Architecture layer
- DDD aggregate boundary respected
- UseCase path traceable
Why (Motivation Validation)
Requirement Traceability Format:
Why: [Requirement Reference]
- Requirement ID: [UC-XXX]
- Business Value: [User benefit]
- User Scenario: [Specific use case]
- Document: [docs/app-requirements-spec.md#UC-XXX]
Avoidance Language Detection (BLOCKED):
| Category | Blocked Phrases |
|---|---|
| Quality Compromise | "too complex", "workaround", "temporary fix", "quick fix" |
| Simplification | "simpler approach", "easier way", "simplify" |
| Problem Ignoring | "ignore for now", "skip for now", "deal with later" |
| Test Compromise | "simplify test", "lower test standard", "basic test only" |
| Code Escape | "comment out", "disable", "temporarily disable" |
Checks:
- Has requirement document reference
- Clear business value stated
- No avoidance language detected
How (Implementation Strategy)
Task Type Format (Required):
How: [Task Type: {TYPE}] {Strategy Description}
Task Types and Valid Executors:
| Task Type | Valid Executor | Description |
|---|---|---|
Implementation | Agent (parsley, sage, etc.) | Code implementation |
Dispatch | Main Thread (rosemary) | Task assignment |
Review | Main Thread (rosemary) | Acceptance check |
Documentation | thyme / rosemary | Document updates |
Analysis | lavender / rosemary | Problem analysis |
Planning | rosemary / lavender | Strategy planning |
Violation Detection:
| Who Executor | How Task Type | Result |
|---|---|---|
| rosemary-project-manager | Implementation | BLOCKED |
| parsley-flutter-developer | Dispatch | BLOCKED |
| Any agent | Implementation | ALLOWED |
| rosemary-project-manager | Dispatch/Review | ALLOWED |
Checks:
- TDD test-first strategy
- Task Type matches executor
- No architectural debt introduced
- No temporary solutions
Complete 5W1H Template
5W1H-{YYYYMMDD}-{HHMMSS}-{random}
Who: {agent} (executor) | rosemary-project-manager (dispatcher)
- Domain: {Responsible class/module}
- Existing: {Search result for duplicates}
What: {Function Name}
- Description: {One sentence}
- Input: {Types}
- Output: {Types}
When: {Event Trigger}
- Trigger: {User action / System event}
- Side Effects: {List}
Where: {Layer / Component}
- Architecture: {Clean Architecture layer}
- UseCase: {Call chain}
Why: {Requirement}
- Requirement ID: {UC-XXX}
- Business Value: {User benefit}
How: [Task Type: {TYPE}] {Strategy}
1. Write failing test
2. Implement to pass test
3. Refactor
4. Integration verification
Common Violations and Fixes
Violation 1: Missing Executor/Dispatcher
// VIOLATION
Who: parsley-flutter-developer
- Implement ISBN validation
// FIX
Who: parsley-flutter-developer (executor) | rosemary-project-manager (dispatcher)
- Domain: BookValidator in Book Aggregate
- Existing: Searched, no duplicate found
Violation 2: Missing Task Type
// VIOLATION
How: TDD implementation strategy
1. Write test
2. Implement
// FIX
How: [Task Type: Implementation] TDD implementation strategy
1. Write failing test for ISBN validation
2. Implement BookValidator.validateISBN()
3. Refactor for readability
4. Integrate with AddBookUseCase
Violation 3: Main Thread Doing Implementation
// VIOLATION
Who: rosemary-project-manager (self-execute)
How: [Task Type: Implementation] Build Domain event classes
// FIX
Who: parsley-flutter-developer (executor) | rosemary-project-manager (dispatcher)
How: [Task Type: Implementation] Build Domain event classes
Violation 4: Avoidance Language
// VIOLATION
Why: Need to simplify the complex validation
- Using a simpler approach for now
// FIX
Why: UC-001 Book Addition Requirement
- Requirement ID: UC-001
- Business Value: Ensure user input data format correctness
- User Scenario: User manually inputs ISBN and needs immediate validation
Token Generation
Session Token Format
5W1H-{YYYYMMDD}-{HHMMSS}-{random}
Example: 5W1H-20250925-191735-a7b3c2
Generate Token Script
# Generate new session token
uv run .claude/skills/5w1h-decision/scripts/generate_token.py
# Validate 5W1H content
uv run .claude/skills/5w1h-decision/scripts/validate_5w1h.py "content"
Hook Integration
The 5W1H checker is integrated into PreToolUse Hook:
- Checks before TodoWrite operations
- Validates all 6 W/H sections present
- Detects avoidance language
- Validates agile refactor compliance
Output Style Integration (System-Level Enforcement)
Since v0.25.1, 5W1H format is enforced at the system level via Output Style:
File Location: .claude/output-styles/5w1h-format.md
Enforcement Mechanism:
- Output Style is injected into Claude's system prompt
- Every response MUST follow the 5W1H format structure
- No manual activation required - always active
Relationship with Other Mechanisms:
| Mechanism | Level | Purpose | Enforcement |
|---|---|---|---|
| Output Style | System | Response format structure | Automatic (system prompt) |
| PreToolUse Hook | Tool | Todo creation validation | Before TodoWrite |
| UserPromptSubmit Hook | Session | Token generation + reminder | Each user input |
| SKILL | Reference | Documentation + scripts | On-demand |
Key Advantage:
- Output Style provides consistent format enforcement without relying on Hook execution
- Even if Hooks fail, Claude still follows the format due to system-level injection
Checklist Before Todo Creation
Completeness Check
- Who: Executor/Dispatcher clearly identified, no duplicate implementation
- What: Single responsibility, clear I/O definition
- When: Trigger timing explicit, side effects identified
- Where: Correct architecture layer, UseCase path clear
- Why: Requirement reference, no avoidance language
- How: Task Type present, TDD strategy, matches executor
Agile Refactor Compliance Check
- Who has (executor) | (dispatcher) format
- How has [Task Type: XXX] prefix
- Implementation tasks assigned to agents (not main thread)
- Dispatch/Review tasks assigned to main thread
Quality Gate
ALL items must be checked before creating todo.
Missing any item = BLOCKED
Related Documentation
Methodologies
Project Files
- CLAUDE.md - Project guidelines
- Agent Collaboration - Agent rules
Scripts (in this SKILL)
Quick Reference Card
Required Format
5W1H-{TOKEN}
Who: {agent} (executor) | rosemary-project-manager (dispatcher)
What: {Single responsibility function}
When: {Event trigger with side effects}
Where: {Architecture layer / Component}
Why: {Requirement ID + Business value}
How: [Task Type: {TYPE}] {TDD strategy steps}
Task Type Quick Reference
| Type | Executor | Example |
|---|---|---|
| Implementation | parsley, sage, pepper | Write code |
| Dispatch | rosemary | Assign task |
| Review | rosemary | Accept deliverable |
| Documentation | thyme | Update docs |
| Analysis | lavender | Design analysis |
| Planning | rosemary | Strategy planning |
Avoidance Detection Keywords
| Block | Reason |
|---|---|
| "too complex" | Escaping difficulty |
| "simpler approach" | Compromising quality |
| "for now" | Temporary solution |
| "skip" | Avoiding problem |
| "later" | Deferring issue |
GitHub Repository
Related Skills
algorithmic-art
MetaThis Claude Skill creates original algorithmic art using p5.js with seeded randomness and interactive parameters. It generates .md files for algorithmic philosophies, plus .html and .js files for interactive generative art implementations. Use it when developers need to create flow fields, particle systems, or other computational art while avoiding copyright issues.
subagent-driven-development
DevelopmentThis skill executes implementation plans by dispatching a fresh subagent for each independent task, with code review between tasks. It enables fast iteration while maintaining quality gates through this review process. Use it when working on mostly independent tasks within the same session to ensure continuous progress with built-in quality checks.
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
cost-optimization
OtherThis Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.
