@einja/dev-cli 0.1.40 → 0.1.44

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.
Files changed (207) hide show
  1. package/README.md +89 -1
  2. package/dist/cli.js +1 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +71 -1
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/list.js.map +1 -1
  8. package/dist/commands/sync.d.ts.map +1 -1
  9. package/dist/commands/sync.js +187 -13
  10. package/dist/commands/sync.js.map +1 -1
  11. package/dist/commands/task-loop/lib/github-client.test.js.map +1 -1
  12. package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js +2 -2
  13. package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js.map +1 -1
  14. package/dist/lib/dependency-checker.d.ts.map +1 -1
  15. package/dist/lib/merger.d.ts +12 -0
  16. package/dist/lib/merger.d.ts.map +1 -1
  17. package/dist/lib/merger.js +28 -0
  18. package/dist/lib/merger.js.map +1 -1
  19. package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -1
  20. package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
  21. package/dist/lib/preset-update/file-copier.js +3 -3
  22. package/dist/lib/preset-update/file-copier.js.map +1 -1
  23. package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
  24. package/dist/lib/preset.d.ts.map +1 -1
  25. package/dist/lib/sync/category-validator.d.ts +1 -1
  26. package/dist/lib/sync/category-validator.d.ts.map +1 -1
  27. package/dist/lib/sync/category-validator.js +2 -1
  28. package/dist/lib/sync/category-validator.js.map +1 -1
  29. package/dist/lib/sync/category-validator.test.js +3 -1
  30. package/dist/lib/sync/category-validator.test.js.map +1 -1
  31. package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
  32. package/dist/lib/sync/diff-engine.d.ts.map +1 -1
  33. package/dist/lib/sync/file-filter.d.ts.map +1 -1
  34. package/dist/lib/sync/file-filter.js +1 -0
  35. package/dist/lib/sync/file-filter.js.map +1 -1
  36. package/dist/lib/sync/integration.test.js +255 -69
  37. package/dist/lib/sync/integration.test.js.map +1 -1
  38. package/dist/lib/sync/json-processor.d.ts +4 -4
  39. package/dist/lib/sync/json-processor.d.ts.map +1 -1
  40. package/dist/lib/sync/json-processor.js +11 -11
  41. package/dist/lib/sync/json-processor.js.map +1 -1
  42. package/dist/lib/sync/marker-processor.d.ts +60 -8
  43. package/dist/lib/sync/marker-processor.d.ts.map +1 -1
  44. package/dist/lib/sync/marker-processor.js +117 -26
  45. package/dist/lib/sync/marker-processor.js.map +1 -1
  46. package/dist/lib/sync/marker-processor.test.js +261 -40
  47. package/dist/lib/sync/marker-processor.test.js.map +1 -1
  48. package/dist/lib/sync/metadata-manager.d.ts +4 -0
  49. package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
  50. package/dist/lib/sync/metadata-manager.js +15 -0
  51. package/dist/lib/sync/metadata-manager.js.map +1 -1
  52. package/dist/lib/sync/metadata-manager.test.js +69 -0
  53. package/dist/lib/sync/metadata-manager.test.js.map +1 -1
  54. package/dist/lib/sync/orphan-cleaner.d.ts +29 -0
  55. package/dist/lib/sync/orphan-cleaner.d.ts.map +1 -0
  56. package/dist/lib/sync/orphan-cleaner.js +80 -0
  57. package/dist/lib/sync/orphan-cleaner.js.map +1 -0
  58. package/dist/lib/sync/orphan-cleaner.test.d.ts +2 -0
  59. package/dist/lib/sync/orphan-cleaner.test.d.ts.map +1 -0
  60. package/dist/lib/sync/orphan-cleaner.test.js +169 -0
  61. package/dist/lib/sync/orphan-cleaner.test.js.map +1 -0
  62. package/dist/lib/sync/project-private-synchronizer.d.ts +52 -0
  63. package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -0
  64. package/dist/lib/sync/project-private-synchronizer.js +110 -0
  65. package/dist/lib/sync/project-private-synchronizer.js.map +1 -0
  66. package/dist/lib/sync/project-private-synchronizer.test.d.ts +2 -0
  67. package/dist/lib/sync/project-private-synchronizer.test.d.ts.map +1 -0
  68. package/dist/lib/sync/project-private-synchronizer.test.js +348 -0
  69. package/dist/lib/sync/project-private-synchronizer.test.js.map +1 -0
  70. package/dist/types/index.d.ts +1 -0
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/sync.d.ts +36 -6
  73. package/dist/types/sync.d.ts.map +1 -1
  74. package/dist/types/sync.js +2 -2
  75. package/dist/types/sync.js.map +1 -1
  76. package/package.json +5 -4
  77. package/presets/default/.claude/agents/einja/Explore.md +140 -0
  78. package/presets/default/.claude/agents/einja/backend-architect.md +21 -1
  79. package/presets/default/.claude/agents/einja/codex-agent.md +5 -1
  80. package/presets/default/.claude/agents/einja/design-engineer.md +5 -1
  81. package/presets/default/.claude/agents/einja/docs/docs-updater.md +7 -93
  82. package/presets/default/.claude/agents/einja/frontend-architect.md +21 -1
  83. package/presets/default/.claude/agents/einja/frontend-coder.md +5 -1
  84. package/presets/default/.claude/agents/einja/{specs/spec-design-generator.md → issue-specs/design-generator.md} +16 -8
  85. package/presets/default/.claude/agents/einja/{specs/spec-qa-generator.md → issue-specs/qa-generator.md} +10 -4
  86. package/presets/default/.claude/agents/einja/{specs/spec-requirements-generator.md → issue-specs/requirements-generator.md} +9 -6
  87. package/presets/default/.claude/agents/einja/{specs/spec-tasks-generator.md → issue-specs/tasks-generator.md} +19 -16
  88. package/presets/default/.claude/agents/einja/{specs/spec-tasks-validator.md → issue-specs/tasks-validator.md} +13 -9
  89. package/presets/default/.claude/agents/einja/issue-specs/ui-design-generator.md +114 -0
  90. package/presets/default/.claude/agents/einja/task/task-executer.md +64 -116
  91. package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +6 -2
  92. package/presets/default/.claude/agents/einja/task/task-qa.md +7 -3
  93. package/presets/default/.claude/agents/einja/task/task-reviewer.md +17 -1
  94. package/presets/default/.claude/commands/einja/einja-sync.md +124 -45
  95. package/presets/default/.claude/commands/einja/frontend-implement.md +3 -1
  96. package/presets/default/.claude/commands/einja/issue-exec.md +413 -0
  97. package/presets/default/.claude/commands/einja/start-dev.md +4 -0
  98. package/presets/default/.claude/commands/einja/sync-cursor-commands.md +10 -6
  99. package/presets/default/.claude/commands/einja/{update-docs-by-task-specs.md → update-docs-by-issue-specs.md} +61 -57
  100. package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +27 -0
  101. package/presets/default/.claude/settings.json +29 -5
  102. package/presets/default/.claude/skills/{einja-general-context-loader → _einja-general-context-loader}/SKILL.md +6 -2
  103. package/presets/default/.claude/skills/{einja-output-format → _einja-output-format}/SKILL.md +5 -1
  104. package/presets/default/.claude/skills/_einja-project-overview/SKILL.md +29 -0
  105. package/presets/default/.claude/skills/{einja-spec-context-loader → _einja-spec-context-loader}/SKILL.md +9 -5
  106. package/presets/default/.claude/skills/einja-coding-standards/references/testing-strategy.md +899 -0
  107. package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +5 -1
  108. package/presets/default/.claude/skills/einja-create-pr/SKILL.md +138 -0
  109. package/presets/default/.claude/skills/einja-infra-maintenance/SKILL.md +779 -0
  110. package/presets/default/.claude/{commands/einja/spec-create.md → skills/einja-issue-spec-create/SKILL.md} +60 -23
  111. package/presets/default/.claude/skills/einja-issue-spec-generator/SKILL.md +105 -0
  112. package/presets/default/.claude/skills/einja-issue-spec-generator/references/format-rules.md +35 -0
  113. package/presets/default/.claude/skills/einja-issue-spec-validator/SKILL.md +130 -0
  114. package/presets/default/.claude/skills/einja-issue-spec-validator/references/validation-rules.md +52 -0
  115. package/presets/default/.claude/skills/einja-npm-release/SKILL.md +242 -0
  116. package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +311 -263
  117. package/presets/default/.claude/skills/einja-skill-creator/agents/analyzer.md +274 -0
  118. package/presets/default/.claude/skills/einja-skill-creator/agents/comparator.md +202 -0
  119. package/presets/default/.claude/skills/einja-skill-creator/agents/grader.md +195 -0
  120. package/presets/default/.claude/skills/einja-skill-creator/assets/eval_review.html +146 -0
  121. package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/generate_review.py +471 -0
  122. package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/viewer.html +1325 -0
  123. package/presets/default/.claude/skills/einja-skill-creator/references/schemas.md +430 -0
  124. package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +401 -0
  125. package/presets/default/.claude/skills/einja-skill-creator/scripts/compare_runs.py +154 -0
  126. package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +272 -0
  127. package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +247 -0
  128. package/presets/default/.claude/skills/einja-skill-creator/scripts/init_skill.py +13 -19
  129. package/presets/default/.claude/skills/einja-skill-creator/scripts/package_skill.py +36 -7
  130. package/presets/default/.claude/skills/einja-skill-creator/scripts/run_eval.py +310 -0
  131. package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +375 -0
  132. package/presets/default/.claude/skills/einja-skill-creator/scripts/utils.py +48 -0
  133. package/presets/default/.claude/skills/einja-skill-first/SKILL.md +265 -0
  134. package/presets/default/.claude/skills/einja-subagent-question-protocol/SKILL.md +98 -0
  135. package/presets/default/.claude/skills/einja-task-commit/SKILL.md +11 -7
  136. package/presets/default/.claude/{commands/einja/task-exec.md → skills/einja-task-exec/SKILL.md} +106 -89
  137. package/presets/default/.claude/skills/einja-task-qa/SKILL.md +8 -4
  138. package/presets/default/.claude/skills/einja-task-qa/references/troubleshooting.md +1 -1
  139. package/presets/default/.claude/skills/einja-task-qa/references/usage-patterns.md +2 -2
  140. package/presets/default/.claude/skills/einja-team-exec/SKILL.md +165 -0
  141. package/presets/default/.envrc +5 -0
  142. package/presets/default/.mcp.json +2 -12
  143. package/presets/default/CLAUDE.md.template +45 -8
  144. package/presets/default/docs/einja/example/specs/issues/issue999-example-task/tasks.md +1 -1
  145. package/presets/default/docs/einja/instructions/deployment-setup.md +4 -9
  146. package/presets/default/docs/einja/instructions/environment-setup.md +3 -8
  147. package/presets/default/docs/einja/instructions/issue-exec-workflow.md +276 -0
  148. package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +71 -9
  149. package/presets/default/docs/einja/instructions/neon-cli-reference.md +3 -8
  150. package/presets/default/docs/einja/instructions/setup-flow.md +279 -0
  151. package/presets/default/docs/einja/instructions/task-execute.md +63 -68
  152. package/presets/default/docs/einja/instructions/vercel-cli-reference.md +17 -10
  153. package/presets/default/docs/einja/steering/README.md +11 -11
  154. package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +4 -9
  155. package/presets/default/docs/einja/steering/architecture.md +3 -8
  156. package/presets/default/docs/einja/steering/branch-strategy.md +63 -70
  157. package/presets/default/docs/einja/steering/commit-rules.md +3 -8
  158. package/presets/default/docs/einja/steering/db-schema-design.md +3 -8
  159. package/presets/default/docs/einja/steering/development/api-development.md +3 -8
  160. package/presets/default/docs/einja/steering/development/backend-architecture.md +3 -8
  161. package/presets/default/docs/einja/steering/development/coding-standards.md +723 -0
  162. package/presets/default/docs/einja/steering/development/component-design.md +502 -0
  163. package/presets/default/docs/einja/steering/development/database-guidelines.md +2 -2
  164. package/presets/default/docs/einja/steering/development/frontend-development.md +3 -8
  165. package/presets/default/docs/einja/steering/development/playwright-guidelines.md +59 -0
  166. package/presets/default/docs/einja/steering/development/review-guidelines.md +3 -8
  167. package/presets/default/docs/einja/steering/development/testing-strategy.md +3 -8
  168. package/presets/default/docs/einja/steering/development-workflow.md +155 -140
  169. package/presets/default/docs/einja/steering/infrastructure/deployment.md +156 -55
  170. package/presets/default/docs/einja/steering/infrastructure/environment-variables.md +4 -8
  171. package/presets/default/docs/einja/steering/product.md +3 -8
  172. package/presets/default/docs/einja/steering/task-management.md +22 -110
  173. package/presets/default/scripts/ensure-serena.sh +75 -0
  174. package/presets/default/scripts/env-rotate-secrets.ts +396 -0
  175. package/presets/default/scripts/env-show.ts +130 -0
  176. package/presets/default/scripts/env.ts +479 -0
  177. package/presets/default/scripts/init-github.ts +363 -0
  178. package/presets/default/scripts/init.sh +98 -0
  179. package/presets/default/scripts/lib/env-common.ts +108 -0
  180. package/presets/default/scripts/lib/worktree-config.ts +64 -0
  181. package/presets/default/scripts/setup-dev.ts +655 -0
  182. package/presets/default/scripts/stop-serena.sh +25 -0
  183. package/presets/default/scripts/worktree/dev.ts +872 -0
  184. package/dist/lib/sync/seed-synchronizer.d.ts +0 -27
  185. package/dist/lib/sync/seed-synchronizer.d.ts.map +0 -1
  186. package/dist/lib/sync/seed-synchronizer.js +0 -72
  187. package/dist/lib/sync/seed-synchronizer.js.map +0 -1
  188. package/dist/lib/sync/seed-synchronizer.test.d.ts +0 -2
  189. package/dist/lib/sync/seed-synchronizer.test.d.ts.map +0 -1
  190. package/dist/lib/sync/seed-synchronizer.test.js +0 -147
  191. package/dist/lib/sync/seed-synchronizer.test.js.map +0 -1
  192. package/presets/default/.claude/agents/einja/git/conflict-resolver.md +0 -148
  193. package/presets/default/.claude/hooks/einja/validate-git-commit.sh +0 -239
  194. package/presets/default/.claude/skills/einja-api-development/SKILL.md +0 -14
  195. package/presets/default/.claude/skills/einja-backend-architecture/SKILL.md +0 -18
  196. package/presets/default/.claude/skills/einja-coding-standards/SKILL.md +0 -132
  197. package/presets/default/.claude/skills/einja-coding-standards/references/import-conventions.md +0 -69
  198. package/presets/default/.claude/skills/einja-coding-standards/references/naming-conventions.md +0 -107
  199. package/presets/default/.claude/skills/einja-coding-standards/references/prohibited-patterns.md +0 -169
  200. package/presets/default/.claude/skills/einja-coding-standards/references/typescript-rules.md +0 -247
  201. package/presets/default/.claude/skills/einja-component-design/SKILL.md +0 -109
  202. package/presets/default/.claude/skills/einja-component-design/references/directory-structure.md +0 -117
  203. package/presets/default/.claude/skills/einja-component-design/references/props-patterns.md +0 -159
  204. package/presets/default/.claude/skills/einja-component-design/references/styling-guide.md +0 -122
  205. package/presets/default/.claude/skills/einja-frontend-development/SKILL.md +0 -14
  206. package/presets/default/.claude/skills/einja-project-overview/SKILL.md +0 -35
  207. package/presets/default/docs/einja/instructions/task-vibe-kanban-loop.md +0 -565
