用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Tzeusy/butlers --skill curriculum-planning命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | curriculum-planning |
| description | Plan curricula by decomposing topics into prerequisite graphs and ordered learning paths. |
| version | 1.0.0 |
Two-phase curriculum generation: (1) LLM-driven concept decomposition — decompose a topic into a DAG of concepts with prerequisite edges; (2) deterministic ordering — topological sort with depth and effort weighting to produce a learning sequence. The output is a mind map with sequenced nodes, ready for the teaching phase.
Use this skill when:
PLANNINGWhenever a user discusses a new learning topic, call teaching_flow_start(topic, goal) before
doing anything else. Never produce a curriculum plan as text without persisting it.
Every concept mentioned in a curriculum plan must become a mind_map_node_create() call. Every
prerequisite relationship must become a mind_map_edge_create() call. Text-only plans are
useless — the dashboard, spaced repetition, and analytics all depend on persisted data.
Before creating a new flow, call mind_map_list(status="active") to check for overlap. If a
related mind map exists, extend it:
mind_map_node_create().mind_map_edge_create()curriculum_replan() to re-sequence with updated mastery data.Only create a new flow if the topic is genuinely distinct from all active maps.
From the session context, read:
mind_map_id: UUID of the mind map to populatediagnostic_results: Mastery seeds from the diagnostic phase (node_id → quality, inferred_mastery)Decompose the topic into a DAG of concepts. Think through the full concept graph before calling any tools. Plan your nodes and edges mentally first:
effort_minutes for each concept (e.g., 15–90 minutes per concept).mind_map_edge_create() call. The tool enforces
DAG acyclicity, but thinking it through first prevents wasted calls.For each concept, create a node:
mind_map_node_create(
mind_map_id=<mind_map_id>,
label=<concept_name>,
description=<1-2 sentence description of what the concept covers>,
depth=<integer 0-5>,
effort_minutes=<estimated learning effort in minutes>
)
mind_map_node_create returns { node_id, entity_id, ... }. Save both fields for each
concept — node_id is needed for edge creation and mastery tracking, and entity_id is needed
for memory_store_fact() calls later in teaching and review sessions.
For each prerequisite relationship (parent must be learned before child):
mind_map_edge_create(
parent_node_id=<prerequisite_node_id>,
child_node_id=<dependent_node_id>,
edge_type="prerequisite"
)
The tool validates DAG acyclicity before persisting. If it rejects an edge (cycle detected), skip that edge and continue — do not retry the same edge.
After all nodes and edges are created, call:
curriculum_generate(
mind_map_id=<mind_map_id>,
goal=<user's learning goal if provided, else None>,
diagnostic_results=<dict of {node_label: quality_score} from diagnostic phase, or None>
)
This tool:
diagnostic_results provided.effort_minutes (lower effort first within same depth — quick wins build momentum)sequence integers to each node.'active'.Returns: { mind_map_id, node_count, edge_count, status }.
Call teaching_flow_advance(mind_map_id) to transition from PLANNING to TEACHING.
This sets current_node_id to the first frontier node and current_phase = "explaining".
Retrieve the first frontier node to mention in the notification:
curriculum_next_node(mind_map_id)
Then notify:
notify(
channel="telegram",
message=f"I've mapped out your learning path for [topic] — {node_count} concepts, "
f"from [first_concept] to [advanced_concept]. "
f"We'll start with [{first_frontier_node_label}].",
intent="proactive",
request_context=<session_request_context>
)
Exit. The TEACHING phase begins in the next triggered session.
Call curriculum_replan(mind_map_id, reason=<reason>) when any of the following occur:
retention_rate_7d < 0.60 — low retention suggests sequence is too faststruggling_nodes >= 3 — multiple struggling concepts need re-orderingRe-planning does NOT modify the existing DAG structure (no nodes/edges added or removed). It re-runs the topological sort with updated mastery data and marks mastered nodes as skippable.
If new nodes need to be added before re-planning:
mind_map_node_create() for new concepts.mind_map_edge_create() for their prerequisite edges.curriculum_replan().sequence integers assignedcurriculum_generate() was called and returned successfullyPLANNING to TEACHING via teaching_flow_advance()