Claude-skill-registry logistics-expert
Expert-level supply chain management, logistics optimization, warehouse systems, and fleet management
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/logistics" ~/.claude/skills/majiayu000-claude-skill-registry-logistics-expert && rm -rf "$T"
manifest:
skills/data/logistics/SKILL.mdsource content
Logistics Expert
Expert guidance for supply chain management, logistics optimization, warehouse management systems, and transportation planning.
Core Concepts
Supply Chain Management
- Inventory management
- Demand forecasting
- Procurement and sourcing
- Warehouse management (WMS)
- Transportation management (TMS)
- Order fulfillment
- Last-mile delivery
Optimization
- Route optimization
- Load planning
- Inventory optimization
- Network design
- Cost minimization
- Delivery scheduling
Technologies
- RFID and barcode scanning
- GPS tracking
- IoT sensors
- Predictive analytics
- Automated warehouses
- Drone delivery
Warehouse Management System
from dataclasses import dataclass from typing import List, Optional from datetime import datetime from enum import Enum class StorageType(Enum): PALLET = "pallet" SHELF = "shelf" BULK = "bulk" COLD = "cold_storage" @dataclass class Location: location_id: str zone: str aisle: str rack: str level: int storage_type: StorageType capacity: float current_load: float @dataclass class Product: sku: str name: str category: str weight: float volume: float storage_requirements: str @dataclass class InventoryItem: item_id: str sku: str quantity: int location_id: str received_date: datetime expiry_date: Optional[datetime] batch_number: str class WMS: """Warehouse Management System""" def __init__(self, db): self.db = db def receive_shipment(self, shipment): """Process incoming shipment""" items_received = [] for item in shipment.items: # Find optimal storage location location = self.find_optimal_location(item) # Create inventory record inventory_item = InventoryItem( item_id=generate_id(), sku=item.sku, quantity=item.quantity, location_id=location.location_id, received_date=datetime.now(), expiry_date=item.expiry_date, batch_number=item.batch_number ) self.db.save_inventory(inventory_item) self.update_location_capacity(location, item) items_received.append(inventory_item) return { 'shipment_id': shipment.shipment_id, 'items_received': len(items_received), 'status': 'completed' } def find_optimal_location(self, item): """Find best storage location for item""" product = self.db.get_product(item.sku) available_locations = self.db.get_available_locations( storage_type=product.storage_requirements, min_capacity=product.volume * item.quantity ) # Prioritize locations # 1. Same SKU for efficient picking # 2. Closest to shipping area for fast-moving items # 3. Maximize space utilization same_sku_locations = [ loc for loc in available_locations if self.has_same_sku(loc, item.sku) ] if same_sku_locations: return same_sku_locations[0] # Select closest to shipping for fast-moving items if product.category == 'fast-moving': return min(available_locations, key=lambda l: l.distance_to_shipping) # Otherwise, optimize space utilization return max(available_locations, key=lambda l: l.utilization_score) def pick_order(self, order_id): """Generate picking list and route""" order = self.db.get_order(order_id) picking_list = [] for line_item in order.line_items: inventory = self.db.find_inventory( sku=line_item.sku, quantity=line_item.quantity ) picking_list.append({ 'sku': line_item.sku, 'quantity': line_item.quantity, 'location': inventory.location_id, 'batch': inventory.batch_number }) # Optimize picking route optimized_route = self.optimize_picking_route(picking_list) return { 'order_id': order_id, 'picking_list': optimized_route, 'estimated_time': self.estimate_picking_time(optimized_route) } def optimize_picking_route(self, picking_list): """Optimize warehouse picking route""" # Sort by zone, aisle, rack for efficient walking path sorted_picks = sorted( picking_list, key=lambda x: ( self.get_location_zone(x['location']), self.get_location_aisle(x['location']), self.get_location_rack(x['location']) ) ) return sorted_picks def check_stock_level(self, sku): """Check current stock level""" total_quantity = self.db.sum_quantity_by_sku(sku) product = self.db.get_product(sku) status = 'normal' if total_quantity <= product.reorder_point: status = 'reorder' elif total_quantity <= product.safety_stock: status = 'critical' return { 'sku': sku, 'quantity': total_quantity, 'status': status, 'reorder_point': product.reorder_point }
Route Optimization
import numpy as np from scipy.spatial.distance import cdist from ortools.constraint_solver import routing_enums_pb2 from ortools.constraint_solver import pywrapcp class RouteOptimizer: """Vehicle routing optimization""" def optimize_delivery_routes(self, depot, deliveries, vehicles): """Optimize delivery routes using OR-Tools""" # Create distance matrix locations = [depot] + deliveries distance_matrix = self.create_distance_matrix(locations) # Create routing model manager = pywrapcp.RoutingIndexManager( len(distance_matrix), len(vehicles), 0 # depot index ) routing = pywrapcp.RoutingModel(manager) # Distance callback def distance_callback(from_index, to_index): from_node = manager.IndexToNode(from_index) to_node = manager.IndexToNode(to_index) return distance_matrix[from_node][to_node] transit_callback_index = routing.RegisterTransitCallback(distance_callback) routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index) # Add capacity constraints def demand_callback(from_index): from_node = manager.IndexToNode(from_index) return deliveries[from_node - 1].weight if from_node > 0 else 0 demand_callback_index = routing.RegisterUnaryTransitCallback(demand_callback) routing.AddDimensionWithVehicleCapacity( demand_callback_index, 0, # null capacity slack [v.capacity for v in vehicles], True, # start cumul to zero 'Capacity' ) # Solve search_parameters = pywrapcp.DefaultRoutingSearchParameters() search_parameters.first_solution_strategy = ( routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC ) solution = routing.SolveWithParameters(search_parameters) if solution: return self.extract_routes(manager, routing, solution, locations) return None def create_distance_matrix(self, locations): """Create distance matrix from coordinates""" coords = np.array([(loc.lat, loc.lon) for loc in locations]) return cdist(coords, coords, metric='euclidean') def extract_routes(self, manager, routing, solution, locations): """Extract optimized routes from solution""" routes = [] for vehicle_id in range(routing.vehicles()): route = [] index = routing.Start(vehicle_id) while not routing.IsEnd(index): node = manager.IndexToNode(index) route.append(locations[node]) index = solution.Value(routing.NextVar(index)) routes.append({ 'vehicle_id': vehicle_id, 'stops': route, 'total_distance': solution.ObjectiveValue() }) return routes
Fleet Management
@dataclass class Vehicle: vehicle_id: str type: str capacity_weight: float capacity_volume: float fuel_efficiency: float status: str current_location: dict maintenance_due: datetime class FleetManagement: """Fleet tracking and management""" def __init__(self, db): self.db = db def assign_vehicle(self, delivery): """Assign optimal vehicle for delivery""" available_vehicles = self.db.get_available_vehicles( location=delivery.origin, min_capacity=delivery.total_weight ) # Score vehicles based on: # - Distance from origin # - Capacity utilization # - Fuel efficiency # - Maintenance status best_vehicle = min( available_vehicles, key=lambda v: self.calculate_vehicle_score(v, delivery) ) return best_vehicle def track_vehicle(self, vehicle_id): """Real-time vehicle tracking""" vehicle = self.db.get_vehicle(vehicle_id) current_route = self.db.get_current_route(vehicle_id) return { 'vehicle_id': vehicle_id, 'location': vehicle.current_location, 'status': vehicle.status, 'current_delivery': current_route.delivery_id if current_route else None, 'eta': self.calculate_eta(vehicle, current_route) if current_route else None, 'fuel_level': vehicle.fuel_level, 'distance_traveled_today': vehicle.daily_distance } def schedule_maintenance(self, vehicle_id): """Schedule vehicle maintenance""" vehicle = self.db.get_vehicle(vehicle_id) maintenance_history = self.db.get_maintenance_history(vehicle_id) # Predictive maintenance based on: # - Mileage # - Hours of operation # - Previous issues # - Manufacturer schedule next_maintenance = self.predict_maintenance_date( vehicle, maintenance_history ) return { 'vehicle_id': vehicle_id, 'next_maintenance': next_maintenance, 'type': 'preventive', 'estimated_cost': self.estimate_maintenance_cost(vehicle) }
Inventory Forecasting
from sklearn.ensemble import RandomForestRegressor import pandas as pd class DemandForecasting: """Demand forecasting and inventory optimization""" def forecast_demand(self, sku, forecast_period_days=30): """Forecast product demand""" # Get historical sales data historical_data = self.db.get_sales_history(sku, days=365) # Features: day of week, month, seasonality, promotions df = pd.DataFrame(historical_data) df['day_of_week'] = pd.to_datetime(df['date']).dt.dayofweek df['month'] = pd.to_datetime(df['date']).dt.month df['is_promotion'] = df['promotion_id'].notna().astype(int) X = df[['day_of_week', 'month', 'is_promotion']] y = df['quantity_sold'] # Train model model = RandomForestRegressor(n_estimators=100) model.fit(X, y) # Generate forecast future_dates = pd.date_range( start=pd.Timestamp.now(), periods=forecast_period_days, freq='D' ) forecast_features = pd.DataFrame({ 'day_of_week': future_dates.dayofweek, 'month': future_dates.month, 'is_promotion': 0 # Assume no promotions unless specified }) predicted_demand = model.predict(forecast_features) return { 'sku': sku, 'forecast_period': forecast_period_days, 'predicted_demand': predicted_demand.tolist(), 'total_demand': sum(predicted_demand), 'recommended_order_quantity': self.calculate_order_quantity( predicted_demand, sku ) } def calculate_order_quantity(self, forecast, sku): """Calculate economic order quantity""" product = self.db.get_product(sku) total_demand = sum(forecast) # EOQ formula eoq = np.sqrt( (2 * total_demand * product.order_cost) / product.holding_cost ) return int(eoq)
Best Practices
- Implement real-time tracking
- Use predictive analytics
- Optimize inventory levels
- Automate warehouse operations
- Enable multi-modal transportation
- Implement quality control
- Track KPIs (on-time delivery, accuracy)
- Use lean principles
- Enable reverse logistics
- Implement safety protocols
Anti-Patterns
❌ Manual inventory tracking ❌ No route optimization ❌ Overstocking or understocking ❌ Poor warehouse layout ❌ No real-time visibility ❌ Ignoring data analytics ❌ Inefficient picking processes
Resources
- Council of Supply Chain Management Professionals: https://cscmp.org/
- OR-Tools: https://developers.google.com/optimization
- Warehouse Management: https://www.mhi.org/
- Transportation Management: https://www.inboundlogistics.com/