@@ -8,13 +8,13 @@
8
8
  本プロジェクトでは、Claude Codeを活用した自動化された開発ワークフローを採用しています。
9
9
 
10
10
  ```
11
- 仕様書作成(/einja:spec-create)
11
+ 仕様書作成(einja-issue-spec-create Skill
12
12
 
13
13
  仕様書レビュー(Discord + Spec PR)
14
14
 
15
- タスク実行(pnpm task:loop
15
+ タスク実行(/einja:issue-exec or einja-task-exec Skill
16
16
 
17
- 自己レビュー → PR作成(Vibe-Kanban)
17
+ 自己レビュー → PR作成(自動)
18
18
 
19
19
  コードレビュー(GitHub PR)
20
20
 
@@ -30,7 +30,7 @@
30
30
  │ Phase A: 仕様書作成 │
31
31
  ├─────────────────────────────────────────────────────────────────────────────┤
32
32
  │ │
33
- /einja:spec-create <タスク内容の説明またはAsanaタスクURL>
33
+ │ einja-issue-spec-create Skill <タスク内容の説明またはAsanaタスクURL>
34
34
  │ │ │
35
35
  │ ├── 1. (AsanaURLの場合)Asanaからタスク情報取得 │
36
36
  │ ├── 2. GitHub Issue作成 │
@@ -57,32 +57,23 @@
57
57
  Spec PRをマージ
58
58
 
59
59
  ┌─────────────────────────────────────────────────────────────────────────────┐
60
- │ Phase B: タスク実行(Vibe-Kanban + task:loop
60
+ │ Phase B: タスク実行(/einja:issue-exec or einja-task-exec Skill
61
61
  ├─────────────────────────────────────────────────────────────────────────────┤
62
62
  │ │
63
- 事前準備: npx vibe-kanban(別ターミナルで起動)
64
- │ │
65
- │ pnpm task:loop <issue-number> │
63
+ /einja:issue-exec #<issue-number>
66
64
  │ │ │
67
- │ ├── 初期化: Issue取得、ブランチ作成、Vibe-Kanban接続
68
- │ │ ├── Phase毎に親Issue作成(MCP create_issue) │
65
+ │ ├── Manager: Issue パース、Phase 毎に Director を tmux で起動
69
66
  │ │ │
70
- │ └── ループ開始 ─────────────────────────────────────────┐
67
+ │ └── Director(Phase毎)────────────────────────────────┐
71
68
  │ │ │ │
72
69
  │ ▼ │ │
73
70
  │ ┌─────────────────────────────────────────────────────┐ │ │
74
- │ │ 着手可能なタスクグループを選定(依存関係考慮) │ │ │
71
+ │ │ タスクグループを依存順に Worker を起動 │ │ │
75
72
  │ └─────────────────────────────────────────────────────┘ │ │
76
73
  │ │ │ │
77
74
  │ ▼ │ │
78
75
  │ ┌─────────────────────────────────────────────────────┐ │ │
79
- │ │ サブIssue作成(親Issue配下) start_workspace_session│ │ │
80
- │ │ (Claude Codeが自動起動されて実装開始) │ │ │
81
- │ └─────────────────────────────────────────────────────┘ │ │
82
- │ │ │ │
83
- │ ▼ │ │
84
- │ ┌─────────────────────────────────────────────────────┐ │ │
85
- │ │ Claude Code(自動実行) │ │ │
76
+ │ │ Worker(einja-task-exec Skill を実行) │ │ │
86
77
  │ │ │ │ │
87
78
  │ │ task-executer: 実装 │ │ │
88
79
  │ │ ↓ │ │ │
@@ -90,37 +81,41 @@
90
81
  │ │ ↓ │ │ │
91
82
  │ │ task-qa: 動作確認(Playwright/curl)(自動) │←┘ │
92
83
  │ │ ↓ 全テスト合格 │ │
93
- │ │ ステータスIn Review │ │
84
+ │ │ commit & push PR 自動作成 │ │
94
85
  │ └─────────────────────────────────────────────────────┘ │
95
86
  │ │ │
96
87
  │ ▼ │
97
- │ 【人間がVibe-Kanbanで確認】 │
98
- │ ├── 自己レビュー(実装内容確認) │
99
- │ └── OKなら「Create PR」ボタンクリック │
100
- │ │ │
101
- │ ▼ │
102
88
  │ 【GitHubでPRレビュー】 │
103
- │ ├── 担当者レビュー(動作確認 + コード確認)
104
- │ └── 他エンジニアレビュー
105
- │ │ │
106
- │ ▼ 承認 │
107
- │ GitHub側でPRマージ(⚠️必ずGitHub側で操作) │
108
- │ │ │
109
- │ ▼ │
110
- │ Vibe-Kanbanがマージ検知 → タスク自動Done │
89
+ │ ├── PRの内容を確認
90
+ │ └── マージモードに応じてマージ(manual / task-group-auto / auto)
111
91
  │ │ │
112
92
  │ ▼ │
113
- task:loopがDone検知 → GitHub Issueチェックボックス更新
93
+ Director: PR マージ検知 → GitHub Issue チェックボックス更新
114
94
  │ │ │
115
- │ Phase全サブIssue完了?
116
- │ ├─ Yes → 親Issue Workspace作成PR作成・マージ
117
- │ │ → 親Issue自動Done
118
- │ └─ No → スキップ
95
+ │ Phase全タスク完了?
96
+ │ ├─ Yes → Phase PR 作成(Phase Issue ブランチ)
97
+ │ │ → マージモードに応じた処理
98
+ │ └─ No → 依存解除された次タスクの Worker を起動
119
99
  │ │ │
120
100
  │ └──────────────────────────────────────────────────┘ │
121
- │ 次のタスクグループを自動開始 │
122
101
  │ │
123
- 全タスクグループ完了 → Issue Close
102
+ Phase 完了 最終 PR 作成(Issue → base ブランチ)
103
+ │ │
104
+ └─────────────────────────────────────────────────────────────────────────────┘
105
+
106
+ 【PRレビュー・マージ → staging / main】
107
+
108
+ ┌─────────────────────────────────────────────────────────────────────────────┐
109
+ │ Phase C: リリース(自動) │
110
+ ├─────────────────────────────────────────────────────────────────────────────┤
111
+ │ │
112
+ │ staging マージ時: │
113
+ │ → CI + Deploy(承認不要) │
114
+ │ → PreRelease 自動作成(v0.2.0-rc.42) │
115
+ │ │
116
+ │ main マージ時(staging → main 昇格PR): │
117
+ │ → CI + ⚠️承認待ち → Migrate + Deploy │
118
+ │ → changeset version → Release 自動作成(v0.2.0) │
124
119
  │ │
125
120
  └─────────────────────────────────────────────────────────────────────────────┘
126
121
  ```
