@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
@@ -30,7 +30,7 @@ graph TB
30
30
  ISSUE --> PHASE2[issue/123-phase2]
31
31
  end
32
32
 
33
- subgraph "Worktree(Vibe-Kanban管理)"
33
+ subgraph "Worktree(einja:issue-exec管理)"
34
34
  PHASE1 -.->|base_branch| WT1[worktree: task-1.1]
35
35
  PHASE1 -.->|base_branch| WT2[worktree: task-1.2]
36
36
  PHASE2 -.->|base_branch| WT3[worktree: task-2.1]
@@ -67,7 +67,7 @@ graph TB
67
67
 
68
68
  **目的**:
69
69
  - フェーズ単位での作業を分離
70
- - Vibe-Kanbanタスクの実行ベースブランチとして使用(原則)
70
+ - einja:issue-exec の Worker 実行ベースブランチとして使用(原則)
71
71
  - フェーズ完了後、親ブランチにマージ
72
72
 
73
73
  ## ブランチ命名例
@@ -80,54 +80,54 @@ graph TB
80
80
 
81
81
  ---
82
82
 
83
- ## task:loop 実行時のブランチ運用
83
+ ## einja:issue-exec 実行時のブランチ運用
84
84
 
85
85
  ### タスク実行シーケンス
86
86
 
87
87
  ```mermaid
88
88
  sequenceDiagram
89
89
  participant User as 開発者
90
- participant TL as task:loop
90
+ participant Mgr as Manager
91
91
  participant Git as Git
92
- participant VK as Vibe-Kanban
93
- participant CC as Claude Code
92
+ participant Dir as Director
93
+ participant Wkr as Worker
94
94
 
95
- User->>TL: pnpm task:loop 123
95
+ User->>Mgr: /einja:issue-exec #123
96
96
 
97
97
  rect rgb(230,240,255)
98
- Note over TL,Git: 初期化フェーズ(Issueブランチのみ)
99
- TL->>Git: git fetch origin
100
- TL->>Git: git branch issue/123 origin/{IssueBranchBase}
101
- TL->>Git: git push -u origin issue/123
102
- Note over TL: Phaseブランチは作成しない
98
+ Note over Mgr,Git: 初期化フェーズ(Issue & Phase ブランチ + worktree)
99
+ Mgr->>Git: git fetch origin
100
+ Mgr->>Git: git branch issue/123 origin/{IssueBranchBase}
101
+ Mgr->>Git: git push -u origin issue/123
102
+ Mgr->>Git: git branch issue/123-phase1 issue/123
103
+ Mgr->>Git: git worktree add ~/.einja/worktrees/issue-123/phase1 issue/123-phase1
103
104
  end
104
105
 
105
106
  rect rgb(255,245,230)
106
- Note over TL,CC: タスク実行フェーズ(各タスク開始時)
107
- TL->>Git: syncPhaseBranch()
108
- Note over Git: 既存なら最新化、なければ作成
109
- TL->>VK: createTask(1.1)
110
- TL->>VK: startTaskAttempt(base: issue/123-phase1)
111
- VK->>Git: git worktree add
112
- VK->>CC: Claude Code 起動
113
- CC->>Git: 実装 & コミット & push
114
- CC->>VK: タスク完了
107
+ Note over Mgr,Wkr: タスク実行フェーズ(tmux + worktree)
108
+ Mgr->>Dir: tmux window で Director 起動(Phase worktree)
109
+ Dir->>Git: git branch task/123-1.1 issue/123-phase1
110
+ Dir->>Git: git worktree add ~/.einja/worktrees/issue-123/task-1.1 task/123-1.1
111
+ Dir->>Wkr: tmux window で Worker 起動(Task worktree)
112
+ Wkr->>Git: 実装 & コミット & push
113
+ Wkr->>Git: gh pr create --base issue/123-phase1 --head task/123-1.1
114
+ Wkr->>Dir: ステータスファイルで完了報告
115
115
  end
116
116
 
117
117
  rect rgb(230,255,230)
118
- Note over TL,Git: 完了検知フェーズ(15秒ポーリング)
119
- TL->>VK: listTasks() で Done 検知
120
- TL->>Git: GitHub Issue チェックボックス更新
121
- TL->>TL: 次の着手可能タスクを選定
118
+ Note over Dir,Git: 完了検知フェーズ(ステータスファイル監視)
119
+ Dir->>Git: PR マージ処理(マージモードに応じて)
120
+ Dir->>Git: worktree 削除 & tmux window kill
121
+ Dir->>Dir: 依存タスク起動判定 → 新 Worker 起動
122
+ Dir->>Git: GitHub Issue チェックボックス更新
122
123
  end
123
124
 
124
125
  rect rgb(255,245,230)
125
- Note over TL,CC: 次タスク開始時(同期済み)
126
- TL->>Git: syncPhaseBranch()
127
- Note over Git: リモートの最新を取得
128
- TL->>VK: createTask(1.2)
129
- TL->>VK: startTaskAttempt(base: issue/123-phase1)
130
- Note over Git: 前タスクの変更が含まれる
126
+ Note over Dir,Wkr: 次タスク開始時
127
+ Dir->>Git: git branch task/123-1.2 issue/123-phase1
128
+ Dir->>Git: git worktree add ~/.einja/worktrees/issue-123/task-1.2 task/123-1.2
129
+ Dir->>Wkr: tmux window で Worker 起動
130
+ Note over Git: 前タスクの変更がマージ済みの Phase ブランチから派生
131
131
  end
132
132
  ```
