원클릭으로
create-dependency-graph
Analyzes walkthroughs to create high quality dependency graphs in mermaidjs
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyzes walkthroughs to create high quality dependency graphs in mermaidjs
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Analyzes walkthroughs and dependency graph mermaid diagrams, and fixes them
Analyzes point-and-click adventure game walkthroughs to identify, categorize, and document puzzle mechanics. Use when analyzing new game walkthroughs or updating the puzzle design handbook.
This skill should be used when creating new game pages for the Inspiration section of puzzle-design-kb. It automates walkthrough analysis, puzzle extraction, and documentation in a standardized format while managing TODOS.md and committing after completion.
Downloads multiple walkthrough files for point-and-click adventure games by searching web archives and fan sites. Use when given a game name and needing to collect 3+ walkthrough sources for puzzle analysis.
| name | create-dependency-graph |
| description | Analyzes walkthroughs to create high quality dependency graphs in mermaidjs |
Create a complete puzzle dependency graph for any point-and-click adventure game.
Transform raw walkthrough data into a structured dependency graph that shows how puzzles relate to each other—what must be solved first, what items enable what obstacles, and how the game flows from start to finish.
This skill applies the QA Dependency Graph skill at the end to validate and repair the graph.
Point-and-click adventure games (King's Quest, Monkey Island, Space Quest, Grim Fandango, The Longest Journey) have a distinctive puzzle structure:
Understanding puzzle types helps you categorize and connect them correctly:
| Puzzle Type | Definition | Example |
|---|---|---|
| Locked Door | Physical obstacle requiring item | Use key on door |
| Fetch Quest | Acquire item, deliver to NPC/location | Get rabbit foot for gnome |
| Information Lock | Must learn knowledge before acting | Read book to learn spell name |
| Barter/Brokerage | Trade items with NPC | Trade ring for magic map |
| Sensory Exploitation | Use NPC's perception weakness | Give stinky flower to hiding gnome |
| Multi-Faceted Plan | Gather multiple items across categories, synthesize at end | Collect 5 gnome sensory items |
| Meta-Construction | Sequential chain where step N enables step N+1 | Lower bridge → cross → raise bridge |
| Red Herring | Appears required but isn't | Decoy puzzle that can be ignored |
| Locked Choice | Pick 1-of-N rewards (MEchanic, not puzzle) | Pawn shop: choose paintbrush OR nightingale |
Every puzzle has a lock (obstacle) and one or more keys (solutions):
LOCK: Gnome won't answer questions
KEY1: Give nightingale (sensory - appeals to hearing)
KEY2: Give rabbit foot (sensory - appeals to luck belief)
KEY3: Give mint (sensory - appeals to taste)
KEY4: Give stinky flower (sensory - appeals to... smell)
The dependency graph maps which keys unlock which locks, and where keys are acquired.
START - Game start (required as first node)
A_ACTION - Player takes action: A_PICK_UP_FLOWER, A_TALK_TO_FERRYMAN
O_OUTCOME - Result of action: O_RECEIVE_RABBIT_FOOT, O_LEARN_SPELL
P_PROBLEM - Obstacle to overcome: P_DOOR_LOCKED, P_GNOME_WON'T_LISTEN
C_CONSEQUENCE - Gateway/convergence point: C_ALL_GNOME_ITEMS, C_GATE_OPENED
UNLOCK_X - Major unlock gateway: UNLOCK_ISLAND_TRAVEL, UNLOCK_BOSS_FIGHT
END - Game completion (required as last node)
A_PICK_UP_FLOWER_OF_STENCHO_RECEIVE_RABBIT_FOOT, not O_ITEMO_RECEIVE_RABBIT_FOOT and O_RECEIVE_NIGHTINGALE are separate nodesDownload 3+ walkthroughs:
Create puzzle inventory document:
Identify geographic areas
Identify problem-solution pairs
Identify locked choices (IGNORE THE MECHANIC)
O_PAINTBRUSH_UNLOCKED, O_NIGHTINGALE_UNLOCKED, etc.Identify major unlocks (GATEWAY CANDIDATES)
UNLOCK_ISLAND_TRAVEL gateway nodeflowchart TD
START --> [first puzzle area]
[final puzzle area] --> END
For EVERY action, show its result:
A_PICK_UP_FLOWER --> O_RECEIVE_FLOWER_OF_STENCH
A_TALK_TO_FERRYMAN --> O_RECEIVE_RABBIT_FOOT
Critical: Every A_ node must connect to its O_ node.
Items must connect to where they're used:
O_RECEIVE_FLOWER_OF_STENCH --> A_GIVE_FLOWER_TO_GNOME
O_RECEIVE_RABBIT_FOOT --> A_GIVE_RABBIT_FOOT_TO_GNOME
When multiple items converge:
O_RECEIVE_NIGHTINGALE --> C_ALL_GNOME_ITEMS
O_RECEIVE_MINT --> C_ALL_GNOME_ITEMS
O_RECEIVE_RABBIT_FOOT --> C_ALL_GNOME_ITEMS
O_RECEIVE_STINKY_FLOWER --> C_ALL_GNOME_ITEMS
C_ALL_GNOME_ITEMS --> P_GNOME_UNLOCKED
When: 5+ edges would cross between areas
How: Single concrete unlock node
O_RECEIVE_MAGIC_MAP --> UNLOCK_ISLAND_TRAVEL
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_WONDER
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_BEAST
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_MISTS
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_SACRED
Rule: Only create gateway if >5 lines would cross AND unlock is a single concrete thing.
START
↓
[Island Area - Initial]
↓
┌────────────┼────────────┐
↓ ↓ ↓
[Area A] [Area B] [Area C] ← Parallel branches
↓ ↓ ↓
└────────────┼────────────┘
↓
[Convergence Point]
↓
END
subgraph "Isle of Wonder"["**Isle of Wonder**"]
direction TB
O_RECEIVE_NIGHTINGALE
O_RECEIVE_MINT
C_GNOME_ITEMS
end
Apply index-based palette with consistent stroke colors:
| Index | Hex | Stroke | Area Example |
|---|---|---|---|
| 1 | #E3F2FD | #1976D2 | Isle of Crown |
| 2 | #FFF3E0 | #F57C00 | Isle of Wonder |
| 3 | #F3E5F5 | #7B1FA2 | Isle of Beast |
| 4 | #E8F5E9 | #388E3C | Isle of Mists |
| 5 | #FFF8E1 | #F9A825 | Sacred Mountain |
| 6 | #FCE4EC | #C2185B | Druid Island |
| 7 | #E0F7FA | #00838F | Realm of Dead |
| 8 | #F5F5F5 | #616161 | Village |
Same area can appear multiple times at different logical points (e.g., Isle of Crown at game start AND as final area). Use the SAME color for repeated areas.
All nodes must use fontsize=18 or larger for readability:
flowchart TD
node[fontsize=18]
%% This sets default font size for all nodes
Apply this at the very start of the flowchart, before any nodes or subgraphs.
FLAT STRUCTURE ONLY - No Nested Subgraphs:
Same Area = Same Color:
Example of CORRECT structure:
subgraph area_1["**ISLE OF CROWN**"]
%% All Isle of Crown Phase 1 content here
end
subgraph area_2["**ISLE OF WONDER**"]
%% All Isle of Wonder content here
end
subgraph area_1_return["**ISLE OF CROWN - Final**"]
%% All Isle of Crown Final Phase content here (same color as area_1)
end
Example of WRONG structure (nested):
%% WRONG - Do not do this!
subgraph area_1["ISLE OF CROWN"]
subgraph area_1_village["Village"] %% NESTED - BAD
%% content
end
end
Clustering by Area:
Cluster Size and Line Length:
Subgraph Ordering (CRITICAL):
Use this exact format for subgraph titles to ensure proper font size:
subgraph area_name["<style>subgraphTitleTitle {font-size: 18px; font-weight: bold;}</style>Area Title"]
classDef area_X fill:#HEXCOLOR,stroke:#STROKECOLOR,stroke-width:2px
class node1,node2,node3 area_X
end
style area_name fill:#HEXCOLOR,stroke:#STROKECOLOR,stroke-width:3px
IMPORTANT: The style <subgraph_id> command MUST come AFTER the end of the subgraph to color the container/cluster itself. Without this, the subgraph background won't be visible.
Apply index-based palette:
| Index | Hex | Area Example |
|---|---|---|
| 0 | #FFFFFF | Default/ungrouped |
| 1 | #E3F2FD | Isle of Crown |
| 2 | #FFF3E0 | Isle of Wonder |
| 3 | #F3E5F5 | Isle of Beast |
| 4 | #E8F5E9 | Isle of Mists |
| 5 | #FFF8E1 | Sacred Mountain |
| 6 | #FCE4EC | Druid Island |
| 7 | #E0F7FA | Realm of Dead |
| 8 | #F5F5F5 | Village |
Same area can appear multiple times at different logical points (e.g., Isle of Crown at game start AND as final area).
subgraph "Isle of Crown (Start)"["**Isle of Crown**"]
classDef area1 fill:#E3F2FD,stroke:#2196F3,stroke-width:2px
class O_RECEIVE_MAP area1
end
After building, invoke the QA Dependency Graph skill:
Run dangling node detection:
./.opencode/skills/qa-dependency-graph/scripts/check-dangling-nodes.sh <chart.mmd>
Fix orphaned nodes:
Verify layout:
Iterate until script reports zero errors
| Wrong | Right |
|---|---|
| Walkthrough order | Logical requirement |
| "I went to beach, then village" | "Shell from beach enables gnome" |
| S1_BEACH → S2_VILLAGE | O_RECEIVE_SHELL → A_GIVE_SHELL_TO_GNOME |
Principle: Track locks and keys, not player movement.
Items acquired in one area are often used in another:
Isle of Wonder: A_PICK_UP_FLOWER --> O_RECEIVE_FLOWER
↓ (later, on Sacred Mountain)
A_GIVE_FLOWER_TO_GNOME
Principle: Connect acquisition to usage, even across areas.
If puzzles can be done in any order, show as parallel:
P_INITIAL_AREA --> A_GET_ITEM_A
P_INITIAL_AREA --> A_GET_ITEM_B
P_INITIAL_AREA --> A_GET_ITEM_C
A_GET_ITEM_A --> C_ALL_ITEMS
A_GET_ITEM_B --> C_ALL_ITEMS
A_GET_ITEM_C --> C_ALL_ITEMS
C_ALL_ITEMS --> P_NEXT_AREA
Only create gateway nodes when:
Don't gateway minor unlocks or batch unrelated items.
A_ must connect to O_After completion, you should have:
<game-name>-chart.mmd: Source mermaid file<game-name>-chart.svg: Rendered chart (via build process)<game-name>-chart-preview.png: Inline preview imageSUMMARY.md: Link to chart pageThis skill MUST invoke the QA skill after initial graph creation:
After building initial graph:
1. Run ./scripts/check-dangling-nodes.sh
2. For each orphan: research walkthroughs, web
3. Fix connections
4. Repeat until clean
5. Only then commit
Problem: Cannot travel to other islands
Solution:
1. Get ring from Cassandra's mother
2. Trade ring to Ali for magic map
3. Use map to travel anywhere
Correct representation:
O_RECEIVE_RING --> A_TRADE_RING_TO_ALI
A_TRADE_RING_TO_ALI --> O_RECEIVE_MAGIC_MAP
O_RECEIVE_MAGIC_MAP --> UNLOCK_ISLAND_TRAVEL
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_WONDER
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_BEAST
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_MISTS
UNLOCK_ISLAND_TRAVEL --> P_CAN_TRAVEL_TO_SACRED
NOT sequential walkthrough order like:
S1_GET_RING --> S2_GO_TO_ALI --> S3_TRADE --> S4_USE_MAP