@@ -129,10 +124,12 @@
129
124
 
130
125
  ## Phase A: 仕様書作成
131
126
 
132
- ### コマンド
127
+ ### 実行方法
133
128
 
134
- ```bash
135
- /einja:spec-create <タスク内容の説明またはAsanaタスクURL>
129
+ `einja-issue-spec-create` Skillを使用して仕様書を作成します。
130
+
131
+ ```
132
+ タスク内容の説明またはAsanaタスクURL を引数に指定
136
133
  ```
137
134
 
138
135
  ### ステップ詳細
@@ -144,17 +141,19 @@
144
141
  | 3 | Claude → **人間承認** | IssueBranchBase選択 |
145
142
  | 4 | Claude | `issue/{番号}`ブランチ作成 |
146
143
  | 5 | Claude → **人間承認** | requirements.md作成 → 確認 → コミット |
147
- | 6 | Claude → **人間承認** | design.md作成 → 確認 → コミット |
148
- | 7 | Claude → **人間承認** | GitHub Issueにタスク一覧記述 |
149
- | 8 | Claude | **Spec PR作成** |
150
- | 9 | **人間** | Discordでチームにレビュー依頼 |
151
- | 10 | **人間** | Spec PRレビュー・承認・マージ |
144
+ | 6 | Claude → **人間承認** | ui-design.pen作成 → 確認 → コミット |
145
+ | 7 | Claude → **人間承認** | design.md作成 → 確認 → コミット |
146
+ | 8 | Claude → **人間承認** | GitHub Issueにタスク一覧記述 |
147
+ | 9 | Claude | **Spec PR作成** |
148
+ | 10 | **人間** | Discordでチームにレビュー依頼 |
149
+ | 11 | **人間** | Spec PRレビュー・承認・マージ |
152
150
 
153
151
  ### 成果物
154
152
 
155
153
  ```
