learning-objective-generator
Extract and generate structured Learning Objectives (ULO, CIO, SIO) from raw syllabus and context text using LLM scripts.
Skill by orchable
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/orchable-learning-objective-generator
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: ml
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/learning-objective-generator
What's inside
- Skill name
learning-objective-generator- Description
- Extract and generate structured Learning Objectives (ULO, CIO, SIO) from raw syllabus and context text using LLM scripts.
- License
- MIT
- Instructions
- 141 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (24)
- SKILL.md
- approaches.tsv · resources/
- bloom_verbs.tsv · resources/
- master_learning_objectives.tsv · resources/
- 0_classify_action_phrases.py · scripts/
- enrich_lo_keywords.py · scripts/
- fix_concept_columns.py · scripts/
- fix_coverage.py · scripts/
- fix_coverage_v2.py · scripts/
- fix_coverage_v3.py · scripts/
- fix_coverage_v4.py · scripts/
- fix_sio_parents.py · scripts/
- fix_validation_errors.py · scripts/
- generate_all_los.py · scripts/
- generate_ulocio_new.py · scripts/
- global_map_prerequisites.py · scripts/
- llm_extract_lo.py · scripts/
- llm_generate_hierarchical_lo.py · scripts/
- llm_map_prerequisites.py · scripts/
- regenerate_swift_los.py · scripts/
- regenerate_ulocio_by_topic.py · scripts/
- test_lo_improvements.py · scripts/
- translate_los_english.py · scripts/
- translate_taxonomy_descriptions.py · scripts/
SKILL.md (first lines)
# Learning Objective Generator > **Goal:** Generate `learning-objectives.tsv` by extracting LOs from the project's syllabus material. Must run AFTER `/build-tree` so that valid concept codes are available for grounding. ## Pedagogical Model — Abstraction Axis | Layer | Nature (Tri-Level Hypothesis [T6]) | Constraints & Tests | Identifier Code | | ------- | -------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | | **ULO** | **Computational Level**: Core competency, WHAT/WHY | Prioritize high-level Bloom verbs (**Evaluate/Create**); `parent_lo_code = ""` | `ULO-<FEATURE_SLUG>` | | **CIO** | **Algorithmic Level**: Procedural representation, **language-neutral** | **MANDATORY Marr 2-Language Test** (test map to $\ge 2$ tools, not tied to token order); each CIO has $\ge 2$ child SIOs | `CIO-<FEATURE_SLUG>` | | **SIO** | **Implementational Level**: Technology-specific | Technology name MUST appear in `name`/`description` | `SIO-<TECH_PREFIX>-<FEATURE_SLUG>` | > ⚠️ Specific technologies (Swift, Python, SQL...) **are determined by context**, not hardcoded. The script automatically detects them from `context/`, `context-audit.md`, `raw_pdf.txt`. ## SIO Cross-Referencing & Naming Conventions 1. **SIO Code Structure:** `SIO-<TECH_PREFIX>-<FEATURE_SLUG>` (in `UPPER_SNAKE_CASE` format). - Example: `SIO-JS-OBJECT-LITERAL-METHODS`, `SIO-SWIFT-DICTIONARY-LITERAL-METHODS`, `SIO-PY-DICT-KEYS-VALUES-GET`. 2. **Cross-Technology Pattern Reference:** - The **Concept / ULO / CIO** layer is **100% Neutral** and shared across all projects. - When building SIOs for a new technology (e.g., Swift), the Agent **MUST REFERENCE & CROSS-CHECK** existing SIOs from other projects (JS, Python...) connected to the same CIO/Concept codes to inherit the structure and convert names/equivalent keywords for the new technology. ## Required Format The `learning-objectives.tsv` file consists of **9 columns** (tab-separated): | Column | Description | | --------------------- | --------------------------------------------------------------------------- | | `code` | Identifier code (e.g., `ULO-DATA-TYPES`, `CIO-ARRAY-TRAVERSAL`, `SIO-JS-ARRAY-MAP`) | | `name` | Concise name | | `description` | `"The learner will be able to [verb] [object]..."` (in English, 1-3 sentences) | | `lo_type` | ULO → `UNIVERSAL`; CIO → `CONCEPTUAL_IMPL`; SIO → `SPECIFIC_IMPL` | | `parent_lo_code` | ULO → `""`; CIO → ULO code(s); SIO → CIO code(s). Separated by `,` for N:N relationships | | `concept_codes` | List of linked concept codes (separated by `,`) | | `bloom_level` | Bloom level (e.g., `REMEMBER`, `UNDERSTAND`, `APPLY`, `EVALUATE`, `CREATE`) | | `knowledge_dimension` | `FACTUAL`, `CONCEPTUAL`, `PROCEDURAL`, or `METACOGNITIVE` [T1] | | `assessment_approach` | Direct assessment method (e.g., `project`, `quiz`, `code-review`) | ## Prerequisite 1. `/build-tree` has been run → `concepts.tsv` exists (the LLM needs the list of valid concept codes) 2. `context/` contains a syllabus file (PDF, DOCX...) or `.work/context-audit.md` has content ## Inputs - `projects/<project>/context/` — original syllabus file (PDF, DOCX...) - `projects/<project>/.work/raw_pdf.txt` or `.work/context-audit.md` — syllabus text - `projects/<project>/output/concepts.tsv` — valid concept codes (grounding) ## Outputs - `projects/<project>/output/learning-objectives.tsv` ## Academic Improvements (Current Version) ### P0 — `assessment_approach` is directly generated by the LLM - Pydantic models (ULO, CIO, SIO) all have a required `assessment_approach` field - The LLM is prompted to select an assessment method appropriate to the Bloom level + Knowledge Dimension - ULO prioritizes `project`, `essay`, `presentation` (relational understanding — Skemp T4) - CIO prioritizes `code-review`, `quiz`, `project` (algorithmic understanding) - SIO prioritizes `code-review`, `debugging-exercise`, `quiz` (instrumental understanding) - Satisfies §7 (Skemp T4, Perkins T8): each ULO/CIO has ≥1 direct assessment method ### P1 — Bloom Verb Validation Matrix - Resource file: `resources/bloom_verbs.tsv` (6 Bloom levels × allowed verbs) - The Merge phase automatically checks whether the first verb in the description belongs to the declared Bloom level - Warnings are written to `.work/hlo/bloom_verb_warnings.json` — does not block, only warns - Detects misalignment: "explain" declared as EVALUATE, "design" declared as REMEMBER, etc. ### P2 — Inter-rater Reliability for CIO Generation - Each CIO batch runs **2 independent LLM passes** (temperatures 0.2 and 0.3) - Union + dedup by code — reduces hallucination, increases coverage - Pattern similar to ADR-0005 (Concept DAG majority vote) ### P3 — Backward Design (Evidence-First) - The ULO_SYSTEM prompt adds a step: "Before writing the ULO, ask yourself: How will the learner demonstrate this competency?" - Evidence determines the `assessment_approach` and Bloom level - Reversed direction: Concept → Desired Evidence → ULO (instead of Concept → ULO → assessment afterwards) ## Scripts ### Primary: `llm_generate_hierarchical_lo.py` (Hierarchical 4-Phase) Primary script: generates LOs across 3 separate layers, then merges. Each phase corresponds to a workflow command: | Phase | Command | Description | | ------------ | ------------------------- | ------------------------------------------------------------------------------------- | | **A** — ULOs | `/generate-ulos` | Generate Universal LOs from concepts. Bloom prioritizes Evaluate/Create. **Human review checkpoint.** | | **B** — CIOs | `/generate-cios` | Generate Conceptual Impl LOs with **Marr 2-Language Test** per-CIO. **Human review checkpoint.** | | **C** — SIOs | `/generate-sios` | Generate Specific Impl LOs (tech-specific) | | **merge** | `--phase merge` (separate)| Merge ULO + CIO + SIO into the final TSV file | ```bash # Phase A: Generate ULOs python3 skills/learning-objective-generator/scripts/llm_generate_hierarchical_lo.py --project <slug> --phase ulos # Phase B: Generate CIOs (with Marr Test) python3 skills/learning-objective-generator/scripts/llm_generate_hierarchical_lo.py --project <slug> --phase cios # Phase C: Generate SIOs python3 skills/learning-objective-generator/scripts/llm_generate_hierarchical_lo.py --project <slug> --phase sios # Merge: Merge ULO + CIO + SIO into the final TSV file python3 skills/learning-objective-generator/scripts/llm_generate_hierarchical_lo.py --project <slug> --phase merge ``` ### `llm_map_prerequisites.py` (Phase E — ADR-0005) Generates `lo_prerequisites.tsv` and updates `concepts.tsv` (column `prerequisite_concept_codes`) following a 4-step process: Domain Partitioning → Concept DAG (LLM) → ULO Derivation → LLM Verify. ```bash python3 skills/learning-objective-generator/scripts/llm_map_prerequisites.py --project <slug> ``` ### Legacy 1-shot: `llm_extract_lo.py` > ⚠️ Legacy/fast path. Generates all LOs in a single LLM call, without phase separation. Not recommended for new projects — use `llm_generate_hierarchical_lo.py` instead. ```bash
From orchable/knowledge-graph-public, MIT.
More from orchable/knowledge-graph-public
- 0.549score
concept-integrity
orchable
Validate and repair concept semantic integrity — detect duplicates, enforce boundaries via 2-agent Proposer/Judge, and cascade repair across project TSVs and…
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
tree-validator
orchable
Validates the referential integrity of the knowledge tree and performs a Reverse Coverage Audit against the source context documents.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
taxonomy-mapper
orchable
Cross-reference extracted project syllabus with the Master Knowledge Graph to establish a formal taxonomy mapping plan.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
tree-assembler
orchable
Build the 6 final TSV project files by applying the approved mapping plan against the Master Knowledge Graph.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
project-context-loader
orchable
Inventory, read, interpret, and summarize every resource in the active project's context directory to establish the exact domains and syllabus.
SkillBFreshness: B★ 1Claude Code +9 - 0.539score
cs2023-standard
orchable
IEEE/ACM Computer Science Curricula 2023.
SkillBFreshness: B★ 1Claude Code +9 - 0.297score
keyword-extractor
orchable
No description from the publisher yet.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 15, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from orchable
- 0.549score
concept-integrity
orchable
Validate and repair concept semantic integrity — detect duplicates, enforce boundaries via 2-agent Proposer/Judge, and cascade repair across project TSVs and…
SkillBFreshness: B★ 1Claude Code +9 - 0.549score
tree-validator
orchable
Validates the referential integrity of the knowledge tree and performs a Reverse Coverage Audit against the source context documents.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
taxonomy-mapper
orchable
Cross-reference extracted project syllabus with the Master Knowledge Graph to establish a formal taxonomy mapping plan.
SkillBFreshness: B★ 1Claude Code +9 - 0.546score
tree-assembler
orchable
Build the 6 final TSV project files by applying the approved mapping plan against the Master Knowledge Graph.
SkillBFreshness: B★ 1Claude Code +9 - 0.544score
project-context-loader
orchable
Inventory, read, interpret, and summarize every resource in the active project's context directory to establish the exact domains and syllabus.
SkillBFreshness: B★ 1Claude Code +9 - 0.539score
cs2023-standard
orchable
IEEE/ACM Computer Science Curricula 2023.
SkillBFreshness: B★ 1Claude Code +9
Cite this page
learning-objective-generator skill. Agent Mart. https://agentmart.dev/skills/orchable-learning-objective-generator (last updated 2026-10-24)