learning-objectives について
learning-objectives は、Bloom's taxonomy と CEFR に沿った測定可能な学習目標を設計する教育者向けスキルです。評価基準を先に確認する手順に加え、前提知識、評価方法、AIとの協働学習目標を扱います。
主な機能
- 01評価基準を先に確認する目標設計
- 02Bloom's taxonomy との整合
- 03CEFR 熟達度へのマッピング
- 04前提知識と評価方法の計画
- 05AIとの協働学習目標
- 06目標の測定可能性の検証
活用シーン
- 01授業やカリキュラムの成果を定義
- 02評価を学習目標に対応付け
- 03目標を CEFR 熟達度にマッピング
- 04AIとの協働学習活動を設計
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ panaversity/ agentfactory --skill learning-objectivesインストール後、Claude Code で/learning-objectivesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
reference/assessment-methods.mdblooms-taxonomy-programming.mdprerequisite-analysis.mdscripts/validate-objectives.pytemplates/learning-objective-template.yml詳細
学習目標スキル
目的
BloomのタキソノミーとCEFRの習熟度レベルに沿った、測定可能で実行可能な学習目標を教育者が作成できるようにします。このスキルは、次のことに役立ちます。
- 学生が何を達成するのかを定義する(扱うトピックだけではありません)
- 目標が具体的で評価可能であることを確認する(曖昧な目標にしない)
- 前提知識を特定し、段階的に学習を積み上げる
- 適切な評価方法を計画する
- 基礎的な想起から創造的な統合へと学習を順序立てる
- 国際的な習熟度基準(CEFR A1-C2)に対応させ、移植性を確保する
- AIとの共同学習の成果(AIと協働すること。独力で学ぶことだけではありません)を含める
Constitution v4.0.1との整合性:このスキルは、評価優先の目標設計を実践します。学習目標を作成する前に成功基準を定義し、CEFR習熟度レベル(原則5:段階的な複雑さ)を統合し、第IIb節(AIの3つの役割のフレームワーク)の共同学習の成果を取り入れます。
有効にするタイミング
次の場合にこのスキルを使用します。
- カリキュラムや授業を設計しており、学習成果を定義する必要がある
- 評価を作成しており、明確な目標に沿わせたい
- コースを設計しており、認定取得のために測定可能な成果が必要である
- 教育者から「目標を定義する」「学習目標を作成する」「成果を設定する」「学生は何を達成すべきか」と尋ねられた
- 既存の目標を見直しており、十分に具体的かどうか判断したい
- 授業を設計しており、終了時に学生が何をできるべきか分からない
評価優先の目標設計(Constitution v4.0.1)
重要なワークフロー:
- 評価が先:目標を書く前に、章の仕様書にある成功基準を確認する
- 目標は次:評価で成功できるように学習目標を設計する
- 整合性はその次:各目標が少なくとも1つの成功評価に対応していることを確認する
- 検証は最後:目標が測定可能で、評価と整合していることを確認する
テンプレート:
### Objective Design (Evals-First)
**Source**: Chapter spec at `specs/part-X/chapter-Y/spec.md`
**Success Evals from Spec**:
1. 75%+ write valid specification (business goal: reduce iteration cycles)
2. 80%+ identify vague requirements (business goal: prevent scope creep)
**Learning Objectives Designed to Achieve Evals**:
- LO-001: Write clear specifications → Eval #1
- LO-002: Identify ambiguous requirements → Eval #2
次の内容がない状態で目標を作成しないでください。
- ✅ 成功評価を含む、承認済みの仕様書への参照
- ✅ 明確な対応関係:目標 → 評価 → ビジネス目標
- ✅ 評価基準に沿った測定可能性
プロセス
ステップ1:背景を把握する
学習目標の作成依頼を受けたら、まず次の点を把握します。
- どのようなトピックや概念ですか?(Pythonのデコレーター、OOP、async/awaitなど)
- 学習者はどのような人ですか?(初級者、中級者、上級者)
- 授業時間はどのくらいですか?(30分、2時間、1単元全体)
- 最終目標は何ですか?(何かを構築できることですか?理論を理解することですか?コードをデバッグすることですか?)
- 成功評価は何ですか?(章の仕様書に記載された、成功を定義するもの)
ステップ2:Bloomのタキソノミーを確認する(必要な場合)
対象トピックにおける認知レベルの詳細が分からない場合は、次を読んでください。 📖 reference/blooms-taxonomy-programming.md
このドキュメントでは、Bloomの6つのレベルをプログラミングの文脈に対応させ、次の内容を説明します。
- 各レベルの行動動詞(記憶する、理解する、適用する、分析する、評価する、創造する)
- プログラミングの例
- 各レベルの評価方法
ステップ3:前提条件を特定する
前提条件の分析に関するガイダンスを読んでください。 📖 reference/prerequisite-analysis.md
目標を設定するにあたり、次の点を判断します。
- 主な概念に取り組む前に、学習者が知っておくべきことは何ですか?
- 前提知識を記憶・理解のレベルで列挙する(深い習熟は必要ありません)
- 基礎知識までの依存関係をたどる
ステップ4:評価方法を選ぶ
各目標のBloomレベルに基づいて、適切な評価方法を確認してください。 📖 reference/assessment-methods.md
このガイドでは、目標と現実的な評価方法を組み合わせる方法を説明します(適用レベルにはコード演習、評価レベルにはコードレビューなど)。
ステップ 5:CEFR 習熟度レベルを用いて学習目標を作成する
各トピックについて、通常は3~5個の学習目標を作成します。
- トピックに必要な各レベル(記憶から創造まで)から、少なくとも1つずつ含めます
- 複雑さが段階的に高まるようにします
- それぞれに、明確な記述、文脈、前提条件、評価方法、成功基準を含めます
- CEFR 習熟度レベル(A1/A2/B1/B2/C1)に対応付けます
以下のテンプレートを参考にしてください。 📄 templates/learning-objective-template.yml
重要な原則:各学習目標では、次の問いに答えてください。
- 学習者は何をしますか?(ブルームの分類レベルに対応する動詞)
- どのような文脈で行いますか?(具体的な状況または問題)
- 成功したことをどう確認しますか?(測定可能な基準)
- どの習熟度レベルですか?(CEFR A1~C2)
CEFR 習熟度マッピング(Constitution v3.1.2)
学習目標を国際的な習熟度基準に合わせます(skills-proficiency-mapper v2.0 に基づく)。
A1(初級 ― 認識):
- ブルームの分類:記憶/理解のみ
- 例:「関数を定義するための Python 構文を特定する」
- 測定可能な内容:認識であり、生成ではありません
A2(初級 ― ガイド付きの応用):
- ブルームの分類:足場かけを伴う理解/応用
- 例:「提示されたヒントを使って関数定義を完成させる」
- 測定可能な内容:支援を受けた応用
B1(中級 ― 自立した応用):
- ブルームの分類:自立した応用
- 例:「明確な仕様に基づき、支援なしで関数を実装する」
- 測定可能な内容:足場かけなしでの実社会での応用
B2(中上級 ― 分析):
- ブルームの分類:分析/評価
- 例:「2つの実装を比較し、どちらが保守しやすいかを根拠とともに説明する」
- 測定可能な内容:根拠を伴う評価
C1(上級 ― 創造/統合):
- ブルームの分類:評価/創造
- 例:「スケーラブルなデプロイのためのシステムアーキテクチャを設計する」
- 測定可能な内容:トレードオフ分析を伴う独自の設計
習熟度の進行ルール:1つの章の中で、レッスンの習熟度をA1→A2→B1の順に進めます(A1からC1へ飛躍させないでください)。
3つの役割によるAI連携の学習目標(Section IIb、Constitution v4.0.1)
重要:AI ネイティブな学習目標には、単独で取り組む能力だけでなく、双方向の共同学習パートナーシップでAIと協働する能力を含める必要があります(Section IIb の強制機能に従います)。
従来の学習目標の形式:
LO-001: Implement user authentication (independent skill)
AI ネイティブな学習目標の形式:
LO-001: Implement user authentication working with AI as co-learning partner
- Use AI as Teacher: Learn security patterns from AI suggestions
- Use AI as Student: Refine AI's output through clear specifications
- Use AI as Co-Worker: Iterate toward optimal solution collaboratively
- Validate: Verify AI-generated code meets security requirements
3つの役割に応じた学習目標の種類:
1. 教師としてのAIに関する学習目標(学生がAIから学ぶ):
- 「コードの品質を向上させる、AIが提案したパターンを特定する」
- 「AIが提案したアプローチのトレードオフを説明する」
- 「AIが提案したパターンを新しい文脈に適用する」
2. 学生としてのAIに関する学習目標(学生がAIに教える):
- 「一度で正しいコードが生成される仕様を書く」
- 「AIの次の反復を改善するフィードバックを提供する」
- 「AIが曖昧さの解消を求めた際に、要件を明確にする」
3. 共同作業者としてのAIに関する学習目標(協調的な反復):
- 「最適な解決策に到達するため、AIと反復作業を行う」
- 「AIが戦術的な実装を担う間に、戦略的な判断を下す」
- 「AIの出力が正確かつ適切であることを検証する」
AI ネイティブな学習目標セットの例:
- id: "LO-AUTH-001"
statement: "Implement OAuth authentication working with AI as co-learning partner"
blooms_level: "Apply"
cefr_level: "B1"
three_role_integration:
ai_as_teacher: "Learn refresh token rotation pattern from AI suggestion"
ai_as_student: "Guide AI through security requirements via clear spec"
ai_as_coworker: "Iterate on session management approach together"
assessment_method: "Code + reflection: Show implementation AND what you learned from AI"
success_criteria:
- "OAuth implementation works correctly"
- "Student identifies at least one pattern learned from AI"
- "Student demonstrates validation of AI output"
AI ネイティブなコンテンツにおける学習目標のバランス:
- 60~70%:従来の技術スキル
- 20~30%:共同学習スキル(AIとの協働)
- 10~20%:妥当性確認/検証スキル
ステップ 6:測定可能性を検証する
学習目標を作成したら、検証スクリプトを実行して、測定可能かどうかを確認します。
python .claude/skills/learning-objectives/scripts/validate-objectives.py objectives.yml
スクリプトでは、次の項目を確認します。
- ✅ 学習目標に行動動詞が使われている(「理解する」や「知る」のような曖昧な語句ではない)
- ✅ 学習目標が具体的で、テスト可能である
- ✅ 動詞がブルームの分類レベルに合致している
- ✅ 必須フィールド(文脈、評価、成功基準)が含まれている
検証に失敗した場合は、エラーメッセージを確認して内容を改善してください。
- 曖昧な動詞を、ブルームの分類レベルに対応する具体的な行動動詞に置き換えます
- 不足している文脈や成功基準を追加します
- 記述をより具体的にします(トピック名だけにしないでください)
ステップ 7:見直しと仕上げ
検証フィードバックに基づいて、以下を行います。
- エラーのある目標を修正します
- 目標の順序が適切であること(段階的に構築されていること)を確認します
- 前提条件が必要十分であり、過剰でないことを確認します
- 評価方法が利用可能な時間内に現実的に実施できることを確認します
出力形式
学習目標を明確で構造化された形式で提示します。
topic: "Topic Name"
objectives:
- id: "LO-001"
statement: "Action verb + what learner will do"
blooms_level: "Remember/Understand/Apply/Analyze/Evaluate/Create"
context: "Specific situation or problem"
prerequisites:
- "Prerequisite 1"
- "Prerequisite 2"
assessment_method: "How this will be assessed"
success_criteria:
- "Criterion 1"
- "Criterion 2"
受け入れチェック
- SpecRef が記載されている(章の仕様へのパスと目標 ID)
- 目標は 5 つ以下で、測定可能な動詞のみを使用している
- 各目標にブルームの分類タグがある(例:L2-Understand、L3-Apply)
- 各目標に評価項目またはタスクとの対応を示す「Evidence」が含まれている
- 目標が複雑さのレベルに関する制約に沿っている(Constitution を参照)
目標の抜粋
- [ID: LO-001 | Bloom: L3-Apply]
Statement: Implement X in Y context
Evidence: Quiz Q3, Task T2
例
例 1:Python のリスト内包表記(1 時間のレッスン)
ユーザーのリクエスト:「初心者向けに Python のリスト内包表記を教えるための目標を作成してください」
生成された目標:
topic: "Python List Comprehensions"
objectives:
- id: "LO-C1-001"
statement: "Define list comprehension and identify its basic syntax"
blooms_level: "Remember"
context: "Introduction to list comprehensions"
prerequisites:
- "Know Python list syntax and indexing"
- "Can write basic for loops"
assessment_method: "Quick quiz: match syntax to purpose"
success_criteria:
- "Can identify list comprehension in code"
- "Can label parts of syntax (brackets, for, if)"
- id: "LO-C1-002"
statement: "Explain how list comprehension replaces for loop patterns"
blooms_level: "Understand"
context: "Comparing traditional loops with comprehensions"
prerequisites:
- "Understand for loop iteration"
assessment_method: "Paraphrase: explain in own words"
success_criteria:
- "Can describe equivalent for loop for any list comprehension"
- "Can explain what's happening step-by-step"
- id: "LO-C1-003"
statement: "Implement list comprehensions to filter and transform data"
blooms_level: "Apply"
context: "Given various data transformation tasks"
prerequisites:
- "Can write list comprehensions with filter conditions"
- "Understand string/number methods"
assessment_method: "Code exercise: write comprehensions for provided requirements"
success_criteria:
- "Code executes without errors"
- "Output matches expected results"
- "Uses list comprehension (not a for loop)"
- id: "LO-C1-004"
statement: "Compare list comprehension with traditional loops by examining efficiency and readability"
blooms_level: "Analyze"
context: "Choosing approaches for data processing"
prerequisites:
- "Implement list comprehensions fluently"
- "Understand basic time complexity"
assessment_method: "Code analysis: compare two implementations"
success_criteria:
- "Identifies efficiency differences (space/time)"
- "Considers readability and maintainability"
- "Justifies when to use each approach"
例 2:OOP のクラス設計(3 時間のモジュール)
ユーザーのリクエスト:「OOP の基礎を教えています。学生には何ができるようになってもらうべきですか?」
生成された目標:
topic: "Object-Oriented Programming Fundamentals"
objectives:
- id: "LO-OOP-001"
statement: "Define class, instance, method, and attribute and distinguish between them"
blooms_level: "Remember"
context: "Introduction to OOP vocabulary"
prerequisites:
- "Understand functions and variables in Python"
assessment_method: "Matching exercise and short definitions"
success_criteria:
- "Can define each term correctly"
- "Can match definitions to examples in code"
- id: "LO-OOP-002"
statement: "Explain how __init__ initializes instances and why self references the current object"
blooms_level: "Understand"
context: "Understanding object instantiation"
prerequisites:
- "Know class definition syntax"
- "Understand function parameters and returns"
assessment_method: "Walkthrough: explain code line-by-line"
success_criteria:
- "Can trace execution of __init__ method"
- "Can explain what self represents"
- id: "LO-OOP-003"
statement: "Design and implement a class with attributes and methods for a specific domain"
blooms_level: "Apply"
context: "Real-world object requirements (e.g., Student, BankAccount, Car)"
prerequisites:
- "Can write class definitions with __init__"
- "Understand instance vs class scope"
assessment_method: "Code exercise: implement class from requirements"
success_criteria:
- "Class correctly models the domain"
- "Attributes store state appropriately"
- "Methods perform expected behaviors"
- "Code follows PEP 8 naming conventions"
- id: "LO-OOP-004"
statement: "Analyze class hierarchies and identify inheritance relationships"
blooms_level: "Analyze"
context: "Understanding code organization and reuse patterns"
prerequisites:
- "Implement basic classes fluently"
- "Understand inheritance syntax"
assessment_method: "Code analysis exercise: identify class relationships"
success_criteria:
- "Identifies parent/child relationships correctly"
- "Explains why inheritance is used"
- "Identifies methods that are overridden"
- id: "LO-OOP-005"
statement: "Evaluate a class design and justify changes for maintainability and extensibility"
blooms_level: "Evaluate"
context: "Code review of existing class structures"
prerequisites:
- "Analyze inheritance patterns"
- "Understand design principles (DRY, SOLID)"
assessment_method: "Design critique: suggest improvements with justification"
success_criteria:
- "Identifies duplication that could be eliminated"
- "Suggests appropriate inheritance changes"
- "Justifies changes based on maintenance concerns"
- id: "LO-OOP-006"
statement: "Design an OOP solution for a complex domain problem"
blooms_level: "Create"
context: "Building a small system with multiple interacting classes"
prerequisites:
- "Master all previous OOP concepts"
- "Can implement and evaluate class designs"
assessment_method: "Create a mini-project with multiple classes"
success_criteria:
- "Solution correctly models the domain"
- "Uses inheritance appropriately"
- "Code is well-organized and reusable"
- "Design decisions are documented and justified"
よくあるパターン
パターン 1:短いチュートリアル(30 分)
- 理解の目標を 1 つ
- 応用の目標を 1 つ
- 分析の目標を 1 つ
- 合計:約 3 つの目標
パターン 2:標準的なレッスン(1~2 時間)
- 記憶の目標を 1 つ(基礎的なトピックの場合)
- 理解の目標を 1 つ
- 応用の目標を 2 つ(異なる文脈や複雑さ)
- 分析の目標を 1 つ
- 合計:約 4~5 つの目標
パターン 3:単元全体(3~5 時間)
- 記憶(用語)を 1 つ
- 理解(概念)を 1 つ
- 応用(さまざまな文脈)を 2~3 つ
- 分析(関係性)を 1 つ
- 評価(品質)を 1 つ
- 創造(統合)を 1 つ
- 合計:約 7~8 つの目標
パターン 4:総括課題/プロジェクトコース
- 基礎的な目標(記憶/理解)は軽めに設定します
- 複雑さを段階的に高めた応用の目標を複数設定します
- 分析/評価/創造を重視します
- 総括プロジェクトを最終評価とします
トラブルシューティング
目標が曖昧すぎる
問題:「デコレーターを理解する」
問題である理由:測定できません。「理解する」とはどういう意味でしょうか。理解したかどうかをどのように判断しますか?
解決策:具体的な行動動詞を使い、文脈を加えます。
- ✅ 「デコレーターが関数をラップしてその動作を変更する方法を説明する」
- ✅ 「関数呼び出しをログに記録するカスタムデコレーターを実装する」
目標が多すぎる
問題:1 時間のレッスンに対して目標を 15 個作成した
解決策:目標を 3~5 個に減らします。次の点を確認します。
- どれが必須ですか?(残す)
- どれが「あれば望ましい」ものですか?(削除するか、発展課題に移す)
- 重複しているものはありますか?(統合する)
前提条件が多すぎる
問題:前提条件に「Python を習得していること」や「すべてのデザインパターンを理解していること」が含まれている
解決策:必要最小限にします。「これを学び始めるために必要な最低限の知識は何か?」と考えます。
- 多すぎる例:「すべてのデータ構造を習得していること」
- 適切な例:「インデックスを使ったリストの操作を理解していること」
ブルームの分類の上位レベルを考えられない
問題:記憶と応用の目標しか作成できなかった
解決策:
- Analyze/Evaluate/Create の例を確認するために、blooms-taxonomy-programming.md §4-6 を読みます
- 「学習者はこの知識を使って何ができるか?」と考えます(創造につながります)
- 分析の問いを追加します:「このアプローチを X と比較してください……」
- 評価を追加します:「この解決策は Y に有効ですか?その理由、または有効でない理由は何ですか?」
他のスキルとの連携
このスキルは、次のスキルと相性がよいです。
→ exercise-pack スキル:学習目標を作成したら、このスキルを使って各目標のブルームの分類レベルに沿った練習問題を作成します
→ technical-clarity スキル:目標の記述が明確かどうかを確認するために使用します
新たなトピック:エージェント型 AI と Model Context Protocol(MCP)
書籍で高度な AI トピックが取り上げられる機会が増えるなか、このスキルを使って、次のようなトピックの学習目標を定義します。
エージェント型 AI の学習目標の例
トピック:「自律型 AI エージェントの構築」
topic: "Agentic AI Fundamentals"
objectives:
- id: "LO-AGENT-001"
statement: "Define autonomous agents, distinguish them from traditional chatbots, and explain key characteristics (goal-seeking, state management, tool use)"
blooms_level: "Understand"
context: "Introduction to agentic AI concepts"
prerequisites:
- "Understand AI basics and language models"
assessment_method: "Short answer or concept mapping"
success_criteria:
- "Can list key differences between agents and chatbots"
- "Can explain goal-directed behavior and autonomy"
- id: "LO-AGENT-002"
statement: "Implement a simple autonomous agent that uses tools to accomplish a specified goal"
blooms_level: "Apply"
context: "Building working agents with Python"
prerequisites:
- "Understand agent architecture and tool-use patterns"
- "Can write Python functions and handle API calls"
assessment_method: "Code exercise: implement agent from requirements"
success_criteria:
- "Agent autonomously reaches its goal"
- "Correctly selects and uses available tools"
- "Handles tool responses and iterates"
- id: "LO-AGENT-003"
statement: "Analyze agent behavior and identify when agents succeed, fail, or enter loops; propose fixes"
blooms_level: "Analyze"
context: "Debugging and improving agent performance"
prerequisites:
- "Can implement basic agents"
- "Understand agent decision-making patterns"
assessment_method: "Debug exercise: analyze agent logs and improve behavior"
success_criteria:
- "Identifies root causes of agent failures"
- "Proposes specific improvements (better prompts, new tools, constraints)"
MCP(Model Context Protocol)の学習目標の例
トピック:「Python アプリケーションへの MCP の統合」
topic: "Model Context Protocol (MCP) Integration"
objectives:
- id: "LO-MCP-001"
statement: "Explain MCP architecture, the role of servers and clients, and how MCP extends model capabilities"
blooms_level: "Understand"
context: "Introduction to MCP concepts"
prerequisites:
- "Understand Python modules and client-server patterns"
assessment_method: "Explanation exercise: describe MCP client-server relationship"
success_criteria:
- "Can explain what MCP servers provide"
- "Can describe the client-server protocol flow"
- id: "LO-MCP-002"
statement: "Install and configure existing MCP servers and integrate them into a Python application"
blooms_level: "Apply"
context: "Using MCP in real applications"
prerequisites:
- "Understand MCP architecture"
- "Can write Python clients and manage dependencies"
assessment_method: "Code exercise: integrate MCP server into working application"
success_criteria:
- "Correctly configures MCP client"
- "Application successfully calls MCP server tools"
- "Responses are properly handled and integrated"
- id: "LO-MCP-003"
statement: "Design and implement a custom MCP server that provides tools for a specific domain"
blooms_level: "Create"
context: "Building reusable MCP tools"
prerequisites:
- "Can integrate existing MCP servers"
- "Understand server-side architecture and tool definitions"
assessment_method: "Project: implement MCP server with documentation"
success_criteria:
- "Server correctly implements MCP protocol"
- "Tools are well-defined with clear descriptions"
- "Client can successfully call server tools"
- "Code is documented and maintainable"
高度なトピックに関する主な考慮事項:
- これらのトピックには、より深い前提知識(Python の確かな知識、API 設計の知識)が必要になる場合があります
- スパイラル学習を取り入れます。概念を深さを増しながら繰り返し学習します(基本的なエージェント → 高度なオーケストレーション)
- 理論(アーキテクチャの理解)と実践(ツールの実装)の両方を含めます
- 評価では、定義の暗記ではなく、実際の問題解決を重視します
成功のためのヒント
- ゴールを念頭に置いて始めます:教える内容ではなく、学習者が何をできるようになるべきかを考えます。
- 評価可能な目標にします:「この目標が達成されたと、どうすれば判断できますか?」と問いかけます。
- Bloomの分類の段階的な進行を一貫させます:簡単なものから複雑なものへと積み上げます。
- 前提知識を含めます:学習者が準備状況を自己評価できるようにします。
- 頻繁に検証します:検証スクリプトを使って、曖昧な表現を見つけます。
- 実際の学習者でテストします:実際の利用状況に基づいて、目標を調整する必要が生じることがよくあります。
学習目標を作成する準備はできましたか? 次の情報を提示してください。
- 教えるトピック/概念
- 対象となる学習者のレベル(初級/中級/上級)
- 利用可能な指導時間
- 最終目標(プロジェクトの構築? 理論の理解? コードのデバッグ?)
または、既存の目標を貼り付けていただければ、より測定可能なものにするお手伝いをします!