156
154
  docs/specs/issues/{カテゴリ}/issue{番号}-{機能名}/
157
155
  ├── requirements.md # 要件定義書(ATDD形式)
156
+ ├── ui-design.pen # UIモックアップ(Pencil MCP形式)
158
157
  └── design.md # 設計書(技術詳細)
159
158
 
160
159
  GitHub Issue #{番号} # タスク一覧(Phase別チェックボックス形式)
@@ -171,45 +170,38 @@ Spec PR # 仕様書レビュー用
171
170
 
172
171
  ## Phase B: タスク実行
173
172
 
174
- ### コマンド
173
+ ### 実行方法
175
174
 
176
175
  ```bash
177
- # 事前準備: Vibe-Kanbanを起動(別ターミナル)
178
- npx vibe-kanban
176
+ # Issue全体の並列実行(推奨:複数Phase・複数タスクグループの場合)
177
+ /einja:issue-exec #123
178
+ /einja:issue-exec #123 --merge-mode task-group-auto # タスクPR自動マージ
179
+ /einja:issue-exec #123 --merge-mode auto # 全自動
180
+ /einja:issue-exec #123 --max-phase 2 # Phase 2 まで
181
+ /einja:issue-exec #123 --base develop # ベースブランチ指定
179
182
 
180
- # タスクループ開始
181
- pnpm task:loop <issue-number>
182
- ```
183
-
184
- **例**:
185
- ```bash
186
- pnpm task:loop 123 # Issue #123 の全タスクを実行
187
- pnpm task:loop 123 --max-group 4 # Phase 4 まで実行
188
- pnpm task:loop 123 --max-group 4.2 # タスクグループ 4.2 まで実行
189
- pnpm task:loop 123 --branch develop # develop ブランチベースで実行
183
+ # 単一タスクグループ実行(品質重視・複雑な実装向け)
184
+ # einja-task-exec Skill を使用: Issue #123 のタスクグループ 1.1 を実行
190
185
  ```
