Specification: IT Graph Generator Skill
Executive Summary
Create a Claude skill that generates interactive graph-model visualizations using vis-network library for IT management educational content. These microsims will be embedded in chapter content via iframes and follow the established pattern from docs/sims/it-graph-nodes.
Skill Name - it-graph-generator
Business Context
- Problem: 10 graph-model visualizations are needed across the textbook (17.5% of all visualizations)
- Highest ROI: Priority score 6.67 (best effort-to-impact ratio)
- Low effort: Similar to existing microsims (effort rating: 1/10)
- Target audience: Graduate students (ISMG 620) learning IT management graphs
Technical Architecture
Definition; A MicroSim is an educational program that run in a web browser with no dependency on backend databases.
File Structure
Each microsim resides in /docs/sims/<microsim-name>/ with:
1 2 3 4 5 6 7 8 | |
Core Technology Stack
- Library: vis-network (https://unpkg.com/vis-network/standalone/umd/vis-network.min.js)
- Data Format: JSON with nodes array and optional edges array
- Layout Engine: Force-directed (Barnes-Hut physics)
- Icons: MIT-licensed SVG icons from
/docs/it-icons/(optional)
Data Schema
Node Schema
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Edge Schema (optional)
1 2 3 4 5 6 7 8 | |
Required Features
1. Core Interactive Features
- Hover tooltips: Display node type and all properties
- Click for details: Show full property panel in right sidebar
- Search functionality: Type-ahead search by node name or property value
- Filter by type: Checkboxes to show/hide specific node types
- Select All/Unselect All: Bulk filter controls
- Force-directed layout: Automatic node positioning with physics
2. Visual Elements
Canvas Container
- Dimensions: Flexible width × 600px height
- Background: Light gray (#f8fafc)
- Border: 2px solid (#e2e8f0)
- Border radius: 8px
Legend (top-left overlay)
- White background with border
- Shows node types with icons/shapes and colors
- Title: "Node Types"
- Icons (if available) or colored shapes
- Always look in /docs/it-icons first and only use shapes if an icon is not available
Callouts (bottom-left overlay)
- Blue background with white text
- Dismissible with "OK" button
- 3-4 educational messages
- Fade out when dismissed
Sidebar (right panel)
- Width: 280px
- Height: 600px (matches canvas)
- Shows selected node details
- Displays node type (e.g.,
:BusinessService) - Lists all properties with formatted key-value pairs
- Property count badge at bottom
Educational Notes (below canvas)
- Green background (#f0fdf4)
- Left border: 4px solid green
- 3 notes with emoji icons
- Explains educational insights
3. Layout and Controls
Header
- Title (h1) and subtitle
- Search box (right-aligned)
- Input field with placeholder
- Blue search button
Filter Controls
- Horizontal layout with checkboxes
- One checkbox per node type
- "Select All" and "Unselect All" buttons
- Gray background panel
Main Content Area
- Two-column layout: canvas (flex) + sidebar (280px fixed)
- Gap: 20px
User Interface Patterns
Color Scheme
1 2 3 4 5 6 7 8 9 10 | |
Shape Mappings
Use icons from /docs/
1 2 3 4 5 6 7 8 9 | |
Size Guidelines
- Large (40px): High-level business entities
- Medium (30px): Applications, databases, servers
- Small (25px): Supporting entities (teams, users, locations)
Vis-Network Configuration
Physics Options
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Interaction Options
1 2 3 4 | |
Node Styling
1 2 3 4 5 | |
Educational Components
Callout Messages (4 standard messages)
- "Each node represents a unique entity in your IT infrastructure"
- "Nodes can have different properties---no rigid schema required!"
- "Labels help categorize and filter nodes efficiently"
- "In the next section, we'll connect these nodes with relationships"
Educational Notes (3 standard notes)
- "📌 Notice how different node types have completely different properties"
- "💡 This flexibility would require multiple tables or sparse schemas in relational databases"
- "🎯 Graph databases embrace heterogeneous data naturally"
Implementation Requirements
index.md Template
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | |
main.html Structure
- HTML5 doctype
- Viewport meta tag for responsiveness
- Link to style.css
- CDN link to vis-network
- Container with header, controls, main-content, sidebar
- Script tag loading script.js
script.js Core Functions
1 2 3 4 5 6 7 8 9 10 11 12 | |
style.css Key Classes
.container- Main wrapper.header-content- Flex header with title and search.search-box- Search input and button.filter-box- Filter controls panel.main-content- Two-column layout.canvas-container- Visualization area#network- Vis-network canvas.legend- Overlay legend.callouts- Educational callouts.sidebar- Node details panel.educational-notes- Bottom notes section
Skill Input Parameters
The skill should accept:
- microsim_name (required): Directory name (kebab-case)
- title (required): Human-readable title
- description (required): One-paragraph description
- purpose (required): Educational purpose statement
-
node_types (required): Array of node type objects:
1 2 3 4 5 6 7 8
{ type: "BusinessService", shape: "circle", color: "#ec4899", size: 40, icon: "../../it-icons/service.svg" (optional), properties: ["name", "SLA_tier", "owner", ...] } -
sample_nodes (required): Array of sample node data (8-10 nodes)
- include_edges (optional): Boolean (default: false)
- edges (optional): Array of edge data if include_edges is true
- educational_insights (required): Array of 3 key learning points
- custom_callouts (optional): Override default callout messages
- custom_notes (optional): Override default educational notes
Skill Output
The skill will:
- Create directory:
/docs/sims/<microsim-name>/ - Generate files:
index.md- Documentation with iframe linkmain.html- Complete visualization pagescript.js- JavaScript implementationstyle.css- Complete stylesheet<microsim-name>-data.json- Graph data
- Update navigation: Add link to
/docs/sims/index.md(optional) - Report: Summary of created files with file paths
Quality Assurance Checklist
- All node IDs are unique integers
- All node types have consistent color/shape mappings
- Properties are heterogeneous (different per node type)
- Legend displays all node types correctly
- Search finds nodes by label and property values
- Filter checkboxes work for all node types
- Sidebar displays selected node details
- Callouts are dismissible
- Force-directed layout stabilizes within 5 seconds
- Hover tooltips show formatted properties
- Educational notes are contextually relevant
- Icons load correctly (if used)
- Responsive design works on 1400px+ screens
Example Use Cases (from details-analysis.md)
- IT Asset Relationship Graph (Chapter: IT Asset Management Fundamentals)
- IT Infrastructure Nodes (Chapter: Graph Theory)
- Deployment Dependencies DAG (Chapter: Graph Theory)
- Dependency Graph with Cycle Detection (Chapter: Graph Database Technologies)
- Cypher Pattern Matching (Chapter: Query Languages)
- Bidirectional Dependency Tracing (Chapter: Graph Traversal)
- Multi-Layer Dependency Map (Chapter: Graph Traversal)
- Business Service Mapping (Chapter: Business Services)
- RBAC Permission Graph (Chapter: Compliance)
Integration with Intelligent Textbook
Embedding in Chapter Content
1 2 3 4 5 6 7 8 9 10 11 | |
MkDocs Configuration
Add to mkdocs.yml navigation:
1 2 3 4 | |
Skill Behavior Guidelines
When to Generate Icons vs Shapes
- Use icons: If icon path is provided and file exists
- Use shapes: As default or fallback
- Icon sources:
/docs/it-icons/directory (MIT-licensed Bootstrap icons)
Data Validation
- Validate node IDs are unique
- Validate edge references point to existing nodes
- Validate colors are valid hex codes
- Validate shapes are supported vis-network shapes
- Warn if properties are missing or malformed
Error Handling
- Graceful fallback if icons don't load
- Display error message if JSON fails to load
- Console warnings for data validation issues
Performance Considerations
- Optimal node count: 8-20 nodes
- Physics stabilization timeout: 5 seconds
- Disable physics after stabilization for better performance
Success Metrics
A successful it-graph microsim should:
- Load and render within 2 seconds
- Be interactive immediately after stabilization
- Clearly demonstrate the intended concept
- Match the visual style of existing it-graph microsims
- Work on screens 1280px+ wide
- Be embeddable in chapter content via iframe
Skill Storage
When finished, the skill will be written to /skills/it-graph-generator in the current repository.
Next Steps to Create the Skill
- Use the skill-creator skill to generate this new skill
- Test with one example (e.g., IT Asset Relationship Graph)
- Validate output against this specification
- Iterate based on quality assurance checklist
- Document skill usage in skill's README
Would you like me to now invoke the skill-creator skill to build this it-graph-generator generator skill using this specification?