@einja/dev-cli 0.1.39 → 0.1.41
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/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/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 +68 -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 +106 -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 +4 -0
- package/presets/default/.claude/agents/einja/codex-agent.md +4 -0
- package/presets/default/.claude/agents/einja/design-engineer.md +4 -0
- package/presets/default/.claude/agents/einja/docs/docs-updater.md +4 -0
- package/presets/default/.claude/agents/einja/frontend-architect.md +4 -0
- package/presets/default/.claude/agents/einja/frontend-coder.md +4 -0
- package/presets/default/.claude/agents/einja/git/conflict-resolver.md +4 -0
- package/presets/default/.claude/agents/einja/specs/spec-design-generator.md +4 -1
- package/presets/default/.claude/agents/einja/specs/spec-qa-generator.md +4 -0
- package/presets/default/.claude/agents/einja/specs/spec-requirements-generator.md +4 -1
- package/presets/default/.claude/agents/einja/specs/spec-tasks-generator.md +6 -2
- package/presets/default/.claude/agents/einja/specs/spec-tasks-validator.md +4 -0
- package/presets/default/.claude/agents/einja/task/task-executer.md +57 -115
- package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +4 -0
- package/presets/default/.claude/agents/einja/task/task-qa.md +4 -0
- package/presets/default/.claude/agents/einja/task/task-reviewer.md +4 -0
- package/presets/default/.claude/commands/einja/einja-sync.md +5 -1
- package/presets/default/.claude/commands/einja/frontend-implement.md +3 -1
- package/presets/default/.claude/commands/einja/issue-exec.md +403 -0
- package/presets/default/.claude/commands/einja/spec-create.md +15 -1
- package/presets/default/.claude/commands/einja/start-dev.md +4 -0
- package/presets/default/.claude/commands/einja/sync-cursor-commands.md +4 -0
- package/presets/default/.claude/commands/einja/task-exec.md +106 -14
- package/presets/default/.claude/commands/einja/update-docs-by-task-specs.md +4 -0
- package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +23 -0
- package/presets/default/.claude/settings.json +15 -1
- package/presets/default/.claude/skills/einja-conflict-resolver/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-general-context-loader/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-output-format/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-project-overview/SKILL.md +7 -3
- package/presets/default/.claude/skills/einja-skill-creator/SKILL.md +266 -274
- 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 +154 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/generate_report.py +265 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +252 -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 +295 -0
- package/presets/default/.claude/skills/einja-skill-creator/scripts/utils.py +48 -0
- package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-task-commit/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-task-qa/SKILL.md +4 -0
- package/presets/default/.envrc +5 -0
- package/presets/default/.mcp.json +2 -12
- package/presets/default/CLAUDE.md.template +26 -4
- package/presets/default/docs/einja/example/specs/issues/issue999-example-task/tasks.md +1 -1
- package/presets/default/docs/einja/instructions/deployment-setup.md +3 -8
- 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 +70 -8
- package/presets/default/docs/einja/instructions/neon-cli-reference.md +3 -8
- package/presets/default/docs/einja/instructions/task-execute.md +23 -28
- 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 +3 -8
- 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 +54 -5
- 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 +71 -124
- package/presets/default/docs/einja/steering/infrastructure/deployment.md +49 -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 +14 -98
- package/presets/default/scripts/ensure-serena.sh +75 -0
- package/presets/default/scripts/env-rotate-secrets.ts +336 -0
- package/presets/default/scripts/env-show.ts +130 -0
- package/presets/default/scripts/env.ts +479 -0
- package/presets/default/scripts/init.sh +92 -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 +640 -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/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/docs/einja/instructions/task-vibe-kanban-loop.md +0 -565
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
↓
|
|
13
13
|
仕様書レビュー(Discord + Spec PR)
|
|
14
14
|
↓
|
|
15
|
-
|
|
15
|
+
タスク実行(/einja:issue-exec or /einja:task-exec)
|
|
16
16
|
↓
|
|
17
|
-
自己レビュー → PR
|
|
17
|
+
自己レビュー → PR作成(自動)
|
|
18
18
|
↓
|
|
19
19
|
コードレビュー(GitHub PR)
|
|
20
20
|
↓
|
|
@@ -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) │
|
|
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
|
-
│ └──
|
|
71
|
-
│ │ │ │
|
|
72
|
-
│ ▼ │ │
|
|
73
|
-
│ ┌─────────────────────────────────────────────────────┐ │ │
|
|
74
|
-
│ │ 着手可能なタスクグループを選定(依存関係考慮) │ │ │
|
|
75
|
-
│ └─────────────────────────────────────────────────────┘ │ │
|
|
67
|
+
│ └── Director(Phase毎)────────────────────────────────┐ │
|
|
76
68
|
│ │ │ │
|
|
77
69
|
│ ▼ │ │
|
|
78
70
|
│ ┌─────────────────────────────────────────────────────┐ │ │
|
|
79
|
-
│ │
|
|
80
|
-
│ │ (Claude Codeが自動起動されて実装開始) │ │ │
|
|
71
|
+
│ │ タスクグループを依存順に Worker を起動 │ │ │
|
|
81
72
|
│ └─────────────────────────────────────────────────────┘ │ │
|
|
82
73
|
│ │ │ │
|
|
83
74
|
│ ▼ │ │
|
|
84
75
|
│ ┌─────────────────────────────────────────────────────┐ │ │
|
|
85
|
-
│ │
|
|
76
|
+
│ │ Worker(/einja:task-exec を実行) │ │ │
|
|
86
77
|
│ │ │ │ │
|
|
87
78
|
│ │ task-executer: 実装 │ │ │
|
|
88
79
|
│ │ ↓ │ │ │
|
|
@@ -90,37 +81,25 @@
|
|
|
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 ブランチ) │
|
|
124
103
|
│ │
|
|
125
104
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|
126
105
|
```
|
|
@@ -174,42 +153,35 @@ Spec PR # 仕様書レビュー用
|
|
|
174
153
|
### コマンド
|
|
175
154
|
|
|
176
155
|
```bash
|
|
177
|
-
#
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
#
|
|
181
|
-
|
|
182
|
-
|
|
156
|
+
# Issue全体の並列実行(推奨:複数Phase・複数タスクグループの場合)
|
|
157
|
+
/einja:issue-exec #123
|
|
158
|
+
/einja:issue-exec #123 --merge-mode task-group-auto # タスクPR自動マージ
|
|
159
|
+
/einja:issue-exec #123 --merge-mode auto # 全自動
|
|
160
|
+
/einja:issue-exec #123 --max-phase 2 # Phase 2 まで
|
|
161
|
+
/einja:issue-exec #123 --base develop # ベースブランチ指定
|
|
183
162
|
|
|
184
|
-
|
|
185
|
-
|
|
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 ブランチベースで実行
|
|
163
|
+
# 単一タスクグループ実行(品質重視・複雑な実装向け)
|
|
164
|
+
/einja:task-exec #123 1.1 # Issue #123 のタスクグループ 1.1 を実行
|
|
190
165
|
```
|
|
191
166
|
|
|
192
|
-
###
|
|
167
|
+
### 実行後の流れ(/einja:issue-exec)
|
|
193
168
|
|
|
194
|
-
|
|
169
|
+
`/einja:issue-exec` は Manager → Director → Worker の3階層でタスクを並列実行します。
|
|
195
170
|
|
|
196
|
-
Phase
|
|
171
|
+
1. **Manager** が Issue をパースし、Phase 毎に Director を tmux で起動
|
|
172
|
+
2. **Director** が Phase 内のタスクグループを依存順に Worker を起動
|
|
173
|
+
3. **Worker** が `/einja:task-exec` を実行(executer → reviewer → qa → commit)
|
|
174
|
+
4. Worker 完了後、PR が自動作成される
|
|
175
|
+
5. マージモードに応じて PR がマージされ、次のタスクが自動開始
|
|
197
176
|
|
|
198
|
-
|
|
199
|
-
2. **In Reviewになったら自己レビュー** - 実装内容を確認
|
|
200
|
-
3. **OKなら「Create PR」ボタンをクリック** - PRが自動作成される
|
|
201
|
-
4. **GitHubでチームレビュー** - コード確認・承認
|
|
202
|
-
5. **GitHub側でPRをマージ** - ⚠️ 必ずGitHub側で操作
|
|
203
|
-
6. **次のタスクが自動開始** - マージ検知で自動的に次へ(少しラグあり)
|
|
177
|
+
ユーザーは `tmux attach -t einja-{issue番号}` で全プロセスを監視できます。
|
|
204
178
|
|
|
205
|
-
###
|
|
179
|
+
### `/einja:issue-exec` と `/einja:task-exec` の使い分け
|
|
206
180
|
|
|
207
|
-
|
|
|
208
|
-
|
|
209
|
-
|
|
|
210
|
-
|
|
|
211
|
-
| **レビュー** | PR 作成後 | GitHub で PR の内容を確認 |
|
|
212
|
-
| **マージ** | レビュー完了後 | GitHub で PR をマージ(⚠️ 必ず GitHub 側で操作) |
|
|
181
|
+
| コマンド | 用途 | 対象 | 推奨シーン |
|
|
182
|
+
|---------|------|------|----------|
|
|
183
|
+
| **`/einja:issue-exec`** | Issue全体の並列実行 | 複数Phase・複数タスクグループ | 大規模機能実装 |
|
|
184
|
+
| **`/einja:task-exec`** | 単一タスクグループの確実な完了 | 1つのタスクグループ | 複雑な実装、品質重視 |
|
|
213
185
|
|
|
214
186
|
### サブエージェントの役割
|
|
215
187
|
|
|
@@ -224,32 +196,27 @@ Phase毎に親Issueが自動作成され、タスクグループはサブIssue
|
|
|
224
196
|
`task-reviewer`または`task-qa`で問題が発見された場合、自動的に`task-executer`に戻って修正が行われます。
|
|
225
197
|
|
|
226
198
|
```
|
|
227
|
-
task-executer → task-reviewer → task-qa →
|
|
199
|
+
task-executer → task-reviewer → task-qa → PR作成
|
|
228
200
|
↑ │ │
|
|
229
201
|
└──────────────┴──────────────┘
|
|
230
202
|
問題発見時は自動ループ
|
|
231
203
|
```
|
|
232
204
|
|
|
233
|
-
###
|
|
205
|
+
### マージ後の自動処理(/einja:issue-exec 使用時)
|
|
234
206
|
|
|
235
207
|
```
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
│
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
│ │ → 親Issue自動Done(タイムアウト2分) │
|
|
249
|
-
│ └─ No → スキップ │
|
|
250
|
-
│ ↓ │
|
|
251
|
-
│ 次のタスクが自動開始 │
|
|
252
|
-
└─────────────────────────────────────────────────────────────┘
|
|
208
|
+
Worker: task-exec 完了 → commit & push → PR 作成
|
|
209
|
+
↓
|
|
210
|
+
Director: PR マージ検知
|
|
211
|
+
↓
|
|
212
|
+
GitHub Issue チェックボックス更新
|
|
213
|
+
↓
|
|
214
|
+
Phase 全タスク完了?
|
|
215
|
+
├─ Yes → Phase PR 作成(Phase → Issue ブランチ)
|
|
216
|
+
│ → マージモードに応じた処理
|
|
217
|
+
└─ No → 依存解除された次タスクの Worker を起動
|
|
218
|
+
↓
|
|
219
|
+
全 Phase 完了 → 最終 PR 作成(Issue → base ブランチ)
|
|
253
220
|
```
|
|
254
221
|
|
|
255
222
|
---
|
|
@@ -261,7 +228,7 @@ task-executer → task-reviewer → task-qa → In Review
|
|
|
261
228
|
| PRの種類 | 作成タイミング | 内容 | レビュー観点 |
|
|
262
229
|
| ----------- | -------------------- | -------------------------- | ---------------------------------------------- |
|
|
263
230
|
| **Spec PR** | `/einja:spec-create`完了時 | requirements.md, design.md | 要件の妥当性、設計の適切さ、スコープの確認 |
|
|
264
|
-
| **実装PR** | タスクグループ完了時(
|
|
231
|
+
| **実装PR** | タスクグループ完了時(Worker が自動作成) | ソースコード、テスト | コード品質、設計書との整合性、テストカバレッジ |
|
|
265
232
|
|
|
266
233
|
### なぜ2段階でPRを作成するのか
|
|
267
234
|
|
|
@@ -283,9 +250,9 @@ task-executer → task-reviewer → task-qa → In Review
|
|
|
283
250
|
|
|
284
251
|
### タスク実行フェーズ
|
|
285
252
|
|
|
286
|
-
-
|
|
287
|
-
- **
|
|
288
|
-
-
|
|
253
|
+
- **PRレビュー**: Worker が自動作成した PR の内容を確認
|
|
254
|
+
- **PRマージ**: マージモードが manual の場合、GitHub で PR をマージ
|
|
255
|
+
- **質問回答**: Manager から AskUserQuestion でエスカレーションされた質問に回答
|
|
289
256
|
|
|
290
257
|
### Claudeのセルフチェックについて
|
|
291
258
|
|
|
@@ -294,7 +261,7 @@ task-executer → task-reviewer → task-qa → In Review
|
|
|
294
261
|
| 従来(人間が実装) | 現在(Claudeが実装) |
|
|
295
262
|
|------------------|-------------------|
|
|
296
263
|
| 実装者がセルフチェック | `task-reviewer` + `task-qa` がセルフチェック |
|
|
297
|
-
| セルフチェック後にPR作成 |
|
|
264
|
+
| セルフチェック後にPR作成 | セルフチェック後に自動でPR作成 |
|
|
298
265
|
| 他のエンジニアがPRレビュー | 人間(担当者 + 他エンジニア)がPRレビュー |
|
|
299
266
|
|
|
300
267
|
---
|
|
@@ -317,37 +284,27 @@ task-executer → task-reviewer → task-qa → In Review
|
|
|
317
284
|
### タスク実行
|
|
318
285
|
|
|
319
286
|
```bash
|
|
320
|
-
#
|
|
321
|
-
|
|
287
|
+
# Issue全体の並列実行(推奨)
|
|
288
|
+
/einja:issue-exec #<issue_number>
|
|
322
289
|
|
|
323
290
|
# オプション指定
|
|
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 まで実行
|
|
291
|
+
/einja:issue-exec #<issue_number> --merge-mode auto --max-phase 2
|
|
330
292
|
|
|
331
293
|
# 単一タスクグループ実行(品質重視・複雑な実装向け)
|
|
332
294
|
/einja:task-exec #<issue_number> <task_group_number>
|
|
333
295
|
|
|
334
296
|
# 例
|
|
335
|
-
/einja:
|
|
297
|
+
/einja:issue-exec #123 # Issue #123 の全タスクを並列実行
|
|
298
|
+
/einja:issue-exec #123 --merge-mode task-group-auto # タスクPR自動マージ
|
|
299
|
+
/einja:task-exec #123 1.1 # タスクグループ 1.1 を単発実行
|
|
336
300
|
```
|
|
337
301
|
|
|
338
|
-
### `/einja:task-exec` と `pnpm task:loop` の使い分け
|
|
339
|
-
|
|
340
|
-
| コマンド | 用途 | 品質保証 | 推奨シーン |
|
|
341
|
-
|---------|------|---------|----------|
|
|
342
|
-
| **`/einja:task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
|
|
343
|
-
| **`pnpm task:loop`** | 大量タスクの自動消化 | 並列実行・監視 | 定型作業、並行開発 |
|
|
344
|
-
|
|
345
302
|
---
|
|
346
303
|
|
|
347
304
|
## 関連ドキュメント
|
|
348
305
|
|
|
349
306
|
- [タスク管理ガイドライン](task-management.md) - タスク階層、粒度基準、GitHub Issue管理
|
|
350
|
-
- [
|
|
307
|
+
- [Issue実行ワークフロー](../instructions/issue-exec-workflow.md) - Issue実行の詳細な使い方
|
|
351
308
|
- [ブランチ戦略](branch-strategy.md) - ブランチ運用ルール
|
|
352
309
|
- [コードレビューガイドライン](development/review-guidelines.md) - 品質基準とチェックリスト
|
|
353
310
|
|
|
@@ -373,15 +330,10 @@ pnpm task:loop 123 --max-group 4.2 # タスクグループ 4.2 まで実
|
|
|
373
330
|
|
|
374
331
|
### Q: PRのマージはどこで行いますか?
|
|
375
332
|
|
|
376
|
-
**A:**
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
**A:**
|
|
381
|
-
1. Vibe-Kanbanで「Create PR」をクリックしてPRを作成
|
|
382
|
-
2. GitHubでPRをレビュー・マージ
|
|
383
|
-
|
|
384
|
-
PRがマージされるとタスクは自動的にDoneになります。
|
|
333
|
+
**A:** マージモードによって異なります:
|
|
334
|
+
- **manual**(デフォルト): GitHub側で手動マージしてください。Director がマージを検知して次のタスクを開始します。
|
|
335
|
+
- **task-group-auto**: タスクグループPRは自動マージされます。Phase PRは手動マージです。
|
|
336
|
+
- **auto**: タスクPR・Phase PRが自動マージされます。最終PR(issue→base)は常に手動マージです。
|
|
385
337
|
|
|
386
338
|
---
|
|
387
339
|
|
|
@@ -444,11 +396,6 @@ PRがマージされるとタスクは自動的にDoneになります。
|
|
|
444
396
|
```
|
|
445
397
|
<!-- @einja:managed:end -->
|
|
446
398
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
<!-- @einja:
|
|
450
|
-
## プロジェクト固有の設定
|
|
451
|
-
|
|
452
|
-
<!-- このセクションはプロジェクト固有の内容を追記する場所です -->
|
|
453
|
-
<!-- einja syncで上書きされません -->
|
|
454
|
-
<!-- @einja:seed:end -->
|
|
399
|
+
<!-- @einja:project-private:start id="development-workflow-project" -->
|
|
400
|
+
<!-- プロジェクト固有の情報を記入 -->
|
|
401
|
+
<!-- @einja:project-private:end -->
|
|
@@ -155,7 +155,7 @@ graph LR
|
|
|
155
155
|
|
|
156
156
|
| ワークフロー | ファイル | トリガー | 用途 |
|
|
157
157
|
|------------|---------|---------|------|
|
|
158
|
-
| **Deploy Stable** | `deploy-stable-branches.yml` | push to main/develop/staging | CI →
|
|
158
|
+
| **Deploy Stable** | `deploy-stable-branches.yml` | push to main/develop/staging | CI → 動的マトリクス → 変更アプリのみデプロイ(`--env`実行時注入) |
|
|
159
159
|
| **PR Preview** | `deploy-pr-preview.yml` | PR opened/sync/closed | CI → Neonブランチ作成 → プレビューデプロイ |
|
|
160
160
|
| **PR Close Cleanup** | `cleanup-pr-preview-on-close.yml` | PR closed | Neonブランチの即座削除(PR close時) |
|
|
161
161
|
| **Cleanup DB** | `cleanup-pr-preview-db.yml` | 毎日00:00 UTC / 手動 | 孤立したNeonブランチ削除 |
|
|
@@ -185,8 +185,7 @@ flowchart TB
|
|
|
185
185
|
end
|
|
186
186
|
|
|
187
187
|
subgraph "migrate/action.yml"
|
|
188
|
-
M1[setup action 呼び出し] -->
|
|
189
|
-
M2 --> M3[db:migrate:deploy]
|
|
188
|
+
M1[setup action 呼び出し] --> M3[db:migrate:deploy]
|
|
190
189
|
M3 --> M4{run-seed?}
|
|
191
190
|
M4 -->|true| M5[db:seed]
|
|
192
191
|
M4 -->|false| M6[完了]
|
|
@@ -201,7 +200,7 @@ flowchart TB
|
|
|
201
200
|
|--------|---------|------|-----------|
|
|
202
201
|
| **Setup** | `actions/setup/action.yml` | pnpm + Node.js + install | ci action, migrate action, cleanup |
|
|
203
202
|
| **CI** | `actions/ci/action.yml` | setup → generate → [migrate] → typecheck → lint → test | deploy-stable-branches, deploy-pr-preview |
|
|
204
|
-
| **Migrate** | `actions/migrate/action.yml` | setup →
|
|
203
|
+
| **Migrate** | `actions/migrate/action.yml` | setup → migrate → seed (optional) | deploy-stable-branches |
|
|
205
204
|
| **Neon Export Env** | `actions/neon-export-env/action.yml` | .env.previewからNeon環境変数をエクスポート | deploy-pr-preview, cleanup-pr-preview-on-close |
|
|
206
205
|
|
|
207
206
|
### 実行マトリクス
|
|
@@ -258,9 +257,8 @@ sequenceDiagram
|
|
|
258
257
|
rect rgb(240, 255, 240)
|
|
259
258
|
Note over Actions,Vercel: Vercel デプロイ
|
|
260
259
|
Actions->>Vercel: vercel pull
|
|
261
|
-
Actions->>Vercel: 環境変数同期 (encrypted-only)
|
|
262
260
|
Actions->>Vercel: vercel build (DATABASE_URL=pooled)
|
|
263
|
-
Actions->>Vercel: vercel deploy --prebuilt
|
|
261
|
+
Actions->>Vercel: vercel deploy --prebuilt --env(全encrypted変数を実行時注入)
|
|
264
262
|
Vercel-->>Actions: Preview URL
|
|
265
263
|
end
|
|
266
264
|
|
|
@@ -308,10 +306,12 @@ sequenceDiagram
|
|
|
308
306
|
rect rgb(240, 255, 240)
|
|
309
307
|
Note over Actions,Vercel: Vercel デプロイ
|
|
310
308
|
Actions->>Vercel: vercel pull
|
|
311
|
-
|
|
312
|
-
|
|
309
|
+
alt mainブランチのみ
|
|
310
|
+
Actions->>Vercel: 環境変数同期 (encrypted-only, vercel env add)
|
|
311
|
+
Actions->>Vercel: vercel pull (Re-pull: 同期後の最新化)
|
|
312
|
+
end
|
|
313
313
|
Actions->>Vercel: vercel build [--prod]
|
|
314
|
-
Actions->>Vercel: vercel deploy --prebuilt [--prod]
|
|
314
|
+
Actions->>Vercel: vercel deploy --prebuilt --env [--prod](全encrypted変数を実行時注入)
|
|
315
315
|
Vercel-->>Actions: Deploy URL
|
|
316
316
|
end
|
|
317
317
|
|
|
@@ -383,15 +383,15 @@ sequenceDiagram
|
|
|
383
383
|
```mermaid
|
|
384
384
|
flowchart TD
|
|
385
385
|
A[git push main] --> B[deploy-stable-branches.yml]
|
|
386
|
-
B --> C[CI Checks]
|
|
387
|
-
C --> D{
|
|
386
|
+
B --> C[CI Checks + 変更検知]
|
|
387
|
+
C --> D{成功 & 変更あり?}
|
|
388
388
|
D -->|Yes| E[dotenvx復号化]
|
|
389
|
-
D -->|No| X[
|
|
389
|
+
D -->|No| X[スキップ]
|
|
390
390
|
E --> F[Vercel Pull]
|
|
391
|
-
F --> G[環境変数同期]
|
|
391
|
+
F --> G[環境変数同期 vercel env add]
|
|
392
392
|
G --> H[DB Migrate]
|
|
393
393
|
H --> I[Vercel Build]
|
|
394
|
-
I --> J[Vercel Deploy --prod]
|
|
394
|
+
I --> J[Vercel Deploy --prod --env]
|
|
395
395
|
J --> K[完了]
|
|
396
396
|
|
|
397
397
|
style A fill:#4CAF50
|
|
@@ -413,19 +413,18 @@ flowchart TD
|
|
|
413
413
|
```mermaid
|
|
414
414
|
flowchart TD
|
|
415
415
|
A[git push develop] --> B[deploy-stable-branches.yml]
|
|
416
|
-
B --> C[CI Checks]
|
|
417
|
-
C --> D{
|
|
416
|
+
B --> C[CI Checks + 変更検知]
|
|
417
|
+
C --> D{成功 & 変更あり?}
|
|
418
418
|
D -->|Yes| E[dotenvx復号化]
|
|
419
|
-
D -->|No| X[
|
|
419
|
+
D -->|No| X[スキップ]
|
|
420
420
|
E --> F[Vercel Pull]
|
|
421
|
-
F --> G[
|
|
422
|
-
G --> H[Vercel
|
|
423
|
-
H --> I[
|
|
424
|
-
I --> J[
|
|
425
|
-
J --> K[完了]
|
|
421
|
+
F --> G[Vercel Build]
|
|
422
|
+
G --> H[Vercel Deploy --env]
|
|
423
|
+
H --> I[Alias設定]
|
|
424
|
+
I --> J[完了]
|
|
426
425
|
|
|
427
426
|
style A fill:#2196F3
|
|
428
|
-
style
|
|
427
|
+
style J fill:#2196F3
|
|
429
428
|
```
|
|
430
429
|
|
|
431
430
|
**設定**:
|
|
@@ -434,7 +433,7 @@ flowchart TD
|
|
|
434
433
|
- 復号鍵: `DOTENV_PRIVATE_KEY_DEVELOP`
|
|
435
434
|
- DBマイグレーション: ❌(PR PreviewのNeonブランチで自動同期)
|
|
436
435
|
- DBシード: ❌
|
|
437
|
-
- Alias:
|
|
436
|
+
- Alias: `.env.develop` 内の `VERCEL_ALIAS_DOMAIN_WEB` / `VERCEL_ALIAS_DOMAIN_ADMIN`(dotenvx復号で取得)
|
|
438
437
|
|
|
439
438
|
---
|
|
440
439
|
|
|
@@ -443,20 +442,19 @@ flowchart TD
|
|
|
443
442
|
```mermaid
|
|
444
443
|
flowchart TD
|
|
445
444
|
A[git push staging] --> B[deploy-stable-branches.yml]
|
|
446
|
-
B --> C[CI Checks]
|
|
447
|
-
C --> D{
|
|
445
|
+
B --> C[CI Checks + 変更検知]
|
|
446
|
+
C --> D{成功 & 変更あり?}
|
|
448
447
|
D -->|Yes| E[dotenvx復号化]
|
|
449
|
-
D -->|No| X[
|
|
448
|
+
D -->|No| X[スキップ]
|
|
450
449
|
E --> F[Vercel Pull]
|
|
451
|
-
F --> G[
|
|
452
|
-
G --> H[
|
|
453
|
-
H --> I[Vercel
|
|
454
|
-
I --> J[
|
|
455
|
-
J --> K[
|
|
456
|
-
K --> L[完了]
|
|
450
|
+
F --> G[DB Migrate]
|
|
451
|
+
G --> H[Vercel Build]
|
|
452
|
+
H --> I[Vercel Deploy --env]
|
|
453
|
+
I --> J[Alias設定]
|
|
454
|
+
J --> K[完了]
|
|
457
455
|
|
|
458
456
|
style A fill:#FF9800
|
|
459
|
-
style
|
|
457
|
+
style K fill:#FF9800
|
|
460
458
|
```
|
|
461
459
|
|
|
462
460
|
**設定**:
|
|
@@ -465,7 +463,7 @@ flowchart TD
|
|
|
465
463
|
- 復号鍵: `DOTENV_PRIVATE_KEY_STAGING`
|
|
466
464
|
- DBマイグレーション: ✅
|
|
467
465
|
- DBシード: ❌(既存データ保持)
|
|
468
|
-
- Alias:
|
|
466
|
+
- Alias: `.env.staging` 内の `VERCEL_ALIAS_DOMAIN_WEB` / `VERCEL_ALIAS_DOMAIN_ADMIN`(dotenvx復号で取得)
|
|
469
467
|
|
|
470
468
|
---
|
|
471
469
|
|
|
@@ -506,12 +504,12 @@ flowchart TD
|
|
|
506
504
|
|
|
507
505
|
> **⚠️ 同時PR運用時の注意**
|
|
508
506
|
>
|
|
509
|
-
> テンプレートでは`vercel deploy --env
|
|
510
|
-
> DATABASE_URL
|
|
511
|
-
>
|
|
507
|
+
> テンプレートでは`vercel deploy --env KEY=VALUE`でデプロイ単位で
|
|
508
|
+
> 全encrypted環境変数(DATABASE_URL含む)を実行時注入しています。
|
|
509
|
+
> これにより、同時に複数のPRがプレビューデプロイされても、
|
|
510
|
+
> それぞれのPRが固有のNeonブランチDBを参照し、環境変数の競合が発生しません。
|
|
512
511
|
>
|
|
513
|
-
>
|
|
514
|
-
> preview環境変数が上書きされ、同時PRで競合するリスクがあります。
|
|
512
|
+
> PR環境では`vercel env add`は使用しません(並行PR間の競合を防ぐため)。
|
|
515
513
|
|
|
516
514
|
---
|
|
517
515
|
|
|
@@ -520,20 +518,21 @@ flowchart TD
|
|
|
520
518
|
| 環境 | ブランチ | Vercel環境 | DBマイグ | シード | Alias | 暗号化ファイル | 復号鍵 |
|
|
521
519
|
|------|---------|-----------|:-------:|:-----:|:-----:|--------------|--------|
|
|
522
520
|
| Production | main | production | ✅ | ❌ | ❌ | `.env.production` | `DOTENV_PRIVATE_KEY_PRODUCTION` |
|
|
523
|
-
| Develop | develop | preview | ❌ | ❌ | ✅ | `.env.develop` | `DOTENV_PRIVATE_KEY_DEVELOP` |
|
|
524
|
-
| Staging | staging | preview | ✅ | ❌ | ✅ | `.env.staging` | `DOTENV_PRIVATE_KEY_STAGING` |
|
|
521
|
+
| Develop | develop | preview | ❌ | ❌ | ✅ `VERCEL_ALIAS_DOMAIN_*` | `.env.develop` | `DOTENV_PRIVATE_KEY_DEVELOP` |
|
|
522
|
+
| Staging | staging | preview | ✅ | ❌ | ✅ `VERCEL_ALIAS_DOMAIN_*` | `.env.staging` | `DOTENV_PRIVATE_KEY_STAGING` |
|
|
525
523
|
| PR Preview | feature/* | preview | ✅ | ✅ | ❌ | `.env.preview` | `DOTENV_PRIVATE_KEY_PREVIEW` |
|
|
526
524
|
|
|
527
525
|
### Vercel環境変数の自動同期
|
|
528
526
|
|
|
529
527
|
ワークフローは **encrypted-only方式** で同期対象を制御:
|
|
530
528
|
|
|
531
|
-
| ワークフロー | 同期対象 | 除外 | 説明 |
|
|
532
|
-
|
|
533
|
-
| PR Preview | `.env.preview` 内の `encrypted:` キー | `NEON_*`, `
|
|
534
|
-
| Stable
|
|
529
|
+
| ワークフロー | 方式 | 同期対象 | 除外 | 説明 |
|
|
530
|
+
|------------|------|---------|------|------|
|
|
531
|
+
| PR Preview | `--env`実行時注入 | `.env.preview` 内の `encrypted:` キー | `NEON_*`, `DOTENV_PUBLIC_KEY_*` | `vercel env add`は使用しない(並行PR競合防止) |
|
|
532
|
+
| Stable (main) | `vercel env add` + `--env`実行時注入 | `.env.production` 内の `encrypted:` キー | `NEON_*` | mainのみVercel環境変数ストアに同期 |
|
|
533
|
+
| Stable (develop/staging) | `--env`実行時注入 | `.env.{env}` 内の `encrypted:` キー | `NEON_*`, `VERCEL_ALIAS_DOMAIN_*`, `DOTENV_PUBLIC_KEY_*` | `vercel env add`は使用しない |
|
|
535
534
|
|
|
536
|
-
**設計意図**:
|
|
535
|
+
**設計意図**: `vercel env add`によるVercel環境変数ストアへの書き込みはmainブランチのみに限定。develop/staging/PRは`vercel deploy --env`による実行時注入で環境変数を渡し、並行デプロイ間の競合を防止する。
|
|
537
536
|
|
|
538
537
|
---
|
|
539
538
|
|
|
@@ -688,11 +687,6 @@ sequenceDiagram
|
|
|
688
687
|
- [Vercel CLI/APIリファレンス](../../instructions/vercel-cli-reference.md)
|
|
689
688
|
<!-- @einja:managed:end -->
|
|
690
689
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
<!-- @einja:
|
|
694
|
-
## プロジェクト固有の設定
|
|
695
|
-
|
|
696
|
-
<!-- このセクションはプロジェクト固有の内容を追記する場所です -->
|
|
697
|
-
<!-- einja syncで上書きされません -->
|
|
698
|
-
<!-- @einja:seed:end -->
|
|
690
|
+
<!-- @einja:project-private:start id="deployment-project" -->
|
|
691
|
+
<!-- プロジェクト固有の情報を記入 -->
|
|
692
|
+
<!-- @einja:project-private:end -->
|
|
@@ -279,6 +279,7 @@ dotenvx採用により、GitHub Secretsは**環境ごとに1つの秘密鍵の
|
|
|
279
279
|
|
|
280
280
|
| Secret名 | 用途 |
|
|
281
281
|
|---------|------|
|
|
282
|
+
| `DOTENV_PRIVATE_KEY_DEVELOP` | dev検証環境の復号 |
|
|
282
283
|
| `DOTENV_PRIVATE_KEY_STAGING` | ステージング環境の復号 |
|
|
283
284
|
| `DOTENV_PRIVATE_KEY_PREVIEW` | Preview環境の復号(Neon環境変数含む) |
|
|
284
285
|
| `DOTENV_PRIVATE_KEY_PRODUCTION` | 本番デプロイ時の復号 |
|
|
@@ -302,11 +303,6 @@ dotenvx採用により、GitHub Secretsは**環境ごとに1つの秘密鍵の
|
|
|
302
303
|
- [デプロイセットアップ手順](../../instructions/deployment-setup.md)
|
|
303
304
|
<!-- @einja:managed:end -->
|
|
304
305
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
<!-- @einja:
|
|
308
|
-
## プロジェクト固有の設定
|
|
309
|
-
|
|
310
|
-
<!-- このセクションはプロジェクト固有の内容を追記する場所です -->
|
|
311
|
-
<!-- einja syncで上書きされません -->
|
|
312
|
-
<!-- @einja:seed:end -->
|
|
306
|
+
<!-- @einja:project-private:start id="environment-variables-project" -->
|
|
307
|
+
<!-- プロジェクト固有の情報を記入 -->
|
|
308
|
+
<!-- @einja:project-private:end -->
|
|
@@ -541,11 +541,6 @@ describe('UserRepository', () => {
|
|
|
541
541
|
すべての開発活動は、このビジョンと原則に従って実施してください。
|
|
542
542
|
<!-- @einja:managed:end -->
|
|
543
543
|
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
<!-- @einja:
|
|
547
|
-
## プロジェクト固有の設定
|
|
548
|
-
|
|
549
|
-
<!-- このセクションはプロジェクト固有の内容を追記する場所です -->
|
|
550
|
-
<!-- einja syncで上書きされません -->
|
|
551
|
-
<!-- @einja:seed:end -->
|
|
544
|
+
<!-- @einja:project-private:start id="product-project" -->
|
|
545
|
+
<!-- プロジェクト固有の情報を記入 -->
|
|
546
|
+
<!-- @einja:project-private:end -->
|