191
186
 
192
- ### 実行後の流れ
187
+ ### 実行後の流れ(/einja:issue-exec)
193
188
 
194
- 実行後、specで作成されたタスクが着手可能なものから自動で実行開始されます。
189
+ `/einja:issue-exec` は Manager → Director → Worker の3階層でタスクを並列実行します。
195
190
 
196
- Phase毎に親Issueが自動作成され、タスクグループはサブIssueとして管理されます。
191
+ 1. **Manager** が Issue をパースし、Phase 毎に Director を tmux で起動
192
+ 2. **Director** が Phase 内のタスクグループを依存順に Worker を起動
193
+ 3. **Worker** が `einja-task-exec` Skill を実行(executer → reviewer → qa → commit)
194
+ 4. Worker 完了後、PR が自動作成される
195
+ 5. マージモードに応じて PR がマージされ、次のタスクが自動開始
197
196
 
198
- 1. **Vibe-Kanbanの画面を眺める** - タスクの進捗を確認
199
- 2. **In Reviewになったら自己レビュー** - 実装内容を確認
200
- 3. **OKなら「Create PR」ボタンをクリック** - PRが自動作成される
201
- 4. **GitHubでチームレビュー** - コード確認・承認
202
- 5. **GitHub側でPRをマージ** - ⚠️ 必ずGitHub側で操作
203
- 6. **次のタスクが自動開始** - マージ検知で自動的に次へ(少しラグあり)
197
+ ユーザーは `tmux attach -t einja-{issue番号}` で全プロセスを監視できます。
204
198
 
