@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.
- package/README.md +89 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +71 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +187 -13
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/task-loop/lib/github-client.test.js.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js +2 -2
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js.map +1 -1
- package/dist/lib/dependency-checker.d.ts.map +1 -1
- package/dist/lib/merger.d.ts +12 -0
- package/dist/lib/merger.d.ts.map +1 -1
- package/dist/lib/merger.js +28 -0
- package/dist/lib/merger.js.map +1 -1
- package/dist/lib/preset-update/cli-repo-detector.d.ts.map +1 -1
- package/dist/lib/preset-update/file-copier.d.ts.map +1 -1
- package/dist/lib/preset-update/file-copier.js +3 -3
- package/dist/lib/preset-update/file-copier.js.map +1 -1
- package/dist/lib/preset-update/preset-finder.d.ts.map +1 -1
- package/dist/lib/preset.d.ts.map +1 -1
- package/dist/lib/sync/category-validator.d.ts +1 -1
- package/dist/lib/sync/category-validator.d.ts.map +1 -1
- package/dist/lib/sync/category-validator.js +2 -1
- package/dist/lib/sync/category-validator.js.map +1 -1
- package/dist/lib/sync/category-validator.test.js +3 -1
- package/dist/lib/sync/category-validator.test.js.map +1 -1
- package/dist/lib/sync/conflict-reporter.d.ts.map +1 -1
- package/dist/lib/sync/diff-engine.d.ts.map +1 -1
- package/dist/lib/sync/file-filter.d.ts.map +1 -1
- package/dist/lib/sync/file-filter.js +1 -0
- package/dist/lib/sync/file-filter.js.map +1 -1
- package/dist/lib/sync/integration.test.js +255 -69
- package/dist/lib/sync/integration.test.js.map +1 -1
- package/dist/lib/sync/json-processor.d.ts +4 -4
- package/dist/lib/sync/json-processor.d.ts.map +1 -1
- package/dist/lib/sync/json-processor.js +11 -11
- package/dist/lib/sync/json-processor.js.map +1 -1
- package/dist/lib/sync/marker-processor.d.ts +60 -8
- package/dist/lib/sync/marker-processor.d.ts.map +1 -1
- package/dist/lib/sync/marker-processor.js +117 -26
- package/dist/lib/sync/marker-processor.js.map +1 -1
- package/dist/lib/sync/marker-processor.test.js +261 -40
- package/dist/lib/sync/marker-processor.test.js.map +1 -1
- package/dist/lib/sync/metadata-manager.d.ts +4 -0
- package/dist/lib/sync/metadata-manager.d.ts.map +1 -1
- package/dist/lib/sync/metadata-manager.js +15 -0
- package/dist/lib/sync/metadata-manager.js.map +1 -1
- package/dist/lib/sync/metadata-manager.test.js +69 -0
- package/dist/lib/sync/metadata-manager.test.js.map +1 -1
- package/dist/lib/sync/orphan-cleaner.d.ts +29 -0
- package/dist/lib/sync/orphan-cleaner.d.ts.map +1 -0
- package/dist/lib/sync/orphan-cleaner.js +80 -0
- package/dist/lib/sync/orphan-cleaner.js.map +1 -0
- package/dist/lib/sync/orphan-cleaner.test.d.ts +2 -0
- package/dist/lib/sync/orphan-cleaner.test.d.ts.map +1 -0
- package/dist/lib/sync/orphan-cleaner.test.js +169 -0
- package/dist/lib/sync/orphan-cleaner.test.js.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.d.ts +52 -0
- package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.js +110 -0
- package/dist/lib/sync/project-private-synchronizer.js.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.test.d.ts +2 -0
- package/dist/lib/sync/project-private-synchronizer.test.d.ts.map +1 -0
- package/dist/lib/sync/project-private-synchronizer.test.js +348 -0
- package/dist/lib/sync/project-private-synchronizer.test.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/sync.d.ts +36 -6
- package/dist/types/sync.d.ts.map +1 -1
- package/dist/types/sync.js +2 -2
- package/dist/types/sync.js.map +1 -1
- package/package.json +5 -4
- package/presets/default/.claude/agents/einja/Explore.md +140 -0
- package/presets/default/.claude/agents/einja/backend-architect.md +21 -1
- package/presets/default/.claude/agents/einja/codex-agent.md +5 -1
- package/presets/default/.claude/agents/einja/design-engineer.md +5 -1
- package/presets/default/.claude/agents/einja/docs/docs-updater.md +7 -93
- package/presets/default/.claude/agents/einja/frontend-architect.md +21 -1
- package/presets/default/.claude/agents/einja/frontend-coder.md +5 -1
- package/presets/default/.claude/agents/einja/{specs/spec-design-generator.md → issue-specs/design-generator.md} +16 -8
- package/presets/default/.claude/agents/einja/{specs/spec-qa-generator.md → issue-specs/qa-generator.md} +10 -4
- package/presets/default/.claude/agents/einja/{specs/spec-requirements-generator.md → issue-specs/requirements-generator.md} +9 -6
- package/presets/default/.claude/agents/einja/{specs/spec-tasks-generator.md → issue-specs/tasks-generator.md} +19 -16
- package/presets/default/.claude/agents/einja/{specs/spec-tasks-validator.md → issue-specs/tasks-validator.md} +13 -9
- package/presets/default/.claude/agents/einja/issue-specs/ui-design-generator.md +114 -0
- package/presets/default/.claude/agents/einja/task/task-executer.md +64 -116
- package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +6 -2
- package/presets/default/.claude/agents/einja/task/task-qa.md +7 -3
- package/presets/default/.claude/agents/einja/task/task-reviewer.md +17 -1
- package/presets/default/.claude/commands/einja/einja-sync.md +124 -45
- package/presets/default/.claude/commands/einja/frontend-implement.md +3 -1
- package/presets/default/.claude/commands/einja/issue-exec.md +413 -0
- package/presets/default/.claude/commands/einja/start-dev.md +4 -0
- package/presets/default/.claude/commands/einja/sync-cursor-commands.md +10 -6
- package/presets/default/.claude/commands/einja/{update-docs-by-task-specs.md → update-docs-by-issue-specs.md} +61 -57
- package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +27 -0
- package/presets/default/.claude/settings.json +29 -5
- package/presets/default/.claude/skills/{einja-general-context-loader → _einja-general-context-loader}/SKILL.md +6 -2
- package/presets/default/.claude/skills/{einja-output-format → _einja-output-format}/SKILL.md +5 -1
- package/presets/default/.claude/skills/_einja-project-overview/SKILL.md +29 -0
- package/presets/default/.claude/skills/{einja-spec-context-loader → _einja-spec-context-loader}/SKILL.md +9 -5
- package/presets/default/.claude/skills/einja-coding-standards/references/testing-strategy.md +899 -0
- package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +5 -1
- package/presets/default/.claude/skills/einja-create-pr/SKILL.md +138 -0
- package/presets/default/.claude/skills/einja-infra-maintenance/SKILL.md +779 -0
- package/presets/default/.claude/{commands/einja/spec-create.md → skills/einja-issue-spec-create/SKILL.md} +60 -23
- package/presets/default/.claude/skills/einja-issue-spec-generator/SKILL.md +105 -0
- package/presets/default/.claude/skills/einja-issue-spec-generator/references/format-rules.md +35 -0
- package/presets/default/.claude/skills/einja-issue-spec-validator/SKILL.md +130 -0
- package/presets/default/.claude/skills/einja-issue-spec-validator/references/validation-rules.md +52 -0
- package/presets/default/.claude/skills/einja-npm-release/SKILL.md +242 -0
- package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +311 -263
- package/presets/default/.claude/skills/einja-skill-creator/agents/analyzer.md +274 -0
- package/presets/default/.claude/skills/einja-skill-creator/agents/comparator.md +202 -0
- package/presets/default/.claude/skills/einja-skill-creator/agents/grader.md +195 -0
- package/presets/default/.claude/skills/einja-skill-creator/assets/eval_review.html +146 -0
- package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/generate_review.py +471 -0
- package/presets/default/.claude/skills/einja-skill-creator/eval-viewer/viewer.html +1325 -0
- package/presets/default/.claude/skills/einja-skill-creator/references/schemas.md +430 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/compare_runs.py +154 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +272 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +247 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/init_skill.py +13 -19
- package/presets/default/.claude/skills/einja-skill-creator/scripts/package_skill.py +36 -7
- package/presets/default/.claude/skills/einja-skill-creator/scripts/run_eval.py +310 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +375 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/utils.py +48 -0
- package/presets/default/.claude/skills/einja-skill-first/SKILL.md +265 -0
- package/presets/default/.claude/skills/einja-subagent-question-protocol/SKILL.md +98 -0
- package/presets/default/.claude/skills/einja-task-commit/SKILL.md +11 -7
- package/presets/default/.claude/{commands/einja/task-exec.md → skills/einja-task-exec/SKILL.md} +106 -89
- package/presets/default/.claude/skills/einja-task-qa/SKILL.md +8 -4
- package/presets/default/.claude/skills/einja-task-qa/references/troubleshooting.md +1 -1
- package/presets/default/.claude/skills/einja-task-qa/references/usage-patterns.md +2 -2
- package/presets/default/.claude/skills/einja-team-exec/SKILL.md +165 -0
- package/presets/default/.envrc +5 -0
- package/presets/default/.mcp.json +2 -12
- package/presets/default/CLAUDE.md.template +45 -8
- package/presets/default/docs/einja/example/specs/issues/issue999-example-task/tasks.md +1 -1
- package/presets/default/docs/einja/instructions/deployment-setup.md +4 -9
- package/presets/default/docs/einja/instructions/environment-setup.md +3 -8
- package/presets/default/docs/einja/instructions/issue-exec-workflow.md +276 -0
- package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +71 -9
- package/presets/default/docs/einja/instructions/neon-cli-reference.md +3 -8
- package/presets/default/docs/einja/instructions/setup-flow.md +279 -0
- package/presets/default/docs/einja/instructions/task-execute.md +63 -68
- package/presets/default/docs/einja/instructions/vercel-cli-reference.md +17 -10
- package/presets/default/docs/einja/steering/README.md +11 -11
- package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +4 -9
- package/presets/default/docs/einja/steering/architecture.md +3 -8
- package/presets/default/docs/einja/steering/branch-strategy.md +63 -70
- package/presets/default/docs/einja/steering/commit-rules.md +3 -8
- package/presets/default/docs/einja/steering/db-schema-design.md +3 -8
- package/presets/default/docs/einja/steering/development/api-development.md +3 -8
- package/presets/default/docs/einja/steering/development/backend-architecture.md +3 -8
- package/presets/default/docs/einja/steering/development/coding-standards.md +723 -0
- package/presets/default/docs/einja/steering/development/component-design.md +502 -0
- package/presets/default/docs/einja/steering/development/database-guidelines.md +2 -2
- package/presets/default/docs/einja/steering/development/frontend-development.md +3 -8
- package/presets/default/docs/einja/steering/development/playwright-guidelines.md +59 -0
- package/presets/default/docs/einja/steering/development/review-guidelines.md +3 -8
- package/presets/default/docs/einja/steering/development/testing-strategy.md +3 -8
- package/presets/default/docs/einja/steering/development-workflow.md +155 -140
- package/presets/default/docs/einja/steering/infrastructure/deployment.md +156 -55
- package/presets/default/docs/einja/steering/infrastructure/environment-variables.md +4 -8
- package/presets/default/docs/einja/steering/product.md +3 -8
- package/presets/default/docs/einja/steering/task-management.md +22 -110
- package/presets/default/scripts/ensure-serena.sh +75 -0
- package/presets/default/scripts/env-rotate-secrets.ts +396 -0
- package/presets/default/scripts/env-show.ts +130 -0
- package/presets/default/scripts/env.ts +479 -0
- package/presets/default/scripts/init-github.ts +363 -0
- package/presets/default/scripts/init.sh +98 -0
- package/presets/default/scripts/lib/env-common.ts +108 -0
- package/presets/default/scripts/lib/worktree-config.ts +64 -0
- package/presets/default/scripts/setup-dev.ts +655 -0
- package/presets/default/scripts/stop-serena.sh +25 -0
- package/presets/default/scripts/worktree/dev.ts +872 -0
- package/dist/lib/sync/seed-synchronizer.d.ts +0 -27
- package/dist/lib/sync/seed-synchronizer.d.ts.map +0 -1
- package/dist/lib/sync/seed-synchronizer.js +0 -72
- package/dist/lib/sync/seed-synchronizer.js.map +0 -1
- package/dist/lib/sync/seed-synchronizer.test.d.ts +0 -2
- package/dist/lib/sync/seed-synchronizer.test.d.ts.map +0 -1
- package/dist/lib/sync/seed-synchronizer.test.js +0 -147
- package/dist/lib/sync/seed-synchronizer.test.js.map +0 -1
- package/presets/default/.claude/agents/einja/git/conflict-resolver.md +0 -148
- package/presets/default/.claude/hooks/einja/validate-git-commit.sh +0 -239
- package/presets/default/.claude/skills/einja-api-development/SKILL.md +0 -14
- package/presets/default/.claude/skills/einja-backend-architecture/SKILL.md +0 -18
- package/presets/default/.claude/skills/einja-coding-standards/SKILL.md +0 -132
- package/presets/default/.claude/skills/einja-coding-standards/references/import-conventions.md +0 -69
- package/presets/default/.claude/skills/einja-coding-standards/references/naming-conventions.md +0 -107
- package/presets/default/.claude/skills/einja-coding-standards/references/prohibited-patterns.md +0 -169
- package/presets/default/.claude/skills/einja-coding-standards/references/typescript-rules.md +0 -247
- package/presets/default/.claude/skills/einja-component-design/SKILL.md +0 -109
- package/presets/default/.claude/skills/einja-component-design/references/directory-structure.md +0 -117
- package/presets/default/.claude/skills/einja-component-design/references/props-patterns.md +0 -159
- package/presets/default/.claude/skills/einja-component-design/references/styling-guide.md +0 -122
- package/presets/default/.claude/skills/einja-frontend-development/SKILL.md +0 -14
- package/presets/default/.claude/skills/einja-project-overview/SKILL.md +0 -35
- 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
|
-
|
|
11
|
+
仕様書作成(einja-issue-spec-create Skill)
|
|
12
12
|
↓
|
|
13
13
|
仕様書レビュー(Discord + Spec PR)
|
|
14
14
|
↓
|
|
15
|
-
|
|
15
|
+
タスク実行(/einja:issue-exec or einja-task-exec Skill)
|
|
16
16
|
↓
|
|
17
|
-
自己レビュー → PR
|
|
17
|
+
自己レビュー → PR作成(自動)
|
|
18
18
|
↓
|
|
19
19
|
コードレビュー(GitHub PR)
|
|
20
20
|
↓
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
│ Phase A: 仕様書作成 │
|
|
31
31
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
32
32
|
│ │
|
|
33
|
-
│
|
|
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:
|
|
60
|
+
│ Phase B: タスク実行(/einja:issue-exec or einja-task-exec Skill) │
|
|
61
61
|
├─────────────────────────────────────────────────────────────────────────────┤
|
|
62
62
|
│ │
|
|
63
|
-
│
|
|
64
|
-
│ │
|
|
65
|
-
│ pnpm task:loop <issue-number> │
|
|
63
|
+
│ /einja:issue-exec #<issue-number> │
|
|
66
64
|
│ │ │
|
|
67
|
-
│ ├──
|
|
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
|
-
│ │
|
|
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
|
-
│ │
|
|
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
|
-
│
|
|
93
|
+
│ Director: PR マージ検知 → GitHub Issue チェックボックス更新 │
|
|
114
94
|
│ │ │
|
|
115
|
-
│ Phase
|
|
116
|
-
│ ├─ Yes →
|
|
117
|
-
│ │ →
|
|
118
|
-
│ └─ No →
|
|
95
|
+
│ Phase全タスク完了? │
|
|
96
|
+
│ ├─ Yes → Phase PR 作成(Phase → Issue ブランチ) │
|
|
97
|
+
│ │ → マージモードに応じた処理 │
|
|
98
|
+
│ └─ No → 依存解除された次タスクの Worker を起動 │
|
|
119
99
|
│ │ │
|
|
120
100
|
│ └──────────────────────────────────────────────────┘ │
|
|
121
|
-
│ 次のタスクグループを自動開始 │
|
|
122
101
|
│ │
|
|
123
|
-
│
|
|
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
|
-
|
|
135
|
-
|
|
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.
|
|
148
|
-
| 7 | Claude → **人間承認** |
|
|
149
|
-
| 8 | Claude
|
|
150
|
-
| 9 |
|
|
151
|
-
| 10 | **人間** |
|
|
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
|
-
#
|
|
178
|
-
|
|
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
|
-
|
|
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
|
-
|
|
189
|
+
`/einja:issue-exec` は Manager → Director → Worker の3階層でタスクを並列実行します。
|
|
195
190
|
|
|
196
|
-
Phase
|
|
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
|
-
|
|
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
|
-
###
|
|
199
|
+
### `/einja:issue-exec` と `einja-task-exec` Skill の使い分け
|
|
206
200
|
|
|
207
|
-
|
|
|
208
|
-
|
|
209
|
-
|
|
|
210
|
-
|
|
|
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 →
|
|
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
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
│
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
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** |
|
|
264
|
-
| **実装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
|
-
-
|
|
287
|
-
- **
|
|
288
|
-
-
|
|
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作成 |
|
|
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
|
-
|
|
297
|
+
<タスク内容の説明>
|
|
309
298
|
|
|
310
299
|
# AsanaタスクURLから仕様書を作成
|
|
311
|
-
|
|
300
|
+
<AsanaタスクURL>
|
|
312
301
|
|
|
313
302
|
# 既存仕様書のパスを指定して修正
|
|
314
|
-
|
|
303
|
+
<タスク内容> <既存仕様書パス>
|
|
315
304
|
```
|
|
316
305
|
|
|
317
306
|
### タスク実行
|
|
318
307
|
|
|
319
308
|
```bash
|
|
320
|
-
#
|
|
321
|
-
|
|
309
|
+
# Issue全体の並列実行(推奨)
|
|
310
|
+
/einja:issue-exec #<issue_number>
|
|
322
311
|
|
|
323
312
|
# オプション指定
|
|
324
|
-
|
|
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
|
-
|
|
316
|
+
# einja-task-exec Skill を使用: #<issue_number> <task_group_number>
|
|
333
317
|
|
|
334
318
|
# 例
|
|
335
|
-
/einja:
|
|
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
|
-
- [
|
|
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:**
|
|
377
|
-
|
|
378
|
-
|
|
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:
|
|
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 -->
|