133
133
 
@@ -135,44 +135,42 @@ sequenceDiagram
135
135
 
136
136
  | 操作 | タイミング | 実行者 | 備考 |
137
137
  |-----|----------|--------|------|
138
- | **Create** Issue ブランチ | スクリプト起動時 | task:loop | IssueBranchBase から作成 |
139
- | **Sync** Issue ブランチ | タスク着手時 | task:loop | リモート最新化 + IssueBranchBase の変更取り込み |
140
- | **Create** Phase ブランチ | タスク着手時 | task:loop | 必要に応じて Issue ブランチから作成 |
141
- | **Sync** Phase ブランチ | タスク着手時 | task:loop | リモート最新化 + Issue ブランチの変更取り込み |
142
- | **Create** Worktree | タスク開始時 | Vibe-Kanban | 同期済み Phase ブランチをベースに作成 |
143
- | **Update** Phase ブランチ | PR マージ時 | GitHub | タスク完了後のマージで更新 |
144
- | **Merge** Phase Issue | Phase 全タスク完了時 | task:loop | 完了した Phase Issue ブランチに自動マージ |
145
- | **Delete** Worktree | タスク完了後 | Vibe-Kanban | 72時間後に自動削除 |
146
- | **Delete** Phase ブランチ | Issue 完了後 | 手動 | Issue ブランチにマージ後 |
138
+ | **Create** Issue ブランチ | コマンド起動時 | Manager | IssueBranchBase から作成 |
139
+ | **Create** Phase ブランチ + worktree | コマンド起動時 | Manager | Issue ブランチから作成、`~/.einja/worktrees/issue-{N}/` に配置 |
140
+ | **Create** Task ブランチ + worktree | タスク開始時 | Director | Phase ブランチから作成、`~/.einja/worktrees/issue-{N}/` に配置 |
141
+ | **Update** Phase ブランチ | タスク PR マージ時 | GitHub | タスク完了後のマージで更新 |
142
+ | **Merge** Phase → Issue | Phase 全タスク完了時 | Manager | Phase PR 作成 → マージモードに応じた処理 |
143
+ | **Delete** Task worktree | タスク完了後 | Director | タスク完了後に即削除 |
144
+ | **Delete** Phase worktree | Phase 完了後 | Manager | Phase マージ後に即削除 |
145
+ | **Delete** Phase ブランチ | Issue 完了後 | Manager | Issue ブランチにマージ後 |
147
146
 
148
147
  ### Worktree ライフサイクル
149
148
 
