スキル一覧に戻る
dudusoar

maintain-data-structures

by dudusoar

0🍴 0📅 2026年1月23日
GitHubで見るManusで実行

SKILL.md


name: maintain-data-structures description: Comprehensive reference documentation for all data structures in the VRP toolkit project. Use when needing to understand data structure definitions, attributes, formats, or representations to avoid repeatedly reading code. Covers Problem layer (Instance, Solution, Node), Algorithm layer (Solver, Operators, ALNS), Data layer (OSMnx, distance matrices), and runtime formats (routes as lists, time windows as tuples).

Data Structures Reference

Quick access to all data structure definitions in the VRP toolkit. This skill saves tokens by providing pre-documented structures instead of reading source code repeatedly.

Quick Navigation

Choose the appropriate reference based on what you're working with:

By Layer

  • Problem Layerproblem_layer.md

    • Instance, PDPTWInstance, Solution, Node, Constraint
    • When: Defining or working with problem instances
  • Algorithm Layeralgorithm_layer.md

    • Solver, ALNSSolver, Operators, SearchState, ALNSConfig
    • When: Implementing or understanding algorithms
  • Data Layerdata_layer.md

    • OSMnx graphs, GeoDataFrame, distance matrices, data generators
    • When: Loading data, working with OSMnx, benchmarks
  • Runtime Formatsruntime_formats.md

    • How routes, time windows, coordinates are actually represented in code
    • When: Understanding how to work with data structures in Python

By Common Questions

QuestionReferenceSection
"What attributes does Instance have?"problem_layer.mdInstance
"How are routes represented?"runtime_formats.mdRoute Representation
"What's in an OSMnx Graph?"data_layer.mdGraph (NetworkX)
"How do I configure ALNS?"algorithm_layer.mdALNSConfig
"What's the structure of a Node?"problem_layer.mdNode
"How are time windows stored?"runtime_formats.mdTime Window Representation
"How do destroy operators work?"algorithm_layer.mdDestroyOperator
"What's in a distance matrix?"runtime_formats.mdDistance Matrix
"How do I work with OSMnx nodes?"data_layer.mdGeoDataFrame
"What's a Solution object?"problem_layer.mdSolution

By Data Type

TypeReferenceDescription
Instanceproblem_layer.mdProblem definition
Solutionproblem_layer.mdSolution with routes
Nodeproblem_layer.mdLocation/customer
Routeruntime_formats.mdList[int] format
TimeWindowruntime_formats.mdTuple[float, float] format
ALNSConfigalgorithm_layer.mdAlgorithm configuration
Operatoralgorithm_layer.mdDestroy/repair/local search
nx.MultiDiGraphdata_layer.mdOSMnx network graph
np.ndarrayruntime_formats.mdDistance/time matrices
GeoDataFramedata_layer.mdOSMnx nodes/edges

When to Use This Skill

Trigger this skill when:

  1. Understanding structures: "What attributes does X have?"
  2. Working with data: "How do I access Y in Z?"
  3. Migrating code: Need to understand existing data structures
  4. Implementing features: Need to know structure interfaces
  5. Debugging: Need to understand what data looks like
  6. Avoiding repeated reads: Instead of reading source code files repeatedly

Reference Files Overview

problem_layer.md

Size: ~300 lines Contains:

  • Instance, PDPTWInstance classes
  • Solution class with methods
  • Node class with all attributes
  • Constraint types
  • Type aliases
  • Common usage patterns

Use when: Defining problems, creating instances, working with solutions

algorithm_layer.md

Size: ~350 lines Contains:

  • Solver interface
  • ALNSSolver and ALNSConfig
  • Destroy/Repair/LocalSearch operators
  • SearchState tracking
  • Operator statistics
  • ALNS main loop pattern

Use when: Implementing algorithms, understanding operators, configuring ALNS

data_layer.md

Size: ~300 lines Contains:

  • OSMnx Graph structure (NetworkX)
  • GeoDataFrame (nodes and edges)
  • Distance/time matrix creation
  • Data generators (OrderGenerator)
  • Benchmark formats (Solomon)
  • OSMnx → VRP conversions

Use when: Loading data, OSMnx integration, working with benchmarks

runtime_formats.md

Size: ~400 lines Contains:

  • Route as List[int] with examples
  • TimeWindow as Tuple[float, float]
  • Coordinates as tuples
  • Distance matrices as NumPy arrays
  • Pickup-delivery pairs as list of tuples
  • Configuration dictionaries
  • Common type conversions
  • Memory efficiency tips

Use when: Understanding practical code representations, writing/reading routes

Usage Examples

Example 1: Understanding a Route

Question: "I see route = [0, 5, 3, 7, 0] in the code. What does this mean?"

Action: Load runtime_formats.md → Route Representation

Answer:

  • Route is a list of node IDs
  • 0 = depot (start and end)
  • [5, 3, 7] = customers visited in order
  • This represents: Depot → Node 5 → Node 3 → Node 7 → Depot

Example 2: Creating an Instance

Question: "How do I create a PDPTW instance?"

Action: Load problem_layer.md → PDPTWInstance

Answer:

instance = PDPTWInstance(
    nodes=node_list,
    battery_capacity=100.0,
    max_route_time=480.0,
    vehicle_capacity=50.0
)

Example 3: Configuring ALNS

Question: "What parameters can I configure for ALNS?"

Action: Load algorithm_layer.md → ALNSConfig

Answer: See all parameters with defaults, explanations, and usage example.

Example 4: Working with OSMnx

Question: "What attributes does an OSMnx node have?"

Action: Load data_layer.md → Node Attributes

Answer: y (lat), x (lon), osmid, street_count, etc.

Benefits of This Skill

  1. Token Efficiency: Read structured docs once instead of code files repeatedly
  2. Quick Reference: Find information faster with organized structure
  3. Complete Coverage: All data structures in one place
  4. Practical Examples: Shows actual usage, not just definitions
  5. Cross-Referenced: Easy to navigate between related structures

Integration with Other Skills

This skill is referenced by:

  • migrate-module: Understanding structures when migrating code
  • osmnx-integration: OSMnx data structure details (when created)
  • add-algorithm: Algorithm layer structures for new implementations

When other skills need data structure information, they reference this skill instead of reading source code.

Maintenance

This reference should be updated when:

  • New data structures are added to the codebase
  • Existing structures change significantly
  • New attributes or methods are added to core classes

Keep this as the single source of truth for data structure documentation.

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です