205
- ### Vibe-Kanban画面での操作
199
+ ### `/einja:issue-exec` と `einja-task-exec` Skill の使い分け
206
200
 
207
- | 操作 | タイミング | 説明 |
208
- |------|-----------|------|
209
- | **タスク進捗確認** | 随時 | Todo In Progress → In Review → Done の流れを確認 |
210
- | **Create PR** | In Review | ボタンをクリックして PR を自動作成 |
211
- | **レビュー** | PR 作成後 | GitHub で PR の内容を確認 |
212
- | **マージ** | レビュー完了後 | GitHub で PR をマージ(⚠️ 必ず GitHub 側で操作) |
201
+ | 実行方法 | 用途 | 対象 | 推奨シーン |
202
+ |---------|------|------|----------|
203
+ | **`/einja:issue-exec`** | Issue全体の並列実行 | 複数Phase・複数タスクグループ | 大規模機能実装 |
204
+ | **`einja-task-exec` Skill** | 単一タスクグループの確実な完了 | 1つのタスクグループ | 複雑な実装、品質重視 |
213
205
 
214
206
  ### サブエージェントの役割
215
207
 
@@ -224,32 +216,27 @@ Phase毎に親Issueが自動作成され、タスクグループはサブIssue
224
216
  `task-reviewer`または`task-qa`で問題が発見された場合、自動的に`task-executer`に戻って修正が行われます。
225
217
 
226
218
  ```
227
- task-executer → task-reviewer → task-qa → In Review
219
+ task-executer → task-reviewer → task-qa → PR作成
228
220
  ↑ │ │
229
221
  └──────────────┴──────────────┘
230
222
  問題発見時は自動ループ
231
223
  ```
232
224
 
233
- ### マージ後の自動処理
225
+ ### マージ後の自動処理(/einja:issue-exec 使用時)
234
226
 
235
227
  ```
236
- ┌─────────────────────────────────────────────────────────────┐
237
- │ PR マージ(GitHub側で操作) │
238
- │ ↓ │
239
- │ Vibe-Kanban: タスク → Done(自動検知) │
240
- │ ↓ │
241
- │ task:loop: Done 検知(15秒ポーリング) │
242
- │ ↓ │
243
- │ GitHub Issue: チェックボックス更新(自動) │
244
- ↓ │
245
- Phase 全サブIssue完了? │
246
- ├─ Yes → 親Issue Workspace作成 │
247
- │ │ → Phase→Issue PR作成・マージ │
248
- │ │ → 親Issue自動Done(タイムアウト2分) │
249
- │ └─ No → スキップ │
250
- │ ↓ │
251
- │ 次のタスクが自動開始 │
252
- └─────────────────────────────────────────────────────────────┘
228
+ Worker: task-exec 完了 → commit & push → PR 作成
229
+
230
+ Director: PR マージ検知
231
+
232
+ GitHub Issue チェックボックス更新
233
+
234
+ Phase 全タスク完了?
235
+ ├─ Yes → Phase PR 作成(Phase → Issue ブランチ)
236
+ → マージモードに応じた処理
237
+ └─ No 依存解除された次タスクの Worker を起動
238
+
239
+ Phase 完了 最終 PR 作成(Issue → base ブランチ)
253
240
  ```