150
149
  ```mermaid
151
150
  stateDiagram-v2
152
- [*] --> Created: startTaskAttempt()
153
- Created --> Running: Claude Code 起動
154
- Running --> Completed: タスク完了
155
- Completed --> InReview: PR 作成待ち
156
- InReview --> Merged: PR マージ
157
- Merged --> Cleanup: 72時間後
158
- Cleanup --> [*]: 自動削除
151
+ [*] --> Created: Director が worktree 作成
152
+ Created --> Running: Worker(claude 対話モード)起動
153
+ Running --> Completed: タスク完了 & PR 作成
154
+ Completed --> Merged: PR マージ
155
+ Merged --> [*]: 即削除(Director が worktree remove)
159
156
  ```
160
157
 
161
- ### syncPhaseBranch の動作
158
+ ### ブランチ同期の動作
162
159
 
163
- タスク着手時に呼び出される `syncPhaseBranch` 関数は、以下のシーケンスでブランチを同期します:
160
+ タスク着手時、Director Phase ブランチの最新状態から Task ブランチを作成します。
161
+ 先行タスクの PR がマージされた Phase ブランチから派生するため、変更が自動的に引き継がれます。
164
162
 
165
163
  ```mermaid
166
164
  sequenceDiagram
167
165
  participant Main as main<br/>(base)
168
166
  participant Issue as issue/123
169
167
  participant Phase as issue/123-phase1
170
- participant WT as worktree
168
+ participant Task as task/123-1.2
171
169
 
172
- Note over Main,WT: syncPhaseBranch() 実行時
170
+ Note over Main,Task: タスク着手時のブランチ派生
173
171
 
174
172
  rect rgb(240, 248, 255)
175
- Note over Main,Issue: Step 1: Issue ブランチの同期
173
+ Note over Main,Issue: Step 1: Issue ブランチの同期(Manager)
176
174
  Issue->>Issue: fetch origin/issue/123
177
175
  Issue->>Issue: merge origin/issue/123 (pull)
178
176
  Main->>Issue: merge main (base変更の取り込み)
@@ -180,7 +178,7 @@ sequenceDiagram
180
178
  end
181
179
 
182
180
  rect rgb(255, 248, 240)
183
- Note over Issue,Phase: Step 2: Phase ブランチの同期
181
+ Note over Issue,Phase: Step 2: Phase ブランチの同期(Director)
184
182
  Phase->>Phase: fetch origin/issue/123-phase1
185
183
  Phase->>Phase: merge origin/issue/123-phase1 (pull)
186
184
  Issue->>Phase: merge issue/123 (他Phaseの変更取り込み)
@@ -188,16 +186,16 @@ sequenceDiagram
188
186
  end
189
187
 
190
188
  rect rgb(240, 255, 240)
191
- Note over Phase,WT: Step 3: Worktree作成
192
- Phase-->>WT: base_branch として使用
193
- Note over WT: Claude Code がタスク実行
189
+ Note over Phase,Task: Step 3: Task ブランチ & worktree 作成(Director)
190
+ Phase-->>Task: Phase ブランチから Task ブランチを作成
191
+ Note over Task: Worker(claude 対話モード)がタスク実行
194
192
  end
195
193
  ```
196
194
 
197
195
  **同期の原則**:
198
- - ローカルの変更は保持(削除→再作成はしない)
199
- - リモートとローカルが分岐した場合はマージで統合
200
- - コンフリクト発生時はエラーで停止(手動解決を促す)
196
+ - 先行タスクの PR マージにより Phase ブランチが更新される
197
+ - 後続タスクは更新済み Phase ブランチから派生するため変更を引き継ぐ
198
+ - コンフリクト発生時は einja-conflict-resolver Skill で解消
201
199
 
202
200
  ### 変更の取り込み対象
203
201
 
@@ -216,8 +214,8 @@ IssueBranchBase(main, develop など)
216
214
  issue/123
217
215
  ↓ マージ
218
216
  issue/123-phase1
