shiden 0.1.0

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 (38) hide show
  1. package/.github/prompts/assessment.md +303 -0
  2. package/.github/prompts/feedback.md +318 -0
  3. package/.github/prompts/guidance.md +361 -0
  4. package/.github/prompts/individual.md +300 -0
  5. package/.github/prompts/lesson-plan.md +233 -0
  6. package/.github/prompts/materials.md +349 -0
  7. package/.github/prompts/meta-prompt.md +201 -0
  8. package/.github/skills/context-manager.md +324 -0
  9. package/.github/skills/orchestrator.md +184 -0
  10. package/.github/skills/theory-lookup.md +283 -0
  11. package/AGENTS.md +142 -0
  12. package/LICENSE +21 -0
  13. package/README.md +122 -0
  14. package/bin/shiden.js +3 -0
  15. package/dist/cli/index.js +175 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/index.js +6 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/types/cli/index.d.ts +6 -0
  20. package/dist/types/cli/index.d.ts.map +1 -0
  21. package/dist/types/index.d.ts +6 -0
  22. package/dist/types/index.d.ts.map +1 -0
  23. package/dist/types/index.js +59 -0
  24. package/dist/types/index.js.map +1 -0
  25. package/dist/types/types/index.d.ts +117 -0
  26. package/dist/types/types/index.d.ts.map +1 -0
  27. package/package.json +66 -0
  28. package/templates/.github/prompts/assessment.md +303 -0
  29. package/templates/.github/prompts/feedback.md +318 -0
  30. package/templates/.github/prompts/guidance.md +361 -0
  31. package/templates/.github/prompts/individual.md +300 -0
  32. package/templates/.github/prompts/lesson-plan.md +233 -0
  33. package/templates/.github/prompts/materials.md +349 -0
  34. package/templates/.github/prompts/meta-prompt.md +201 -0
  35. package/templates/.github/skills/context-manager.md +324 -0
  36. package/templates/.github/skills/orchestrator.md +184 -0
  37. package/templates/.github/skills/theory-lookup.md +283 -0
  38. package/templates/AGENTS.md +142 -0
