@einja/dev-cli 0.1.41 → 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/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/preset-update/file-copier.js +3 -3
- package/dist/lib/preset-update/file-copier.js.map +1 -1
- package/dist/lib/sync/marker-processor.js.map +1 -1
- package/dist/lib/sync/metadata-manager.js +1 -1
- package/dist/lib/sync/metadata-manager.js.map +1 -1
- package/dist/lib/sync/metadata-manager.test.js +3 -2
- package/dist/lib/sync/metadata-manager.test.js.map +1 -1
- package/dist/lib/sync/project-private-synchronizer.d.ts.map +1 -1
- package/dist/lib/sync/project-private-synchronizer.js +5 -1
- package/dist/lib/sync/project-private-synchronizer.js.map +1 -1
- package/package.json +1 -1
- package/presets/default/.claude/agents/einja/backend-architect.md +17 -1
- package/presets/default/.claude/agents/einja/codex-agent.md +1 -1
- package/presets/default/.claude/agents/einja/design-engineer.md +1 -1
- package/presets/default/.claude/agents/einja/docs/docs-updater.md +3 -93
- package/presets/default/.claude/agents/einja/frontend-architect.md +17 -1
- package/presets/default/.claude/agents/einja/frontend-coder.md +1 -1
- package/presets/default/.claude/agents/einja/{specs/spec-design-generator.md → issue-specs/design-generator.md} +12 -7
- package/presets/default/.claude/agents/einja/{specs/spec-qa-generator.md → issue-specs/qa-generator.md} +6 -4
- package/presets/default/.claude/agents/einja/{specs/spec-requirements-generator.md → issue-specs/requirements-generator.md} +5 -5
- package/presets/default/.claude/agents/einja/{specs/spec-tasks-generator.md → issue-specs/tasks-generator.md} +13 -14
- package/presets/default/.claude/agents/einja/{specs/spec-tasks-validator.md → issue-specs/tasks-validator.md} +9 -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 +9 -3
- package/presets/default/.claude/agents/einja/task/task-modification-analyzer.md +2 -2
- package/presets/default/.claude/agents/einja/task/task-qa.md +3 -3
- package/presets/default/.claude/agents/einja/task/task-reviewer.md +13 -1
- package/presets/default/.claude/commands/einja/einja-sync.md +119 -44
- package/presets/default/.claude/commands/einja/issue-exec.md +29 -19
- package/presets/default/.claude/commands/einja/sync-cursor-commands.md +6 -6
- package/presets/default/.claude/commands/einja/{update-docs-by-task-specs.md → update-docs-by-issue-specs.md} +58 -58
- package/presets/default/.claude/hooks/einja/plan-mode-skill-loader.sh +5 -1
- package/presets/default/.claude/settings.json +14 -4
- package/presets/default/.claude/skills/{einja-general-context-loader → _einja-general-context-loader}/SKILL.md +2 -2
- package/presets/default/.claude/skills/{einja-output-format → _einja-output-format}/SKILL.md +1 -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 +5 -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 +1 -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} +47 -24
- 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 +68 -12
- package/presets/default/.claude/skills/einja-skill-creator/scripts/aggregate_benchmark.py +368 -121
- 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 +14 -7
- package/presets/default/.claude/skills/einja-skill-creator/scripts/improve_description.py +2 -7
- package/presets/default/.claude/skills/einja-skill-creator/scripts/run_loop.py +263 -183
- 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 +7 -7
- package/presets/default/.claude/{commands/einja/task-exec.md → skills/einja-task-exec/SKILL.md} +3 -78
- package/presets/default/.claude/skills/einja-task-qa/SKILL.md +4 -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/CLAUDE.md.template +21 -6
- package/presets/default/docs/einja/instructions/deployment-setup.md +1 -1
- package/presets/default/docs/einja/instructions/issue-exec-workflow.md +11 -11
- package/presets/default/docs/einja/instructions/local-server-environment-and-worktree.md +1 -1
- package/presets/default/docs/einja/instructions/setup-flow.md +279 -0
- package/presets/default/docs/einja/instructions/task-execute.md +42 -42
- package/presets/default/docs/einja/steering/acceptance-criteria-and-qa-guide.md +1 -1
- package/presets/default/docs/einja/steering/branch-strategy.md +1 -1
- package/presets/default/docs/einja/steering/development-workflow.md +93 -25
- package/presets/default/docs/einja/steering/infrastructure/deployment.md +107 -0
- package/presets/default/docs/einja/steering/task-management.md +9 -13
- package/presets/default/scripts/ensure-serena.sh +2 -2
- package/presets/default/scripts/env-rotate-secrets.ts +66 -6
- package/presets/default/scripts/init-github.ts +363 -0
- package/presets/default/scripts/init.sh +11 -5
- package/presets/default/scripts/setup-dev.ts +16 -1
- package/presets/default/.claude/agents/einja/git/conflict-resolver.md +0 -152
- package/presets/default/.claude/hooks/einja/validate-git-commit.sh +0 -239
- package/presets/default/.claude/skills/einja-project-overview/SKILL.md +0 -39
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "PR作成時にchangeset自動生成 + ラベル付与 + PR作成を一括実行するSkill。task-exec/issue-exec経由では自動モード、手動 /einja-create-pr では対話モードで動作"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# einja-create-pr Skill
|
|
6
|
+
|
|
7
|
+
## 概要
|
|
8
|
+
|
|
9
|
+
PR作成時に以下を一括実行する:
|
|
10
|
+
1. changeset自動生成(必要な場合)
|
|
11
|
+
2. ラベル判定・付与
|
|
12
|
+
3. PR作成(`gh pr create`)
|
|
13
|
+
|
|
14
|
+
## 動作モード
|
|
15
|
+
|
|
16
|
+
| モード | トリガー | changeset確認 | ラベル確認 |
|
|
17
|
+
|--------|---------|--------------|-----------|
|
|
18
|
+
| 自動 | task-exec/issue-exec経由 | 推定値で自動決定 | 自動 |
|
|
19
|
+
| 対話 | 手動 `/einja-create-pr` | AskUserQuestionで確認 | AskUserQuestionで確認 |
|
|
20
|
+
|
|
21
|
+
呼び出し元がtask-exec/issue-execかどうかは、$ARGUMENTSに `--auto` フラグがあるかで判定する。
|
|
22
|
+
|
|
23
|
+
## 入力
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
$ARGUMENTS: [--auto] [--base <branch>] [--title <title>]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- `--auto`: 自動モード(確認なしで実行)
|
|
30
|
+
- `--base`: PRのベースブランチ(デフォルト: 現在のブランチの上流を推測)
|
|
31
|
+
- `--title`: PRタイトル(指定なしの場合はコミットメッセージから生成)
|
|
32
|
+
|
|
33
|
+
## 処理フロー
|
|
34
|
+
|
|
35
|
+
### Step 1: 差分分析
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# ベースブランチの決定
|
|
39
|
+
BASE=$(git rev-parse --abbrev-ref HEAD@{upstream} 2>/dev/null | sed 's|origin/||' || echo "main")
|
|
40
|
+
# --base指定があればそちらを優先
|
|
41
|
+
|
|
42
|
+
# コミット履歴
|
|
43
|
+
git log --format="%s%n%b" origin/${BASE}..HEAD
|
|
44
|
+
|
|
45
|
+
# 変更ファイル一覧
|
|
46
|
+
git diff --name-only origin/${BASE}..HEAD
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Step 2: changeset生成判定
|
|
50
|
+
|
|
51
|
+
#### スキップ条件(以下のいずれかに該当する場合はchangeset生成をスキップ):
|
|
52
|
+
- staging → main の昇格PR(ベースがmainで、HEADがstagingからのマージ)
|
|
53
|
+
- `apps/` 配下に変更がない(docs/、CI設定/、.claude/ のみの変更)
|
|
54
|
+
- 既に `.changeset/` 内に README.md 以外の .md ファイルが存在する
|
|
55
|
+
|
|
56
|
+
#### 変更種別の推定:
|
|
57
|
+
コミットメッセージのプレフィックスから最大値を選択:
|
|
58
|
+
- `feat!` or `BREAKING` → `major`
|
|
59
|
+
- `feat` → `minor`
|
|
60
|
+
- `fix`, `perf`, `refactor` → `patch`
|
|
61
|
+
- それ以外 → `patch`
|
|
62
|
+
|
|
63
|
+
#### パッケージ判定:
|
|
64
|
+
変更ファイルのパスからパッケージを推定:
|
|
65
|
+
- `apps/web/**` → `@repo/web`
|
|
66
|
+
- `apps/admin/**` → `@repo/admin`
|
|
67
|
+
- `packages/**` は除外(内部パッケージ)
|
|
68
|
+
|
|
69
|
+
### Step 3: changeset生成
|
|
70
|
+
|
|
71
|
+
スキップ条件に該当しない場合のみ実行。
|
|
72
|
+
|
|
73
|
+
対話モードの場合は、推定した変更種別とサマリーをAskUserQuestionで確認。
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# ランダムファイル名で.changesetファイルを作成
|
|
77
|
+
# フォーマット:
|
|
78
|
+
# ---
|
|
79
|
+
# "@repo/web": minor
|
|
80
|
+
# ---
|
|
81
|
+
#
|
|
82
|
+
# サマリー(コミットメッセージの要約)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
生成後、changesetファイルをコミット:
|
|
86
|
+
```bash
|
|
87
|
+
git add .changeset/*.md
|
|
88
|
+
git commit -m "chore: add changeset"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Step 4: ラベル判定
|
|
92
|
+
|
|
93
|
+
PRタイトル(または最初のコミットメッセージ)のプレフィックスから単一ラベルを選択:
|
|
94
|
+
|
|
95
|
+
| プレフィックス | ラベル |
|
|
96
|
+
|-------------|--------|
|
|
97
|
+
| `feat!` / `BREAKING` | `breaking-change` |
|
|
98
|
+
| `feat` / `feature` | `enhancement` |
|
|
99
|
+
| `fix` / `bug` | `bug` |
|
|
100
|
+
| その他 (`chore`, `docs`, `refactor`, `ci`, `test`) | `maintenance` |
|
|
101
|
+
|
|
102
|
+
対話モードの場合は、推定ラベルをAskUserQuestionで確認。
|
|
103
|
+
|
|
104
|
+
### Step 5: PR作成
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
gh pr create \
|
|
108
|
+
--base "${BASE}" \
|
|
109
|
+
--title "${TITLE}" \
|
|
110
|
+
--body "$(cat <<'EOF'
|
|
111
|
+
## Summary
|
|
112
|
+
${SUMMARY}
|
|
113
|
+
|
|
114
|
+
## Changes
|
|
115
|
+
${CHANGED_FILES_LIST}
|
|
116
|
+
|
|
117
|
+
## Changeset
|
|
118
|
+
${CHANGESET_INFO}
|
|
119
|
+
EOF
|
|
120
|
+
)" \
|
|
121
|
+
--label "${LABEL}"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## エラーハンドリング
|
|
125
|
+
|
|
126
|
+
| エラー | 対処 |
|
|
127
|
+
|-------|------|
|
|
128
|
+
| ベースブランチが見つからない | AskUserQuestionでベースブランチを質問 |
|
|
129
|
+
| リモートにpushされていない | `git push -u origin HEAD` を先に実行 |
|
|
130
|
+
| changeset生成でパッケージ不明 | ルートパッケージ(`einja-management-monorepo`)を使用 |
|
|
131
|
+
| gh CLIが未認証 | エラーメッセージを表示して停止 |
|
|
132
|
+
|
|
133
|
+
## 出力
|
|
134
|
+
|
|
135
|
+
PR作成後、以下を出力:
|
|
136
|
+
- PR URL
|
|
137
|
+
- 付与したラベル
|
|
138
|
+
- changeset情報(生成した場合)
|