219
- base_branch として使用
220
- worktree(タスク実行)
217
+ Task ブランチとして派生
218
+ task/123-1.1(Worker が worktree 上で実行)
221
219
  ```
222
220
 
223
221
  これにより:
@@ -358,16 +356,11 @@ git push origin タスクブランチ名
358
356
 
359
357
  ## 関連ドキュメント
360
358
 
361
- - [task:loop コマンド](../instructions/task-vibe-kanban-loop.md) - コマンドの使用方法と Vibe-Kanban 操作手順
359
+ - [einja:issue-exec ワークフロー](../instructions/issue-exec-workflow.md) - コマンドの使用方法と3階層プロセスの詳細
362
360
  - [タスク管理](task-management.md) - タスク階層と粒度基準
363
361
  - [開発ワークフロー](development-workflow.md) - 仕様書作成からタスク実行までの全体フロー
364
362
  <!-- @einja:managed:end -->
365
363
 
366
- ---
367
-
368
- <!-- @einja:seed:start id="branch-strategy-project" -->
369
- ## プロジェクト固有の設定
370
-
371
- <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
372
- <!-- einja syncで上書きされません -->
373
- <!-- @einja:seed:end -->
364
+ <!-- @einja:project-private:start id="branch-strategy-project" -->
365
+ <!-- プロジェクト固有の情報を記入 -->
366
+ <!-- @einja:project-private:end -->
@@ -218,11 +218,6 @@ git push
218
218
  コミットルールの遵守は、プロジェクトの履歴管理とレビュープロセスの効率化に直結します。全ての開発者・AIアシスタントは、これらのルールを例外なく厳守してください。
219
219
  <!-- @einja:managed:end -->
220
220
 
221
- ---
222
-
223
- <!-- @einja:seed:start id="commit-rules-project" -->
224
- ## プロジェクト固有の設定
225
-
226
- <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
227
- <!-- einja syncで上書きされません -->
228
- <!-- @einja:seed:end -->
221
+ <!-- @einja:project-private:start id="commit-rules-project" -->
222
+ <!-- プロジェクト固有の情報を記入 -->
223
+ <!-- @einja:project-private:end -->
@@ -610,11 +610,6 @@ pnpm db:seed
610
610
  すべてのスキーマ変更は、このガイドラインに従って実装してください。
611
611
  <!-- @einja:managed:end -->
612
612
 
613
- ---
614
-
615
- <!-- @einja:seed:start id="db-schema-design-project" -->
616
- ## プロジェクト固有の設定
617
-
618
- <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
619
- <!-- einja syncで上書きされません -->
620
- <!-- @einja:seed:end -->
613
+ <!-- @einja:project-private:start id="db-schema-design-project" -->
614
+ <!-- プロジェクト固有の情報を記入 -->
615
+ <!-- @einja:project-private:end -->
@@ -830,11 +830,6 @@ export type AppType = typeof routes
830
830
  すべてのAPI実装は、このガイドラインに従って実装してください。
831
831
  <!-- @einja:managed:end -->
832
832
 
833
- ---
834
-
835
- <!-- @einja:seed:start id="api-development-project" -->
836
- ## プロジェクト固有の設定
837
-
838
- <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
839
- <!-- einja syncで上書きされません -->
840
- <!-- @einja:seed:end -->
833
+ <!-- @einja:project-private:start id="api-development-project" -->
834
+ <!-- プロジェクト固有の情報を記入 -->
835
+ <!-- @einja:project-private:end -->
@@ -733,11 +733,6 @@ if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma
733
733
  すべての開発者は、この設計原則に従ってバックエンド開発を行ってください。
734
734
  <!-- @einja:managed:end -->
735
735
 
736
- ---
737
-
738
- <!-- @einja:seed:start id="backend-architecture-project" -->
739
- ## プロジェクト固有の設定
740
-
741
- <!-- このセクションはプロジェクト固有の内容を追記する場所です -->
742
- <!-- einja syncで上書きされません -->
743
- <!-- @einja:seed:end -->
736
+ <!-- @einja:project-private:start id="backend-architecture-project" -->
737
+ <!-- プロジェクト固有の情報を記入 -->
738
+ <!-- @einja:project-private:end -->