@einja/dev-cli 0.1.6
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/README.md +179 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +49 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +243 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +2 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +23 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/sync.d.ts +7 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +294 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/sync.test.d.ts +2 -0
- package/dist/commands/sync.test.d.ts.map +1 -0
- package/dist/commands/sync.test.js +593 -0
- package/dist/commands/sync.test.js.map +1 -0
- package/dist/commands/task-loop.d.ts +11 -0
- package/dist/commands/task-loop.d.ts.map +1 -0
- package/dist/commands/task-loop.js +81 -0
- package/dist/commands/task-loop.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/file-system.d.ts +39 -0
- package/dist/lib/file-system.d.ts.map +1 -0
- package/dist/lib/file-system.js +79 -0
- package/dist/lib/file-system.js.map +1 -0
- package/dist/lib/mcp-config.d.ts +43 -0
- package/dist/lib/mcp-config.d.ts.map +1 -0
- package/dist/lib/mcp-config.js +109 -0
- package/dist/lib/mcp-config.js.map +1 -0
- package/dist/lib/mcp-config.test.d.ts +2 -0
- package/dist/lib/mcp-config.test.d.ts.map +1 -0
- package/dist/lib/mcp-config.test.js +285 -0
- package/dist/lib/mcp-config.test.js.map +1 -0
- package/dist/lib/merger.d.ts +41 -0
- package/dist/lib/merger.d.ts.map +1 -0
- package/dist/lib/merger.js +164 -0
- package/dist/lib/merger.js.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.d.ts +35 -0
- package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.js +83 -0
- package/dist/lib/preset-update/cli-repo-detector.js.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.test.d.ts +2 -0
- package/dist/lib/preset-update/cli-repo-detector.test.d.ts.map +1 -0
- package/dist/lib/preset-update/cli-repo-detector.test.js +120 -0
- package/dist/lib/preset-update/cli-repo-detector.test.js.map +1 -0
- package/dist/lib/preset-update/file-copier.d.ts +59 -0
- package/dist/lib/preset-update/file-copier.d.ts.map +1 -0
- package/dist/lib/preset-update/file-copier.js +220 -0
- package/dist/lib/preset-update/file-copier.js.map +1 -0
- package/dist/lib/preset-update/file-copier.test.d.ts +2 -0
- package/dist/lib/preset-update/file-copier.test.d.ts.map +1 -0
- package/dist/lib/preset-update/file-copier.test.js +297 -0
- package/dist/lib/preset-update/file-copier.test.js.map +1 -0
- package/dist/lib/preset-update/preset-finder.d.ts +39 -0
- package/dist/lib/preset-update/preset-finder.d.ts.map +1 -0
- package/dist/lib/preset-update/preset-finder.js +92 -0
- package/dist/lib/preset-update/preset-finder.js.map +1 -0
- package/dist/lib/preset-update/preset-finder.test.d.ts +2 -0
- package/dist/lib/preset-update/preset-finder.test.d.ts.map +1 -0
- package/dist/lib/preset-update/preset-finder.test.js +128 -0
- package/dist/lib/preset-update/preset-finder.test.js.map +1 -0
- package/dist/lib/preset.d.ts +14 -0
- package/dist/lib/preset.d.ts.map +1 -0
- package/dist/lib/preset.js +52 -0
- package/dist/lib/preset.js.map +1 -0
- package/dist/lib/sync/backup-manager.d.ts +50 -0
- package/dist/lib/sync/backup-manager.d.ts.map +1 -0
- package/dist/lib/sync/backup-manager.js +117 -0
- package/dist/lib/sync/backup-manager.js.map +1 -0
- package/dist/lib/sync/backup-manager.test.d.ts +2 -0
- package/dist/lib/sync/backup-manager.test.d.ts.map +1 -0
- package/dist/lib/sync/backup-manager.test.js +155 -0
- package/dist/lib/sync/backup-manager.test.js.map +1 -0
- package/dist/lib/sync/batch-processor.d.ts +27 -0
- package/dist/lib/sync/batch-processor.d.ts.map +1 -0
- package/dist/lib/sync/batch-processor.js +46 -0
- package/dist/lib/sync/batch-processor.js.map +1 -0
- package/dist/lib/sync/batch-processor.test.d.ts +2 -0
- package/dist/lib/sync/batch-processor.test.d.ts.map +1 -0
- package/dist/lib/sync/batch-processor.test.js +110 -0
- package/dist/lib/sync/batch-processor.test.js.map +1 -0
- package/dist/lib/sync/category-validator.d.ts +36 -0
- package/dist/lib/sync/category-validator.d.ts.map +1 -0
- package/dist/lib/sync/category-validator.js +46 -0
- package/dist/lib/sync/category-validator.js.map +1 -0
- package/dist/lib/sync/category-validator.test.d.ts +2 -0
- package/dist/lib/sync/category-validator.test.d.ts.map +1 -0
- package/dist/lib/sync/category-validator.test.js +89 -0
- package/dist/lib/sync/category-validator.test.js.map +1 -0
- package/dist/lib/sync/conflict-reporter.d.ts +57 -0
- package/dist/lib/sync/conflict-reporter.d.ts.map +1 -0
- package/dist/lib/sync/conflict-reporter.js +81 -0
- package/dist/lib/sync/conflict-reporter.js.map +1 -0
- package/dist/lib/sync/conflict-reporter.test.d.ts +2 -0
- package/dist/lib/sync/conflict-reporter.test.d.ts.map +1 -0
- package/dist/lib/sync/conflict-reporter.test.js +132 -0
- package/dist/lib/sync/conflict-reporter.test.js.map +1 -0
- package/dist/lib/sync/diff-engine.d.ts +28 -0
- package/dist/lib/sync/diff-engine.d.ts.map +1 -0
- package/dist/lib/sync/diff-engine.js +118 -0
- package/dist/lib/sync/diff-engine.js.map +1 -0
- package/dist/lib/sync/diff-engine.test.d.ts +2 -0
- package/dist/lib/sync/diff-engine.test.d.ts.map +1 -0
- package/dist/lib/sync/diff-engine.test.js +133 -0
- package/dist/lib/sync/diff-engine.test.js.map +1 -0
- package/dist/lib/sync/file-filter.d.ts +40 -0
- package/dist/lib/sync/file-filter.d.ts.map +1 -0
- package/dist/lib/sync/file-filter.js +171 -0
- package/dist/lib/sync/file-filter.js.map +1 -0
- package/dist/lib/sync/file-filter.test.d.ts +2 -0
- package/dist/lib/sync/file-filter.test.d.ts.map +1 -0
- package/dist/lib/sync/file-filter.test.js +179 -0
- package/dist/lib/sync/file-filter.test.js.map +1 -0
- package/dist/lib/sync/hash-cache.d.ts +34 -0
- package/dist/lib/sync/hash-cache.d.ts.map +1 -0
- package/dist/lib/sync/hash-cache.js +51 -0
- package/dist/lib/sync/hash-cache.js.map +1 -0
- package/dist/lib/sync/hash-cache.test.d.ts +2 -0
- package/dist/lib/sync/hash-cache.test.d.ts.map +1 -0
- package/dist/lib/sync/hash-cache.test.js +110 -0
- package/dist/lib/sync/hash-cache.test.js.map +1 -0
- package/dist/lib/sync/integration.test.d.ts +2 -0
- package/dist/lib/sync/integration.test.d.ts.map +1 -0
- package/dist/lib/sync/integration.test.js +317 -0
- package/dist/lib/sync/integration.test.js.map +1 -0
- package/dist/lib/sync/marker-processor.d.ts +54 -0
- package/dist/lib/sync/marker-processor.d.ts.map +1 -0
- package/dist/lib/sync/marker-processor.js +208 -0
- package/dist/lib/sync/marker-processor.js.map +1 -0
- package/dist/lib/sync/marker-processor.test.d.ts +2 -0
- package/dist/lib/sync/marker-processor.test.d.ts.map +1 -0
- package/dist/lib/sync/marker-processor.test.js +245 -0
- package/dist/lib/sync/marker-processor.test.js.map +1 -0
- package/dist/lib/sync/metadata-manager.d.ts +46 -0
- package/dist/lib/sync/metadata-manager.d.ts.map +1 -0
- package/dist/lib/sync/metadata-manager.js +129 -0
- package/dist/lib/sync/metadata-manager.js.map +1 -0
- package/dist/lib/sync/metadata-manager.test.d.ts +2 -0
- package/dist/lib/sync/metadata-manager.test.d.ts.map +1 -0
- package/dist/lib/sync/metadata-manager.test.js +137 -0
- package/dist/lib/sync/metadata-manager.test.js.map +1 -0
- package/dist/lib/sync/performance.test.d.ts +2 -0
- package/dist/lib/sync/performance.test.d.ts.map +1 -0
- package/dist/lib/sync/performance.test.js +126 -0
- package/dist/lib/sync/performance.test.js.map +1 -0
- package/dist/types/index.d.ts +59 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/preset-update.d.ts +106 -0
- package/dist/types/preset-update.d.ts.map +1 -0
- package/dist/types/preset-update.js +5 -0
- package/dist/types/preset-update.js.map +1 -0
- package/dist/types/sync.d.ts +169 -0
- package/dist/types/sync.d.ts.map +1 -0
- package/dist/types/sync.js +19 -0
- package/dist/types/sync.js.map +1 -0
- package/package.json +72 -0
- package/presets/minimal/.claude/agents/einja/docs/docs-updater.md +161 -0
- package/presets/minimal/.claude/agents/einja/frontend/design-engineer.md +685 -0
- package/presets/minimal/.claude/agents/einja/frontend/frontend-architect.md +747 -0
- package/presets/minimal/.claude/agents/einja/frontend/frontend-coder.md +441 -0
- package/presets/minimal/.claude/agents/einja/git/conflict-resolver.md +148 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-design-generator.md +462 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-qa-generator.md +466 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-requirements-generator.md +416 -0
- package/presets/minimal/.claude/agents/einja/specs/spec-tasks-generator.md +608 -0
- package/presets/minimal/.claude/agents/einja/task/task-committer.md +82 -0
- package/presets/minimal/.claude/agents/einja/task/task-executer.md +352 -0
- package/presets/minimal/.claude/agents/einja/task/task-modification-analyzer.md +369 -0
- package/presets/minimal/.claude/agents/einja/task/task-qa.md +74 -0
- package/presets/minimal/.claude/agents/einja/task/task-reviewer.md +169 -0
- package/presets/minimal/.claude/commands/einja/frontend-implement.md +322 -0
- package/presets/minimal/.claude/commands/einja/spec-create.md +254 -0
- package/presets/minimal/.claude/commands/einja/start-dev.md +98 -0
- package/presets/minimal/.claude/commands/einja/sync-cursor-commands.md +203 -0
- package/presets/minimal/.claude/commands/einja/task-exec.md +390 -0
- package/presets/minimal/.claude/commands/einja/update-docs-by-task-specs.md +448 -0
- package/presets/minimal/.claude/hooks/einja/biome-format.sh +49 -0
- package/presets/minimal/.claude/hooks/einja/design-doc-check.sh +61 -0
- package/presets/minimal/.claude/hooks/einja/detect-secrets.sh +62 -0
- package/presets/minimal/.claude/hooks/einja/large-file-warning.sh +42 -0
- package/presets/minimal/.claude/hooks/einja/playwright-resize.sh +36 -0
- package/presets/minimal/.claude/hooks/einja/typecheck.sh +37 -0
- package/presets/minimal/.claude/hooks/einja/unset-volta-recursion.sh +32 -0
- package/presets/minimal/.claude/hooks/einja/validate-git-commit.sh +239 -0
- package/presets/minimal/.claude/hooks/einja/warn-index-ts.sh +34 -0
- package/presets/minimal/.claude/hooks/einja/warn-relative-import.sh +48 -0
- package/presets/minimal/.claude/settings.json +174 -0
- package/presets/minimal/.claude/skills/einja/api-development/SKILL.md +14 -0
- package/presets/minimal/.claude/skills/einja/backend-architecture/SKILL.md +14 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/SKILL.md +120 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/reference/naming-conventions.md +107 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/reference/prohibited-patterns.md +169 -0
- package/presets/minimal/.claude/skills/einja/coding-standards/reference/typescript-rules.md +247 -0
- package/presets/minimal/.claude/skills/einja/component-design/SKILL.md +109 -0
- package/presets/minimal/.claude/skills/einja/component-design/reference/directory-structure.md +117 -0
- package/presets/minimal/.claude/skills/einja/component-design/reference/props-patterns.md +159 -0
- package/presets/minimal/.claude/skills/einja/component-design/reference/styling-guide.md +200 -0
- package/presets/minimal/.claude/skills/einja/conflict-resolver/SKILL.md +190 -0
- package/presets/minimal/.claude/skills/einja/frontend-development/SKILL.md +14 -0
- package/presets/minimal/.claude/skills/einja/general-context-loader/SKILL.md +254 -0
- package/presets/minimal/.claude/skills/einja/output-format/SKILL.md +137 -0
- package/presets/minimal/.claude/skills/einja/spec-context-loader/SKILL.md +177 -0
- package/presets/minimal/.claude/skills/einja/task-commit/SKILL.md +269 -0
- package/presets/minimal/.claude/skills/einja/task-qa/SKILL.md +306 -0
- package/presets/minimal/.claude/skills/einja/task-qa/reference/failure-patterns.md +69 -0
- package/presets/minimal/.claude/skills/einja/task-qa/reference/troubleshooting.md +65 -0
- package/presets/minimal/.claude/skills/einja/task-qa/reference/usage-patterns.md +52 -0
- package/presets/minimal/.claude/skills/einja/task-qa/templates/qa-test-template.md +128 -0
- package/presets/minimal/preset.yaml +111 -0
- package/presets/minimal/symlinks.json +45 -0
- package/scaffolds/.mcp.json +45 -0
- package/scaffolds/CLAUDE.md.template +318 -0
- package/scaffolds/steering/README.md +170 -0
- package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +415 -0
- package/scaffolds/steering/architecture.md +481 -0
- package/scaffolds/steering/branch-strategy.md +362 -0
- package/scaffolds/steering/commit-rules.md +217 -0
- package/scaffolds/steering/db-schema-design.md +609 -0
- package/scaffolds/steering/development/api-development.md +783 -0
- package/scaffolds/steering/development/backend-architecture.md +731 -0
- package/scaffolds/steering/development/frontend-development.md +1537 -0
- package/scaffolds/steering/development/review-guidelines.md +365 -0
- package/scaffolds/steering/development/testing-strategy.md +819 -0
- package/scaffolds/steering/development-workflow.md +429 -0
- package/scaffolds/steering/infrastructure/deployment.md +277 -0
- package/scaffolds/steering/infrastructure/environment-variables.md +298 -0
- package/scaffolds/steering/product.md +540 -0
- package/scaffolds/steering/task-management.md +367 -0
- package/templates/README.md +159 -0
- package/templates/design-simple.md.template +172 -0
- package/templates/design.md.template +327 -0
- package/templates/qa-test.md.template +125 -0
- package/templates/requirements.md.template +254 -0
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
# 開発ワークフロー
|
|
2
|
+
|
|
3
|
+
このドキュメントでは、仕様書作成からタスク実行・レビュー・マージまでの開発フロー全体を説明します。
|
|
4
|
+
|
|
5
|
+
## 概要
|
|
6
|
+
|
|
7
|
+
本プロジェクトでは、Claude Codeを活用した自動化された開発ワークフローを採用しています。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
仕様書作成(/spec-create)
|
|
11
|
+
↓
|
|
12
|
+
仕様書レビュー(Discord + Spec PR)
|
|
13
|
+
↓
|
|
14
|
+
タスク実行(pnpm task:loop)
|
|
15
|
+
↓
|
|
16
|
+
自己レビュー → PR作成(Vibe-Kanban)
|
|
17
|
+
↓
|
|
18
|
+
コードレビュー(GitHub PR)
|
|
19
|
+
↓
|
|
20
|
+
マージ → 次タスク自動開始
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 開発フロー全体図
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
29
|
+
│ Phase A: 仕様書作成 │
|
|
30
|
+
├─────────────────────────────────────────────────────────────────────────────┤
|
|
31
|
+
│ │
|
|
32
|
+
│ /spec-create <タスク内容の説明またはAsanaタスクURL> │
|
|
33
|
+
│ │ │
|
|
34
|
+
│ ├── 1. (AsanaURLの場合)Asanaからタスク情報取得 │
|
|
35
|
+
│ ├── 2. GitHub Issue作成 │
|
|
36
|
+
│ ├── 3. requirements.md作成 → ユーザー承認 → コミット │
|
|
37
|
+
│ ├── 4. design.md作成 → ユーザー承認 → コミット │
|
|
38
|
+
│ ├── 5. GitHub Issueにタスク一覧記述 → ユーザー承認 │
|
|
39
|
+
│ ├── 6. issue/{番号}ブランチ作成 │
|
|
40
|
+
│ ├── 7. 仕様書をブランチにプッシュ │
|
|
41
|
+
│ └── 8. Spec PR作成 │
|
|
42
|
+
│ │
|
|
43
|
+
│ 成果物: │
|
|
44
|
+
│ ├── docs/specs/issues/{カテゴリ}/issue{番号}-{機能名}/ │
|
|
45
|
+
│ │ ├── requirements.md │
|
|
46
|
+
│ │ └── design.md │
|
|
47
|
+
│ ├── GitHub Issue #{番号}(タスク一覧含む) │
|
|
48
|
+
│ └── Spec PR(仕様書レビュー用) │
|
|
49
|
+
│ │
|
|
50
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
51
|
+
↓
|
|
52
|
+
【Discordでスレッド作成・チームレビュー依頼】
|
|
53
|
+
↓
|
|
54
|
+
【人間が仕様書をレビュー・承認】
|
|
55
|
+
↓
|
|
56
|
+
Spec PRをマージ
|
|
57
|
+
↓
|
|
58
|
+
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
59
|
+
│ Phase B: タスク実行(Vibe-Kanban + task:loop) │
|
|
60
|
+
├─────────────────────────────────────────────────────────────────────────────┤
|
|
61
|
+
│ │
|
|
62
|
+
│ 事前準備: npx vibe-kanban(別ターミナルで起動) │
|
|
63
|
+
│ │
|
|
64
|
+
│ pnpm task:loop <issue-number> │
|
|
65
|
+
│ │ │
|
|
66
|
+
│ ├── 初期化: Issue取得、ブランチ作成、Vibe-Kanban接続 │
|
|
67
|
+
│ │ │
|
|
68
|
+
│ └── ループ開始 ─────────────────────────────────────────┐ │
|
|
69
|
+
│ │ │ │
|
|
70
|
+
│ ▼ │ │
|
|
71
|
+
│ ┌─────────────────────────────────────────────────────┐ │ │
|
|
72
|
+
│ │ 着手可能なタスクグループを選定(依存関係考慮) │ │ │
|
|
73
|
+
│ └─────────────────────────────────────────────────────┘ │ │
|
|
74
|
+
│ │ │ │
|
|
75
|
+
│ ▼ │ │
|
|
76
|
+
│ ┌─────────────────────────────────────────────────────┐ │ │
|
|
77
|
+
│ │ Vibe-Kanbanにタスク作成 → start_task_attempt │ │ │
|
|
78
|
+
│ │ (Claude Codeが自動起動されて実装開始) │ │ │
|
|
79
|
+
│ └─────────────────────────────────────────────────────┘ │ │
|
|
80
|
+
│ │ │ │
|
|
81
|
+
│ ▼ │ │
|
|
82
|
+
│ ┌─────────────────────────────────────────────────────┐ │ │
|
|
83
|
+
│ │ Claude Code(自動実行) │ │ │
|
|
84
|
+
│ │ │ │ │
|
|
85
|
+
│ │ task-executer: 実装 │ │ │
|
|
86
|
+
│ │ ↓ │ │ │
|
|
87
|
+
│ │ task-reviewer: 設計との整合性チェック(自動) │←┤ 問題時ループ │
|
|
88
|
+
│ │ ↓ │ │ │
|
|
89
|
+
│ │ task-qa: 動作確認(Playwright/curl)(自動) │←┘ │
|
|
90
|
+
│ │ ↓ 全テスト合格 │ │
|
|
91
|
+
│ │ ステータス → In Review │ │
|
|
92
|
+
│ └─────────────────────────────────────────────────────┘ │
|
|
93
|
+
│ │ │
|
|
94
|
+
│ ▼ │
|
|
95
|
+
│ 【人間がVibe-Kanbanで確認】 │
|
|
96
|
+
│ ├── 自己レビュー(実装内容確認) │
|
|
97
|
+
│ └── OKなら「Create PR」ボタンクリック │
|
|
98
|
+
│ │ │
|
|
99
|
+
│ ▼ │
|
|
100
|
+
│ 【GitHubでPRレビュー】 │
|
|
101
|
+
│ ├── 担当者レビュー(動作確認 + コード確認) │
|
|
102
|
+
│ └── 他エンジニアレビュー │
|
|
103
|
+
│ │ │
|
|
104
|
+
│ ▼ 承認 │
|
|
105
|
+
│ GitHub側でPRマージ(⚠️必ずGitHub側で操作) │
|
|
106
|
+
│ │ │
|
|
107
|
+
│ ▼ │
|
|
108
|
+
│ Vibe-Kanbanがマージ検知 → タスク自動Done │
|
|
109
|
+
│ │ │
|
|
110
|
+
│ ▼ │
|
|
111
|
+
│ task:loopがDone検知 → GitHub Issueチェックボックス更新 │
|
|
112
|
+
│ │ │
|
|
113
|
+
│ └──────────────────────────────────────────────────┘ │
|
|
114
|
+
│ 次のタスクグループを自動開始 │
|
|
115
|
+
│ │
|
|
116
|
+
│ 全タスクグループ完了 → Issue Close │
|
|
117
|
+
│ │
|
|
118
|
+
└─────────────────────────────────────────────────────────────────────────────┘
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Phase A: 仕様書作成
|
|
124
|
+
|
|
125
|
+
### コマンド
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
/spec-create <タスク内容の説明またはAsanaタスクURL>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### ステップ詳細
|
|
132
|
+
|
|
133
|
+
| ステップ | 実行者 | 内容 |
|
|
134
|
+
| -------- | --------------------- | ------------------------------------- |
|
|
135
|
+
| 1 | Claude | タスク情報取得(AsanaURLの場合) |
|
|
136
|
+
| 2 | Claude | GitHub Issue作成 |
|
|
137
|
+
| 3 | Claude → **人間承認** | requirements.md作成 → 確認 → コミット |
|
|
138
|
+
| 4 | Claude → **人間承認** | design.md作成 → 確認 → コミット |
|
|
139
|
+
| 5 | Claude → **人間承認** | GitHub Issueにタスク一覧記述 |
|
|
140
|
+
| 6 | Claude | `issue/{番号}`ブランチ作成 |
|
|
141
|
+
| 7 | Claude | 仕様書をブランチにプッシュ |
|
|
142
|
+
| 8 | Claude | **Spec PR作成** |
|
|
143
|
+
| 9 | **人間** | Discordでチームにレビュー依頼 |
|
|
144
|
+
| 10 | **人間** | Spec PRレビュー・承認・マージ |
|
|
145
|
+
|
|
146
|
+
### 成果物
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
docs/specs/issues/{カテゴリ}/issue{番号}-{機能名}/
|
|
150
|
+
├── requirements.md # 要件定義書(ATDD形式)
|
|
151
|
+
└── design.md # 設計書(技術詳細)
|
|
152
|
+
|
|
153
|
+
GitHub Issue #{番号} # タスク一覧(Phase別チェックボックス形式)
|
|
154
|
+
Spec PR # 仕様書レビュー用
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 仕様書レビューの観点
|
|
158
|
+
|
|
159
|
+
- **requirements.md**: 要件の妥当性、受け入れ基準の明確さ、スコープの適切さ
|
|
160
|
+
- **design.md**: アーキテクチャの妥当性、既存設計との整合性、実装方針の適切さ
|
|
161
|
+
- **タスク一覧**: タスク分解の粒度、依存関係の妥当性
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Phase B: タスク実行
|
|
166
|
+
|
|
167
|
+
### コマンド
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# 事前準備: Vibe-Kanbanを起動(別ターミナル)
|
|
171
|
+
npx vibe-kanban
|
|
172
|
+
|
|
173
|
+
# タスクループ開始
|
|
174
|
+
pnpm task:loop <issue-number>
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**例**:
|
|
178
|
+
```bash
|
|
179
|
+
pnpm task:loop 123 # Issue #123 の全タスクを実行
|
|
180
|
+
pnpm task:loop 123 --max-group 4 # Phase 4 まで実行
|
|
181
|
+
pnpm task:loop 123 --max-group 4.2 # タスクグループ 4.2 まで実行
|
|
182
|
+
pnpm task:loop 123 --branch develop # develop ブランチベースで実行
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### 実行後の流れ
|
|
186
|
+
|
|
187
|
+
実行後、specで作成されたタスクが着手可能なものから自動で実行開始されます。
|
|
188
|
+
|
|
189
|
+
1. **Vibe-Kanbanの画面を眺める** - タスクの進捗を確認
|
|
190
|
+
2. **In Reviewになったら自己レビュー** - 実装内容を確認
|
|
191
|
+
3. **OKなら「Create PR」ボタンをクリック** - PRが自動作成される
|
|
192
|
+
4. **GitHubでチームレビュー** - コード確認・承認
|
|
193
|
+
5. **GitHub側でPRをマージ** - ⚠️ 必ずGitHub側で操作
|
|
194
|
+
6. **次のタスクが自動開始** - マージ検知で自動的に次へ(少しラグあり)
|
|
195
|
+
|
|
196
|
+
### Vibe-Kanban画面での操作
|
|
197
|
+
|
|
198
|
+
| 操作 | タイミング | 説明 |
|
|
199
|
+
|------|-----------|------|
|
|
200
|
+
| **タスク進捗確認** | 随時 | Todo → In Progress → In Review → Done の流れを確認 |
|
|
201
|
+
| **Create PR** | In Review 時 | ボタンをクリックして PR を自動作成 |
|
|
202
|
+
| **レビュー** | PR 作成後 | GitHub で PR の内容を確認 |
|
|
203
|
+
| **マージ** | レビュー完了後 | GitHub で PR をマージ(⚠️ 必ず GitHub 側で操作) |
|
|
204
|
+
|
|
205
|
+
### サブエージェントの役割
|
|
206
|
+
|
|
207
|
+
| サブエージェント | 役割 | 従来の開発フローとの対応 |
|
|
208
|
+
| ---------------- | ------------------------------ | -------------------------- |
|
|
209
|
+
| task-executer | 実装 | 実装者による実装 |
|
|
210
|
+
| task-reviewer | 設計との整合性チェック | 実装者によるセルフレビュー |
|
|
211
|
+
| task-qa | 動作確認(Playwright/curl) | 実装者による動作確認 |
|
|
212
|
+
|
|
213
|
+
### 品質保証ループ
|
|
214
|
+
|
|
215
|
+
`task-reviewer`または`task-qa`で問題が発見された場合、自動的に`task-executer`に戻って修正が行われます。
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
task-executer → task-reviewer → task-qa → In Review
|
|
219
|
+
↑ │ │
|
|
220
|
+
└──────────────┴──────────────┘
|
|
221
|
+
問題発見時は自動ループ
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### マージ後の自動処理
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
228
|
+
│ PR マージ(GitHub側で操作) │
|
|
229
|
+
│ ↓ │
|
|
230
|
+
│ Vibe-Kanban: タスク → Done(自動検知) │
|
|
231
|
+
│ ↓ │
|
|
232
|
+
│ task:loop: Done 検知(15秒ポーリング) │
|
|
233
|
+
│ ↓ │
|
|
234
|
+
│ GitHub Issue: チェックボックス更新(自動) │
|
|
235
|
+
│ ↓ │
|
|
236
|
+
│ 次のタスクが自動開始 │
|
|
237
|
+
└─────────────────────────────────────────────────────────────┘
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## PRの種類
|
|
243
|
+
|
|
244
|
+
本ワークフローでは2種類のPRが作成されます。
|
|
245
|
+
|
|
246
|
+
| PRの種類 | 作成タイミング | 内容 | レビュー観点 |
|
|
247
|
+
| ----------- | -------------------- | -------------------------- | ---------------------------------------------- |
|
|
248
|
+
| **Spec PR** | `/spec-create`完了時 | requirements.md, design.md | 要件の妥当性、設計の適切さ、スコープの確認 |
|
|
249
|
+
| **実装PR** | タスクグループ完了時(Vibe-KanbanでCreate PR) | ソースコード、テスト | コード品質、設計書との整合性、テストカバレッジ |
|
|
250
|
+
|
|
251
|
+
### なぜ2段階でPRを作成するのか
|
|
252
|
+
|
|
253
|
+
1. **仕様書に問題があると、実装後に大きな手戻りが発生する**
|
|
254
|
+
2. **実装前に他のエンジニアの視点で設計の妥当性を確認できる**
|
|
255
|
+
3. **「Spec PR」と「実装PR」を分けることで、レビューの焦点が明確になる**
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 人間の関与ポイント
|
|
260
|
+
|
|
261
|
+
### 仕様書作成フェーズ
|
|
262
|
+
|
|
263
|
+
- **requirements.md承認**: 要件の過不足、受け入れ基準の明確性を確認
|
|
264
|
+
- **design.md承認**: アーキテクチャの妥当性、実装方針を確認
|
|
265
|
+
- **タスク一覧承認**: タスク分解の粒度、依存関係の妥当性を確認
|
|
266
|
+
- **Discordレビュー依頼**: チームにスレッドを作成してレビュー依頼
|
|
267
|
+
- **Spec PRレビュー**: 仕様書全体のレビュー・承認
|
|
268
|
+
|
|
269
|
+
### タスク実行フェーズ
|
|
270
|
+
|
|
271
|
+
- **自己レビュー**: Vibe-KanbanでIn Reviewになったタスクの実装内容確認
|
|
272
|
+
- **Create PRクリック**: 自己レビューOKならPR作成
|
|
273
|
+
- **実装PRレビュー**: 担当者レビュー → 他エンジニアレビュー → 承認 → マージ
|
|
274
|
+
|
|
275
|
+
### Claudeのセルフチェックについて
|
|
276
|
+
|
|
277
|
+
`task-reviewer`と`task-qa`は、従来の開発フローにおける「実装者によるセルフチェック」に相当します。
|
|
278
|
+
|
|
279
|
+
| 従来(人間が実装) | 現在(Claudeが実装) |
|
|
280
|
+
|------------------|-------------------|
|
|
281
|
+
| 実装者がセルフチェック | `task-reviewer` + `task-qa` がセルフチェック |
|
|
282
|
+
| セルフチェック後にPR作成 | セルフチェック後にIn Review → 人間がCreate PR |
|
|
283
|
+
| 他のエンジニアがPRレビュー | 人間(担当者 + 他エンジニア)がPRレビュー |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## コマンドリファレンス
|
|
288
|
+
|
|
289
|
+
### 仕様書作成
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# タスク内容の説明から仕様書を作成
|
|
293
|
+
/spec-create <タスク内容の説明>
|
|
294
|
+
|
|
295
|
+
# AsanaタスクURLから仕様書を作成
|
|
296
|
+
/spec-create <AsanaタスクURL>
|
|
297
|
+
|
|
298
|
+
# 既存仕様書のパスを指定して修正
|
|
299
|
+
/spec-create <タスク内容> <既存仕様書パス>
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### タスク実行
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# 自動ループ実行(推奨)
|
|
306
|
+
pnpm task:loop <issue-number>
|
|
307
|
+
|
|
308
|
+
# オプション指定
|
|
309
|
+
pnpm task:loop <issue-number> --max-group <number> --branch <branch>
|
|
310
|
+
|
|
311
|
+
# 例
|
|
312
|
+
pnpm task:loop 123 # Issue #123 の全タスクを実行
|
|
313
|
+
pnpm task:loop 123 --max-group 4 # Phase 4 まで実行
|
|
314
|
+
pnpm task:loop 123 --max-group 4.2 # タスクグループ 4.2 まで実行
|
|
315
|
+
|
|
316
|
+
# 単一タスクグループ実行(品質重視・複雑な実装向け)
|
|
317
|
+
/task-exec #<issue_number> <task_group_number>
|
|
318
|
+
|
|
319
|
+
# 例
|
|
320
|
+
/task-exec #123 1.1 # Issue #123 のタスクグループ 1.1 を実行
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### `/task-exec` と `pnpm task:loop` の使い分け
|
|
324
|
+
|
|
325
|
+
| コマンド | 用途 | 品質保証 | 推奨シーン |
|
|
326
|
+
|---------|------|---------|----------|
|
|
327
|
+
| **`/task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
|
|
328
|
+
| **`pnpm task:loop`** | 大量タスクの自動消化 | 並列実行・監視 | 定型作業、並行開発 |
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## 関連ドキュメント
|
|
333
|
+
|
|
334
|
+
- [タスク管理ガイドライン](task-management.md) - タスク階層、粒度基準、GitHub Issue管理
|
|
335
|
+
- [task:loop詳細ガイド](../instructions/task-vibe-kanban-loop.md) - task:loopの詳細な使い方
|
|
336
|
+
- [ブランチ戦略](branch-strategy.md) - ブランチ運用ルール
|
|
337
|
+
- [コードレビューガイドライン](development/review-guidelines.md) - 品質基準とチェックリスト
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## FAQ
|
|
342
|
+
|
|
343
|
+
### Q: Spec PRをマージする前にタスク実行を開始できますか?
|
|
344
|
+
|
|
345
|
+
**A: 推奨しません。** 仕様書に問題があると実装後に大きな手戻りが発生します。必ず仕様書レビューを完了してからタスク実行を開始してください。
|
|
346
|
+
|
|
347
|
+
### Q: task-qaで行われる動作確認は何をチェックしていますか?
|
|
348
|
+
|
|
349
|
+
**A:** requirements.mdの受け入れ条件に基づいて、Playwright MCP(画面テスト)やcurl(APIテスト)で実際に動作確認を行います。
|
|
350
|
+
|
|
351
|
+
### Q: 人間によるQAテストは必要ですか?
|
|
352
|
+
|
|
353
|
+
**A:** Claudeの`task-qa`がセルフチェックとして動作確認を行いますが、PRレビュー時に担当者が追加の動作確認を行うことを推奨します。特に重要な機能や複雑なUIについては、人間による確認が有効です。
|
|
354
|
+
|
|
355
|
+
### Q: タスクグループの粒度はどのように決まりますか?
|
|
356
|
+
|
|
357
|
+
**A:** [タスク管理ガイドライン](task-management.md)を参照してください。基本的には「1つの受け入れ条件を満たす」「1PR・1デプロイ・1QAテスト対象として適切(1-4時間)」が目安です。
|
|
358
|
+
|
|
359
|
+
### Q: PRのマージはどこで行いますか?
|
|
360
|
+
|
|
361
|
+
**A:** 必ず**GitHub側**でマージしてください。Vibe-Kanbanがマージを検知して自動的にタスクをDoneに変更し、task:loopが次のタスクを開始します。
|
|
362
|
+
|
|
363
|
+
### Q: タスクがIn Reviewのまま進まない場合は?
|
|
364
|
+
|
|
365
|
+
**A:**
|
|
366
|
+
1. Vibe-Kanbanで「Create PR」をクリックしてPRを作成
|
|
367
|
+
2. GitHubでPRをレビュー・マージ
|
|
368
|
+
|
|
369
|
+
PRがマージされるとタスクは自動的にDoneになります。
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
## エージェント追加時のチェックリスト
|
|
374
|
+
|
|
375
|
+
新しいサブエージェントを追加する際は、以下の項目を必ず確認すること。
|
|
376
|
+
|
|
377
|
+
### 必須項目
|
|
378
|
+
|
|
379
|
+
- [ ] **エージェント定義ファイル**(`.claude/agents/einja/{category}/{name}.md`)を作成
|
|
380
|
+
- [ ] `name`, `description`, `model`, `color` のメタデータを設定
|
|
381
|
+
- [ ] 役割・責務を明記
|
|
382
|
+
- [ ] 処理フローを記載
|
|
383
|
+
- [ ] **出力形式セクションを追加**(CLAUDE.mdの標準構造に準拠)
|
|
384
|
+
|
|
385
|
+
- [ ] **出力形式の統一**
|
|
386
|
+
- [ ] `## [絵文字] [フェーズ名]完了` の形式でヘッダー
|
|
387
|
+
- [ ] `### タスク:` でタスク識別情報
|
|
388
|
+
- [ ] `### [メイン結果]:` でステータス(SUCCESS/FAILURE/PARTIAL)
|
|
389
|
+
- [ ] `### サマリー` で主要結果
|
|
390
|
+
- [ ] `### 次のステップ` で後続処理説明
|
|
391
|
+
|
|
392
|
+
- [ ] **親エージェントとの連携**
|
|
393
|
+
- [ ] 呼び出し元(前提エージェント)を明記
|
|
394
|
+
- [ ] 後続エージェントを明記
|
|
395
|
+
- [ ] 差し戻し先(該当する場合)を明記
|
|
396
|
+
|
|
397
|
+
### 推奨項目
|
|
398
|
+
|
|
399
|
+
- [ ] **エラーハンドリング**
|
|
400
|
+
- [ ] 想定されるエラーパターンを列挙
|
|
401
|
+
- [ ] 各エラーに対する対処方法を記載
|
|
402
|
+
|
|
403
|
+
- [ ] **AskUserQuestion使用箇所**
|
|
404
|
+
- [ ] ユーザー確認が必要な判断ポイントを明記
|
|
405
|
+
|
|
406
|
+
### 出力形式テンプレート
|
|
407
|
+
|
|
408
|
+
```markdown
|
|
409
|
+
## 出力形式
|
|
410
|
+
|
|
411
|
+
処理完了後、以下の形式で報告を出力すること:
|
|
412
|
+
|
|
413
|
+
\`\`\`markdown
|
|
414
|
+
## [絵文字] [フェーズ名]完了
|
|
415
|
+
|
|
416
|
+
### タスク: [タスクID] - [タスク名]
|
|
417
|
+
|
|
418
|
+
### [メイン結果]: [✅ SUCCESS / ❌ FAILURE / ⚠️ PARTIAL]
|
|
419
|
+
|
|
420
|
+
### サマリー
|
|
421
|
+
[主要な結果・数値]
|
|
422
|
+
|
|
423
|
+
### 詳細
|
|
424
|
+
[項目別の詳細情報]
|
|
425
|
+
|
|
426
|
+
### 次のステップ
|
|
427
|
+
[後続処理の説明]
|
|
428
|
+
\`\`\`
|
|
429
|
+
```
|