integrate-playground

Integrate Playground with VRP-Toolkit

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "integrate-playground" with this command: npx skills add dudusoar/vrp-toolkit/dudusoar-vrp-toolkit-integrate-playground

Integrate Playground with VRP-Toolkit

Token-efficient workflow for connecting Streamlit playground UI to vrp-toolkit backend APIs.

Core Problem

Developing playground features requires knowing exact API signatures of vrp-toolkit modules. Without reference documentation, this requires repeatedly reading source code (consuming thousands of tokens per integration) and leads to API mismatch errors.

Solution

This skill provides:

  • Interface Mapping Table - Playground needs → vrp-toolkit APIs

  • API Quick Reference - Exact signatures with usage examples

  • Contract Test Integration - Automated verification of interfaces

  • Common Error Patterns - Troubleshooting guide

Workflow

Step 1: Check Interface Mapping

Before writing any integration code:

  • Open interface_mapping.md

  • Find the workflow you're implementing (e.g., "Generate synthetic map")

  • Note the exact API signature

  • Check for common mistakes marked with ⚠️

Example:

Need: Generate synthetic map API: RealMap(n_r: int, n_c: int, dist_function: Callable, dist_params: Dict) Common mistake: ❌ Don't use num_customers, use n_c

Step 2: Verify with Contract Test (Optional)

If uncertain about API behavior:

  • Check if contract test exists in contracts/ directory

  • Run the test: pytest contracts/test_<feature>.py -v

  • Read test code to see usage examples

  • Test validates: parameters accepted, attributes available, reproducibility

Example:

pytest contracts/test_realmap_api.py -v

See test_realmap_initialization() for usage example

Step 3: Write Integration Code

Follow the mapping table exactly:

✅ Correct: Use exact signature from mapping table

np.random.seed(seed) # For reproducibility real_map = RealMap( n_r=num_restaurants, n_c=num_customers, dist_function=np.random.uniform, dist_params={'low': 0, 'high': 100} )

❌ Wrong: Assumed API

real_map = RealMap( num_customers=num_customers, num_restaurants=num_restaurants, area_size=100, seed=seed )

Data access pattern:

  • Most generators create data in init , not via .generate() method

  • Access via attributes: .demand_table , .order_table , .time_matrix

  • See interface_mapping.md for each API's pattern

Step 4: Add Error Handling

Common error patterns:

try: instance = PDPTWInstance( order_table=order_table, distance_matrix=real_map.distance_matrix, time_matrix=order_gen.time_matrix, robot_speed=1.0 ) except TypeError as e: st.error(f"API mismatch: {e}") st.info("Check interface_mapping.md for correct parameters")

Step 5: Add Contract Test (For New Integrations)

When adding new playground feature:

Create test in contracts/test_<feature>.py

Test should verify:

  • API signature matches mapping table

  • Reproducibility (same seed → same result)

  • Feasibility (results meet constraints)

  • Objective values are consistent

Add test reference to interface_mapping.md

Template:

contracts/test_new_feature.py

def test_api_signature(): """Verifies API matches interface_mapping.md""" # Test exact parameters...

def test_reproducibility(): """Same seed produces same result""" np.random.seed(42) result1 = generate_feature()

np.random.seed(42)
result2 = generate_feature()

assert result1 == result2

Quick Reference Files

For Complete API Details

See api_signatures.md for:

  • Full parameter lists with types

  • Return types and attributes

  • Usage examples

  • Import statements

For Contract Testing

See contract_tests.md for:

  • How to write contract tests

  • Test organization patterns

  • Running and maintaining tests

  • Linking tests to mapping table

For Troubleshooting

See troubleshooting.md for:

  • Common error messages and fixes

  • Module caching issues (need to restart Streamlit)

  • Attribute vs method access patterns

  • Missing parameter errors

Anti-Patterns to Avoid

❌ Don't assume API signatures

  • Always check mapping table first

  • Don't guess parameter names

❌ Don't repeatedly read source code

  • Use this skill's mapping table (< 1000 tokens)

  • Avoid re-reading vrp-toolkit source (several thousand tokens each time)

❌ Don't call non-existent methods

  • Check if it's an attribute or method

  • Most generators use attributes: .demand_table , not .generate()

❌ Don't skip contract tests for complex integrations

  • Tests catch issues early

  • Tests document expected behavior

  • Tests prevent regressions

Maintenance

When vrp-toolkit API changes:

  • Update interface_mapping.md

  • Update affected contract tests in contracts/

  • Run tests to verify: pytest contracts/ -v

  • Update playground code

  • Update troubleshooting.md if new error patterns emerge

When adding new playground features:

  • Add API to interface_mapping.md

  • Add detailed signature to api_signatures.md

  • Create contract test in contracts/

  • Reference test in mapping table

Token Efficiency

Without this skill:

  • Read RealMap source: ~1500 tokens

  • Read DemandGenerator source: ~1200 tokens

  • Read OrderGenerator source: ~1800 tokens

  • Read PDPTWInstance source: ~2000 tokens

  • Total: ~6500 tokens per integration

With this skill:

  • Read interface_mapping.md: ~800 tokens

  • Total: ~800 tokens per integration

Savings: ~5700 tokens (87% reduction)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

integrate-road-network

No summary provided by upstream source.

Repository SourceNeeds Review
General

create-tutorial

No summary provided by upstream source.

Repository SourceNeeds Review
General

build-session-context

No summary provided by upstream source.

Repository SourceNeeds Review
General

git-log

No summary provided by upstream source.

Repository SourceNeeds Review