254
241
 
255
242
  ---
@@ -260,8 +247,8 @@ task-executer → task-reviewer → task-qa → In Review
260
247
 
261
248
  | PRの種類 | 作成タイミング | 内容 | レビュー観点 |
262
249
  | ----------- | -------------------- | -------------------------- | ---------------------------------------------- |
263
- | **Spec PR** | `/einja:spec-create`完了時 | requirements.md, design.md | 要件の妥当性、設計の適切さ、スコープの確認 |
264
- | **実装PR** | タスクグループ完了時(Vibe-KanbanでCreate PR) | ソースコード、テスト | コード品質、設計書との整合性、テストカバレッジ |
250
+ | **Spec PR** | `einja-issue-spec-create` Skill完了時 | requirements.md, ui-design.pen, design.md | 要件の妥当性、UIデザインの適切さ、設計の適切さ、スコープの確認 |
251
+ | **実装PR** | タスクグループ完了時(Worker が自動作成) | ソースコード、テスト | コード品質、設計書との整合性、テストカバレッジ |
265
252
 
266
253
  ### なぜ2段階でPRを作成するのか
267
254
 
@@ -283,9 +270,9 @@ task-executer → task-reviewer → task-qa → In Review
283
270
 
284
271
  ### タスク実行フェーズ
285
272
 
286
- - **自己レビュー**: Vibe-KanbanでIn Reviewになったタスクの実装内容確認
287
- - **Create PRクリック**: 自己レビューOKならPR作成
288
- - **実装PRレビュー**: 担当者レビュー 他エンジニアレビュー → 承認 → マージ
273
+ - **PRレビュー**: Worker が自動作成した PR の内容を確認
274
+ - **PRマージ**: マージモードが manual の場合、GitHub で PR をマージ
275
+ - **質問回答**: Manager から AskUserQuestion でエスカレーションされた質問に回答
289
276
 
290
277
  ### Claudeのセルフチェックについて
291
278
 
@@ -294,7 +281,7 @@ task-executer → task-reviewer → task-qa → In Review
294
281
  | 従来(人間が実装) | 現在(Claudeが実装) |
295
282
  |------------------|-------------------|
296
283
  | 実装者がセルフチェック | `task-reviewer` + `task-qa` がセルフチェック |
297
- | セルフチェック後にPR作成 | セルフチェック後にIn Review → 人間がCreate PR |
284
+ | セルフチェック後にPR作成 | セルフチェック後に自動でPR作成 |
298
285
  | 他のエンジニアがPRレビュー | 人間(担当者 + 他エンジニア)がPRレビュー |
299
286
 
300
287
  ---
@@ -303,56 +290,94 @@ task-executer → task-reviewer → task-qa → In Review
303
290
 
304
291
  ### 仕様書作成
305
292
 
293
+ `einja-issue-spec-create` Skill を使用します。
294
+
306
295
  ```bash
307
296
  # タスク内容の説明から仕様書を作成
308
- /einja:spec-create <タスク内容の説明>
297
+ <タスク内容の説明>
309
298
 
310
299
  # AsanaタスクURLから仕様書を作成
311
- /einja:spec-create <AsanaタスクURL>
300
+ <AsanaタスクURL>
312
301
 
313
302
  # 既存仕様書のパスを指定して修正
314
- /einja:spec-create <タスク内容> <既存仕様書パス>
303
+ <タスク内容> <既存仕様書パス>
315
304
  ```
316
305
 
317
306
  ### タスク実行
318
307
 
319
308
  ```bash
320
- # 自動ループ実行(推奨)
321
- pnpm task:loop <issue-number>
309
+ # Issue全体の並列実行(推奨)
310
+ /einja:issue-exec #<issue_number>
322
311
 
323
312
  # オプション指定
324
- pnpm task:loop <issue-number> --max-group <number> --branch <branch>
325
-
326
- # 例
327
- pnpm task:loop 123 # Issue #123 の全タスクを実行
328
- pnpm task:loop 123 --max-group 4 # Phase 4 まで実行
329
- pnpm task:loop 123 --max-group 4.2 # タスクグループ 4.2 まで実行
313
+ /einja:issue-exec #<issue_number> --merge-mode auto --max-phase 2
330
314
 
331
315
  # 単一タスクグループ実行(品質重視・複雑な実装向け)
332
- /einja:task-exec #<issue_number> <task_group_number>
316
+ # einja-task-exec Skill を使用: #<issue_number> <task_group_number>
333
317
 
334
318
  # 例
335
- /einja:task-exec #123 1.1 # Issue #123 のタスクグループ 1.1 を実行
319
+ /einja:issue-exec #123 # Issue #123 の全タスクを並列実行
320
+ /einja:issue-exec #123 --merge-mode task-group-auto # タスクPR自動マージ
321
+ # einja-task-exec Skill: #123 1.1 # タスクグループ 1.1 を単発実行
336
322
  ```
