musubix 3.6.1 → 3.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/skills/build-fix/SKILL.md +124 -0
- package/.github/skills/checkpoint/SKILL.md +131 -0
- package/.github/skills/codemap/SKILL.md +120 -0
- package/.github/skills/codemap/templates/codemap-index.md +142 -0
- package/.github/skills/codemap/templates/package-codemap.md +160 -0
- package/.github/skills/context-optimizer/SKILL.md +109 -0
- package/.github/skills/context-optimizer/contexts/dev.md +40 -0
- package/.github/skills/context-optimizer/contexts/research.md +55 -0
- package/.github/skills/context-optimizer/contexts/review.md +49 -0
- package/.github/skills/e2e-runner/SKILL.md +145 -0
- package/.github/skills/eval-harness/SKILL.md +111 -0
- package/.github/skills/eval-harness/examples/capability-eval.md +158 -0
- package/.github/skills/eval-harness/examples/human-grader-template.md +326 -0
- package/.github/skills/eval-harness/examples/regression-eval.md +228 -0
- package/.github/skills/learning-hooks/SKILL.md +101 -0
- package/.github/skills/learning-hooks/templates/learned-skill-template.md +79 -0
- package/.github/skills/musubix-adr-generation/SKILL.md +33 -168
- package/.github/skills/musubix-best-practices/SKILL.md +46 -276
- package/.github/skills/musubix-c4-design/SKILL.md +48 -124
- package/.github/skills/musubix-code-generation/SKILL.md +46 -193
- package/.github/skills/musubix-domain-inference/SKILL.md +54 -168
- package/.github/skills/musubix-ears-validation/SKILL.md +49 -136
- package/.github/skills/musubix-sdd-workflow/SKILL.md +56 -178
- package/.github/skills/musubix-technical-writing/SKILL.md +45 -381
- package/.github/skills/musubix-test-generation/SKILL.md +52 -176
- package/.github/skills/musubix-traceability/SKILL.md +52 -99
- package/.github/skills/refactor-cleaner/SKILL.md +105 -0
- package/.github/skills/session-manager/SKILL.md +119 -0
- package/.github/skills/session-manager/scripts/session-end.sh +175 -0
- package/.github/skills/session-manager/scripts/session-start.sh +87 -0
- package/.github/skills/verification-loop/SKILL.md +111 -0
- package/.github/skills/verification-loop/scripts/verify.sh +305 -0
- package/AGENTS.md +231 -1034
- package/docs/CODEMAPS/CODEMAP.md +1 -0
- package/docs/adr/ADR-v3.7.0-001-everything-claude-code-integration.md +102 -0
- package/package.json +2 -2
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-optimizer
|
|
3
|
+
description: コンテキストウィンドウ最適化。圧縮提案、Pre/PostToolUse Hooks、モード注入。
|
|
4
|
+
license: MIT
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
triggers:
|
|
7
|
+
- ツール呼び出し50回超過
|
|
8
|
+
- ファイル編集後
|
|
9
|
+
- 危険なコマンド実行前
|
|
10
|
+
- /mode
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Context Optimizer
|
|
14
|
+
|
|
15
|
+
> **要約**: コンテキストウィンドウを最適化し、効率的なセッション管理を支援。
|
|
16
|
+
|
|
17
|
+
## 🔄 トリガーと即時アクション
|
|
18
|
+
|
|
19
|
+
### 1. Strategic Compact (REQ-CO-001/002)
|
|
20
|
+
|
|
21
|
+
**WHEN** ツール呼び出しが50回に到達
|
|
22
|
+
**DO** 圧縮を提案
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
💡 コンテキスト圧縮の提案
|
|
26
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
27
|
+
ツール呼び出し: 50回
|
|
28
|
+
フェーズ: [現在のフェーズ]
|
|
29
|
+
━━━━━━━━━━━━━━━━━━━━━━
|
|
30
|
+
圧縮前にsession-managerで状態を保存してください。
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**リマインダースケジュール**:
|
|
34
|
+
| 回数 | アクション |
|
|
35
|
+
|------|----------|
|
|
36
|
+
| 50回 | 圧縮提案 |
|
|
37
|
+
| 75回 | リマインダー |
|
|
38
|
+
| 100回 | 強い警告 |
|
|
39
|
+
| 以降25回ごと | リマインダー |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### 2. PostToolUse Hooks (REQ-CO-004)
|
|
44
|
+
|
|
45
|
+
**WHEN** ファイル編集後(Edit/Write)
|
|
46
|
+
**DO** ファイル種別に応じた自動チェック
|
|
47
|
+
|
|
48
|
+
| 拡張子 | チェック | コマンド |
|
|
49
|
+
|--------|---------|---------|
|
|
50
|
+
| `.ts`, `.tsx` | 型チェック | `npx tsc --noEmit` |
|
|
51
|
+
| `.ts`, `.tsx`, `.js` | フォーマット | `prettier --check` |
|
|
52
|
+
| `.ts`, `.tsx`, `.js` | console.log検出 | `grep -n "console.log"` |
|
|
53
|
+
|
|
54
|
+
**問題発見時**: ユーザーに報告し、修正を提案
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 3. PreToolUse Hooks (REQ-CO-005)
|
|
59
|
+
|
|
60
|
+
**WHEN** 以下のコマンド実行前
|
|
61
|
+
**DO** 確認/警告を表示
|
|
62
|
+
|
|
63
|
+
| パターン | アクション |
|
|
64
|
+
|---------|----------|
|
|
65
|
+
| `npm install`, `pnpm install` | tmux使用を提案 |
|
|
66
|
+
| `npm run build`, `cargo build` | バックグラウンド実行を提案 |
|
|
67
|
+
| `git push` | 変更差分の最終確認 |
|
|
68
|
+
| `rm -rf`, `git reset --hard` | ⚠️ 破壊的操作の警告 |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### 4. Doc Blocker (REQ-CO-006)
|
|
73
|
+
|
|
74
|
+
**WHEN** Markdownファイル作成時
|
|
75
|
+
**DO** 必要性を確認(以下は除外)
|
|
76
|
+
|
|
77
|
+
**除外リスト**: `README.md`, `CHANGELOG.md`, `LICENSE`, `docs/**`, `.github/**`
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 🎯 Context Mode (REQ-CO-003)
|
|
82
|
+
|
|
83
|
+
**WHEN** `/mode <name>` または モード切り替え要求
|
|
84
|
+
**DO** 対応するコンテキストを注入
|
|
85
|
+
|
|
86
|
+
| モード | フォーカス | 推奨ツール |
|
|
87
|
+
|--------|----------|----------|
|
|
88
|
+
| `dev` | 実装・コーディング | Edit, Write, Bash |
|
|
89
|
+
| `review` | コードレビュー | Read, Grep, Glob |
|
|
90
|
+
| `research` | 調査・探索 | Read, Grep, semantic_search |
|
|
91
|
+
|
|
92
|
+
**モード切り替え時の出力**:
|
|
93
|
+
```
|
|
94
|
+
🎯 Mode: [モード名]
|
|
95
|
+
━━━━━━━━━━━━━━━━
|
|
96
|
+
フォーカス: [説明]
|
|
97
|
+
推奨ツール: [ツールリスト]
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## トレーサビリティ
|
|
103
|
+
|
|
104
|
+
- REQ-CO-001: Strategic Compact Suggestion
|
|
105
|
+
- REQ-CO-002: Tool Call Counter
|
|
106
|
+
- REQ-CO-003: Context Mode Injection
|
|
107
|
+
- REQ-CO-004: PostToolUse Hooks
|
|
108
|
+
- REQ-CO-005: PreToolUse Hooks
|
|
109
|
+
- REQ-CO-006: Doc Blocker
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Development Mode Context
|
|
2
|
+
|
|
3
|
+
このコンテキストはアクティブな開発・コーディングセッションに最適化されています。
|
|
4
|
+
|
|
5
|
+
## フォーカス
|
|
6
|
+
|
|
7
|
+
- 実装とコーディング
|
|
8
|
+
- 機能開発
|
|
9
|
+
- バグ修正
|
|
10
|
+
- コード変更
|
|
11
|
+
|
|
12
|
+
## 推奨ツール
|
|
13
|
+
|
|
14
|
+
| ツール | 用途 |
|
|
15
|
+
|--------|------|
|
|
16
|
+
| `Edit` | ファイル編集 |
|
|
17
|
+
| `Write` | 新規ファイル作成 |
|
|
18
|
+
| `Bash` | コマンド実行、ビルド、テスト |
|
|
19
|
+
| `Grep` | コード検索 |
|
|
20
|
+
|
|
21
|
+
## ベストプラクティス
|
|
22
|
+
|
|
23
|
+
1. **テスト駆動開発**: 実装前にテストを書く
|
|
24
|
+
2. **小さな変更**: 一度に1つの変更に集中
|
|
25
|
+
3. **頻繁なビルド確認**: 変更後は `npm run build` で確認
|
|
26
|
+
4. **型チェック**: TypeScriptファイル編集後は `npx tsc --noEmit`
|
|
27
|
+
|
|
28
|
+
## 自動チェック
|
|
29
|
+
|
|
30
|
+
ファイル編集後、以下を自動実行:
|
|
31
|
+
|
|
32
|
+
- `.ts`, `.tsx` → `npx tsc --noEmit`
|
|
33
|
+
- `.js`, `.ts`, `.tsx` → Prettier確認
|
|
34
|
+
- console.log検出 → 警告表示
|
|
35
|
+
|
|
36
|
+
## 避けるべきこと
|
|
37
|
+
|
|
38
|
+
- 大規模なリファクタリングを一度に行う
|
|
39
|
+
- テストなしでコードをコミット
|
|
40
|
+
- 型エラーを無視する
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Research Mode Context
|
|
2
|
+
|
|
3
|
+
このコンテキストは調査・探索セッションに最適化されています。
|
|
4
|
+
|
|
5
|
+
## フォーカス
|
|
6
|
+
|
|
7
|
+
- コードベースの理解
|
|
8
|
+
- アーキテクチャの把握
|
|
9
|
+
- 依存関係の調査
|
|
10
|
+
- ドキュメントの確認
|
|
11
|
+
|
|
12
|
+
## 推奨ツール
|
|
13
|
+
|
|
14
|
+
| ツール | 用途 |
|
|
15
|
+
|--------|------|
|
|
16
|
+
| `Read` | ファイル内容の確認 |
|
|
17
|
+
| `Grep` | テキスト検索 |
|
|
18
|
+
| `semantic_search` | 意味的なコード検索 |
|
|
19
|
+
| `Glob` | ファイル構造の把握 |
|
|
20
|
+
| `list_dir` | ディレクトリ構造の確認 |
|
|
21
|
+
|
|
22
|
+
## 調査パターン
|
|
23
|
+
|
|
24
|
+
### コードベース理解
|
|
25
|
+
1. `README.md` を確認
|
|
26
|
+
2. `package.json` で依存関係を把握
|
|
27
|
+
3. エントリーポイント(`src/index.ts` 等)を確認
|
|
28
|
+
4. ディレクトリ構造を把握
|
|
29
|
+
|
|
30
|
+
### 機能調査
|
|
31
|
+
1. 関連するファイルを特定(grep/semantic_search)
|
|
32
|
+
2. 主要な関数・クラスを確認
|
|
33
|
+
3. テストファイルで使用例を確認
|
|
34
|
+
4. 型定義を確認
|
|
35
|
+
|
|
36
|
+
### 依存関係調査
|
|
37
|
+
1. `package.json` で直接依存を確認
|
|
38
|
+
2. `import` 文をgrep検索
|
|
39
|
+
3. 内部モジュール間の依存を追跡
|
|
40
|
+
|
|
41
|
+
## 質問テンプレート
|
|
42
|
+
|
|
43
|
+
調査中に以下の質問を意識:
|
|
44
|
+
|
|
45
|
+
- このコードの目的は何か?
|
|
46
|
+
- 誰がこのコードを使用するか?
|
|
47
|
+
- どのような前提条件があるか?
|
|
48
|
+
- 既知の制限事項は何か?
|
|
49
|
+
- 関連するドキュメントはどこにあるか?
|
|
50
|
+
|
|
51
|
+
## 避けるべきこと
|
|
52
|
+
|
|
53
|
+
- 調査中にコードを変更する
|
|
54
|
+
- 理解が不十分なまま結論を出す
|
|
55
|
+
- 関連コードを見落とす
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Review Mode Context
|
|
2
|
+
|
|
3
|
+
このコンテキストはコードレビューセッションに最適化されています。
|
|
4
|
+
|
|
5
|
+
## フォーカス
|
|
6
|
+
|
|
7
|
+
- コード品質の評価
|
|
8
|
+
- 潜在的なバグの発見
|
|
9
|
+
- ベストプラクティスの確認
|
|
10
|
+
- セキュリティ問題の検出
|
|
11
|
+
|
|
12
|
+
## 推奨ツール
|
|
13
|
+
|
|
14
|
+
| ツール | 用途 |
|
|
15
|
+
|--------|------|
|
|
16
|
+
| `Read` | ファイル内容の確認 |
|
|
17
|
+
| `Grep` | パターン検索 |
|
|
18
|
+
| `Glob` | ファイル一覧取得 |
|
|
19
|
+
| `semantic_search` | 関連コードの検索 |
|
|
20
|
+
|
|
21
|
+
## レビューチェックリスト
|
|
22
|
+
|
|
23
|
+
### コード品質
|
|
24
|
+
- [ ] 命名規則が一貫している
|
|
25
|
+
- [ ] 関数が単一責任原則に従っている
|
|
26
|
+
- [ ] エラーハンドリングが適切
|
|
27
|
+
- [ ] ログ出力が適切
|
|
28
|
+
|
|
29
|
+
### セキュリティ
|
|
30
|
+
- [ ] ユーザー入力のバリデーション
|
|
31
|
+
- [ ] SQLインジェクション対策
|
|
32
|
+
- [ ] XSS対策
|
|
33
|
+
- [ ] 認証・認可の確認
|
|
34
|
+
|
|
35
|
+
### パフォーマンス
|
|
36
|
+
- [ ] N+1クエリがない
|
|
37
|
+
- [ ] 不要なループがない
|
|
38
|
+
- [ ] メモリリークの可能性がない
|
|
39
|
+
|
|
40
|
+
### テスト
|
|
41
|
+
- [ ] 十分なテストカバレッジ
|
|
42
|
+
- [ ] エッジケースのテスト
|
|
43
|
+
- [ ] エラーケースのテスト
|
|
44
|
+
|
|
45
|
+
## 避けるべきこと
|
|
46
|
+
|
|
47
|
+
- レビュー中にコードを直接編集する
|
|
48
|
+
- 細かいスタイルの問題に時間をかけすぎる
|
|
49
|
+
- コンテキストなしで批判する
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e-runner
|
|
3
|
+
description: Playwrightを使用してE2Eテストを生成・実行。クリティカルユーザーフローの検証。
|
|
4
|
+
license: MIT
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
triggers:
|
|
7
|
+
- /e2e
|
|
8
|
+
- /playwright
|
|
9
|
+
- E2Eテスト
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# E2E Runner
|
|
13
|
+
|
|
14
|
+
> **要約**: PlaywrightでE2Eテストを生成・実行。テスト結果のレポートとスクリーンショット管理。
|
|
15
|
+
|
|
16
|
+
## 📌 コマンド
|
|
17
|
+
|
|
18
|
+
| コマンド | 説明 |
|
|
19
|
+
|---------|------|
|
|
20
|
+
| `/e2e generate <flow>` | テスト生成 |
|
|
21
|
+
| `/e2e run [flow]` | テスト実行 |
|
|
22
|
+
| `/e2e report` | レポート表示 |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 🎬 テスト生成 (REQ-E2E-001)
|
|
27
|
+
|
|
28
|
+
**WHEN** `/e2e generate <flow>` 実行
|
|
29
|
+
**DO** テストファイルを生成
|
|
30
|
+
|
|
31
|
+
**出力構造**:
|
|
32
|
+
```
|
|
33
|
+
tests/e2e/
|
|
34
|
+
├── <flow>.spec.ts # テストファイル
|
|
35
|
+
├── fixtures/
|
|
36
|
+
│ └── <flow>.json # テストデータ
|
|
37
|
+
└── pages/
|
|
38
|
+
└── <flow>.page.ts # Page Object
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**テストテンプレート**:
|
|
42
|
+
```typescript
|
|
43
|
+
import { test, expect } from '@playwright/test';
|
|
44
|
+
|
|
45
|
+
test.describe('<Flow>', () => {
|
|
46
|
+
test('should complete flow', async ({ page }) => {
|
|
47
|
+
// Step 1: Navigate
|
|
48
|
+
await page.goto('/');
|
|
49
|
+
|
|
50
|
+
// Step 2: Action
|
|
51
|
+
await page.click('[data-testid="button"]');
|
|
52
|
+
|
|
53
|
+
// Step 3: Assert
|
|
54
|
+
await expect(page.locator('.success')).toBeVisible();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## ▶️ テスト実行 (REQ-E2E-002)
|
|
62
|
+
|
|
63
|
+
**WHEN** `/e2e run [flow]` 実行
|
|
64
|
+
**DO** Playwrightでテスト実行
|
|
65
|
+
|
|
66
|
+
| オプション | 説明 |
|
|
67
|
+
|-----------|------|
|
|
68
|
+
| `--headed` | ブラウザ表示 |
|
|
69
|
+
| `--debug` | デバッグモード |
|
|
70
|
+
| `--trace` | トレース記録 |
|
|
71
|
+
| `--browser <name>` | ブラウザ指定 |
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 全テスト
|
|
75
|
+
npx playwright test
|
|
76
|
+
|
|
77
|
+
# 特定フロー
|
|
78
|
+
npx playwright test tests/e2e/login.spec.ts
|
|
79
|
+
|
|
80
|
+
# デバッグ
|
|
81
|
+
npx playwright test --debug
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 📊 レポート (REQ-E2E-003)
|
|
87
|
+
|
|
88
|
+
**WHEN** テスト完了
|
|
89
|
+
**DO** レポート生成
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
📊 E2E Test Report
|
|
93
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
94
|
+
Total: 10 tests
|
|
95
|
+
Passed: 8 ✅
|
|
96
|
+
Failed: 2 ❌
|
|
97
|
+
Skipped: 0
|
|
98
|
+
|
|
99
|
+
Duration: 45.2s
|
|
100
|
+
━━━━━━━━━━━━━━━━━━━━━━━━
|
|
101
|
+
|
|
102
|
+
Failed Tests:
|
|
103
|
+
1. login.spec.ts > should login
|
|
104
|
+
Error: Timeout waiting for selector
|
|
105
|
+
Screenshot: playwright-report/login-1.png
|
|
106
|
+
|
|
107
|
+
2. checkout.spec.ts > should pay
|
|
108
|
+
Error: Element not found
|
|
109
|
+
Screenshot: playwright-report/checkout-1.png
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**HTMLレポート**:
|
|
113
|
+
```bash
|
|
114
|
+
npx playwright show-report
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## 📁 設定
|
|
120
|
+
|
|
121
|
+
**playwright.config.ts**:
|
|
122
|
+
```typescript
|
|
123
|
+
export default defineConfig({
|
|
124
|
+
testDir: './tests/e2e',
|
|
125
|
+
timeout: 30000,
|
|
126
|
+
retries: 2,
|
|
127
|
+
use: {
|
|
128
|
+
baseURL: 'http://localhost:3000',
|
|
129
|
+
screenshot: 'only-on-failure',
|
|
130
|
+
trace: 'retain-on-failure',
|
|
131
|
+
},
|
|
132
|
+
projects: [
|
|
133
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
134
|
+
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
|
|
135
|
+
],
|
|
136
|
+
});
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## トレーサビリティ
|
|
142
|
+
|
|
143
|
+
- REQ-E2E-001: E2E Test Generation
|
|
144
|
+
- REQ-E2E-002: E2E Test Execution
|
|
145
|
+
- REQ-E2E-003: E2E Report
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eval-harness
|
|
3
|
+
description: pass@kメトリクスでAIコード生成の品質を評価。Capability/Regression評価をサポート。
|
|
4
|
+
license: MIT
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
triggers:
|
|
7
|
+
- /eval
|
|
8
|
+
- 機能評価
|
|
9
|
+
- 回帰テスト
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Eval Harness
|
|
13
|
+
|
|
14
|
+
> **要約**: AIコード生成の品質を定量的に評価。pass@kメトリクスと複数の評価タイプをサポート。
|
|
15
|
+
|
|
16
|
+
## 📊 評価タイプ
|
|
17
|
+
|
|
18
|
+
### 1. Capability Eval (REQ-EH-001)
|
|
19
|
+
|
|
20
|
+
**WHEN** 新機能の品質評価が必要
|
|
21
|
+
**DO** 以下のフォーマットで定義
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
[CAPABILITY EVAL: <feature-name>]
|
|
25
|
+
Task: <達成タスク>
|
|
26
|
+
Success Criteria:
|
|
27
|
+
- [ ] 基準1
|
|
28
|
+
- [ ] 基準2
|
|
29
|
+
- [ ] 基準3
|
|
30
|
+
Expected Output: <期待出力>
|
|
31
|
+
Test Command: <テストコマンド>
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### 2. Regression Eval (REQ-EH-002)
|
|
37
|
+
|
|
38
|
+
**WHEN** 既存機能の品質維持を確認
|
|
39
|
+
**DO** 以下のフォーマットで定義
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
[REGRESSION EVAL: <feature-name>]
|
|
43
|
+
Baseline: <Git SHA / チェックポイント>
|
|
44
|
+
Tests:
|
|
45
|
+
- test-1: PASS/FAIL
|
|
46
|
+
- test-2: PASS/FAIL
|
|
47
|
+
Result: X/Y passed (previously Y/Y)
|
|
48
|
+
Regression: Yes/No
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 📈 pass@k Metrics (REQ-EH-003)
|
|
54
|
+
|
|
55
|
+
| メトリクス | 定義 | 用途 |
|
|
56
|
+
|-----------|------|------|
|
|
57
|
+
| **pass@1** | 初回試行成功率 | 基本信頼度 |
|
|
58
|
+
| **pass@3** | 3回中1回以上成功 | 一般ターゲット |
|
|
59
|
+
| **consecutive@3** | 3回連続成功 | クリティカルパス |
|
|
60
|
+
|
|
61
|
+
**計算**:
|
|
62
|
+
```
|
|
63
|
+
pass@1 = 成功数 / 試行数
|
|
64
|
+
pass@k = 1 - C(n-c, k) / C(n, k)
|
|
65
|
+
consecutive@3 = 連続成功シーケンス数 / 可能シーケンス数
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**レポート例**:
|
|
69
|
+
```
|
|
70
|
+
📊 Eval Report: user-auth
|
|
71
|
+
━━━━━━━━━━━━━━━━━━━━
|
|
72
|
+
pass@1: 80% (8/10)
|
|
73
|
+
pass@3: 95%
|
|
74
|
+
consecutive@3: 60%
|
|
75
|
+
━━━━━━━━━━━━━━━━━━━━
|
|
76
|
+
Status: ✅ Meets target
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 🔍 Grader Types (REQ-EH-004/005)
|
|
82
|
+
|
|
83
|
+
| タイプ | 説明 | 使用場面 |
|
|
84
|
+
|--------|------|---------|
|
|
85
|
+
| **Code-Based** | コマンド実行で判定 | 決定的な検証 |
|
|
86
|
+
| **Model-Based** | LLMで判定 | 自由形式の評価 |
|
|
87
|
+
| **Human** | 人手で判定 | 主観的品質評価 |
|
|
88
|
+
|
|
89
|
+
### Human Grader Template
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
[HUMAN GRADE: <feature>]
|
|
93
|
+
Reviewer: @username
|
|
94
|
+
Checklist:
|
|
95
|
+
- [ ] 仕様を満たしている
|
|
96
|
+
- [ ] エッジケース考慮
|
|
97
|
+
- [ ] API互換性維持
|
|
98
|
+
- [ ] セキュリティ問題なし
|
|
99
|
+
Verdict: PASS/FAIL
|
|
100
|
+
Notes: [コメント]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## トレーサビリティ
|
|
106
|
+
|
|
107
|
+
- REQ-EH-001: Capability Eval Definition
|
|
108
|
+
- REQ-EH-002: Regression Eval Definition
|
|
109
|
+
- REQ-EH-003: pass@k Metrics
|
|
110
|
+
- REQ-EH-004: Grader Types
|
|
111
|
+
- REQ-EH-005: Human Grader Support
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Capability Eval Examples
|
|
2
|
+
|
|
3
|
+
## Example 1: User Authentication Feature
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
[CAPABILITY EVAL: user-authentication]
|
|
7
|
+
|
|
8
|
+
Task: JWTベースのユーザー認証機能を実装する
|
|
9
|
+
|
|
10
|
+
Success Criteria:
|
|
11
|
+
- [x] ログインエンドポイントが正常に動作する
|
|
12
|
+
- [x] JWTトークンが正しく生成される
|
|
13
|
+
- [x] トークン検証ミドルウェアが機能する
|
|
14
|
+
- [ ] リフレッシュトークンが実装されている
|
|
15
|
+
|
|
16
|
+
Expected Output:
|
|
17
|
+
- POST /api/auth/login → 200 OK + JWT token
|
|
18
|
+
- GET /api/protected → 401 without token, 200 with valid token
|
|
19
|
+
|
|
20
|
+
Constraints:
|
|
21
|
+
- bcryptを使用したパスワードハッシュ
|
|
22
|
+
- トークン有効期限: 15分
|
|
23
|
+
- リフレッシュトークン有効期限: 7日
|
|
24
|
+
|
|
25
|
+
Test Command: npm run test:auth
|
|
26
|
+
|
|
27
|
+
Result: 3/4 criteria met
|
|
28
|
+
Status: PARTIAL PASS
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Example 2: API Rate Limiting
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
[CAPABILITY EVAL: api-rate-limiting]
|
|
37
|
+
|
|
38
|
+
Task: APIエンドポイントにレート制限を実装する
|
|
39
|
+
|
|
40
|
+
Success Criteria:
|
|
41
|
+
- [x] IPベースのレート制限が機能する
|
|
42
|
+
- [x] 制限超過時に429エラーを返す
|
|
43
|
+
- [x] X-RateLimit-* ヘッダーが正しく設定される
|
|
44
|
+
- [x] Redis/メモリでの状態管理が動作する
|
|
45
|
+
- [x] ホワイトリストIPが除外される
|
|
46
|
+
|
|
47
|
+
Expected Output:
|
|
48
|
+
- 正常リクエスト → 200 OK + X-RateLimit-Remaining: 99
|
|
49
|
+
- 制限超過 → 429 Too Many Requests + Retry-After header
|
|
50
|
+
|
|
51
|
+
Constraints:
|
|
52
|
+
- 制限: 100 requests/minute/IP
|
|
53
|
+
- スライディングウィンドウアルゴリズム
|
|
54
|
+
|
|
55
|
+
Test Command: npm run test:rate-limit
|
|
56
|
+
|
|
57
|
+
Result: 5/5 criteria met
|
|
58
|
+
Status: PASS
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Example 3: Data Export Feature
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
[CAPABILITY EVAL: data-export-csv]
|
|
67
|
+
|
|
68
|
+
Task: ユーザーデータをCSV形式でエクスポートする機能を実装する
|
|
69
|
+
|
|
70
|
+
Success Criteria:
|
|
71
|
+
- [x] CSVファイルが正しいフォーマットで生成される
|
|
72
|
+
- [x] 大量データ(10万件以上)でもメモリ効率が良い
|
|
73
|
+
- [x] ダウンロードAPIエンドポイントが動作する
|
|
74
|
+
- [ ] 非同期エクスポートがサポートされる
|
|
75
|
+
- [x] 文字エンコーディング(UTF-8 BOM)が正しい
|
|
76
|
+
|
|
77
|
+
Expected Output:
|
|
78
|
+
- GET /api/export/users → CSV file download
|
|
79
|
+
- Content-Type: text/csv; charset=utf-8
|
|
80
|
+
- Content-Disposition: attachment; filename="users-YYYY-MM-DD.csv"
|
|
81
|
+
|
|
82
|
+
Constraints:
|
|
83
|
+
- ストリーミング処理でメモリ消費を抑制
|
|
84
|
+
- 最大エクスポート件数: 100万件
|
|
85
|
+
|
|
86
|
+
Test Command: npm run test:export
|
|
87
|
+
|
|
88
|
+
Result: 4/5 criteria met
|
|
89
|
+
Status: PARTIAL PASS
|
|
90
|
+
|
|
91
|
+
Notes:
|
|
92
|
+
- 非同期エクスポートは次のスプリントで実装予定
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Example 4: Search Feature with Elasticsearch
|
|
98
|
+
|
|
99
|
+
```markdown
|
|
100
|
+
[CAPABILITY EVAL: elasticsearch-search]
|
|
101
|
+
|
|
102
|
+
Task: Elasticsearchを使用した全文検索機能を実装する
|
|
103
|
+
|
|
104
|
+
Success Criteria:
|
|
105
|
+
- [x] 基本的なキーワード検索が動作する
|
|
106
|
+
- [x] ファセット検索(フィルタリング)がサポートされる
|
|
107
|
+
- [x] ハイライト機能が動作する
|
|
108
|
+
- [x] ページネーションが正しく実装される
|
|
109
|
+
- [x] 検索結果のソートが機能する
|
|
110
|
+
- [x] 検索サジェスト(オートコンプリート)が動作する
|
|
111
|
+
|
|
112
|
+
Expected Output:
|
|
113
|
+
- GET /api/search?q=keyword → { hits: [...], total: N, facets: {...} }
|
|
114
|
+
- レスポンス時間: 200ms以内
|
|
115
|
+
|
|
116
|
+
Constraints:
|
|
117
|
+
- Elasticsearch 8.x 使用
|
|
118
|
+
- 日本語形態素解析(kuromoji)対応
|
|
119
|
+
- 同義語辞書のサポート
|
|
120
|
+
|
|
121
|
+
Test Command: npm run test:search
|
|
122
|
+
|
|
123
|
+
Result: 6/6 criteria met
|
|
124
|
+
Status: PASS
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Template for New Capability Eval
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
[CAPABILITY EVAL: <feature-name>]
|
|
133
|
+
|
|
134
|
+
Task: <達成すべきタスクの詳細説明>
|
|
135
|
+
|
|
136
|
+
Success Criteria:
|
|
137
|
+
- [ ] <成功基準1 - 測定可能で明確に>
|
|
138
|
+
- [ ] <成功基準2>
|
|
139
|
+
- [ ] <成功基準3>
|
|
140
|
+
- [ ] <成功基準4>
|
|
141
|
+
- [ ] <成功基準5>
|
|
142
|
+
|
|
143
|
+
Expected Output:
|
|
144
|
+
<期待される出力の具体例>
|
|
145
|
+
|
|
146
|
+
Constraints:
|
|
147
|
+
- <制約条件1>
|
|
148
|
+
- <制約条件2>
|
|
149
|
+
- <制約条件3>
|
|
150
|
+
|
|
151
|
+
Test Command: <テスト実行コマンド>
|
|
152
|
+
|
|
153
|
+
Result: X/Y criteria met
|
|
154
|
+
Status: <PASS|PARTIAL PASS|FAIL>
|
|
155
|
+
|
|
156
|
+
Notes:
|
|
157
|
+
- <追加の注記や改善点>
|
|
158
|
+
```
|