Back to Skills

5w1h-decision

majiayu000
Updated Today
2 views
58
9
58
View on GitHub
Metageneral

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 CommandRecommended
/plugin add https://github.com/majiayu000/claude-skill-registry
Git CloneAlternative
git clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/5w1h-decision

Copy 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

PrincipleDescriptionValidation
Systematic ThinkingEvery decision requires 5W1H analysisAll 6 questions answered
No DuplicationCheck existing implementation firstWho analysis complete
No AvoidanceReject escape languageWhy validation passed
Agile ComplianceExecutor/Dispatcher separationHow task type matched
TDD IntegrationTest-first strategy requiredHow includes TDD steps

Key Files

FilePurpose
.claude/output-styles/5w1h-format.mdSystem-level format enforcement
.claude/methodologies/5w1h-self-awareness-methodology.mdComplete methodology
.claude/methodologies/agile-refactor-methodology.mdAgent collaboration rules
.claude/methodologies/claude-self-check-methodology.mdAvoidance language detection
CLAUDE.mdProject development guidelines

5W1H Framework Quick Reference

Who (Responsibility Attribution)

Format (Agile Refactor Compliant):

Who: {Executor Agent} (executor) | {Dispatcher} (dispatcher)

Valid Patterns:

ScenarioWho Format
Agent implements codeparsley-flutter-developer (executor) | rosemary-project-manager (dispatcher)
Main thread dispatchesrosemary-project-manager (self-execute - dispatch/review)
Documentation agentthyme-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):

CategoryBlocked 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 TypeValid ExecutorDescription
ImplementationAgent (parsley, sage, etc.)Code implementation
DispatchMain Thread (rosemary)Task assignment
ReviewMain Thread (rosemary)Acceptance check
Documentationthyme / rosemaryDocument updates
Analysislavender / rosemaryProblem analysis
Planningrosemary / lavenderStrategy planning

Violation Detection:

Who ExecutorHow Task TypeResult
rosemary-project-managerImplementationBLOCKED
parsley-flutter-developerDispatchBLOCKED
Any agentImplementationALLOWED
rosemary-project-managerDispatch/ReviewALLOWED

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:

MechanismLevelPurposeEnforcement
Output StyleSystemResponse format structureAutomatic (system prompt)
PreToolUse HookToolTodo creation validationBefore TodoWrite
UserPromptSubmit HookSessionToken generation + reminderEach user input
SKILLReferenceDocumentation + scriptsOn-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

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

TypeExecutorExample
Implementationparsley, sage, pepperWrite code
DispatchrosemaryAssign task
ReviewrosemaryAccept deliverable
DocumentationthymeUpdate docs
AnalysislavenderDesign analysis
PlanningrosemaryStrategy planning

Avoidance Detection Keywords

BlockReason
"too complex"Escaping difficulty
"simpler approach"Compromising quality
"for now"Temporary solution
"skip"Avoiding problem
"later"Deferring issue

GitHub Repository

majiayu000/claude-skill-registry
Path: skills/data/5w1h-decision

Related Skills

algorithmic-art

Meta

This 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.

View skill

subagent-driven-development

Development

This 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.

View skill

executing-plans

Design

Use 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.

View skill

cost-optimization

Other

This 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.

View skill