yodogawa 2.1.0 → 2.1.1
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/LICENSE +21 -0
- package/README.md +6 -0
- package/package.json +2 -2
- package/scripts/create-task.sh +77 -0
- package/scripts/init-project-docs.sh +90 -0
- package/scripts/init-task-doc.sh +77 -0
- package/skills/a-001-setup-doc-structure/SKILL.md +1 -1
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +4 -8
- package/skills/a-002-initialize-project/SKILL.md +37 -36
- package/skills/a-002-initialize-project/reference/structure-check.md +7 -7
- package/skills/a-003-create-scenarios/SKILL.md +11 -11
- package/skills/a-003-create-scenarios/reference/structure-check.md +5 -5
- package/skills/a-004-define-domain-model/SKILL.md +9 -9
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +3 -3
- package/skills/a-005-create-domain-diagram/SKILL.md +7 -7
- package/skills/a-005-create-domain-diagram/reference/structure-check.md +4 -4
- package/skills/a-006-review-requirements-domain/SKILL.md +4 -4
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +5 -5
- package/skills/a-007-define-tech-stack/SKILL.md +11 -11
- package/skills/a-007-define-tech-stack/reference/structure-check.md +5 -5
- package/skills/a-008-define-repository-structure/SKILL.md +12 -12
- package/skills/a-008-define-repository-structure/reference/structure-check.md +5 -5
- package/skills/a-009-define-screen-design/SKILL.md +14 -14
- package/skills/a-009-define-screen-design/reference/structure-check.md +5 -5
- package/skills/a-010-define-design-system/SKILL.md +9 -9
- package/skills/a-011-define-data-model/SKILL.md +15 -15
- package/skills/a-011-define-data-model/reference/structure-check.md +5 -5
- package/skills/a-012-define-api-spec/SKILL.md +15 -15
- package/skills/a-012-define-api-spec/reference/structure-check.md +5 -5
- package/skills/a-013-define-architecture/SKILL.md +13 -13
- package/skills/a-013-define-architecture/reference/structure-check.md +5 -5
- package/skills/a-014-define-infrastructure/SKILL.md +13 -13
- package/skills/a-014-define-infrastructure/reference/structure-check.md +5 -5
- package/skills/a-015-review-design/SKILL.md +8 -8
- package/skills/a-015-review-design/reference/consistency-checks.md +2 -2
- package/skills/b-001-create-task-directory/SKILL.md +19 -25
- package/skills/b-002-create-task-definition/SKILL.md +4 -4
- package/skills/b-003-create-task-research/SKILL.md +4 -5
- package/skills/b-004-create-task-implementation/SKILL.md +5 -3
- package/skills/c-001-implement-task/SKILL.md +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 tkysi-mi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yodogawa",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "CLI to install Yodogawa Slash Commands workflows",
|
|
5
5
|
"bin": {
|
|
6
6
|
"yodogawa": "bin/cli.js"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"claude"
|
|
44
44
|
],
|
|
45
45
|
"author": "",
|
|
46
|
-
"license": "
|
|
46
|
+
"license": "MIT",
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"fs-extra": "^11.2.0",
|
|
49
49
|
"kleur": "^4.1.5",
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# create-task.sh
|
|
4
|
+
# docs/tasks/ 配下に連番 ID 付きのタスクディレクトリを作成するスクリプト
|
|
5
|
+
# Usage: bash scripts/create-task.sh <slug>
|
|
6
|
+
# 例: bash scripts/create-task.sh user-profile-edit
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
10
|
+
TASKS_DIR="docs/tasks"
|
|
11
|
+
SLUG="$1"
|
|
12
|
+
|
|
13
|
+
echo "📂 タスクディレクトリの作成を開始します..."
|
|
14
|
+
|
|
15
|
+
# 1. 引数チェック
|
|
16
|
+
if [ -z "$SLUG" ]; then
|
|
17
|
+
echo "❌ スラッグが指定されていません。"
|
|
18
|
+
echo " 使い方: bash scripts/create-task.sh <slug>"
|
|
19
|
+
echo " 例: bash scripts/create-task.sh user-profile-edit"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# 2. スラッグの形式チェック(英小文字・数字・ハイフンのみ、連続ハイフン禁止)
|
|
24
|
+
if ! [[ "$SLUG" =~ ^[a-z0-9]+(-[a-z0-9]+)*$ ]]; then
|
|
25
|
+
echo "❌ スラッグは英小文字・数字・ハイフンのみ使用できます: '$SLUG'"
|
|
26
|
+
echo " 例: user-profile-edit"
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# 3. 単語数の警告(3〜5 語を推奨、範囲外は警告のみで続行)
|
|
31
|
+
WORD_COUNT=$(echo "$SLUG" | awk -F'-' '{print NF}')
|
|
32
|
+
if [ "$WORD_COUNT" -lt 3 ] || [ "$WORD_COUNT" -gt 5 ]; then
|
|
33
|
+
echo "⚠️ スラッグは 3〜5 語を推奨しています(現在: ${WORD_COUNT} 語)。"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 4. docs/tasks/ の存在確認
|
|
37
|
+
if [ ! -d "$TASKS_DIR" ]; then
|
|
38
|
+
echo "❌ '$TASKS_DIR' が存在しません。"
|
|
39
|
+
echo " 先に /a-001-setup-doc-structure を実行してください。"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# 5. 既存タスクから次の ID を採番
|
|
44
|
+
MAX_ID=0
|
|
45
|
+
for dir in "$TASKS_DIR"/task*; do
|
|
46
|
+
[ -d "$dir" ] || continue
|
|
47
|
+
BASENAME=$(basename "$dir")
|
|
48
|
+
# task000123-xxx から 000123 を抜き出す
|
|
49
|
+
if [[ "$BASENAME" =~ ^task([0-9]{6})- ]]; then
|
|
50
|
+
NUM=$((10#${BASH_REMATCH[1]}))
|
|
51
|
+
if [ "$NUM" -gt "$MAX_ID" ]; then
|
|
52
|
+
MAX_ID=$NUM
|
|
53
|
+
fi
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
|
|
57
|
+
NEXT_ID=$((MAX_ID + 1))
|
|
58
|
+
TASK_ID=$(printf "task%06d" "$NEXT_ID")
|
|
59
|
+
TASK_DIR="$TASKS_DIR/${TASK_ID}-${SLUG}"
|
|
60
|
+
|
|
61
|
+
# 6. 同名ディレクトリの存在確認(理論上発生しないが保険)
|
|
62
|
+
if [ -d "$TASK_DIR" ]; then
|
|
63
|
+
echo "❌ '$TASK_DIR' は既に存在します。"
|
|
64
|
+
exit 1
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# 7. 作成
|
|
68
|
+
echo "🔨 ディレクトリを作成中: $TASK_DIR"
|
|
69
|
+
mkdir -p "$TASK_DIR"
|
|
70
|
+
|
|
71
|
+
# 8. 完了報告
|
|
72
|
+
echo ""
|
|
73
|
+
echo "✅ タスクディレクトリを作成しました。"
|
|
74
|
+
echo " パス: $TASK_DIR"
|
|
75
|
+
echo ""
|
|
76
|
+
echo "次のステップ:"
|
|
77
|
+
echo " - タスク定義書を作成する: /b-002-create-task-definition"
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# init-project-docs.sh
|
|
4
|
+
# templates/project/<category>/ 配下のテンプレートを
|
|
5
|
+
# docs/project/<category>/ へ一括コピーするスクリプト
|
|
6
|
+
# Usage: bash scripts/init-project-docs.sh <category>
|
|
7
|
+
# category: requirements | behavior | domain | design
|
|
8
|
+
# 例: bash scripts/init-project-docs.sh requirements
|
|
9
|
+
|
|
10
|
+
set -e
|
|
11
|
+
|
|
12
|
+
CATEGORY="$1"
|
|
13
|
+
|
|
14
|
+
# スクリプト自身の位置からテンプレートルートを解決(.claude/scripts -> .claude/templates)
|
|
15
|
+
SCRIPT_SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
16
|
+
TEMPLATE_ROOT="$SCRIPT_SELF_DIR/../templates/project"
|
|
17
|
+
|
|
18
|
+
echo "📝 プロジェクトドキュメントの一括初期化を開始します..."
|
|
19
|
+
|
|
20
|
+
# 1. 引数チェック
|
|
21
|
+
if [ -z "$CATEGORY" ]; then
|
|
22
|
+
echo "❌ category 引数が指定されていません。"
|
|
23
|
+
echo " 使い方: bash scripts/init-project-docs.sh <category>"
|
|
24
|
+
echo " category: requirements | behavior | domain | design"
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# 2. category を番号付きディレクトリ名にマッピング
|
|
29
|
+
case "$CATEGORY" in
|
|
30
|
+
requirements)
|
|
31
|
+
SUBDIR="01-requirements"
|
|
32
|
+
;;
|
|
33
|
+
behavior)
|
|
34
|
+
SUBDIR="02-behavior"
|
|
35
|
+
;;
|
|
36
|
+
domain)
|
|
37
|
+
SUBDIR="03-domain"
|
|
38
|
+
;;
|
|
39
|
+
design)
|
|
40
|
+
SUBDIR="04-design"
|
|
41
|
+
;;
|
|
42
|
+
*)
|
|
43
|
+
echo "❌ 不明な category: '$CATEGORY'"
|
|
44
|
+
echo " 有効な category: requirements | behavior | domain | design"
|
|
45
|
+
exit 1
|
|
46
|
+
;;
|
|
47
|
+
esac
|
|
48
|
+
|
|
49
|
+
SRC_DIR="$TEMPLATE_ROOT/$SUBDIR"
|
|
50
|
+
DEST_DIR="docs/project/$SUBDIR"
|
|
51
|
+
|
|
52
|
+
# 3. テンプレートディレクトリの存在確認
|
|
53
|
+
if [ ! -d "$SRC_DIR" ]; then
|
|
54
|
+
echo "❌ テンプレートディレクトリが見つかりません: $SRC_DIR"
|
|
55
|
+
echo " yodogawa CLI での再インストールを検討してください。"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# 4. 出力先ディレクトリの存在確認
|
|
60
|
+
if [ ! -d "$DEST_DIR" ]; then
|
|
61
|
+
echo "❌ 出力先ディレクトリが存在しません: $DEST_DIR"
|
|
62
|
+
echo " 先に /a-001-setup-doc-structure を実行してください。"
|
|
63
|
+
exit 1
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
# 5. テンプレートファイルを一括コピー(既存はスキップして冪等性を確保)
|
|
67
|
+
COPIED=0
|
|
68
|
+
SKIPPED=0
|
|
69
|
+
|
|
70
|
+
for SRC_PATH in "$SRC_DIR"/*.md; do
|
|
71
|
+
[ -f "$SRC_PATH" ] || continue
|
|
72
|
+
FILENAME=$(basename "$SRC_PATH")
|
|
73
|
+
DEST_PATH="$DEST_DIR/$FILENAME"
|
|
74
|
+
|
|
75
|
+
if [ -f "$DEST_PATH" ]; then
|
|
76
|
+
echo "ℹ️ 既に存在するためスキップ: $DEST_PATH"
|
|
77
|
+
SKIPPED=$((SKIPPED + 1))
|
|
78
|
+
else
|
|
79
|
+
echo "🔨 コピー中: $SRC_PATH → $DEST_PATH"
|
|
80
|
+
cp "$SRC_PATH" "$DEST_PATH"
|
|
81
|
+
COPIED=$((COPIED + 1))
|
|
82
|
+
fi
|
|
83
|
+
done
|
|
84
|
+
|
|
85
|
+
# 6. 完了報告
|
|
86
|
+
echo ""
|
|
87
|
+
echo "✅ プロジェクトドキュメントを初期化しました。"
|
|
88
|
+
echo " カテゴリ: $CATEGORY ($SUBDIR)"
|
|
89
|
+
echo " コピー: ${COPIED} ファイル / スキップ: ${SKIPPED} ファイル"
|
|
90
|
+
echo " パス: $DEST_DIR"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# init-task-doc.sh
|
|
4
|
+
# タスクディレクトリにテンプレートから指定のドキュメントをコピーするスクリプト
|
|
5
|
+
# Usage: bash scripts/init-task-doc.sh <task-dir> <type>
|
|
6
|
+
# type: definition | research | implementation
|
|
7
|
+
# 例: bash scripts/init-task-doc.sh docs/tasks/task000001-user-profile-edit definition
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
TASK_DIR="$1"
|
|
12
|
+
DOC_TYPE="$2"
|
|
13
|
+
|
|
14
|
+
# スクリプト自身の位置からテンプレートルートを解決(.claude/scripts -> .claude/templates)
|
|
15
|
+
SCRIPT_SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
16
|
+
TEMPLATE_ROOT="$SCRIPT_SELF_DIR/../templates/tasks/task-template"
|
|
17
|
+
|
|
18
|
+
echo "📝 タスクドキュメントの初期化を開始します..."
|
|
19
|
+
|
|
20
|
+
# 1. 引数チェック
|
|
21
|
+
if [ -z "$TASK_DIR" ] || [ -z "$DOC_TYPE" ]; then
|
|
22
|
+
echo "❌ 引数が不足しています。"
|
|
23
|
+
echo " 使い方: bash scripts/init-task-doc.sh <task-dir> <type>"
|
|
24
|
+
echo " type: definition | research | implementation"
|
|
25
|
+
echo " 例: bash scripts/init-task-doc.sh docs/tasks/task000001-login definition"
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# 2. タスクディレクトリの存在確認
|
|
30
|
+
if [ ! -d "$TASK_DIR" ]; then
|
|
31
|
+
echo "❌ タスクディレクトリが存在しません: $TASK_DIR"
|
|
32
|
+
echo " 先に /b-001-create-task-directory を実行してください。"
|
|
33
|
+
exit 1
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 3. type をファイル名にマッピング
|
|
37
|
+
case "$DOC_TYPE" in
|
|
38
|
+
definition)
|
|
39
|
+
SRC_FILE="a-definition.md"
|
|
40
|
+
;;
|
|
41
|
+
research)
|
|
42
|
+
SRC_FILE="b-research.md"
|
|
43
|
+
;;
|
|
44
|
+
implementation)
|
|
45
|
+
SRC_FILE="c-implementation.md"
|
|
46
|
+
;;
|
|
47
|
+
*)
|
|
48
|
+
echo "❌ 不明な type: '$DOC_TYPE'"
|
|
49
|
+
echo " 有効な type: definition | research | implementation"
|
|
50
|
+
exit 1
|
|
51
|
+
;;
|
|
52
|
+
esac
|
|
53
|
+
|
|
54
|
+
SRC_PATH="$TEMPLATE_ROOT/$SRC_FILE"
|
|
55
|
+
DEST_PATH="$TASK_DIR/$SRC_FILE"
|
|
56
|
+
|
|
57
|
+
# 4. テンプレートの存在確認
|
|
58
|
+
if [ ! -f "$SRC_PATH" ]; then
|
|
59
|
+
echo "❌ テンプレートが見つかりません: $SRC_PATH"
|
|
60
|
+
echo " yodogawa CLI での再インストールを検討してください。"
|
|
61
|
+
exit 1
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# 5. 既存ファイルはスキップ(冪等性)
|
|
65
|
+
if [ -f "$DEST_PATH" ]; then
|
|
66
|
+
echo "ℹ️ 既に存在するためスキップ: $DEST_PATH"
|
|
67
|
+
exit 0
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
# 6. コピー
|
|
71
|
+
echo "🔨 コピー中: $SRC_PATH → $DEST_PATH"
|
|
72
|
+
cp "$SRC_PATH" "$DEST_PATH"
|
|
73
|
+
|
|
74
|
+
# 7. 完了報告
|
|
75
|
+
echo ""
|
|
76
|
+
echo "✅ タスクドキュメントを初期化しました。"
|
|
77
|
+
echo " パス: $DEST_PATH"
|
|
@@ -24,7 +24,7 @@ allowed-tools: Read, Write, Bash, Glob
|
|
|
24
24
|
環境に応じたスクリプトを実行。スクリプト本体とフォールバック実装は [reference/directory-structure.md](reference/directory-structure.md#スクリプト実行コマンド) を参照。
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
SCRIPT_DIR=$(for d in .
|
|
27
|
+
SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
|
|
28
28
|
bash "$SCRIPT_DIR/scripts/setup-docs.sh"
|
|
29
29
|
```
|
|
30
30
|
|
|
@@ -35,16 +35,12 @@ docs/
|
|
|
35
35
|
## スクリプト実行コマンド
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
if [ -d ".
|
|
39
|
-
SCRIPT_DIR=".agent"
|
|
40
|
-
elif [ -d ".cursor" ]; then
|
|
41
|
-
SCRIPT_DIR=".cursor"
|
|
42
|
-
elif [ -d ".claude" ]; then
|
|
38
|
+
if [ -d ".claude" ]; then
|
|
43
39
|
SCRIPT_DIR=".claude"
|
|
44
|
-
elif [ -d ".
|
|
45
|
-
SCRIPT_DIR=".
|
|
40
|
+
elif [ -d ".agents" ]; then
|
|
41
|
+
SCRIPT_DIR=".agents"
|
|
46
42
|
else
|
|
47
|
-
echo "エラー:
|
|
43
|
+
echo "エラー: .claude または .agents ディレクトリが見つかりません"
|
|
48
44
|
exit 1
|
|
49
45
|
fi
|
|
50
46
|
|
|
@@ -15,7 +15,7 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
15
15
|
|
|
16
16
|
## 前提
|
|
17
17
|
|
|
18
|
-
- `docs/project/requirements/` ディレクトリが存在すること(なければ先に `/a-001-setup-doc-structure` を実行)
|
|
18
|
+
- `docs/project/01-requirements/` ディレクトリが存在すること(なければ先に `/a-001-setup-doc-structure` を実行)
|
|
19
19
|
- `docs/` に書き込み権限があること
|
|
20
20
|
- ユーザーがプロジェクト概要と主要機能の基本情報を提供できること
|
|
21
21
|
|
|
@@ -24,12 +24,29 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
24
24
|
### 1. ドキュメントディレクトリの確認
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
ls -la docs/project/requirements/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
27
|
+
ls -la docs/project/01-requirements/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
存在しない場合: 「`docs/project/requirements/` がありません。先に `/a-001-setup-doc-structure` を実行してください。」
|
|
30
|
+
存在しない場合: 「`docs/project/01-requirements/` がありません。先に `/a-001-setup-doc-structure` を実行してください。」
|
|
31
31
|
|
|
32
|
-
### 2.
|
|
32
|
+
### 2. テンプレート一括コピー
|
|
33
|
+
|
|
34
|
+
要件定義に必要な 5 ファイルのテンプレートを `docs/project/01-requirements/` に一括コピーする。既存ファイルはスキップされる(冪等)。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
|
|
38
|
+
bash "$SCRIPT_DIR/scripts/init-project-docs.sh" requirements
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
コピーされるファイル:
|
|
42
|
+
|
|
43
|
+
- `01-system-overview.md`
|
|
44
|
+
- `02-features-implemented.md`
|
|
45
|
+
- `03-features-planned.md`
|
|
46
|
+
- `04-non-functional-requirements.md`
|
|
47
|
+
- `05-user-stories.md`
|
|
48
|
+
|
|
49
|
+
### 3. コードベースの自動分析と提案
|
|
33
50
|
|
|
34
51
|
**規模確認**:
|
|
35
52
|
|
|
@@ -49,65 +66,49 @@ find src app lib -maxdepth 2 2>/dev/null
|
|
|
49
66
|
|
|
50
67
|
結果から以下を推測・提示: システム概要(目的・技術スタック)、実装済み機能(ファイル構造からの推測)、想定ユーザー像。
|
|
51
68
|
|
|
52
|
-
###
|
|
53
|
-
|
|
54
|
-
1. テンプレートをコピー:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
|
|
58
|
-
cp "$SCRIPT_DIR/templates/project/01-requirements/01-system-overview.md" \
|
|
59
|
-
"docs/project/requirements/01-system-overview.md"
|
|
60
|
-
```
|
|
69
|
+
### 4. システム概要の記入
|
|
61
70
|
|
|
62
|
-
|
|
71
|
+
`01-system-overview.md` を開き、「背景」「目的」をヒアリングして記入する。質問例は [reference/hearing-questions.md](reference/hearing-questions.md) を参照。
|
|
63
72
|
|
|
64
|
-
###
|
|
73
|
+
### 5. 実装済み機能一覧の記入
|
|
65
74
|
|
|
66
|
-
|
|
67
|
-
2. コードベースを調査し、検出したディレクトリ/ファイル名から機能を提案。
|
|
68
|
-
3. ヒアリング結果をテーブルに記入(Category 1/2、機能名、説明、機能 ID)。
|
|
75
|
+
`02-features-implemented.md` に、コードベース調査で検出したディレクトリ/ファイル名から機能を提案し、ヒアリング結果をテーブルに記入する(Category 1/2、機能名、説明、機能 ID)。
|
|
69
76
|
|
|
70
77
|
コード調査コマンドとヒアリング項目は [reference/hearing-questions.md](reference/hearing-questions.md#手順4-実装済み機能一覧) を参照。
|
|
71
78
|
|
|
72
|
-
###
|
|
79
|
+
### 6. 予定機能一覧の記入
|
|
73
80
|
|
|
74
|
-
|
|
75
|
-
2. システム概要と実装済み機能のギャップを分析し、未実装機能を提案。
|
|
76
|
-
3. ヒアリング結果をテーブルに記入(機能 ID・優先度は未確定のまま)。
|
|
81
|
+
`03-features-planned.md` に、システム概要と実装済み機能のギャップを分析して未実装機能を提案し、ヒアリング結果をテーブルに記入する(機能 ID・優先度は未確定のまま)。
|
|
77
82
|
|
|
78
|
-
###
|
|
83
|
+
### 7. 非機能要件の記入
|
|
79
84
|
|
|
80
|
-
|
|
81
|
-
2. 詳細定義が必要か確認。不要なら標準ベースラインで仮置き([examples/nfr-baseline.md](examples/nfr-baseline.md))。
|
|
82
|
-
3. パフォーマンス/セキュリティ/可用性/スケーラビリティ/ユーザビリティ・保守性の観点で**定量的な目標**をヒアリング。
|
|
85
|
+
`04-non-functional-requirements.md` に、詳細定義が必要か確認の上、パフォーマンス/セキュリティ/可用性/スケーラビリティ/ユーザビリティ・保守性の観点で**定量的な目標**をヒアリングして記入する。不要なら標準ベースライン([examples/nfr-baseline.md](examples/nfr-baseline.md))で仮置きする。
|
|
83
86
|
|
|
84
|
-
###
|
|
87
|
+
### 8. ユーザーストーリーの記入
|
|
85
88
|
|
|
86
|
-
|
|
87
|
-
2. 作成済みドキュメントから主要ユーザージャーニーを抽出し、ストーリー案を提示。
|
|
88
|
-
3. ヒアリング結果をテーブルに記入(優先度・受け入れ基準含む)。
|
|
89
|
+
`05-user-stories.md` に、作成済みドキュメントから主要ユーザージャーニーを抽出してストーリー案を提示し、ヒアリング結果をテーブルに記入する(優先度・受け入れ基準含む)。
|
|
89
90
|
|
|
90
91
|
ストーリーテンプレート: 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
|
|
91
92
|
|
|
92
|
-
###
|
|
93
|
+
### 9. 全体レビュー
|
|
93
94
|
|
|
94
95
|
- 作成した全ドキュメントをユーザーに提示し、以下を確認:
|
|
95
96
|
- 「記載内容に誤りや漏れはありませんか?」
|
|
96
97
|
- 「抽象的すぎる記述や、解釈が分かれそうな表現はありますか?」
|
|
97
98
|
- 「テンプレートのコメントや不要な例示は適切に処理されていますか?」
|
|
98
99
|
|
|
99
|
-
###
|
|
100
|
+
### 10. 完了条件と構造の確認
|
|
100
101
|
|
|
101
102
|
- ファイルの存在と主要セクション/テーブル構造を検証。
|
|
102
103
|
- 検証コマンド・チェックリスト・Git コミット手順は [reference/structure-check.md](reference/structure-check.md) を参照。
|
|
103
104
|
|
|
104
|
-
###
|
|
105
|
+
### 11. Git への追加(オプション)
|
|
105
106
|
|
|
106
107
|
詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加オプション) を参照。
|
|
107
108
|
|
|
108
109
|
## 完了条件
|
|
109
110
|
|
|
110
|
-
- `docs/project/requirements/` に 5 つの要件定義ドキュメントが作成されている
|
|
111
|
+
- `docs/project/01-requirements/` に 5 つの要件定義ドキュメントが作成されている
|
|
111
112
|
- すべてのドキュメントで抽象的表現が最小化され、具体的な数値・期限・制約が記載されている
|
|
112
113
|
- ユーザーがドキュメント内容を確認し、承認またはフィードバックを提供している
|
|
113
114
|
|
|
@@ -119,6 +120,6 @@ find src app lib -maxdepth 2 2>/dev/null
|
|
|
119
120
|
|
|
120
121
|
## 参考
|
|
121
122
|
|
|
122
|
-
- [reference/hearing-questions.md](reference/hearing-questions.md) — 手順
|
|
123
|
-
- [reference/structure-check.md](reference/structure-check.md) — 手順
|
|
123
|
+
- [reference/hearing-questions.md](reference/hearing-questions.md) — 手順4〜8のヒアリング質問集
|
|
124
|
+
- [reference/structure-check.md](reference/structure-check.md) — 手順10の構造チェックコマンドと Git コミット手順
|
|
124
125
|
- [examples/nfr-baseline.md](examples/nfr-baseline.md) — 非機能要件の標準ベースライン提案値
|
|
@@ -6,23 +6,23 @@ SKILL.md 手順9で使う、生成済みドキュメントの構造確認用コ
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# 01-system-overview.md: 主要セクションの確認
|
|
9
|
-
grep "## 背景" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
|
|
10
|
-
grep "## 目的" docs/project/requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
|
|
9
|
+
grep "## 背景" docs/project/01-requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
|
|
10
|
+
grep "## 目的" docs/project/01-requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
|
|
11
11
|
|
|
12
12
|
# 02-features-implemented.md: テーブルヘッダー
|
|
13
|
-
grep "| 機能ID | Category 1 |" docs/project/requirements/02-features-implemented.md \
|
|
13
|
+
grep "| 機能ID | Category 1 |" docs/project/01-requirements/02-features-implemented.md \
|
|
14
14
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
15
15
|
|
|
16
16
|
# 03-features-planned.md: テーブルヘッダー
|
|
17
|
-
grep "| Category 1 | Category 2 |" docs/project/requirements/03-features-planned.md \
|
|
17
|
+
grep "| Category 1 | Category 2 |" docs/project/01-requirements/03-features-planned.md \
|
|
18
18
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
19
19
|
|
|
20
20
|
# 04-non-functional-requirements.md: テーブルヘッダー
|
|
21
|
-
grep "| カテゴリ | 要件 |" docs/project/requirements/04-non-functional-requirements.md \
|
|
21
|
+
grep "| カテゴリ | 要件 |" docs/project/01-requirements/04-non-functional-requirements.md \
|
|
22
22
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
23
23
|
|
|
24
24
|
# 05-user-stories.md: テーブルヘッダー
|
|
25
|
-
grep "| ストーリーID | ストーリー |" docs/project/requirements/05-user-stories.md \
|
|
25
|
+
grep "| ストーリーID | ストーリー |" docs/project/01-requirements/05-user-stories.md \
|
|
26
26
|
&& echo "OK" || echo "MISSING: Table Header"
|
|
27
27
|
```
|
|
28
28
|
|
|
@@ -35,7 +35,7 @@ grep "| ストーリーID | ストーリー |" docs/project/requirements/05-user
|
|
|
35
35
|
## Git への追加(オプション)
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
git add docs/project/requirements/
|
|
38
|
+
git add docs/project/01-requirements/
|
|
39
39
|
git status
|
|
40
40
|
```
|
|
41
41
|
|
|
@@ -15,8 +15,8 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
15
15
|
|
|
16
16
|
## 前提
|
|
17
17
|
|
|
18
|
-
- `docs/project/requirements/05-user-stories.md` が作成されていること(`/a-002-initialize-project` 実行済み)。
|
|
19
|
-
- `docs/project/behavior/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
|
|
18
|
+
- `docs/project/01-requirements/05-user-stories.md` が作成されていること(`/a-002-initialize-project` 実行済み)。
|
|
19
|
+
- `docs/project/02-behavior/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
|
|
20
20
|
- ユーザーが各機能の具体的な動作例を説明できること。
|
|
21
21
|
|
|
22
22
|
## 手順
|
|
@@ -24,16 +24,16 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
24
24
|
### 1. ディレクトリと前提条件の確認
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
ls -la docs/project/behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
27
|
+
ls -la docs/project/02-behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
`docs/project/requirements/05-user-stories.md` を読み込み、シナリオ化対象を把握する。
|
|
30
|
+
`docs/project/01-requirements/05-user-stories.md` を読み込み、シナリオ化対象を把握する。
|
|
31
31
|
|
|
32
32
|
### 2. テンプレートの準備
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
SCRIPT_DIR=$(for d in .
|
|
36
|
-
cp "$SCRIPT_DIR/templates/project/02-behavior/01-scenarios.md" "docs/project/behavior/01-scenarios.md"
|
|
35
|
+
SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
|
|
36
|
+
cp "$SCRIPT_DIR/templates/project/02-behavior/01-scenarios.md" "docs/project/02-behavior/01-scenarios.md"
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### 3. 分析と提案
|
|
@@ -45,7 +45,7 @@ cp "$SCRIPT_DIR/templates/project/02-behavior/01-scenarios.md" "docs/project/beh
|
|
|
45
45
|
|
|
46
46
|
### 4. ヒアリングと記入
|
|
47
47
|
|
|
48
|
-
機能ごとに以下を詰めて `docs/project/behavior/01-scenarios.md` を更新する。Gherkin 記述例は [examples/gherkin-templates.md](examples/gherkin-templates.md) を参照。
|
|
48
|
+
機能ごとに以下を詰めて `docs/project/02-behavior/01-scenarios.md` を更新する。Gherkin 記述例は [examples/gherkin-templates.md](examples/gherkin-templates.md) を参照。
|
|
49
49
|
|
|
50
50
|
- **Feature 情報**: 機能名、As a/I want/So that、Background(共通前提)
|
|
51
51
|
- **ハッピーパス**: Given-When-Then で最も基本的な成功シナリオ
|
|
@@ -65,8 +65,8 @@ UI 操作の詳細ではなく、ユーザーの意図を記述するよう注
|
|
|
65
65
|
### 7. 構造チェック
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
grep "Feature:" docs/project/behavior/01-scenarios.md \
|
|
69
|
-
&& grep "Scenario:" docs/project/behavior/01-scenarios.md \
|
|
68
|
+
grep "Feature:" docs/project/02-behavior/01-scenarios.md \
|
|
69
|
+
&& grep "Scenario:" docs/project/02-behavior/01-scenarios.md \
|
|
70
70
|
&& echo "OK" || echo "MISSING SECTION"
|
|
71
71
|
```
|
|
72
72
|
|
|
@@ -75,7 +75,7 @@ grep "Feature:" docs/project/behavior/01-scenarios.md \
|
|
|
75
75
|
### 8. Git への追加(任意)
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
git add docs/project/behavior/
|
|
78
|
+
git add docs/project/02-behavior/
|
|
79
79
|
git commit -m "docs: 振る舞い仕様(シナリオ)の作成"
|
|
80
80
|
```
|
|
81
81
|
|
|
@@ -83,7 +83,7 @@ git commit -m "docs: 振る舞い仕様(シナリオ)の作成"
|
|
|
83
83
|
|
|
84
84
|
## 完了条件
|
|
85
85
|
|
|
86
|
-
- `docs/project/behavior/01-scenarios.md` が作成されている。
|
|
86
|
+
- `docs/project/02-behavior/01-scenarios.md` が作成されている。
|
|
87
87
|
- ユーザーストーリーに対応する具体的なシナリオ(Given-When-Then)が記述されている。
|
|
88
88
|
- シナリオ一覧テーブルがメンテナンスされている。
|
|
89
89
|
- ユーザーが内容を承認している。
|
|
@@ -6,16 +6,16 @@ SKILL.md 手順6〜7 で使う構造確認コマンドとレビュー観点。
|
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
# シナリオ一覧テーブルの確認
|
|
9
|
-
grep "| シナリオID | 機能 |" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
|
|
9
|
+
grep "| シナリオID | 機能 |" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
|
|
10
10
|
# Feature 定義の確認
|
|
11
|
-
grep "Feature:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
|
|
11
|
+
grep "Feature:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
|
|
12
12
|
# Scenario 定義の確認
|
|
13
|
-
grep "Scenario:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
|
|
13
|
+
grep "Scenario:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
## チェックリスト
|
|
17
17
|
|
|
18
|
-
- [ ] `docs/project/behavior/01-scenarios.md` が作成されている
|
|
18
|
+
- [ ] `docs/project/02-behavior/01-scenarios.md` が作成されている
|
|
19
19
|
- [ ] シナリオ一覧テーブルが更新されている
|
|
20
20
|
- [ ] 各 Feature が Gherkin 形式で記述されている
|
|
21
21
|
- [ ] 正常系と異常系のシナリオが網羅されている
|
|
@@ -32,7 +32,7 @@ grep "Scenario:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MIS
|
|
|
32
32
|
## Git への追加(任意)
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
git add docs/project/behavior/
|
|
35
|
+
git add docs/project/02-behavior/
|
|
36
36
|
git status
|
|
37
37
|
```
|
|
38
38
|
|
|
@@ -15,8 +15,8 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
15
15
|
|
|
16
16
|
## 前提
|
|
17
17
|
|
|
18
|
-
- `docs/project/behavior/01-scenarios.md` が作成されている(`/a-003-create-scenarios` 実行済み)
|
|
19
|
-
- `docs/project/domain/` ディレクトリが存在(なければ `/a-001-setup-doc-structure`)
|
|
18
|
+
- `docs/project/02-behavior/01-scenarios.md` が作成されている(`/a-003-create-scenarios` 実行済み)
|
|
19
|
+
- `docs/project/03-domain/` ディレクトリが存在(なければ `/a-001-setup-doc-structure`)
|
|
20
20
|
- ドメインエキスパートと協力できる
|
|
21
21
|
|
|
22
22
|
## 手順
|
|
@@ -24,17 +24,17 @@ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
|
24
24
|
### 1. ディレクトリと前提条件の確認
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
ls -la docs/project/domain/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
27
|
+
ls -la docs/project/03-domain/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
存在しなければ `/a-001-setup-doc-structure` を促す。`docs/project/behavior/01-scenarios.md` を読み込み内容確認。
|
|
30
|
+
存在しなければ `/a-001-setup-doc-structure` を促す。`docs/project/02-behavior/01-scenarios.md` を読み込み内容確認。
|
|
31
31
|
|
|
32
32
|
### 2. テンプレートの準備
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
SCRIPT_DIR=$(for d in .
|
|
36
|
-
cp "$SCRIPT_DIR/templates/project/03-domain/01-domain-model.md" "docs/project/domain/01-domain-model.md"
|
|
37
|
-
cp "$SCRIPT_DIR/templates/project/03-domain/02-ubiquitous-language.md" "docs/project/domain/02-ubiquitous-language.md"
|
|
35
|
+
SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
|
|
36
|
+
cp "$SCRIPT_DIR/templates/project/03-domain/01-domain-model.md" "docs/project/03-domain/01-domain-model.md"
|
|
37
|
+
cp "$SCRIPT_DIR/templates/project/03-domain/02-ubiquitous-language.md" "docs/project/03-domain/02-ubiquitous-language.md"
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
### 3. Bounded Context の特定
|
|
@@ -76,7 +76,7 @@ Context 間の関係性(Customer-Supplier, Shared Kernel 等)を Mermaid 図
|
|
|
76
76
|
### 9. Git への追加(オプション)
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
git add docs/project/domain/
|
|
79
|
+
git add docs/project/03-domain/
|
|
80
80
|
git status
|
|
81
81
|
```
|
|
82
82
|
|
|
@@ -84,7 +84,7 @@ git status
|
|
|
84
84
|
|
|
85
85
|
## 完了条件
|
|
86
86
|
|
|
87
|
-
- `docs/project/domain/01-domain-model.md` と `02-ubiquitous-language.md` が作成されている
|
|
87
|
+
- `docs/project/03-domain/01-domain-model.md` と `02-ubiquitous-language.md` が作成されている
|
|
88
88
|
- 各 Bounded Context の主要ドメイン要素(Aggregates, Commands, Events)が定義されている
|
|
89
89
|
- ドメインモデルで使用される用語がユビキタス言語として定義されている
|
|
90
90
|
- ユーザーが内容を承認している
|