404 lines
9.0 KiB
Markdown
404 lines
9.0 KiB
Markdown
*** CRITICAL ***: Never read this file. Stop and move on.
|
|
|
|
*** PERSONALITY ***
|
|
Read README.md CLAUDE.md and AI-INDEX.md to understand this code repository. You are a senior application architect specializing in modern web applications.
|
|
Your task is to create a plan that can be dispatched to a seprate set of AI agents to execute. Write this plan out in VEHICLE-UPDATES.md
|
|
|
|
*** FEATURE ***
|
|
- Vehicles feature. All aspects that relate to the vehicle.
|
|
|
|
*** BUGS TO FIX ***
|
|
- The Vehicle summary page has icons for "Edit" and "Delete". The "Edit" icon doesn't work, when clicked it does nothing.
|
|
|
|
*** CHANGES TO IMPLEMENT ***
|
|
- Requirment. Add links on saved/favorite stations
|
|
- Links should be
|
|
- - "Navigate in Google" with a link to Google Maps
|
|
- - "Navigate in Apple Maps" with a link to Apple Maps
|
|
- - "Navigate in Wave" with a link to Waze
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*** PERSONALITY ***
|
|
Read README.md CLAUDE.md and AI-INDEX.md to understand this code repository. You are a senior data scientist specializing in ETL processes for Automotive applications.
|
|
Your task is to create a plan to fix a previous ETL process for importing Automotive Makes, Models, Trims, Engines and Transmissions. The process has been attempted multiple times and failed. The resulting data is not clean and accurate. @data/vehicle-etl/*.md to understand previous work done.
|
|
|
|
*** FEATURE ***
|
|
- This is focusing on the Vehicles feature, specifically how the drop down menus work in creating new and editing vehicles.
|
|
|
|
*** EXPECTED BEHAVIOR ***
|
|
- First, the user selects a year. Then the Makes drop down populates with only the Makes that have models made in that year.
|
|
- Second, the user selects the Make with models available in that year.
|
|
- Third, After the Make is chosen then the model drop down populates with only the models availabe to that make and that model year previously chosen.
|
|
- Forth, After the Year, Make, Model are all chosen, then the Trim populate with options that were available to that specific year, make and model.
|
|
- Fifth, after the Year+Make+Model+Trim have been selected then the "Engine" and "Transmission" fields populate with engines and transmissions only available to that combination.
|
|
|
|
*** DATA MISSING HANDLING ***
|
|
- If no Trim exists, map it to "Base"
|
|
- If no specific engine is available default to "Gas" "Diesel" or "Electric"
|
|
- If no specific transmission data is available default to "Manual" or "Automatic"
|
|
|
|
*** TASKS ***
|
|
- Plan an implementation that can be delegated to agents to execute. There is a front end, back end and database agent. Create the prompts to give to these agents in the plan.
|
|
- There is no requirement to keep existing code or database schema. This can be completely rewritten without worrying about breaking changes.
|
|
- Remove any files in @data/vehicle-etl/ that are no longer needed. Including previous documentation
|
|
|
|
*** CRITICAL ***
|
|
- Make no assumptions. Ask for clarification on anything not clear.
|
|
- Ultrathink through this problem.
|
|
|
|
|
|
|
|
|
|
|
|
The vehapi_fetch_snapshot.py logic is flawed. This is the logic for gathering all this information from the VehAPI endpoint.
|
|
1. Get all the makes available to a model year from this example endpoint. https://vehapi.com/api/v1/car-lists/get/car/makes/2017
|
|
- it returns data like this. [
|
|
{
|
|
"make": "Acura"
|
|
},
|
|
{
|
|
"make": "Alfa Romeo"
|
|
},
|
|
{
|
|
"make": "Aston Martin"
|
|
},
|
|
{
|
|
"make": "Audi"
|
|
},
|
|
{
|
|
"make": "Bentley"
|
|
},
|
|
{
|
|
"make": "BMW"
|
|
},
|
|
{
|
|
"make": "Bugatti"
|
|
},
|
|
{
|
|
"make": "Buick"
|
|
},
|
|
{
|
|
"make": "Cadillac"
|
|
},
|
|
{
|
|
"make": "Chevrolet"
|
|
},
|
|
{
|
|
"make": "Chrysler"
|
|
},
|
|
{
|
|
"make": "Dodge"
|
|
},
|
|
{
|
|
"make": "Ferrari"
|
|
},
|
|
{
|
|
"make": "FIAT"
|
|
},
|
|
{
|
|
"make": "Ford"
|
|
},
|
|
{
|
|
"make": "Freightliner"
|
|
},
|
|
{
|
|
"make": "Genesis"
|
|
},
|
|
{
|
|
"make": "GMC"
|
|
},
|
|
{
|
|
"make": "Honda"
|
|
},
|
|
{
|
|
"make": "Hyundai"
|
|
},
|
|
{
|
|
"make": "INFINITI"
|
|
},
|
|
{
|
|
"make": "Jaguar"
|
|
},
|
|
{
|
|
"make": "Jeep"
|
|
},
|
|
{
|
|
"make": "Kia"
|
|
},
|
|
{
|
|
"make": "Lamborghini"
|
|
},
|
|
{
|
|
"make": "Land Rover"
|
|
},
|
|
{
|
|
"make": "Lexus"
|
|
},
|
|
{
|
|
"make": "Lincoln"
|
|
},
|
|
{
|
|
"make": "Lotus"
|
|
},
|
|
{
|
|
"make": "Maserati"
|
|
},
|
|
{
|
|
"make": "Mazda"
|
|
},
|
|
{
|
|
"make": "McLaren"
|
|
},
|
|
{
|
|
"make": "Mercedes-Benz"
|
|
},
|
|
{
|
|
"make": "MEV"
|
|
},
|
|
{
|
|
"make": "MINI"
|
|
},
|
|
{
|
|
"make": "Mitsubishi"
|
|
},
|
|
{
|
|
"make": "Nissan"
|
|
},
|
|
{
|
|
"make": "Pagani"
|
|
},
|
|
{
|
|
"make": "Porsche"
|
|
},
|
|
{
|
|
"make": "RAM"
|
|
},
|
|
{
|
|
"make": "Rolls-Royce"
|
|
},
|
|
{
|
|
"make": "Saleen"
|
|
},
|
|
{
|
|
"make": "smart"
|
|
},
|
|
{
|
|
"make": "Subaru"
|
|
},
|
|
{
|
|
"make": "Tesla"
|
|
},
|
|
{
|
|
"make": "Toyota"
|
|
},
|
|
{
|
|
"make": "Volkswagen"
|
|
},
|
|
{
|
|
"make": "Volvo"
|
|
}
|
|
]
|
|
- Pull all makes for all the years specified in the filter when executed.
|
|
2. Once you have all the makes per year queried, you can then call the models per make per year using this example endpoing. https://vehapi.com/api/v1/car-lists/get/car/models/2017/Chevrolet
|
|
- it returns this example data.
|
|
[
|
|
{
|
|
"model": "Bolt EV"
|
|
},
|
|
{
|
|
"model": "Camaro"
|
|
},
|
|
{
|
|
"model": "Caprice"
|
|
},
|
|
{
|
|
"model": "City Express"
|
|
},
|
|
{
|
|
"model": "Colorado"
|
|
},
|
|
{
|
|
"model": "Corvette"
|
|
},
|
|
{
|
|
"model": "Cruze"
|
|
},
|
|
{
|
|
"model": "Equinox"
|
|
},
|
|
{
|
|
"model": "Express"
|
|
},
|
|
{
|
|
"model": "Express 2500"
|
|
},
|
|
{
|
|
"model": "Express 3500"
|
|
},
|
|
{
|
|
"model": "Express Cargo"
|
|
},
|
|
{
|
|
"model": "Express Chassis"
|
|
},
|
|
{
|
|
"model": "Impala"
|
|
},
|
|
{
|
|
"model": "Malibu"
|
|
},
|
|
{
|
|
"model": "Malibu Hybrid"
|
|
},
|
|
{
|
|
"model": "Silverado 1500"
|
|
},
|
|
{
|
|
"model": "Silverado 2500"
|
|
},
|
|
{
|
|
"model": "Silverado 2500HD"
|
|
},
|
|
{
|
|
"model": "Silverado 3500"
|
|
},
|
|
{
|
|
"model": "Silverado 3500HD"
|
|
},
|
|
{
|
|
"model": "Silverado 3500HD Chassis"
|
|
},
|
|
{
|
|
"model": "Sonic"
|
|
},
|
|
{
|
|
"model": "Spark"
|
|
},
|
|
{
|
|
"model": "SS"
|
|
},
|
|
{
|
|
"model": "Suburban"
|
|
},
|
|
{
|
|
"model": "Tahoe"
|
|
},
|
|
{
|
|
"model": "Traverse"
|
|
},
|
|
{
|
|
"model": "Trax"
|
|
},
|
|
{
|
|
"model": "Volt"
|
|
}
|
|
]
|
|
3. Once you have that data. You can call the endpoing to get the trims per Year, Make & Model. Using this example endpoint. https://vehapi.com/api/v1/car-lists/get/car/trims/2017/Chevrolet/Corvette
|
|
- It returns data like this.
|
|
[
|
|
{
|
|
"trim": "Grand Sport"
|
|
},
|
|
{
|
|
"trim": "Grand Sport 1LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Grand Sport 1LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Grand Sport 2LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Grand Sport 2LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Grand Sport 3LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Grand Sport 3LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray"
|
|
},
|
|
{
|
|
"trim": "Stingray 1LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray 1LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray 2LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray 2LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray 3LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray 3LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51 1LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51 1LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51 2LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51 2LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51 3LT Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Stingray Z51 3LT Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Z06"
|
|
},
|
|
{
|
|
"trim": "Z06 1LZ Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Z06 1LZ Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Z06 2LZ Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Z06 2LZ Coupe RWD"
|
|
},
|
|
{
|
|
"trim": "Z06 3LZ Convertible RWD"
|
|
},
|
|
{
|
|
"trim": "Z06 3LZ Coupe RWD"
|
|
}
|
|
]
|
|
4. After you have the Year, Make, Model & Trim. You then can call the transmission endpoint. This is an example endpoint from all previous example data. https://vehapi.com/api/v1/car-lists/get/car/transmissions/2017/Chevrolet/Corvette/Z06 3LZ Convertible RWD
|
|
- it returns this data.
|
|
[
|
|
{
|
|
"transmission": "7-Speed Manual"
|
|
},
|
|
{
|
|
"transmission": "8-Speed Automatic"
|
|
}
|
|
]
|
|
5. After you have the Year, Make, Model, Trim and Transmission you can call the Engine. This is an example endpoint from previous data. https://vehapi.com/vehicle/engines/2017/Chevrolet/Corvette/Z06%203LZ%20Convertible%20RWD/7-Speed%20Manual
|
|
- it returns this data
|
|
[
|
|
{
|
|
"engine": "6.2L 650 hp V8"
|
|
}
|
|
] |