5w1h-decision
SKILL.md
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 |
Weekly Installs
1
Repository
diegosouzapw/aw…ni-skillGitHub Stars
4
First Seen
10 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1