@einja/dev-cli 0.1.41 → 0.1.45
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 +0 -1
- package/dist/cli.js +0 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +1 -20
- 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/preset-update/file-copier.js +3 -3
- package/dist/lib/preset-update/file-copier.js.map +1 -1
- package/dist/lib/sync/file-filter.js +2 -2
- package/dist/lib/sync/file-filter.js.map +1 -1
- package/dist/lib/sync/file-filter.test.js +20 -0
- package/dist/lib/sync/file-filter.test.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/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.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/dist/lib/sync/backup-manager.d.ts +0 -50
- package/dist/lib/sync/backup-manager.d.ts.map +0 -1
- package/dist/lib/sync/backup-manager.js +0 -117
- package/dist/lib/sync/backup-manager.js.map +0 -1
- package/dist/lib/sync/backup-manager.test.d.ts +0 -2
- package/dist/lib/sync/backup-manager.test.d.ts.map +0 -1
- package/dist/lib/sync/backup-manager.test.js +0 -155
- package/dist/lib/sync/backup-manager.test.js.map +0 -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
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# validate-git-commit.sh - git commitコマンドのメッセージ形式を検証
|
|
3
|
-
#
|
|
4
|
-
# 目的:
|
|
5
|
-
# - git commit実行前にコミットメッセージの形式を検証
|
|
6
|
-
# - 不適切なメッセージ(---、Markdown形式等)をブロック
|
|
7
|
-
# - コミットルール(docs/einja/steering/commit-rules.md)に準拠を強制
|
|
8
|
-
#
|
|
9
|
-
# 使用方法:
|
|
10
|
-
# - PreToolUse hookとして設定
|
|
11
|
-
# - exit code 0: 許可
|
|
12
|
-
# - exit code 2: ブロック(stderrがClaudeに送信される)
|
|
13
|
-
|
|
14
|
-
set -uo pipefail
|
|
15
|
-
|
|
16
|
-
# 標準入力からJSON入力を読み取る
|
|
17
|
-
input=$(cat)
|
|
18
|
-
|
|
19
|
-
# ツール名を取得
|
|
20
|
-
tool_name=$(echo "$input" | jq -r '.tool_name // empty')
|
|
21
|
-
|
|
22
|
-
# Bashツール以外は無視
|
|
23
|
-
if [[ "$tool_name" != "Bash" ]]; then
|
|
24
|
-
exit 0
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
# コマンドを取得
|
|
28
|
-
command=$(echo "$input" | jq -r '.tool_input.command // empty')
|
|
29
|
-
|
|
30
|
-
# git commitコマンドでない場合はスキップ(volta unset対応で部分マッチ)
|
|
31
|
-
if [[ ! "$command" =~ git[[:space:]]+commit ]]; then
|
|
32
|
-
exit 0
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
# --amend のみの場合はスキップ(メッセージ変更なし)
|
|
36
|
-
# -m / --message がない場合のみスキップ
|
|
37
|
-
if [[ "$command" =~ --amend ]]; then
|
|
38
|
-
if [[ ! "$command" =~ -m ]] && [[ ! "$command" =~ --message ]]; then
|
|
39
|
-
exit 0
|
|
40
|
-
fi
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# -m / --message オプションがない場合はスキップ(インタラクティブエディタ使用)
|
|
44
|
-
if [[ ! "$command" =~ -m ]] && [[ ! "$command" =~ --message ]]; then
|
|
45
|
-
exit 0
|
|
46
|
-
fi
|
|
47
|
-
|
|
48
|
-
# コミットメッセージを抽出
|
|
49
|
-
commit_message=""
|
|
50
|
-
|
|
51
|
-
# パターン1: -m "message" / -m 'message' (スペースあり)
|
|
52
|
-
if [[ "$command" =~ -m[[:space:]]+\"([^\"]+)\" ]]; then
|
|
53
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
54
|
-
elif [[ "$command" =~ -m[[:space:]]+\'([^\']+)\' ]]; then
|
|
55
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
56
|
-
# パターン2: -m"message" / -m'message' (スペースなし)
|
|
57
|
-
elif [[ "$command" =~ -m\"([^\"]+)\" ]]; then
|
|
58
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
59
|
-
elif [[ "$command" =~ -m\'([^\']+)\' ]]; then
|
|
60
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
61
|
-
# パターン3: --message="message" / --message='message'
|
|
62
|
-
elif [[ "$command" =~ --message=\"([^\"]+)\" ]]; then
|
|
63
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
64
|
-
elif [[ "$command" =~ --message=\'([^\']+)\' ]]; then
|
|
65
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
66
|
-
# パターン4: --message "message" / --message 'message' (スペースあり)
|
|
67
|
-
elif [[ "$command" =~ --message[[:space:]]+\"([^\"]+)\" ]]; then
|
|
68
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
69
|
-
elif [[ "$command" =~ --message[[:space:]]+\'([^\']+)\' ]]; then
|
|
70
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
71
|
-
# パターン5: -m="message" / -m='message'
|
|
72
|
-
elif [[ "$command" =~ -m=\"([^\"]+)\" ]]; then
|
|
73
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
74
|
-
elif [[ "$command" =~ -m=\'([^\']+)\' ]]; then
|
|
75
|
-
commit_message="${BASH_REMATCH[1]}"
|
|
76
|
-
# パターン6: HEREDOC形式 -m "$(cat <<'EOF'...EOF)"
|
|
77
|
-
elif [[ "$command" =~ -m[[:space:]]*\"\$\(cat ]]; then
|
|
78
|
-
# HEREDOCからメッセージの最初の行を抽出
|
|
79
|
-
commit_message=$(echo "$command" | sed -n "/<<.*EOF/,/^EOF/p" | sed '1d;$d' | head -1)
|
|
80
|
-
fi
|
|
81
|
-
|
|
82
|
-
# メッセージが取得できない場合は許可(予期しないパターン)
|
|
83
|
-
if [[ -z "$commit_message" ]]; then
|
|
84
|
-
exit 0
|
|
85
|
-
fi
|
|
86
|
-
|
|
87
|
-
# 変数参照の場合はスキップ(実行時まで値が確定しない)
|
|
88
|
-
if [[ "$commit_message" =~ ^\$ ]]; then
|
|
89
|
-
exit 0
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
# 最初の行(概要行)を取得
|
|
93
|
-
first_line=$(echo "$commit_message" | head -1)
|
|
94
|
-
|
|
95
|
-
# === 検証ルール ===
|
|
96
|
-
|
|
97
|
-
# 有効なプレフィックス一覧
|
|
98
|
-
VALID_PREFIXES="^(feat|fix|docs|style|refactor|test|chore):"
|
|
99
|
-
|
|
100
|
-
# ルール1: プレフィックスの存在確認
|
|
101
|
-
if ! echo "$first_line" | grep -qE "$VALID_PREFIXES"; then
|
|
102
|
-
cat >&2 <<ERRMSG
|
|
103
|
-
|
|
104
|
-
❌ コミットメッセージ形式エラー
|
|
105
|
-
|
|
106
|
-
検出されたメッセージ:
|
|
107
|
-
"$first_line"
|
|
108
|
-
|
|
109
|
-
問題:
|
|
110
|
-
有効なプレフィックスがありません。
|
|
111
|
-
|
|
112
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
113
|
-
⚡ 対処方法: /task-commit Skillを使用してください
|
|
114
|
-
|
|
115
|
-
このSkillはコミットルールに従って:
|
|
116
|
-
- 適切なプレフィックス(feat/fix/docs等)を付与
|
|
117
|
-
- 変更内容に応じたコミット分割を提案
|
|
118
|
-
- 日本語で明確なメッセージを生成
|
|
119
|
-
|
|
120
|
-
実行: Skill("task-commit") を呼び出す
|
|
121
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
122
|
-
|
|
123
|
-
参照: docs/einja/steering/commit-rules.md
|
|
124
|
-
|
|
125
|
-
ERRMSG
|
|
126
|
-
exit 2
|
|
127
|
-
fi
|
|
128
|
-
|
|
129
|
-
# プレフィックス後の説明部分を抽出(禁止パターン検出に使用)
|
|
130
|
-
description=$(echo "$first_line" | sed -E 's/^(feat|fix|docs|style|refactor|test|chore):[[:space:]]*//')
|
|
131
|
-
|
|
132
|
-
# ルール2: プレフィックス後のメッセージが空でないか(3文字以上)
|
|
133
|
-
if [[ -z "$description" ]] || [[ ${#description} -lt 3 ]]; then
|
|
134
|
-
cat >&2 <<ERRMSG
|
|
135
|
-
|
|
136
|
-
❌ コミットメッセージ形式エラー
|
|
137
|
-
|
|
138
|
-
検出されたメッセージ:
|
|
139
|
-
"$first_line"
|
|
140
|
-
|
|
141
|
-
問題:
|
|
142
|
-
プレフィックス後の説明が不足しています。
|
|
143
|
-
具体的な変更内容を記述してください(3文字以上)。
|
|
144
|
-
|
|
145
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
146
|
-
⚡ 対処方法: /task-commit Skillを使用してください
|
|
147
|
-
|
|
148
|
-
このSkillはコミットルールに従って:
|
|
149
|
-
- 適切なプレフィックス(feat/fix/docs等)を付与
|
|
150
|
-
- 変更内容に応じたコミット分割を提案
|
|
151
|
-
- 日本語で明確なメッセージを生成
|
|
152
|
-
|
|
153
|
-
実行: Skill("task-commit") を呼び出す
|
|
154
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
155
|
-
|
|
156
|
-
参照: docs/einja/steering/commit-rules.md
|
|
157
|
-
|
|
158
|
-
ERRMSG
|
|
159
|
-
exit 2
|
|
160
|
-
fi
|
|
161
|
-
|
|
162
|
-
# ルール3: 明らかに不適切なメッセージのパターン検出(説明部分に対して適用)
|
|
163
|
-
INVALID_PATTERNS=(
|
|
164
|
-
"^---$"
|
|
165
|
-
"^\*\*.*\*\*$"
|
|
166
|
-
"^完了しました"
|
|
167
|
-
"^実装完了"
|
|
168
|
-
"^修正完了"
|
|
169
|
-
"^update$"
|
|
170
|
-
"^fix$"
|
|
171
|
-
"^changes$"
|
|
172
|
-
"^wip$"
|
|
173
|
-
)
|
|
174
|
-
|
|
175
|
-
for pattern in "${INVALID_PATTERNS[@]}"; do
|
|
176
|
-
if echo "$description" | grep -qiE "$pattern"; then
|
|
177
|
-
cat >&2 <<ERRMSG
|
|
178
|
-
|
|
179
|
-
❌ コミットメッセージ形式エラー
|
|
180
|
-
|
|
181
|
-
検出されたメッセージ:
|
|
182
|
-
"$first_line"
|
|
183
|
-
|
|
184
|
-
問題:
|
|
185
|
-
コミットメッセージの説明部分が不適切な形式です。
|
|
186
|
-
具体的な変更内容を記述してください。
|
|
187
|
-
|
|
188
|
-
禁止されたパターン: $pattern
|
|
189
|
-
|
|
190
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
191
|
-
⚡ 対処方法: /task-commit Skillを使用してください
|
|
192
|
-
|
|
193
|
-
このSkillはコミットルールに従って:
|
|
194
|
-
- 適切なプレフィックス(feat/fix/docs等)を付与
|
|
195
|
-
- 変更内容に応じたコミット分割を提案
|
|
196
|
-
- 日本語で明確なメッセージを生成
|
|
197
|
-
|
|
198
|
-
実行: Skill("task-commit") を呼び出す
|
|
199
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
200
|
-
|
|
201
|
-
参照: docs/einja/steering/commit-rules.md
|
|
202
|
-
|
|
203
|
-
ERRMSG
|
|
204
|
-
exit 2
|
|
205
|
-
fi
|
|
206
|
-
done
|
|
207
|
-
|
|
208
|
-
# ルール4: メッセージがMarkdown見出し形式でないか
|
|
209
|
-
if echo "$first_line" | grep -qE "^#{1,6}[[:space:]]"; then
|
|
210
|
-
cat >&2 <<ERRMSG
|
|
211
|
-
|
|
212
|
-
❌ コミットメッセージ形式エラー
|
|
213
|
-
|
|
214
|
-
検出されたメッセージ:
|
|
215
|
-
"$first_line"
|
|
216
|
-
|
|
217
|
-
問題:
|
|
218
|
-
Markdownの見出し形式(#)は使用できません。
|
|
219
|
-
プレフィックス形式で記述してください。
|
|
220
|
-
|
|
221
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
222
|
-
⚡ 対処方法: /task-commit Skillを使用してください
|
|
223
|
-
|
|
224
|
-
このSkillはコミットルールに従って:
|
|
225
|
-
- 適切なプレフィックス(feat/fix/docs等)を付与
|
|
226
|
-
- 変更内容に応じたコミット分割を提案
|
|
227
|
-
- 日本語で明確なメッセージを生成
|
|
228
|
-
|
|
229
|
-
実行: Skill("task-commit") を呼び出す
|
|
230
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
231
|
-
|
|
232
|
-
参照: docs/einja/steering/commit-rules.md
|
|
233
|
-
|
|
234
|
-
ERRMSG
|
|
235
|
-
exit 2
|
|
236
|
-
fi
|
|
237
|
-
|
|
238
|
-
# 全ての検証をパス
|
|
239
|
-
exit 0
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: project-overview
|
|
3
|
-
description: "プロジェクトの全体構成・技術スタックの参照ハブ"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# プロジェクト概要 Skill
|
|
7
|
-
|
|
8
|
-
## 概要
|
|
9
|
-
|
|
10
|
-
このSkillは、プロジェクトの全体構成・技術スタックを把握したいときに参照するエントリポイントです。
|
|
11
|
-
|
|
12
|
-
## プロジェクト概要
|
|
13
|
-
|
|
14
|
-
- **構成**: Turborepoモノレポ(pnpm workspaces)
|
|
15
|
-
- **アプリ**: `apps/web`(メイン管理画面)
|
|
16
|
-
- **共通パッケージ**: `@repo/config`, `@repo/front-core`, `@repo/server-core`, `@repo/ui`
|
|
17
|
-
|
|
18
|
-
## 詳細ドキュメント
|
|
19
|
-
|
|
20
|
-
@docs/einja/steering/architecture.md
|
|
21
|
-
|
|
22
|
-
## 関連ドキュメント
|
|
23
|
-
|
|
24
|
-
- `docs/einja/steering/development/coding-standards.md` - コーディング規約(インポートパス規約含む)
|
|
25
|
-
- [infra-maintenance](../einja-infra-maintenance/SKILL.md) - 開発環境セットアップ・サーバー管理
|
|
26
|
-
- `docs/einja/steering/development/component-design.md` - コンポーネント設計ガイドライン
|
|
27
|
-
|
|
28
|
-
## 頻出コマンド
|
|
29
|
-
|
|
30
|
-
- `pnpm dev:bg` / `pnpm dev:stop` - 開発サーバー起動/停止
|
|
31
|
-
- `pnpm build` - プロダクションビルド
|
|
32
|
-
- `pnpm lint:fix && pnpm format:fix` - コード自動修正
|
|
33
|
-
- `pnpm typecheck` - 型チェック
|
|
34
|
-
- `pnpm test` - テスト実行
|
|
35
|
-
- `pnpm prepush` - プッシュ前チェック(lint + typecheck + test)
|
|
36
|
-
|
|
37
|
-
<!-- @einja:project-private:start id="einja-project-overview-project" -->
|
|
38
|
-
<!-- プロジェクト固有の情報を記入 -->
|
|
39
|
-
<!-- @einja:project-private:end -->
|