Back to skills
SKILL.md
Collection
ASecurityEnsure clear purpose and success criteria before implementing any feature. Use when starting new features, major refactoring, or complex implementations. Prevents unclear objectives (FP-3).
- 24 stars
- 0 votes
- 0 copies
- 1 view
- Added September 8, 2026
Works with
Security analysis
100/100Pro scans all 21 files and shows the line behind each finding
npx -y skills add mattnigh/skills_collection --skill collection --agent claude-codeAre you the author of Collection?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/mattnigh-collection-67a5328e)---
name: purpose-driven-impl
description: Ensure clear purpose and success criteria before implementing any feature. Use when starting new features, major refactoring, or complex implementations. Prevents unclear objectives (FP-3).
---
# Purpose-Driven Implementation
**Version**: 1.0.0
**対策対象**: FP-3 (目的不明確)
**優先度**: 最高
**出典**: obra/superpowers, vibration-diagnosis-prototype失敗事例
## The Iron Law
> Before writing any code, clearly define WHY you are writing it
**出典**: obra/superpowers - Purpose-First Principle
---
## 5W1H Framework
実装開始前に必ず5W1Hを明確化します:
### Why(なぜ)- 最重要
**問い**:
- なぜこの機能が必要なのか?
- どんな問題を解決するのか?
- 誰が困っているのか?
**例**:
```markdown
## Why
ユーザーが毎回ログインするのが面倒だと報告している。
セッション管理がないため、ページ遷移のたびに認証が必要。
→ ユーザビリティ向上のため、セッション管理機能が必要
```
**禁止**:
- ❌ "依頼されたから"
- ❌ "あった方が良さそうだから"
- ❌ "他のアプリにあるから"
---
### What(何を)
**問い**:
- 何を実装するのか?(具体的機能)
- 何を変更するのか?(影響範囲)
- 何を提供するのか?(ユーザー価値)
**例**:
```markdown
## What
- セッション管理機能
- ログイン状態の30分間保持
- 自動ログアウト機能
```
---
### Who(誰が)
**問い**:
- 誰がこの機能を使うのか?(ユーザー)
- 誰が実装するのか?(担当者)
- 誰が影響を受けるのか?(ステークホルダー)
**例**:
```markdown
## Who
- ユーザー: サイトの全ユーザー(1000人)
- 実装: チーム開発者
- 影響: 既存ユーザー全員(後方互換性必須)
```
---
### When(いつ)
**問い**:
- いつリリースするのか?(期限)
- いつ使われるのか?(タイミング)
- いつテストするのか?(検証計画)
**例**:
```markdown
## When
- リリース: 2週間後
- 使用タイミング: ログイン時、ページ遷移時
- テスト: 実装完了後、リリース前
```
---
### Where(どこで)
**問い**:
- どこに実装するのか?(ファイル、モジュール)
- どこで動作するのか?(環境)
- どこに影響するのか?(依存関係)
**例**:
```markdown
## Where
- 実装場所: src/auth/session.js (新規作成)
- 動作環境: ブラウザ(LocalStorage使用)
- 影響範囲: src/auth/login.js, src/router/index.js
```
---
### How(どのように)
**問い**:
- どのように実装するのか?(技術的アプローチ)
- どのようにテストするのか?(検証方法)
- どのように測定するのか?(成功指標)
**例**:
```markdown
## How
### 実装アプローチ
- LocalStorageにセッショントークン保存
- JWT形式、30分有効期限
- 自動更新機能あり
### テスト方法
- ユニットテスト: session.test.js
- E2Eテスト: login-flow.test.js
- 手動テスト: ブラウザで動作確認
### 成功指標
- ログイン頻度が80%減少
- セッションタイムアウトエラー <5%
- ユーザー満足度向上
```
---
## Purpose Validation Workflow
### Step 1: Purpose Statement (目的宣言)
**テンプレート**:
```markdown
# Purpose Statement
## Problem(課題)
[現在の問題を具体的に記述]
## Solution(解決策)
[提案する機能・変更]
## Value(価値)
[ユーザーまたはビジネスへの価値]
## Success Criteria(成功基準)
- [ ] 基準1
- [ ] 基準2
- [ ] 基準3
```
**例**:
```markdown
# Purpose Statement
## Problem
ユーザーがページ遷移のたびにログインを求められ、
離脱率が30%に達している。
## Solution
セッション管理機能を実装し、30分間ログイン状態を保持する。
## Value
- ユーザー: 再ログインの手間が不要
- ビジネス: 離脱率10%以下に削減
## Success Criteria
- [ ] 30分間セッション保持
- [ ] 離脱率10%以下
- [ ] セキュリティ監査パス
```
---
### Step 2: User Story Mapping (ユーザーストーリー)
**As a... I want... So that... 形式**:
```markdown
## User Story
As a [ユーザータイプ],
I want [機能],
So that [目的/理由].
### Acceptance Criteria
- [ ] Given [前提条件], When [アクション], Then [期待結果]
- [ ] Given [前提条件], When [アクション], Then [期待結果]
```
**例**:
```markdown
## User Story
As a サイト利用者,
I want ログイン状態を保持して欲しい,
So that 毎回ログインする手間を省きたい.
### Acceptance Criteria
- [ ] Given ログイン済み, When 30分以内にページ遷移, Then 再ログイン不要
- [ ] Given ログイン済み, When 30分経過後にアクセス, Then 自動ログアウト
- [ ] Given セッション保持中, When ブラウザ終了, Then セッションクリア
```
---
### Step 3: Scope Definition (スコープ定義)
**In-Scope(含む)と Out-of-Scope(含まない)を明確化**:
```markdown
## Scope
### In-Scope(実装する)
- [ ] セッショントークン管理
- [ ] 30分自動延長
- [ ] セキュアなLocalStorage使用
### Out-of-Scope(実装しない)
- [ ] Remember Me 機能(将来対応)
- [ ] マルチデバイスセッション同期(将来対応)
- [ ] OAuth統合(Phase 2で対応)
```
**重要**: Out-of-Scopeを明確にすることで範囲超過を防ぐ
---
### Step 4: Success Metrics (成功指標)
**測定可能な指標を定義**:
```markdown
## Success Metrics
### 定量指標
- ログイン頻度: 現状10回/日 → 目標2回/日
- 離脱率: 現状30% → 目標10%以下
- セッションタイムアウトエラー: 目標5%以下
### 定性指標
- ユーザーフィードバック: "便利になった" コメント>50%
- サポート問い合わせ: ログイン関連問い合わせ50%削減
```
---
## Implementation Workflow
### Phase 1: Purpose Clarification (10分)
**実行内容**:
```
1. 5W1Hを埋める
2. Purpose Statementを書く
3. User Storyを書く
4. Success Metricsを定義
```
**成果物**:
- `docs/purpose/[YYYY-MM-DD]-[feature-name].md`
**禁止**:
- ❌ この手順を飛ばす
- ❌ "後で書く" と先送り
- ❌ 曖昧な表現("改善", "最適化" だけ)
---
### Phase 2: Design Validation (5分)
**確認項目**:
```
□ Whyが明確か?
□ 成功基準が測定可能か?
□ スコープが明確か?
□ ユーザー価値が明確か?
```
**不明確な場合**:
- 実装を開始しない
- 追加の質問・調査を実施
- Purpose Statementを再作成
---
### Phase 3: Implementation (目的に沿って)
**実装中の確認**:
```
□ 目的から逸脱していないか?
□ スコープ内か?
□ 成功基準を満たすか?
```
**逸脱防止**:
- 新機能を追加したくなった → Out-of-Scopeに追加、別Issue化
- 仕様を変更したくなった → Purpose Statementを更新、承認取得
---
### Phase 4: Completion Validation (完了検証)
**確認**:
```
✅ 目的を達成したか?
✅ 成功基準をすべて満たしたか?
✅ スコープ内に収まったか?
✅ ユーザー価値を提供したか?
→ 完了
```
---
## Prohibited Patterns (アンチパターン)
### Anti-Pattern 1: "とりあえず実装"
**症状**:
```
User: "ログイン機能を追加してください"
❌ Bad: "分かりました。すぐにコードを書きます"
(目的・成功基準が不明確)
```
**正しい対応**:
```
User: "ログイン機能を追加してください"
✅ Good:
"Purpose Statementを作成します。
以下を確認させてください:
1. Why: なぜログイン機能が必要ですか?
- セキュリティ向上?
- ユーザー体験向上?
- 機能制限のため?
2. Success Criteria: どうなれば成功ですか?
- ログイン成功率?
- セキュリティ基準?
- ユーザー満足度?
明確化してから実装を開始します。"
```
---
### Anti-Pattern 2: "機能追加の連鎖"
**症状** (vibration-diagnosis-prototype):
```
1. セッション管理を実装
2. ついでにRemember Me機能も追加
3. ついでにOAuth統合も...
→ スコープ超過、未完成
```
**正しい対応**:
```
1. セッション管理を実装(In-Scope)
2. Remember Me → Out-of-Scope(別Issue化)
3. OAuth統合 → Out-of-Scope(Phase 2で対応)
→ スコープ内に収まる、完成
```
---
### Anti-Pattern 3: "成功基準なし"
**症状**:
```
Purpose Statement:
"パフォーマンスを改善する"
❌ Bad: 測定不可能、曖昧
```
**正しい対応**:
```
Purpose Statement:
"API応答時間を改善する"
Success Criteria:
- 平均応答時間: 現状500ms → 目標200ms
- 95パーセンタイル: 現状1000ms → 目標400ms
- エラー率: 現状5% → 維持または改善
✅ Good: 測定可能、具体的
```
---
## Templates
### Template 1: Feature Purpose Document
```markdown
# [Feature Name] Purpose Document
**作成日**: YYYY-MM-DD
**作成者**: [Name]
**ステータス**: Draft / Approved / In Progress / Completed
---
## 5W1H
### Why(なぜ)
[問題・課題・背景]
### What(何を)
[実装する機能・変更内容]
### Who(誰が)
- ユーザー: [対象ユーザー]
- 実装: [担当者]
- ステークホルダー: [影響を受ける人]
### When(いつ)
- リリース: [期限]
- 使用タイミング: [いつ使われるか]
### Where(どこで)
- 実装場所: [ファイル・モジュール]
- 動作環境: [環境]
### How(どのように)
- 実装アプローチ: [技術的詳細]
- テスト方法: [検証方法]
- 成功指標: [測定方法]
---
## Purpose Statement
### Problem(課題)
[具体的な問題]
### Solution(解決策)
[提案する機能]
### Value(価値)
[ユーザー・ビジネスへの価値]
### Success Criteria(成功基準)
- [ ] 基準1
- [ ] 基準2
- [ ] 基準3
---
## User Story
As a [ユーザータイプ],
I want [機能],
So that [目的/理由].
### Acceptance Criteria
- [ ] Given [前提], When [アクション], Then [期待結果]
- [ ] Given [前提], When [アクション], Then [期待結果]
---
## Scope
### In-Scope(実装する)
- [ ] 機能1
- [ ] 機能2
### Out-of-Scope(実装しない)
- [ ] 機能3(Phase 2で対応)
- [ ] 機能4(将来対応)
---
## Success Metrics
### 定量指標
- [指標名]: 現状[値] → 目標[値]
### 定性指標
- [指標名]: [期待する結果]
---
## Notes
[追加メモ・参考資料等]
```
---
## Multi-layer Defense (3層防御)
**Layer 1: Rules** (弱)
- `docs/rules/implementation.md` - Purpose-Driven Implementation
- `docs/rules/task-integrity.md` - タスク範囲遵守
- LLMが無視する可能性あり
**Layer 2: Skills** (中) ← **このSkill**
- **purpose-driven-impl**: 目的明確化強制
- タスク開始時に自動適用
**Layer 3: Hooks** (強)
- (該当なし - Skillで十分強力)
---
## Invocation Examples
### Example 1: 新機能実装
**User**: "検索機能を追加してください"
**Skill Response**:
```
Purpose-Driven Implementation が起動しました。
実装を開始する前に、目的を明確化します。
5W1H確認:
1. Why: なぜ検索機能が必要ですか?
a) ユーザーが情報を見つけられない
b) 競合他社にあるから
c) SEO向上のため
2. What: 何を検索しますか?
a) ドキュメント全文検索
b) ユーザー名検索
c) タグ検索
3. Success Criteria: どうなれば成功ですか?
a) 検索速度 < 500ms
b) 検索精度 > 90%
c) ユーザー満足度 > 80%
回答いただき次第、Purpose Statementを作成します。
```
---
### Example 2: バグ修正
**User**: "このバグを修正してください"
**Skill Response**:
```
Purpose-Driven Implementation が起動しました。
バグ修正でも目的を明確化します。
5W1H確認:
1. Why: なぜこのバグが発生したか?
[根本原因を特定]
2. What: 何を修正すべきか?
[修正範囲を特定]
3. Success Criteria: 修正が成功したと判断する基準は?
- [ ] バグが再現しない
- [ ] 既存機能が壊れていない
- [ ] テストがすべてパス
Purpose Statementを作成してから修正を開始します。
```
---
## Best Practices
### 1. Documentation First (ドキュメント優先)
**推奨**:
```
1. Purpose Documentを書く
2. レビュー・承認を得る
3. 実装を開始
```
**禁止**:
```
1. 実装を開始
2. "動いてから" ドキュメント書く
→ 目的から逸脱しやすい
```
---
### 2. YAGNI Principle (必要なものだけ)
**You Aren't Gonna Need It**:
```
In-Scope: 今必要な機能のみ
Out-of-Scope: 将来必要になるかもしれない機能
```
**例**:
```
✅ In-Scope: 基本検索
❌ Out-of-Scope: AI検索、音声検索、画像検索
(必要になったら追加)
```
---
### 3. Measurable Success (測定可能な成功)
**Good Metrics**:
```
- 応答時間: 500ms → 200ms
- エラー率: 5% → 1%
- ユーザー満足度: 70% → 85%
```
**Bad Metrics**:
```
- "速くなった"
- "改善した"
- "良くなった"
```
---
## Related Resources
### Internal
- `docs/rules/implementation.md` - Purpose-Driven Implementation詳細
- `docs/rules/task-integrity.md` - タスク範囲遵守
### External
- obra/superpowers - Purpose-First Principle
- User Story Mapping - Jeff Patton
### Phase 3成果物
- `step3.5-failure-case-analysis.md` - FP-3詳細分析
- `step2-featured-resources-analysis.md` - obra/superpowers分析
---
## Completion Criteria
```yaml
✅ 5W1H明確化完了
✅ Purpose Statement作成完了
✅ Success Criteria定義完了
✅ Scope定義完了
✅ 実装が目的に沿っている
✅ 成功基準を満たした
```
**目的不明確のまま実装開始は禁止**
---
**注意**: このSkillは自動的に起動されます。無効化したい場合は `.claude/settings.local.json` から削除してください。
Files in this skill
- 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md
- 17hz__nextjs-template__claude__skills__example-skill__SKILL.md
- 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md
- 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md
- 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md
- 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md
- 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md
- 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md
- 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md
- 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md
- 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md
- 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md
- 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md
- 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md
- 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md
- 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md
- 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md
- 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md
- 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md
- 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md
Attribution
Comments
Loading comments…