@@ -0,0 +1,201 @@
1
+ # メタプロンプト生成スキル
2
+
3
+ > ユーザーのリクエストを構造化し、質の高い教育コンテンツを生成するためのメタプロンプトを作成します。
4
+
5
+ ## 概要
6
+
7
+ このスキルは、曖昧または不完全なリクエストを受け取り、以下のプロセスで最適化されたメタプロンプトを生成します:
8
+
9
+ 1. プロンプト強化(暗黙の前提を明示化)
10
+ 2. 強化プロンプト確認(ユーザーへの確認)
11
+ 3. コンテキスト収集(1問1答形式)
12
+ 4. メタプロンプト生成
13
+
14
+ ## Phase 1: プロンプト強化
15
+
16
+ ユーザーのリクエストを受け取ったら、以下の観点で分析・強化します:
17
+
18
+ ### 分析観点
19
+
20
+ 1. **曖昧な表現の特定**
21
+ - 「わかりやすい」「良い」などの主観的表現
22
+ - 具体的な基準が不明な表現
23
+
24
+ 2. **暗黙の前提の明示化**
25
+ - 対象学年・教科の推測
26
+ - 想定される学習者像
27
+ - 期待される成果物の形式
28
+
29
+ 3. **欠落要素の特定**
30
+ - 時間・リソースの制約
31
+ - 評価基準
32
+ - 特別な配慮事項
33
+
34
+ ### 出力形式
35
+
36
+ ```
37
+ 📝 あなたのリクエストを以下のように理解しました:
38
+
39
+ 【元のリクエスト】
40
+ {ユーザーの元のリクエスト}
41
+
42
+ 【強化されたリクエスト】
43
+ {構造化・明確化されたリクエスト}
44
+
45
+ 【補足した要素】
46
+ - {暗黙の前提1}
47
+ - {暗黙の前提2}
48
+
49
+ 👉 この理解で正しいですか?修正があればお知らせください。
50
+ ```
51
+
52
+ ## Phase 2: コンテキスト収集(1問1答)
53
+
54
+ 強化プロンプトが確認されたら、不足している情報を1問1答形式で収集します。
55
+
56
+ ### 重要なルール
57
+
58
+ - **1度に1つの質問のみ**を提示
59
+ - 回答を受け取ってから次の質問へ
60
+ - **最大5問まで**(所要時間目安: 2-3分)
61
+ - 「スキップ」と言われたら次の質問へ
62
+
63
+ ### 質問バンク
64
+
65
+ 以下の質問から、コンテキストに応じて適切なものを選択します:
66
+
67
+ #### Q1: 学習目標に関する質問
68
+ ```
69
+ 📌 この授業/教材で、生徒に達成してほしい具体的な目標は何ですか?
70
+ (例: 「一次関数のグラフを正確に描けるようになる」「実験結果を論理的に説明できる」)
71
+
72
+ 💡 スキップする場合は「スキップ」とお伝えください。
73
+ ```
74
+
75
+ #### Q2: 学習者レベルに関する質問
76
+ ```
77
+ 📌 対象の学習者について教えてください:
78
+ - 学年・年齢
79
+ - この分野の習熟度(初学者/基礎あり/発展)
80
+ - クラスの特徴(人数、雰囲気など)
81
+
82
+ 💡 スキップする場合は「スキップ」とお伝えください。
83
+ ```
84
+
85
+ #### Q3: 配慮事項に関する質問
86
+ ```
87
+ 📌 特別な配慮が必要な点はありますか?
88
+ (例: 学習支援が必要な生徒、言語的背景、興味関心の偏りなど)
89
+
90
+ 💡 特にない場合は「特になし」または「スキップ」とお伝えください。
91
+ ```
92
+
93
+ #### Q4: 時間・リソースに関する質問
94
+ ```
95
+ 📌 時間やリソースの制約を教えてください:
96
+ - 授業時間(例: 45分、50分、90分)
97
+ - 使用可能な機材・教材
98
+ - 準備にかけられる時間
99
+
100
+ 💡 スキップする場合は「スキップ」とお伝えください。
101
+ ```
102
+
103
+ #### Q5: 評価・成功基準に関する質問
104
+ ```
105
+ 📌 この授業/教材が「成功した」と言えるのは、どんな状態ですか?
106
+ (例: 「全員が基本問題を解ける」「生徒が質問を3つ以上する」)
107
+
108
+ 💡 スキップする場合は「スキップ」とお伝えください。
109
+ ```
110
+
111
+ ### 真の目的探索質問(オプション)
112
+
113
+ リクエストの背景にある真の目的を探るため、以下の質問を適宜使用します:
114
+
115
+ ```
116
+ 🎯 もう少し深くお聞きしてもよいですか?
117
+
118
+ 「この単元で生徒にどのような変化を期待していますか?」
119
+
120
+ 単に知識を得るだけでなく、考え方や態度の変化があれば教えてください。
121
+ ```
122
+
123
+ ```
124
+ 🎯 最後に1つだけ確認させてください:
125
+
126
+ 「この授業の成功をどのように判断しますか?」
127
+
128
+ テストの点数以外で、どんな変化が見られたら嬉しいですか?
129
+ ```
130
+
131
+ ## Phase 3: メタプロンプト生成
132
+
133
+ 収集した情報を基に、構造化されたメタプロンプトを生成します。
134
+
135
+ ### メタプロンプト構造
136
+
137
+ ```markdown
138
+ ## 教育コンテンツ生成メタプロンプト
139
+
140
+ ### 【コンテキスト】
141
+ - **対象学年**: {学年}
142
+ - **教科**: {教科}
143
+ - **単元/トピック**: {単元名}
144
+ - **授業時間**: {時間}分
145
+ - **生徒状況**: {学習者の特徴、習熟度}
146
+ - **特別な配慮**: {配慮事項}
147
+
148
+ ### 【学習目標】
149
+ {Bloom's Taxonomyに基づいた具体的な学習目標}
150
+
151
+ ### 【参照すべき教育理論】
152
+ 以下の理論をTENJINから検索し、適用を検討してください:
153
+ - {推奨理論1}({適用場面})
154
+ - {推奨理論2}({適用場面})
155
+
156
+ ### 【出力要件】
157
+ - **形式**: {求められる成果物の形式}
158
+ - **構成**: {含めるべきセクション}
159
+ - **分量**: {目安となる分量}
160
+
161
+ ### 【品質基準】
162
+ - {品質基準1}
163
+ - {品質基準2}
164
+ - {品質基準3}
165
+
166
+ ### 【成功の指標】
167
+ {ユーザーが定義した成功基準}
168
+ ```
169
+
170
+ ## フロー制御
171
+
172
+ ### スキップ処理
173
+
174
+ ユーザーが「スキップ」と言った場合:
175
+ 1. その質問の回答はデフォルト値または空欄とする
176
+ 2. 次の質問に進む
177
+ 3. メタプロンプト生成時に「情報不足」として明記
178
+
179
+ ### 早期終了
180
+
181
+ ユーザーが「もう十分」「早く作って」と言った場合:
182
+ 1. 収集済みの情報でメタプロンプトを生成
183
+ 2. 不足情報は推測値を使用し、その旨を明記
184
+
185
+ ### 所要時間の目安
186
+
187
+ コンテキスト収集全体で **2-3分** を目安とします。
188
+ 5問すべてに回答しても3分以内で完了できるよう、質問は簡潔にします。
189
+
190
+ ## 次のステップ
191
+
192
+ メタプロンプト生成後、以下のスキルに引き継ぎます:
193
+
194
+ - 授業計画 → `lesson-plan.md`
195
+ - 教材作成 → `materials.md`
196
+ - 評価設計 → `assessment.md`
197
+ - 個別指導 → `individual.md`
198
+ - フィードバック → `feedback.md`
199
+ - 生活指導 → `guidance.md`
200
+
201
+ 引き継ぎ時は、生成したメタプロンプトを該当スキルに渡します。
@@ -0,0 +1,324 @@
1
+ # コンテキスト管理スキル
2
+
3
+ > セッション内の情報を保持し、スキル間のデータ受け渡しを管理します。
4
+
5
+ ## 概要
6
+
7
+ このスキルは、SHIDENのセッション全体を通じてコンテキスト(文脈情報)を管理します。会話履歴、前回のスキル実行結果、ユーザー設定などを保持し、スキル間の連携を円滑にします。
8
+
9
+ ## 主な機能
10
+
11
+ ### 1. セッションコンテキストの保持
12
+
13
+ 会話セッション中に以下の情報を保持します:
14
+
15
+ - **会話履歴**: ユーザーとの対話履歴
16
+ - **スキル実行結果**: 各スキルが生成したコンテンツ
17
+ - **メタプロンプト**: 収集したコンテキスト情報
18
+ - **TENJIN検索結果**: 参照した教育理論
19
+ - **ユーザー設定**: デフォルトの学年・教科など
20
+
21
+ ### 2. コンテキスト操作
22
+
23
+ #### remember(記憶)
24
+
25
+ 情報をセッションコンテキストに保存します。
26
+
27
+ ```
28
+ remember(key, value, metadata?)
29
+ ```
30
+
31
+ **使用例**:
32
+ ```
33
+ remember("last_lesson_plan", {
34
+ subject: "数学",
35
+ grade: "中学2年",
36
+ topic: "一次関数",
37
+ content: "...",
38
+ theories: ["blooms_taxonomy", "gagnes_nine_events"]
39
+ }, {
40
+ timestamp: "2026-01-21T10:30:00",
41
+ skill: "lesson-plan"
42
+ })
43
+ ```
44
+
45
+ #### recall(想起)
46
+
47
+ 保存された情報を取得します。
48
+
49
+ ```
50
+ recall(key)
51
+ recall(query, type?)
52
+ ```
53
+
54
+ **使用例**:
55
+ ```
56
+ recall("last_lesson_plan")
57
+ → 直前の授業計画を取得
58
+
59
+ recall("前の授業計画", "lesson-plan")
60
+ → 自然言語クエリで関連情報を検索
61
+ ```
62
+
63
+ #### clear(クリア)
64
+
65
+ コンテキストをクリアします。
66
+
67
+ ```
68
+ clear(key?)
69
+ clear() // 全クリア
70
+ ```
71
+
72
+ **使用例**:
73
+ ```
74
+ clear("last_lesson_plan")
75
+ → 特定のキーをクリア
76
+
77
+ clear()
78
+ → セッション全体をクリア
79
+ ```
80
+
81
+ #### summarize(要約)
82
+
83
+ セッションの要約を生成します。
84
+
85
+ ```
86
+ summarize()
87
+ ```
88
+
89
+ **出力例**:
90
+ ```markdown
91
+ ## セッションサマリー
92
+
93
+ ### 実行したスキル
94
+ 1. **メタプロンプト生成** - 中学2年数学「一次関数」
95
+ 2. **授業計画作成** - 50分、第3時/10時
96
+ 3. **ワークシート作成** - 練習問題10問
97
+
98
+ ### 参照した理論
99
+ - Bloom's Taxonomy(学習目標設定)
100
+ - Gagné's Nine Events(授業構成)
101
+
102
+ ### 生成したコンテンツ
103
+ - 授業計画 1件
104
+ - ワークシート 1件
105
+ ```
106
+
107
+ ## スキル間データ受け渡し
108
+
109
+ ### パターン1: 授業計画 → 教材作成
110
+
111
+ ```
112
+ [lesson-plan.md]
113
+ 1. 授業計画を生成
114
+ 2. context-manager に保存: remember("current_lesson_plan", plan)
115
+
116
+ [materials.md]
117
+ 1. コンテキストを取得: recall("current_lesson_plan")
118
+ 2. 授業計画の内容に基づいてワークシートを生成
119
+ 3. 整合性を確保
120
+ ```
121
+
122
+ ### パターン2: 授業計画 → 評価設計
123
+
124
+ ```
125
+ [lesson-plan.md]
126
+ 1. 授業計画(学習目標含む)を生成
127
+ 2. context-manager に保存
128
+
129
+ [assessment.md]
130
+ 1. コンテキストから学習目標を取得
131
+ 2. 構成的整合性を確保した評価を設計
132
+ 3. 目標との対応関係を明示
133
+ ```
134
+
135
+ ### パターン3: 評価結果 → フィードバック
136
+
137
+ ```
138
+ [assessment.md]
139
+ 1. ルーブリックを生成
140
+ 2. context-manager に保存
141
+
142
+ [feedback.md]
143
+ 1. ルーブリックの評価観点を参照
144
+ 2. 観点に沿ったフィードバックを生成
145
+ ```
146
+
147
+ ## ユーザー参照パターン
148
+
149
+ ユーザーが自然言語で前の成果物を参照する場合の対応:
150
+
151
+ | ユーザー発話 | 解釈 | アクション |
152
+ |-------------|------|-----------|
153
+ | 「前の授業計画を基に」 | 直前の lesson-plan 出力 | recall("lesson-plan", latest=true) |
154
+ | 「さっきのルーブリックを修正」 | 直前の assessment 出力 | recall("assessment", latest=true) |
155
+ | 「同じ単元で教材を」 | 直前のメタプロンプトコンテキスト | recall("meta-prompt-context") |
156
+ | 「今日作ったものの一覧」 | セッション全体 | summarize() |
157
+
158
+ ## コンテキスト構造
159
+
160
+ ### セッションコンテキストの内部構造
161
+
162
+ ```typescript
163
+ interface SessionContext {
164
+ // セッション識別子
165
+ sessionId: string;
166
+ startTime: string;
167
+
168
+ // ユーザー設定(デフォルト値)
169
+ userDefaults: {
170
+ grade?: string; // デフォルト学年
171
+ subject?: string; // デフォルト教科
172
+ language?: string; // 使用言語
173
+ };
174
+
175
+ // メタプロンプトコンテキスト
176
+ metaPromptContext: {
177
+ grade?: string;
178
+ subject?: string;
179
+ topic?: string;
180
+ learningObjective?: string;
181
+ duration?: number;
182
+ specialConsiderations?: string[];
183
+ collectedAnswers: {
184
+ question: string;
185
+ answer: string;
186
+ timestamp: string;
187
+ }[];
188
+ };
189
+
190
+ // スキル実行履歴
191
+ skillHistory: {
192
+ skill: string;
193
+ timestamp: string;
194
+ input: object;
195
+ output: object;
196
+ theories: string[];
197
+ }[];
198
+
199
+ // 生成コンテンツ
200
+ generatedContent: {
201
+ type: 'lesson-plan' | 'materials' | 'assessment' |
202
+ 'individual' | 'feedback' | 'guidance';
203
+ content: string;
204
+ metadata: object;
205
+ timestamp: string;
206
+ }[];
207
+
208
+ // TENJIN検索結果キャッシュ
209
+ theoryCache: {
210
+ theoryId: string;
211
+ data: object;
212
+ timestamp: string;
213
+ }[];
214
+ }
215
+ ```
216
+
217
+ ## マルチスキルオーケストレーション
218
+
219
+ ### 実行順序の最適化
220
+
221
+ 複合リクエスト時の実行順序を管理:
222
+
223
+ ```
224
+ 1. meta-prompt(コンテキスト収集)
225
+ ↓ コンテキストを保存
226
+ 2. lesson-plan(授業計画)
227
+ ↓ 授業計画を保存
228
+ 3. materials(教材)
229
+ ↓ 授業計画を参照しながら生成
230
+ 4. assessment(評価)
231
+ ↓ 目標・活動と整合性確保
232
+ ```
233
+
234
+ ### 依存関係の解決
235
+
236
+ スキル間の依存関係を管理:
237
+
238
+ | スキル | 依存先 | 依存内容 |
239
+ |--------|--------|----------|
240
+ | materials | lesson-plan | 授業の流れ、時間配分 |
241
+ | assessment | lesson-plan | 学習目標、評価観点 |
242
+ | feedback | assessment | 評価基準、観点 |
243
+ | individual | assessment | 評価結果、課題 |
244
+
245
+ ### 整合性チェック
246
+
247
+ スキル間の整合性を検証:
248
+
249
+ ```markdown
250
+ ## 整合性チェック結果
251
+
252
+ ✅ **学習目標の一貫性**
253
+ - 授業計画の目標: {目標}
254
+ - 評価の対象目標: {同一目標}
255
+ - 結果: 一致
256
+
257
+ ✅ **認知レベルの整合性**
258
+ - 目標レベル: 応用(Apply)
259
+ - 評価レベル: 応用問題を含む
260
+ - 結果: 整合
261
+
262
+ ⚠️ **時間配分の確認**
263
+ - 授業計画: 50分
264
+ - ワークシート所要時間: 60分(推定)
265
+ - 結果: 調整を推奨
266
+ ```
267
+
268
+ ## 使用例
269
+
270
+ ### 例1: 連続したコンテンツ作成
271
+
272
+ ```
273
+ ユーザー: 「中学2年の一次関数の授業計画を作成してください」
274
+
275
+ [実行]
276
+ 1. meta-prompt でコンテキスト収集
277
+ 2. lesson-plan で授業計画生成
278
+ 3. context-manager に保存
279
+
280
+ ユーザー: 「今の授業計画に合わせたワークシートも作って」
281
+
282
+ [実行]
283
+ 1. context-manager から授業計画を recall
284
+ 2. materials で整合性のあるワークシート生成
285
+ ```
286
+
287
+ ### 例2: セッションのまとめ
288
+
289
+ ```
290
+ ユーザー: 「今日作成したものを一覧で見せて」
291
+
292
+ [実行]
293
+ 1. context-manager.summarize()
294
+ 2. 生成コンテンツの一覧を表示
295
+ ```
296
+
297
+ ### 例3: コンテキストの引き継ぎ
298
+
299
+ ```
300
+ ユーザー: 「さっきと同じ学年・教科で、別の単元の授業計画を」
301
+
302
+ [実行]
303
+ 1. recall("meta-prompt-context") で学年・教科を取得
304
+ 2. 新しい単元のみをヒアリング
305
+ 3. 既存コンテキストを活用して生成
306
+ ```
307
+
308
+ ## 注意事項
309
+
310
+ ### セッションの範囲
311
+
312
+ - コンテキストは現在の会話セッション内でのみ有効
313
+ - VS Codeを閉じるとリセットされます
314
+ - 永続化が必要な場合はファイルに保存してください
315
+
316
+ ### プライバシー
317
+
318
+ - 生徒の個人情報は保存しないでください
319
+ - 機密性の高い情報は clear() でクリアしてください
320
+
321
+ ### 容量制限
322
+
323
+ - 大量のコンテンツは要約して保存
324
+ - 古いエントリは自動的に優先度が下がります
@@ -0,0 +1,184 @@
1
+ # オーケストレーションスキル
2
+
3
+ > ユーザーのリクエストを分析し、適切なスキルにルーティングするオーケストレーターです。
4
+
5
+ ## 概要
6
+
7
+ このスキルは、SHIDENの中央制御として機能し、以下の役割を担います:
8
+
9
+ 1. **意図分析** - ユーザーリクエストの意図を特定
10
+ 2. **スキルルーティング** - 適切なスキルへの振り分け
11
+ 3. **マルチスキル連携** - 複合リクエストの分解と実行順序決定
12
+ 4. **フォールバック処理** - エラー時の代替アプローチ提案
13
+
14
+ ## 意図分析ロジック
15
+
16
+ ### キーワードベースの意図検出
17
+
18
+ ユーザーのリクエストに含まれるキーワードを分析し、意図を特定します。
19
+
20
+ #### スキルルーティングテーブル
21
+
22
+ | キーワード | スキル | 優先度 |
23
+ |-----------|--------|--------|
24
+ | 授業計画, 指導案, lesson plan, 単元計画 | `lesson-plan.md` | 高 |
25
+ | 教材, ワークシート, スライド, クイズ, プリント, 配布資料 | `materials.md` | 高 |
26
+ | 評価, ルーブリック, テスト, 採点基準, 成績 | `assessment.md` | 高 |
27
+ | 個別指導, 配慮, 支援, 特別支援, 学習障害 | `individual.md` | 高 |
28
+ | フィードバック, 振り返り, コメント, 添削 | `feedback.md` | 高 |
29
+ | 生活指導, 行動, 相談, 問題行動, 保護者面談 | `guidance.md` | 高 |
30
+
31
+ #### 複合キーワード判定
32
+
33
+ 複数のキーワードが含まれる場合の優先順位:
34
+
35
+ 1. **明示的な動詞** を優先
36
+ - 「作成」「生成」→ 創作系スキル
37
+ - 「評価」「採点」→ 評価系スキル
38
+ - 「対応」「支援」→ 指導系スキル
39
+
40
+ 2. **目的語** を次に考慮
41
+ - 「授業計画を評価」→ フィードバック(既存計画への評価)
42
+ - 「評価計画を作成」→ 評価設計(新規作成)
43
+
44
+ ### 意図不明時の確認フロー
45
+
46
+ キーワードから意図が特定できない場合:
47
+
48
+ ```
49
+ 🤔 どのような教育コンテンツを作成しますか?
50
+
51
+ 1. 📚 **授業計画・指導案** - 授業の流れ、学習活動の設計
52
+ 2. 📝 **教材** - ワークシート、スライド、クイズなど
53
+ 3. ✅ **評価** - ルーブリック、テスト問題、採点基準
54
+ 4. 👤 **個別指導計画** - 特定の学習者への対応策
55
+ 5. 💬 **フィードバック** - 学習成果へのコメント、振り返り支援
56
+ 6. 🤝 **生活指導案** - 行動面・生活面での指導計画
57
+
58
+ 番号または内容でお答えください。
59
+ ```
60
+
61
+ ## マルチスキル連携
62
+
63
+ ### 複合リクエストの検出
64
+
65
+ 以下のパターンで複合リクエストを検出します:
66
+
67
+ - 「○○と△△を作成」
68
+ - 「○○した後に△△も」
69
+ - 「○○に基づいて△△を」
70
+
71
+ ### 実行順序の決定
72
+
73
+ 複合リクエストの実行順序:
74
+
75
+ ```
76
+ 1. 授業計画 (lesson-plan)
77
+
78
+ 2. 教材 (materials)
79
+
80
+ 3. 評価 (assessment)
81
+
82
+ 4. フィードバック (feedback)
83
+ ```
84
+
85
+ **理由**: 授業計画が他のスキルの基盤となるため、最初に実行。
86
+ 評価は授業計画・教材との整合性が必要なため、後で実行。
87
+
88
+ ### 連携例
89
+
90
+ ```
91
+ ユーザー: 「一次関数の授業計画とワークシートを作成してください」
92
+
93
+ 処理:
94
+ 1. meta-prompt.md でコンテキスト収集
95
+ 2. lesson-plan.md で授業計画生成
96
+ 3. materials.md で授業計画に基づいたワークシート生成
97
+ 4. 両方の成果物を統合して提示
98
+ ```
99
+
100
+ ## フォールバック処理
101
+
102
+ ### スキル実行失敗時
103
+
104
+ ```
105
+ 申し訳ありません。{スキル名}の処理中にエラーが発生しました。
106
+
107
+ 代替アプローチとして、以下をご提案します:
108
+ 1. {代替案1}
109
+ 2. {代替案2}
110
+
111
+ どちらで進めますか?または、別のリクエストをお聞かせください。
112
+ ```
113
+
114
+ ### TENJIN接続エラー時
115
+
116
+ ```
117
+ 📚 教育理論データベース(TENJIN)への接続に問題が発生しています。
118
+
119
+ 一般的な教授法を適用してコンテンツを生成しますが、
120
+ 特定の理論に基づいたエビデンスは含まれない場合があります。
121
+
122
+ このまま続行しますか?
123
+ ```
124
+
125
+ ### 情報不足時
126
+
127
+ ```
128
+ コンテンツを生成するために、もう少し情報が必要です。
129
+
130
+ 以下のいずれかをお試しください:
131
+ 1. より具体的なリクエストを入力
132
+ 2. 対象学年・教科を明記
133
+ 3. 期待する成果物の形式を指定
134
+
135
+ 例: 「中学2年生の数学で、一次関数のワークシートを作成してください」
136
+ ```
137
+
138
+ ## スキル間データ受け渡し
139
+
140
+ ### コンテキストの保持
141
+
142
+ 各スキル実行時に以下の情報を `context-manager.md` に保存:
143
+
144
+ - 生成したコンテンツのID
145
+ - 使用したメタプロンプト
146
+ - 参照した教育理論
147
+ - ユーザーのフィードバック
148
+
149
+ ### 参照パターン
150
+
151
+ 後続のスキルが前のスキルの成果を参照する場合:
152
+
153
+ ```
154
+ 「前の授業計画を基に」
155
+ → context-manager.md から直前の lesson-plan 出力を取得
156
+
157
+ 「さっきのルーブリックを修正して」
158
+ → context-manager.md から直前の assessment 出力を取得
159
+ ```
160
+
161
+ ## 出力テンプレート
162
+
163
+ ### スキル選択完了時
164
+
165
+ ```
166
+ ✅ リクエストを理解しました。
167
+
168
+ **実行するスキル**: {スキル名}
169
+ **処理内容**: {簡潔な説明}
170
+
171
+ {スキル固有の処理を開始}
172
+ ```
173
+
174
+ ### マルチスキル実行開始時
175
+
176
+ ```
177
+ ✅ 複合リクエストを理解しました。
178
+
179
+ **実行計画**:
180
+ 1. {スキル1} - {処理内容1}
181
+ 2. {スキル2} - {処理内容2}
182
+
183
+ 順番に処理を進めます。まず{スキル1}から始めます。
184
+ ```