337
323
 
338
- ### `/einja:task-exec` と `pnpm task:loop` の使い分け
339
-
340
- | コマンド | 用途 | 品質保証 | 推奨シーン |
341
- |---------|------|---------|----------|
342
- | **`/einja:task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
343
- | **`pnpm task:loop`** | 大量タスクの自動消化 | 並列実行・監視 | 定型作業、並行開発 |
344
-
345
324
  ---
346
325
 
347
326
  ## 関連ドキュメント
348
327
 
349
328
  - [タスク管理ガイドライン](task-management.md) - タスク階層、粒度基準、GitHub Issue管理
350
- - [task:loop詳細ガイド](../instructions/task-vibe-kanban-loop.md) - task:loopの詳細な使い方
329
+ - [Issue実行ワークフロー](../instructions/issue-exec-workflow.md) - Issue実行の詳細な使い方
351
330
  - [ブランチ戦略](branch-strategy.md) - ブランチ運用ルール
352
331
  - [コードレビューガイドライン](development/review-guidelines.md) - 品質基準とチェックリスト
353
332
 
354
333
  ---
355
334
 
335
+ ## Phase C: リリース
336
+
337
+ ### changeset運用フロー
338
+
339
+ PRにchangesetを含めることで、バージョン管理とリリースノートが自動化されます。
340
+
341
+ #### changeset追加手順
342
+
343
+ ```bash
344
+ # 1. changeset対話UIを起動
345
+ pnpm changeset
346
+
347
+ # 2. 変更対象パッケージを選択(apps/web, apps/admin等)
348
+ # 3. 変更種別を選択(major / minor / patch)
349
+ # 4. 変更サマリーを入力
350
+ # 5. .changeset/ にmdファイルが生成される
351
+ # 6. コミットに含める
352
+ ```
353
+
354
+ #### 自動生成(einja-create-pr Skill)
355
+
356
+ `/einja-create-pr` またはtask-exec/issue-exec経由でPR作成する場合、changesetは自動生成されます。
357
+
358
+ #### changesetの要否
359
+
360
+ | 変更内容 | changeset必要 |
361
+ |---------|:------------:|
362
+ | 新機能追加(apps/配下) | ✅ |
363
+ | バグ修正(apps/配下) | ✅ |
364
+ | ドキュメントのみ | ❌ |
365
+ | CI/CD設定のみ | ❌ |
366
+ | .claude/ 設定のみ | ❌ |
367
+ | packages/(内部パッケージ) | ❌ |
368
+
369
+ #### changeset消費フロー
370
+
371
+ ```
372
+ feature → staging PR(changeset含む)
373
+ ↓ マージ
374
+ staging: changeset未消費 → PreRelease(v0.2.0-rc.42)
375
+ ↓ 昇格PR
376
+ main: changeset version → バージョンバンプ → Release(v0.2.0)
377
+ ```
378
+
379
+ ---
380
+
356
381
  ## FAQ
357
382
 
358
383
  ### Q: Spec PRをマージする前にタスク実行を開始できますか?
@@ -373,15 +398,10 @@ pnpm task:loop 123 --max-group 4.2 # タスクグループ 4.2 まで実
373
398
 
374
399
  ### Q: PRのマージはどこで行いますか?
375
400
 
376
- **A:** 必ず**GitHub側**でマージしてください。Vibe-Kanbanがマージを検知して自動的にタスクをDoneに変更し、task:loopが次のタスクを開始します。
377
-
378
- ### Q: タスクがIn Reviewのまま進まない場合は?
379
-
380
- **A:**
381
- 1. Vibe-Kanbanで「Create PR」をクリックしてPRを作成
382
- 2. GitHubでPRをレビュー・マージ
383
-
384
- PRがマージされるとタスクは自動的にDoneになります。
401
+ **A:** マージモードによって異なります:
402
+ - **manual**(デフォルト): GitHub側で手動マージしてください。Director がマージを検知して次のタスクを開始します。
403
+ - **task-group-auto**: タスクグループPRは自動マージされます。Phase PRは手動マージです。
404
+ - **auto**: タスクPR・Phase PRが自動マージされます。最終PR(issue→base)は常に手動マージです。
385
405
 
386
406
  ---
387
407
 
@@ -444,11 +464,6 @@ PRがマージされるとタスクは自動的にDoneになります。
444
464
  ```
445
465
  <!-- @einja:managed:end -->
446
466
 
447
- ---
448
-
449
- <!-- @einja:seed:start id="development-workflow-project" -->
450
- ## プロジェクト固有の設定
451
-
452
- <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
453
- <!-- einja syncで上書きされません -->
454
- <!-- @einja:seed:end -->
467
+ <!-- @einja:project-private:start id="development-workflow-project" -->
468
+ <!-- プロジェクト固有の情報を記入 -->
469
+ <!-- @einja:project-private:end -->