SuperAPI AI Directory

skill-planner

Data & analytics

View repository

Updated 10-15 21:03

About this skill

Skill Planner

WHAT

Analyze all extraction results of the course-bundle and create a plan of skills that can be generated (skill-plan.json). Design the purpose, inputs/outputs, required resources, and dependencies of each skill, and after user approval, pass it to skill-synthesizer.

Out of scope:

  • Actual generation of skills (responsibility of skill-synthesizer)
  • Extraction of transcripts (responsibility of concept-extractor, procedure-extractor, visual-indexer)
  • Acquisition of resources (responsibility of resource-fetcher)

WHY

The knowledge, procedures, and resources obtained in the extraction phase are fragmentary. As they are, they cannot be turned into skills. In the planning phase, decide the following:

  1. What to turn into skills - Identify executable units from combinations of procedures + resources
  2. What to make into shared knowledge - Consolidate concepts and mindsets into foundational knowledge
  3. What the dependencies are - Make prerequisite relationships between skills explicit
  4. What is unresolved - Identify obstacles to skill creation, such as unacquired resources

Must not pass to skill-synthesizer without user approval. The user decides the skill composition.


Trigger conditions

  • "Skill planning" "Skill design"
  • "What skills can be created"
  • 「skill plan」「plan skills」
  • /skill-planner

HOW

Input requirements

Required Content
manifest.json Course metadata
knowledge/knowledge-graph.json Concept dependency graph
Optional (use if available) Content
chapters/*/knowledge.json Concepts and tacit knowledge of each chapter
chapters/*/procedures.json Step-by-step procedures of each chapter
chapters/*/visual-index.json Frame classification of each chapter
resources-manifest.json Acquired external resources
manuals/*.md utage-manual output (reference only, do not copy)

BLOCKER: Prerequisite check

Do not proceed to Step 2 until the following are confirmed:

  1. knowledge/knowledge-graph.json must exist
  2. At least one procedures.json must exist

If they do not exist, report to the user and suggest running concept-extractor or procedure-extractor.


Processing steps

Step 1: 前提条件チェック ← BLOCKER
Step 2: 全入力ファイル読み込み
Step 3: スキル候補の特定
Step 4: スキルタイプの判定
Step 5: 共有知識の設計
Step 6: 依存関係グラフの構築
Step 7: 未解決項目の特定
Step 8: skill-plan.json生成
Step 9: 自己検証
Step 10: ユーザーへの提示 ← BLOCKER(承認必須)

Step 2: Read all input files

Read all of the following (only those that exist):

  1. manifest.json → course name and chapter list
  2. knowledge/knowledge-graph.json → concept dependencies
  3. all chapters/*/knowledge.json → concepts and tacit knowledge
  4. all chapters/*/procedures.json → procedures
  5. resources-manifest.json → acquired resources
  6. file list of the manuals/ directory → for manual reference

Step 3: Identify skill candidates

For each procedure in procedures.json:

  1. Check whether it has an independent purpose (input→output)
  2. Check whether corresponding resources (prompts, templates, etc.) exist
  3. List as candidates

Step 4: Determining skill type

Condition → type
Prompt template (already acquired) + procedures exist executable
Procedures exist but resources not acquired executable(record in unresolved)
Centered on concepts, theory, and mindset; no executable artifacts → Integrate into shared_knowledge

Step 5: Designing shared knowledge

Consolidate the following into shared_knowledge:

  • Foundational concepts (concepts that are prerequisites for multiple skills)
  • NG/OK patterns (judgment criteria for the entire course)
  • Checklist items (common criteria for quality checks)
  • Mindset and values (extracted from tacit knowledge)

Step 6: Building the dependency graph

  1. Refer to prerequisite_graph in knowledge-graph.json
  2. Trace the prerequisites of the concepts each skill references
  3. Record as depends_on
  4. Confirm there are no circular dependencies

Step 7: Identifying unresolved items

Record the following in unresolved:

  • Resources are mentioned but not acquired
  • A URL is listed but cannot be accessed
  • An external tool is required but unconfirmed

Step 8: Generating skill-plan.json

The schema is schemas/skill-plan.schema.json Comply with. Output destination: {course-bundle}/skill-plan.json

Step 9: Self-verification

Check all of the following, and fix any issues:

  • Does each executable skill have resources or procedures?
  • Is skill_name unique across the whole?
  • Does depends_on reference skill names that actually exist?
  • Are trigger_words specific words unique to the course? (Generic terms like "create" or "generate" are NG)
  • Does shared_knowledge include foundational concepts?
  • Are all unacquired resources listed in the unresolved section?
  • Are there no circular dependencies in dependency_graph?
  • Does 1 skill contain content from 3 or more chapters? (Giant skills prohibited)

Skill splitting rules

Rules Description
1 skill = 1 purpose A unit where input→output can be clearly defined
Separate per prompt template Different template = different skill
Consolidate shared knowledge into a knowledge skill Concepts, NG/OK, and checklists are shared
Make dependencies explicit with depends_on Zero hidden dependencies
One giant skill is prohibited 12 chapters→1 skill is NG

For detailed criteria for splitting, refer to references/planning-strategy.md .


NG / OK table

NG OK Reason
Combine 12 chapters into 1 skill Split by purpose Giant skills cannot be executed
Though the resource has not been acquired, write only executable State it in the unresolved section and prompt acquisition Cannot execute without the prompt body
Put all concepts into the skill Put foundational concepts in shared_knowledge Progressive Disclosure
Pass to the synthesizer without user approval Always present plan → get approval The user decides the skill structure
Generic words like "create" or "generate" in trigger_words Course-specific words such as "PredictionX" or "FusionOmega" Generic words cause false triggering
Skill names in depends_on that do not exist Only skill names that actually exist Broken dependencies cause runtime errors
Make it executable with no procedure and no resources Integrate it into shared_knowledge or list it in unresolved There are no materials necessary for execution

BLOCKER: user approval

Once skill-plan.json is generated, always present it to the user in the following format and obtain approval. Do not pass it to skill-synthesizer until approval is obtained.


Presentation to the user

After processing is complete, present in the following format:

## Skill Plan: {course_name}

### ヒアリング仮説との照合
manifest.jsonのuser_context.skill_hypothesesがある場合、仮説との照合結果を表示:

| 仮説 | 結果 | 対応スキル |
|------|------|-----------|
| {hypothesis} | ✅ 検出 / ⚠️ リソース未取得 / ❌ 該当なし | {skill_name or "—"} |

➕ 追加発見: {仮説になかったが作れるスキル}

### Executable Skills ({n}件)

| # | スキル名 | 目的 | リソース | 状態 |
|---|---------|------|---------|------|
| 1 | {skill_name} | {purpose} | {resource_names} | Ready / Unresolved |
| ... |

### Shared Knowledge
- 基盤概念: {n}件
- NG/OKパターン: {n}件
- チェックリスト: {n}件
- 参照マニュアル: {manual_refs}

### 依存関係

{dependency_graph as text}


### 未解決項目 ({n}件)
| リソース名 | 言及箇所 | 必要なアクション |
|-----------|---------|----------------|
| {name} | {mentioned_in} | {action_needed} |

---

このプランでスキルを生成しますか?(全部 / 選択 / 修正)

Handling the user's response

Response Action
All Finalize skill-plan.json as is. Propose running skill-synthesizer
Selection Update skill-plan.json with only the skills the user selected
Revision Update skill-plan.json according to the user's revision instructions and present it again