musubix 3.6.0 → 3.7.3

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.
Files changed (123) hide show
  1. package/.github/AGENTS.md +949 -0
  2. package/.github/prompts/sdd-change-apply.prompt.md +283 -0
  3. package/.github/prompts/sdd-change-archive.prompt.md +241 -0
  4. package/.github/prompts/sdd-change-init.prompt.md +269 -0
  5. package/.github/prompts/sdd-design.prompt.md +250 -0
  6. package/.github/prompts/sdd-implement.prompt.md +387 -0
  7. package/.github/prompts/sdd-requirements.prompt.md +193 -0
  8. package/.github/prompts/sdd-review.prompt.md +155 -0
  9. package/.github/prompts/sdd-security.prompt.md +228 -0
  10. package/.github/prompts/sdd-steering.prompt.md +269 -0
  11. package/.github/prompts/sdd-tasks.prompt.md +255 -0
  12. package/.github/prompts/sdd-test.prompt.md +230 -0
  13. package/.github/prompts/sdd-validate.prompt.md +304 -0
  14. package/.github/skills/build-fix/SKILL.md +124 -0
  15. package/.github/skills/checkpoint/SKILL.md +131 -0
  16. package/.github/skills/codemap/SKILL.md +120 -0
  17. package/.github/skills/codemap/templates/codemap-index.md +142 -0
  18. package/.github/skills/codemap/templates/package-codemap.md +160 -0
  19. package/.github/skills/context-optimizer/SKILL.md +109 -0
  20. package/.github/skills/context-optimizer/contexts/dev.md +40 -0
  21. package/.github/skills/context-optimizer/contexts/research.md +55 -0
  22. package/.github/skills/context-optimizer/contexts/review.md +49 -0
  23. package/.github/skills/e2e-runner/SKILL.md +145 -0
  24. package/.github/skills/eval-harness/SKILL.md +111 -0
  25. package/.github/skills/eval-harness/examples/capability-eval.md +158 -0
  26. package/.github/skills/eval-harness/examples/human-grader-template.md +326 -0
  27. package/.github/skills/eval-harness/examples/regression-eval.md +228 -0
  28. package/.github/skills/learning-hooks/SKILL.md +101 -0
  29. package/.github/skills/learning-hooks/templates/learned-skill-template.md +79 -0
  30. package/.github/skills/musubix-adr-generation/SKILL.md +74 -0
  31. package/.github/skills/musubix-best-practices/SKILL.md +85 -0
  32. package/.github/skills/musubix-c4-design/SKILL.md +86 -0
  33. package/.github/skills/musubix-code-generation/SKILL.md +90 -0
  34. package/.github/skills/musubix-domain-inference/SKILL.md +82 -0
  35. package/.github/skills/musubix-ears-validation/SKILL.md +74 -0
  36. package/.github/skills/musubix-sdd-workflow/SKILL.md +95 -0
  37. package/.github/skills/musubix-technical-writing/SKILL.md +108 -0
  38. package/.github/skills/musubix-test-generation/SKILL.md +88 -0
  39. package/.github/skills/musubix-traceability/SKILL.md +94 -0
  40. package/.github/skills/refactor-cleaner/SKILL.md +105 -0
  41. package/.github/skills/session-manager/SKILL.md +119 -0
  42. package/.github/skills/session-manager/scripts/session-end.sh +175 -0
  43. package/.github/skills/session-manager/scripts/session-start.sh +87 -0
  44. package/.github/skills/verification-loop/SKILL.md +111 -0
  45. package/.github/skills/verification-loop/scripts/verify.sh +305 -0
  46. package/AGENTS.md +333 -0
  47. package/LICENSE +21 -0
  48. package/README.ja.md +313 -0
  49. package/README.md +315 -50
  50. package/bin/musubix-mcp.js +15 -0
  51. package/bin/musubix.js +9 -1
  52. package/docs/API-REFERENCE.md +1425 -0
  53. package/docs/CODEMAPS/CODEMAP.md +1 -0
  54. package/docs/GITHUB-ACTIONS-NPM-SETUP.md +132 -0
  55. package/docs/INSTALL-GUIDE.ja.md +459 -0
  56. package/docs/INSTALL-GUIDE.md +459 -0
  57. package/docs/MIGRATION-v3.0.md +324 -0
  58. package/docs/MUSUBI-enhancement_roadmap_20260105.md +651 -0
  59. package/docs/MUSUBIX-v3.0-User-Guide.md +1357 -0
  60. package/docs/MUSUBIXv2.2.0-Manual-outline.md +136 -0
  61. package/docs/MUSUBIXv2.2.0-Manual.md +3123 -0
  62. package/docs/MUSUBIXv2.3.5-Refactering.md +1310 -0
  63. package/docs/MUSUBIv1.6.1-enhancement_roadmap_20260105.md +291 -0
  64. package/docs/MUSUBIv2.2.0-USERGUIDE.md +2079 -0
  65. package/docs/ROADMAP-v1.5.md +116 -0
  66. package/docs/SwarmCoding.md +1284 -0
  67. package/docs/Test-prompt.md +105 -0
  68. package/docs/USER-GUIDE-v1.8.0.md +2371 -0
  69. package/docs/USER-GUIDE.ja.md +2147 -0
  70. package/docs/USER-GUIDE.md +3022 -0
  71. package/docs/YATA-GLOBAL-GUIDE.ja.md +750 -0
  72. package/docs/YATA-GLOBAL-GUIDE.md +595 -0
  73. package/docs/YATA-LOCAL-GUIDE.ja.md +989 -0
  74. package/docs/YATA-LOCAL-GUIDE.md +730 -0
  75. package/docs/adr/0001-real-time-pattern-learning-architecture-for-v1-5-0.md +75 -0
  76. package/docs/adr/0002-pattern-sharing-protocol-for-cross-team-collaborat.md +79 -0
  77. package/docs/adr/0003-owl-2-rl-implementation-strategy-for-advanced-infe.md +90 -0
  78. package/docs/adr/ADR-v3.4.0-001-deep-research-architecture.md +217 -0
  79. package/docs/adr/ADR-v3.4.0-002-search-provider-selection.md +308 -0
  80. package/docs/adr/ADR-v3.4.0-003-lm-api-integration.md +475 -0
  81. package/docs/adr/ADR-v3.7.0-001-everything-claude-code-integration.md +102 -0
  82. package/docs/enterprise-knowledge-management.md +1737 -0
  83. package/docs/evolution-from-musubi-to-musubix.md +2170 -0
  84. package/docs/experiments/EXPERIMENT-ASSISTANT-AXIS-DRIFT-DETECTION.md +155 -0
  85. package/docs/getting-started-with-sdd.md +1602 -0
  86. package/docs/moodle-refactering-codegraph-musubix.md +391 -0
  87. package/docs/moodle-refactering-codegraph.md +278 -0
  88. package/docs/overview/MUSUBIX-CodeGraph.md +322 -0
  89. package/docs/overview/MUSUBIX-Core.md +671 -0
  90. package/docs/overview/MUSUBIX-Decisions.md +494 -0
  91. package/docs/overview/MUSUBIX-FormalVerify.md +566 -0
  92. package/docs/overview/MUSUBIX-Knowledge.md +1231 -0
  93. package/docs/overview/MUSUBIX-Learning.md +837 -0
  94. package/docs/overview/MUSUBIX-MCP-Server.md +535 -0
  95. package/docs/overview/MUSUBIX-Overview.md +264 -0
  96. package/docs/overview/MUSUBIX-Phase1-Complete.md +271 -0
  97. package/docs/overview/MUSUBIX-Phase2-Complete.md +310 -0
  98. package/docs/overview/MUSUBIX-Policy.md +477 -0
  99. package/docs/overview/MUSUBIX-Roadmap-v2.md +399 -0
  100. package/docs/overview/MUSUBIX-Security-Plan.md +939 -0
  101. package/docs/overview/MUSUBIX-Security-v2.1.md +668 -0
  102. package/docs/overview/MUSUBIX-Security.md +891 -0
  103. package/docs/overview/MUSUBIX-YATA.md +666 -0
  104. package/docs/overview/MUSUBIX-v2.2.0-Advanced-Learning.md +513 -0
  105. package/docs/overview/Neuro-SymbolicAI.md +159 -0
  106. package/docs/packages/knowledge.md +594 -0
  107. package/docs/qiita/musubix-v3.6.0-fastrender-insights.md +625 -0
  108. package/docs/qiita-linux-kernel-knowledge-graph.md +596 -0
  109. package/docs/qiita-musubix-assistant-axis.md +380 -0
  110. package/package.json +58 -52
  111. package/scripts/generate-quality-gate-report.ts +106 -0
  112. package/scripts/postinstall.js +94 -0
  113. package/scripts/register-release-knowledge.ts +127 -0
  114. package/steering/.musubi-version +1 -0
  115. package/steering/product.ja.md +572 -0
  116. package/steering/project.yml +66 -0
  117. package/steering/rules/constitution.md +491 -0
  118. package/steering/structure.ja.md +503 -0
  119. package/steering/tech.ja.md +208 -0
  120. package/dist/index.d.ts +0 -25
  121. package/dist/index.d.ts.map +0 -1
  122. package/dist/index.js +0 -74
  123. package/dist/index.js.map +0 -1
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: refactor-cleaner
3
+ description: デッドコード検出・安全な削除。knip/depcheck/ts-pruneと連携。
4
+ license: MIT
5
+ version: 1.1.0
6
+ triggers:
7
+ - /refactor
8
+ - /cleanup
9
+ - /deadcode
10
+ ---
11
+
12
+ # Refactor Cleaner
13
+
14
+ > **要約**: デッドコードを検出し、安全に削除。すべての削除操作をログに記録。
15
+
16
+ ## 📌 コマンド
17
+
18
+ | コマンド | 説明 |
19
+ |---------|------|
20
+ | `/refactor analyze` | デッドコード検出 |
21
+ | `/refactor clean [--safe-only]` | 安全な削除 |
22
+ | `/refactor report` | レポート表示 |
23
+
24
+ ---
25
+
26
+ ## 🔍 検出ツール (REQ-RC-001)
27
+
28
+ | ツール | 検出内容 | コマンド |
29
+ |--------|---------|---------|
30
+ | **knip** | 未使用ファイル/エクスポート/依存 | `npx knip` |
31
+ | **depcheck** | 未使用npm依存 | `npx depcheck` |
32
+ | **ts-prune** | 未使用TSエクスポート | `npx ts-prune` |
33
+
34
+ ---
35
+
36
+ ## ⚠️ 安全な削除 (REQ-RC-002)
37
+
38
+ **BEFORE** 削除実行
39
+ **DO** 以下を検証
40
+
41
+ | チェック | コマンド |
42
+ |---------|---------|
43
+ | 動的インポート | `grep -rn "import(" src/` |
44
+ | テスト参照 | `grep -rn "<name>" tests/` |
45
+ | ドキュメント参照 | `grep -rn "<name>" docs/` |
46
+
47
+ **検出された場合**: 削除対象から除外
48
+
49
+ ---
50
+
51
+ ## 📊 リスク分類 (REQ-RC-004)
52
+
53
+ | レベル | 説明 | アクション |
54
+ |--------|------|----------|
55
+ | 🟢 **SAFE** | 静的解析で参照なし | 自動削除可 |
56
+ | 🟡 **CAUTION** | 動的参照の可能性 | 確認必要 |
57
+ | 🔴 **DANGER** | 公開API/エントリーポイント | 自動削除禁止 |
58
+
59
+ **出力例**:
60
+ ```
61
+ 🔍 Dead Code Analysis
62
+ ━━━━━━━━━━━━━━━━━━━━━━━━
63
+ 🟢 SAFE (5):
64
+ • src/utils/deprecated.ts
65
+ • src/helpers/old.ts
66
+
67
+ 🟡 CAUTION (2):
68
+ • src/lib/maybe-used.ts
69
+
70
+ 🔴 DANGER (1):
71
+ • src/index.ts (entry point)
72
+ ━━━━━━━━━━━━━━━━━━━━━━━━
73
+ ```
74
+
75
+ ---
76
+
77
+ ## 📝 Deletion Log (REQ-RC-003)
78
+
79
+ **WHEN** コード削除
80
+ **DO** `docs/DELETION_LOG.md`に記録
81
+
82
+ ```markdown
83
+ ## [日付]
84
+
85
+ ### Deleted
86
+ - `src/utils/deprecated.ts`
87
+ - `src/helpers/old.ts`
88
+
89
+ ### Reason
90
+ knip検出: 未使用エクスポート
91
+
92
+ ### Restore
93
+ `git checkout abc1234 -- <file>`
94
+ ```
95
+
96
+ **レポート保存**: `.reports/dead-code-analysis.md`
97
+
98
+ ---
99
+
100
+ ## トレーサビリティ
101
+
102
+ - REQ-RC-001: Dead Code Detection
103
+ - REQ-RC-002: Safe Deletion
104
+ - REQ-RC-003: Deletion Log
105
+ - REQ-RC-004: Risk Classification
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: session-manager
3
+ description: セッション開始時にコンテキスト復元、終了時に状態保存。TodoWrite統合でタスク追跡。
4
+ license: MIT
5
+ version: 1.1.0
6
+ triggers:
7
+ - セッション開始
8
+ - セッション終了
9
+ - /session
10
+ - マルチステップタスク
11
+ ---
12
+
13
+ # Session Manager
14
+
15
+ > **要約**: セッション間の継続性を提供。開始時に過去コンテキストを復元、終了時に状態を永続化。
16
+
17
+ ## 🔄 トリガーと即時アクション
18
+
19
+ ### セッション開始時
20
+
21
+ **WHEN** 新しいセッションが開始される
22
+ **DO** 以下を順に実行:
23
+
24
+ 1. `~/.musubix/sessions/` から過去7日間のファイルを検索
25
+ 2. 直近セッションの「Notes for Next Session」を読む
26
+ 3. ユーザーに引き継ぎ内容を通知
27
+
28
+ ```bash
29
+ find ~/.musubix/sessions/ -name "*.md" -mtime -7 2>/dev/null | head -5
30
+ ```
31
+
32
+ **出力フォーマット**:
33
+ ```
34
+ 📋 前回セッションからの引き継ぎ
35
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
36
+ 📅 日時: [YYYY-MM-DD HH:MM]
37
+ 📝 未完了: [タスクリスト]
38
+ 💡 メモ: [重要コンテキスト]
39
+ 📂 推奨ファイル: [パスリスト]
40
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
41
+ 続きから再開しますか?
42
+ ```
43
+
44
+ ---
45
+
46
+ ### セッション終了時
47
+
48
+ **WHEN** セッション終了/長時間中断
49
+ **DO** 状態を `~/.musubix/sessions/YYYY-MM-DD-HH-MM.md` に保存
50
+
51
+ **保存フォーマット**:
52
+ ```markdown
53
+ # Session: [日付]
54
+ **Project:** [名前] | **Started:** [HH:MM] | **Updated:** [HH:MM]
55
+
56
+ ## Completed
57
+ - [x] 完了タスク
58
+
59
+ ## In Progress
60
+ - [ ] 進行中タスク
61
+
62
+ ## Notes for Next Session
63
+ - 重要コンテキスト
64
+
65
+ ## Context to Load
66
+ - `path/to/file`
67
+ ```
68
+
69
+ ---
70
+
71
+ ### コンテキスト圧縮前
72
+
73
+ **WHEN** コンテキスト圧縮がトリガーされる
74
+ **DO** 圧縮前に重要な状態をセッションファイルに追記
75
+
76
+ **保存項目**: 現在のタスク状態、重要な変数/設定、次のアクション
77
+
78
+ ---
79
+
80
+ ## ✅ TodoWrite統合
81
+
82
+ **WHEN** マルチステップタスク(3ステップ以上)を開始
83
+ **DO** TodoWriteツールで進捗を追跡
84
+
85
+ ### ベストプラクティス
86
+
87
+ | やること | 理由 |
88
+ |---------|------|
89
+ | タスク開始時にリスト作成 | 実行順序を明示 |
90
+ | 完了ごとにチェック | 進捗を可視化 |
91
+ | 欠落ステップを検出 | 抜け漏れ防止 |
92
+ | 終了時に未完了を記録 | 次回引き継ぎ |
93
+
94
+ **例**:
95
+ ```
96
+ □ 1. 要件定義の確認
97
+ □ 2. 設計ドキュメント作成
98
+ ☑ 3. 実装(完了)
99
+ □ 4. テスト作成
100
+ □ 5. レビュー依頼
101
+ ```
102
+
103
+ ---
104
+
105
+ ## 📁 ストレージ
106
+
107
+ | パス | 内容 |
108
+ |------|------|
109
+ | `~/.musubix/sessions/` | セッションファイル(30日保持) |
110
+ | `~/.musubix/sessions/YYYY-MM-DD-HH-MM.md` | 個別セッション |
111
+
112
+ ---
113
+
114
+ ## トレーサビリティ
115
+
116
+ - REQ-SM-001: SessionStart Hook
117
+ - REQ-SM-002: SessionEnd Hook
118
+ - REQ-SM-003: Pre-Compact State Saving
119
+ - REQ-SM-004: TodoWrite統合
@@ -0,0 +1,175 @@
1
+ #!/bin/bash
2
+ # MUSUBIX Session End Hook
3
+ # REQ-SM-002: SessionEnd Hook
4
+ #
5
+ # Usage: ./session-end.sh [--project PROJECT_NAME]
6
+
7
+ set -e
8
+
9
+ # Configuration
10
+ SESSIONS_DIR="${HOME}/.musubix/sessions"
11
+ MAX_FILE_SIZE=1048576 # 1MB
12
+ RETENTION_DAYS=30
13
+ MAX_FILES=100
14
+
15
+ # Colors
16
+ GREEN='\033[0;32m'
17
+ YELLOW='\033[1;33m'
18
+ BLUE='\033[0;34m'
19
+ RED='\033[0;31m'
20
+ NC='\033[0m'
21
+
22
+ # Parse arguments
23
+ PROJECT_NAME=""
24
+ while [[ "$#" -gt 0 ]]; do
25
+ case $1 in
26
+ --project) PROJECT_NAME="$2"; shift ;;
27
+ *) echo "Unknown parameter: $1"; exit 1 ;;
28
+ esac
29
+ shift
30
+ done
31
+
32
+ # Create sessions directory if it doesn't exist
33
+ mkdir -p "$SESSIONS_DIR"
34
+
35
+ # Generate filename
36
+ TIMESTAMP=$(date +"%Y-%m-%d-%H-%M")
37
+ SESSION_FILE="${SESSIONS_DIR}/${TIMESTAMP}.md"
38
+
39
+ echo -e "${BLUE}📋 MUSUBIX Session Manager - Session End${NC}"
40
+ echo "================================================"
41
+ echo ""
42
+
43
+ # Detect project name if not provided
44
+ if [ -z "$PROJECT_NAME" ]; then
45
+ if [ -f "package.json" ]; then
46
+ PROJECT_NAME=$(grep -o '"name": *"[^"]*"' package.json | head -1 | cut -d'"' -f4)
47
+ elif [ -d ".git" ]; then
48
+ PROJECT_NAME=$(basename "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null)
49
+ fi
50
+ PROJECT_NAME="${PROJECT_NAME:-Unknown Project}"
51
+ fi
52
+
53
+ # Get start time (approximate based on shell history or use current)
54
+ START_TIME=$(date -d "2 hours ago" +"%H:%M" 2>/dev/null || date +"%H:%M")
55
+ CURRENT_TIME=$(date +"%H:%M")
56
+ CURRENT_DATE=$(date +"%Y-%m-%d")
57
+
58
+ # Interactive prompts for session data
59
+ echo -e "${YELLOW}セッション情報を入力してください:${NC}"
60
+ echo ""
61
+
62
+ # Completed tasks
63
+ echo "✅ 完了したタスク (空行で終了):"
64
+ COMPLETED_TASKS=""
65
+ while IFS= read -r line; do
66
+ [ -z "$line" ] && break
67
+ COMPLETED_TASKS="${COMPLETED_TASKS}\n- [x] ${line}"
68
+ done
69
+
70
+ # In progress tasks
71
+ echo ""
72
+ echo "⏳ 進行中のタスク (空行で終了):"
73
+ IN_PROGRESS_TASKS=""
74
+ while IFS= read -r line; do
75
+ [ -z "$line" ] && break
76
+ IN_PROGRESS_TASKS="${IN_PROGRESS_TASKS}\n- [ ] ${line}"
77
+ done
78
+
79
+ # Notes for next session
80
+ echo ""
81
+ echo "📝 次回向けメモ (空行で終了):"
82
+ NOTES=""
83
+ while IFS= read -r line; do
84
+ [ -z "$line" ] && break
85
+ NOTES="${NOTES}\n- ${line}"
86
+ done
87
+
88
+ # Context files to load
89
+ echo ""
90
+ echo "📂 次回読み込むべきファイル (空行で終了):"
91
+ CONTEXT_FILES=""
92
+ while IFS= read -r line; do
93
+ [ -z "$line" ] && break
94
+ CONTEXT_FILES="${CONTEXT_FILES}\n${line}"
95
+ done
96
+
97
+ # Count completed tasks
98
+ COMPLETED_COUNT=$(echo -e "$COMPLETED_TASKS" | grep -c "\[x\]" 2>/dev/null || echo 0)
99
+ IN_PROGRESS_COUNT=$(echo -e "$IN_PROGRESS_TASKS" | grep -c "\[ \]" 2>/dev/null || echo 0)
100
+ NOTES_COUNT=$(echo -e "$NOTES" | grep -c "^-" 2>/dev/null || echo 0)
101
+
102
+ # Generate session file
103
+ cat > "$SESSION_FILE" << EOF
104
+ # Session: ${CURRENT_DATE}
105
+
106
+ **Date:** ${CURRENT_DATE}
107
+ **Started:** ${START_TIME}
108
+ **Last Updated:** ${CURRENT_TIME}
109
+ **Project:** ${PROJECT_NAME}
110
+
111
+ ---
112
+
113
+ ## Current State
114
+
115
+ ### Completed
116
+ $(echo -e "$COMPLETED_TASKS" | sed '/^$/d')
117
+
118
+ ### In Progress
119
+ $(echo -e "$IN_PROGRESS_TASKS" | sed '/^$/d')
120
+
121
+ ### Blocked
122
+ - [ ] (なし)
123
+
124
+ ---
125
+
126
+ ## Notes for Next Session
127
+ $(echo -e "$NOTES" | sed '/^$/d')
128
+
129
+ ---
130
+
131
+ ## Context to Load
132
+
133
+ \`\`\`
134
+ $(echo -e "$CONTEXT_FILES" | sed '/^$/d')
135
+ \`\`\`
136
+
137
+ ---
138
+
139
+ ## Session Summary
140
+
141
+ - **タスク完了数**: ${COMPLETED_COUNT}
142
+ - **未完了タスク**: ${IN_PROGRESS_COUNT}
143
+ - **次回向けメモ**: ${NOTES_COUNT}項目
144
+ - **セッション時間**: ${START_TIME} - ${CURRENT_TIME}
145
+
146
+ EOF
147
+
148
+ # Check file size
149
+ FILE_SIZE=$(stat -f%z "$SESSION_FILE" 2>/dev/null || stat -c%s "$SESSION_FILE" 2>/dev/null)
150
+ if [ "$FILE_SIZE" -gt "$MAX_FILE_SIZE" ]; then
151
+ echo -e "${RED}⚠️ 警告: セッションファイルが1MBを超えています${NC}"
152
+ fi
153
+
154
+ # Cleanup old sessions
155
+ echo ""
156
+ echo -e "${YELLOW}🧹 古いセッションのクリーンアップ...${NC}"
157
+ find "$SESSIONS_DIR" -name "*.md" -mtime +"$RETENTION_DAYS" -delete 2>/dev/null || true
158
+
159
+ # Check file count
160
+ FILE_COUNT=$(find "$SESSIONS_DIR" -name "*.md" -type f | wc -l)
161
+ if [ "$FILE_COUNT" -gt "$MAX_FILES" ]; then
162
+ echo -e "${YELLOW}ℹ️ ファイル数が${MAX_FILES}を超えています。古いファイルを削除します。${NC}"
163
+ find "$SESSIONS_DIR" -name "*.md" -type f -printf '%T+ %p\n' | sort | head -n "$((FILE_COUNT - MAX_FILES))" | cut -d' ' -f2- | xargs rm -f 2>/dev/null || true
164
+ fi
165
+
166
+ echo ""
167
+ echo "================================================"
168
+ echo -e "${GREEN}✅ セッションを保存しました: ${SESSION_FILE}${NC}"
169
+ echo ""
170
+ echo -e "${BLUE}サマリー:${NC}"
171
+ echo " - 完了タスク: ${COMPLETED_COUNT}件"
172
+ echo " - 未完了タスク: ${IN_PROGRESS_COUNT}件"
173
+ echo " - 次回向けメモ: ${NOTES_COUNT}項目"
174
+ echo ""
175
+ echo -e "${GREEN}セッションを正常に終了しました。お疲れ様でした!${NC}"
@@ -0,0 +1,87 @@
1
+ #!/bin/bash
2
+ # MUSUBIX Session Start Hook
3
+ # REQ-SM-001: SessionStart Hook
4
+ #
5
+ # Usage: source session-start.sh
6
+ # Or run directly: ./session-start.sh
7
+
8
+ set -e
9
+
10
+ # Configuration
11
+ SESSIONS_DIR="${HOME}/.musubix/sessions"
12
+ RETENTION_DAYS=7
13
+ MAX_SESSIONS_TO_SHOW=5
14
+
15
+ # Colors
16
+ GREEN='\033[0;32m'
17
+ YELLOW='\033[1;33m'
18
+ BLUE='\033[0;34m'
19
+ NC='\033[0m' # No Color
20
+
21
+ # Create sessions directory if it doesn't exist
22
+ mkdir -p "$SESSIONS_DIR"
23
+
24
+ echo -e "${BLUE}📋 MUSUBIX Session Manager - Session Start${NC}"
25
+ echo "================================================"
26
+ echo ""
27
+
28
+ # Find recent sessions (within RETENTION_DAYS days)
29
+ recent_sessions=$(find "$SESSIONS_DIR" -name "*.md" -mtime -"$RETENTION_DAYS" -type f 2>/dev/null | sort -r | head -"$MAX_SESSIONS_TO_SHOW")
30
+
31
+ if [ -z "$recent_sessions" ]; then
32
+ echo -e "${YELLOW}ℹ️ 過去${RETENTION_DAYS}日間のセッションは見つかりませんでした。${NC}"
33
+ echo ""
34
+ echo "新しいセッションを開始します。"
35
+ exit 0
36
+ fi
37
+
38
+ echo -e "${GREEN}✅ 過去${RETENTION_DAYS}日間のセッションが見つかりました:${NC}"
39
+ echo ""
40
+
41
+ # Process each session
42
+ for session_file in $recent_sessions; do
43
+ filename=$(basename "$session_file")
44
+ date_part="${filename%.md}"
45
+
46
+ # Extract info from session file
47
+ echo -e "${BLUE}📄 $filename${NC}"
48
+
49
+ # Extract Notes for Next Session
50
+ notes=$(sed -n '/^## Notes for Next Session/,/^##/p' "$session_file" 2>/dev/null | grep -v "^##" | head -5)
51
+ if [ -n "$notes" ]; then
52
+ echo " 📝 次回向けメモ:"
53
+ echo "$notes" | sed 's/^/ /'
54
+ fi
55
+
56
+ # Extract In Progress tasks
57
+ in_progress=$(sed -n '/^### In Progress/,/^###/p' "$session_file" 2>/dev/null | grep "^\- \[ \]" | head -5)
58
+ if [ -n "$in_progress" ]; then
59
+ echo " ⏳ 未完了タスク:"
60
+ echo "$in_progress" | sed 's/^/ /'
61
+ fi
62
+
63
+ echo ""
64
+ done
65
+
66
+ # Get the most recent session
67
+ most_recent=$(echo "$recent_sessions" | head -1)
68
+
69
+ if [ -n "$most_recent" ]; then
70
+ echo "================================================"
71
+ echo -e "${YELLOW}💡 最新セッション: $(basename "$most_recent")${NC}"
72
+ echo ""
73
+ echo "前回のセッションから続けますか?"
74
+ echo " - 'yes' または 'y' で前回のコンテキストを読み込み"
75
+ echo " - 'no' または 'n' で新規セッション開始"
76
+ echo ""
77
+
78
+ # Extract Context to Load
79
+ context_files=$(sed -n '/^## Context to Load/,/^##/p' "$most_recent" 2>/dev/null | grep -v "^##" | grep -v "^\`\`\`" | grep -v "^$")
80
+ if [ -n "$context_files" ]; then
81
+ echo "📂 読み込み推奨ファイル:"
82
+ echo "$context_files" | sed 's/^/ /'
83
+ fi
84
+ fi
85
+
86
+ echo ""
87
+ echo -e "${GREEN}セッション開始の準備が完了しました。${NC}"
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: verification-loop
3
+ description: 6フェーズ検証ループ(Build→Type→Lint→Test→Security→Diff)でPRレディネスを判定。
4
+ license: MIT
5
+ version: 1.1.0
6
+ triggers:
7
+ - /verify
8
+ - /verify quick
9
+ - PRレビュー前
10
+ - セッション終了
11
+ ---
12
+
13
+ # Verification Loop
14
+
15
+ > **要約**: 6フェーズの総合検証でPRレディネスを判定。quick/fullモードとStop Hook監査をサポート。
16
+
17
+ ## 🔄 /verify コマンド
18
+
19
+ ### Full検証 (REQ-VL-001)
20
+
21
+ **WHEN** `/verify` 実行
22
+ **DO** 6フェーズを順次実行
23
+
24
+ | # | フェーズ | コマンド | 失敗時 |
25
+ |---|---------|---------|--------|
26
+ | 1 | **Build** | `npm run build` | 即停止・修正 |
27
+ | 2 | **Type** | `npx tsc --noEmit` | 重大エラー修正 |
28
+ | 3 | **Lint** | `npm run lint` | 報告(--fix可) |
29
+ | 4 | **Test** | `npm test` | 報告 |
30
+ | 5 | **Security** | `npm audit` | 報告 |
31
+ | 6 | **Diff** | `git diff --stat` | レビュー |
32
+
33
+ ---
34
+
35
+ ### Quick検証 (REQ-VL-004)
36
+
37
+ **WHEN** `/verify quick` 実行
38
+ **DO** 最小セットを実行
39
+
40
+ - Type Check(可能なら)
41
+ - Tests(差分関連 or `test:unit`)
42
+ - Diff Review(サマリーのみ)
43
+
44
+ ---
45
+
46
+ ## 📋 Verification Report (REQ-VL-002)
47
+
48
+ ```
49
+ ╔════════════════════════════════════════════╗
50
+ ║ VERIFICATION REPORT ║
51
+ ╠════════════════════════════════════════════╣
52
+ ║ Build: [PASS] ✅ ║
53
+ ║ Types: [PASS] ✅ (0 errors) ║
54
+ ║ Lint: [PASS] ⚠️ (3 warnings) ║
55
+ ║ Tests: [PASS] ✅ (42/42, 85%) ║
56
+ ║ Security: [PASS] ✅ (0 critical) ║
57
+ ║ Diff: [INFO] 📝 (5 files, +120 -45) ║
58
+ ╠════════════════════════════════════════════╣
59
+ ║ Overall: [READY] ✅ for PR ║
60
+ ╚════════════════════════════════════════════╝
61
+ ```
62
+
63
+ **NOT READY時**:
64
+ ```
65
+ Issues to Fix:
66
+ 1. src/user.ts:45 - Type error TS2322
67
+ 2. tests/api.test.ts - 2 failed tests
68
+ ```
69
+
70
+ ---
71
+
72
+ ## ⏱️ Continuous Verification (REQ-VL-003)
73
+
74
+ **WHEN** 長時間セッション(15分以上)または大きな変更後
75
+ **DO** 自動検証を提案
76
+
77
+ ```
78
+ 💡 検証を実行しますか?
79
+ 最後の検証から15分経過しました。
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 🔍 Stop Hook監査 (REQ-VL-005)
85
+
86
+ **WHEN** セッション終了
87
+ **DO** 編集ファイルに対して監査
88
+
89
+ | チェック | 対象 | アクション |
90
+ |---------|------|----------|
91
+ | `console.log` | `.ts`, `.tsx`, `.js` | 警告 |
92
+ | `debugger` | `.ts`, `.tsx`, `.js` | 警告 |
93
+ | TODO/FIXME | 全ファイル | リスト化 |
94
+ | 未コミット | Git管理 | コミット提案 |
95
+
96
+ **検出コマンド**:
97
+ ```bash
98
+ grep -rn "console.log\|debugger" --include="*.ts" --include="*.tsx" src/
99
+ grep -rn "TODO\|FIXME" --include="*.ts" src/
100
+ git status --short
101
+ ```
102
+
103
+ ---
104
+
105
+ ## トレーサビリティ
106
+
107
+ - REQ-VL-001: Multi-Phase Verification
108
+ - REQ-VL-002: Verification Report
109
+ - REQ-VL-003: Continuous Verification
110
+ - REQ-VL-004: Verification Modes
111
+ - REQ-VL-005: Stop Hook監査