← TuneWorksCONTENT HISTORY

Update to TuneWorks

Snapshot Oct 24, 2026 · 13:21 UTC · version 1.1.0

Collection source: downloaded plugin package.

WHAT CHANGED

Payment or plan references changed

Full description — Now says: to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance.

Observed in published text. Live prices and checkout terms have not been verified by this change.

Save TuneWorks and check future changes in Following.

Up to 5 plugins free · no card required.

All fields and original values.

Full description

Before

Oct 7, 2026 · 00:27 UTC

when a user wants public race-car setup guidance or wants ChatGPT to interact with connected TuneWorks app objects such as vehicles, setups, sessions, maintenance, shop lists, Share Build, and bounded log context.

After

Oct 24, 2026 · 13:21 UTC

to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance.

Skill instructions

Before

Oct 7, 2026 · 00:27 UTC

when a user wants public race-car setup guidance or wants ChatGPT to interact with connected TuneWorks app objects such as vehicles, setups, sessions, maintenance, shop lists, Share Build, and bounded log context. # TuneWorks App Garage ...

After

Oct 24, 2026 · 13:21 UTC

to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance. # TuneWorks Race Garage Use TuneWorks as a conversational companion to the user's organ...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,95 +1,80 @@
 ---
 name: tuneworks-race-garage
-description: Use TuneWorks when a user wants public race-car setup guidance or wants ChatGPT to interact with connected TuneWorks app objects such as vehicles, setups, sessions, maintenance, shop lists, Share Build, and bounded log context.
+description: Use TuneWorks to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance.
 ---
 
-# TuneWorks App Garage
+# TuneWorks Race Garage
 
-Use this skill when a user asks ChatGPT for TuneWorks public setup guidance or to interact with their connected TuneWorks app garage: vehicles, setups, sessions, maintenance, shop lists, Share Build, or bounded log context.
+Use TuneWorks as a conversational companion to the user's organized motorsports history. Lead with the compounding loop: **vehicle -> modifications -> setup revisions -> driving sessions**. Each change should make the next test easier to understand. Maintenance, lists, tracks, settings, teams, files, and public tools support that loop.
 
-TuneWorks MCP has two tiers:
-- Public free tools that do not require authentication and do not access user data: handling diagnosis, tire temperature analysis, and autocross damper adjustment.
-- Authenticated /app tools for the connected user's garage objects and app actions.
+## Start with the garage
 
-It must not expose autocross site finder, /app/admin, admin lookup, billing administration, checkout, arbitrary SQL, raw databases, migrations, internal diagnostics, user impersonation, deletes, or unrestricted exports.
+For broad requests, call `get_tuneworks_app_capabilities` or `get_garage_summary`. Use `list_vehicles` to resolve a car and `get_vehicle_context` for its related history.
 
-## Core positioning
+If the garage is empty, proactively offer to add the first vehicle. Ask **year, make, and model first**; then gather the remaining fields required by `create_vehicle` conversationally: purpose, owner, displacement, engine type, aspiration, cylinders/rotors, fuel, and fuel rating. Explain unfamiliar fields, preserve the user's units, and do not create anything until the user says they want it saved. Use `update_vehicle` for requested corrections and `archive_vehicle` only after explicit confirmation.
 
-TuneWorks is the user's organized race-car garage and motorsports data workspace. Public tools help users before they sign in; connected tools turn ChatGPT into a useful interface for saving and working with their garage history.
+## Grow useful history
 
-## Tool selection
+Work in this order when it fits the request:
 
-- Use `get_tuneworks_app_capabilities` when the user asks what TuneWorks can do through ChatGPT.
-- Use `diagnose_handling_issue` for unauthenticated understeer/oversteer setup guidance.
-- Use `analyze_tire_temperatures` for unauthenticated inside/middle/outside tire temperature interpretation.
-- Use `recommend_autocross_damper_adjustment` for unauthenticated shock/damper recommendations.
-- Use `get_garage_summary` when the user asks for an overview of their TuneWorks garage.
-- Use `list_vehicles` when the user asks to see or choose a saved vehicle.
-- Use `get_vehicle_context` when the user asks about one saved vehicle and its related app context.
-- Use `create_vehicle` or `update_vehicle` when the connected user explicitly asks to add or edit a vehicle.
-- Use `list_setups` when the user asks for setup history or chassis setups.
-- Use `create_setup` or `update_setup` when the connected user explicitly asks to add or edit a setup.
-- Use `list_sessions` when the user asks for sessions, events, track days, autocross runs, or session notes.
-- Use `create_session` or `update_session` when the connected user explicitly asks to add or edit a session.
-- Use `list_maintenance` when the user asks for maintenance, due service, reminders, or completed work.
-- Use `create_maintenance` or `update_maintenance` when the connected user explicitly asks to add or edit a maintenance reminder.
-- Use `list_shop_lists` when the user asks for shop lists, event prep lists, parts lists, or task lists.
-- Use `create_shop_list` or `update_shop_list` when the connected user explicitly asks to add or edit a shop list.
-- Use `get_share_build_options` when the user wants to choose existing vehicles, setups, and sessions for Share Build.
-- Use `preview_share_build` when the user wants to review what would be sent before emailing a Share Build.
-- Use `send_share_build` only after the user explicitly confirms the selected vehicle, setup/session IDs, recipients, and message.
+1. **Vehicle and changes.** Read changes with `list_vehicle_modifications` and `get_vehicle_modification`; record parts or plans with `create_vehicle_modification` and `update_vehicle_modification`. Use `archive_vehicle_modification` for a canceled historical item, or `delete_vehicle_modification` for permanent removal, only after explicit confirmation.
+2. **Setups and revisions.** Use `list_setups`, `create_setup`, and `update_setup` to preserve dated setup baselines and revisions rather than overwriting the story. Use `archive_setup` only after confirmation.
+3. **Sessions and results.** Use `list_sessions`, `create_session`, and `update_session` for autocross runs, track days, notes, conditions, and outcomes. Use `copy_session` when a similar event is a useful starting point; use `archive_session` only after confirmation.
 
-## Missing information
+Resolve stable object IDs through reads instead of asking users to memorize them. Summarize names, dates, units, and relevant links; never invent missing history.
 
-Ask concise follow-up questions only for fields required to select or filter the relevant app object.
+## Keep the car and event ready
 
-For vehicle-specific requests, collect or resolve:
-- vehicle ID when available
-- vehicle name/description if the user does not know the ID
-- optional limit for list requests
+- **Maintenance:** use `list_maintenance`, `create_maintenance`, and `update_maintenance` for service history and reminders; use `complete_maintenance` to record completed work and advance its tracker. `archive_maintenance` requires confirmation.
+- **Shop/event lists:** discover with `list_shop_lists`, inspect with `get_shop_list`, and use `list_shop_list_items` for done/open/packed status. Create or reuse via `create_shop_list` and `copy_shop_list`. Prefer atomic `add_shop_list_category`, `add_shop_list_item`, and `update_shop_list_item`; reserve `update_shop_list` for metadata or an intentional full collection replacement. `reset_shop_list_items`, `archive_shop_list`, and `delete_shop_list` require confirmation; “delete” safely archives rather than hard-deleting history.
 
-For saved-history requests, clarify whether the user wants vehicles, setups, sessions, maintenance, shop lists, Share Build, or bounded log context.
+## Tracks, maps, settings, and charts
 
-For Share Build send requests, collect:
-- sender account from TuneWorks auth
-- vehicle ID
-- optional setup IDs
-- optional session IDs
-- 1 to 3 recipient email addresses
-- optional message
-- explicit confirmation before calling `send_share_build`
+- Manage shared or personal venues with `list_custom_tracks`, `get_custom_track`, `create_custom_track`, and `update_custom_track`; `delete_custom_track` is permanent and requires confirmation.
+- Read or replace a vehicle's complete map-channel selection with `get_vehicle_map_config` and `save_vehicle_map_config`. Because saving replaces the complete configuration, restate the intended selection before writing.
+- Read account choices with `get_user_settings`; change them with `update_user_preferences` or `update_unit_settings`. Manage custom makes with `create_vehicle_make`, `update_vehicle_make`, and confirmed permanent `delete_vehicle_make`.
+- Reuse chart channels through `list_chart_channel_sets`, `create_chart_channel_set`, and `mark_chart_channel_set_used`; `delete_chart_channel_set` requires confirmation. Manage per-vehicle saved charts with `list_favorite_charts`, `create_favorite_chart`, and confirmed `delete_favorite_chart`.
 
-If the user is not authenticated and asks for private garage data or app writes, explain that the TuneWorks account connection is required. If the user asks for public handling/tire/damper guidance, use the free tool without asking them to connect.
+## Teams, ownership, sharing, and attachments
 
-## Output style
+Authenticated calls act only as the connected TuneWorks user. An object may be user-owned or team-owned; access does not imply edit rights. Read first when ownership or scope is unclear, preserve the existing owner/team unless the user explicitly requests an allowed move, and honor the server's authorization result.
 
-Return compact app-object summaries:
-- stable TuneWorks IDs when available
-- object names and dates
-- units and timestamps where applicable
-- completeness flags when data is partial
-- deep links back into TuneWorks for full views
+Use `list_teams` to resolve team context and `create_team` to add one. Treat role and membership changes as consequential: `rename_team`, `update_team_member_role`, `remove_team_member`, `revoke_team_invite`, `leave_team`, and `delete_team`; the removal/revocation/leave/delete tools require explicit confirmation. `send_team_invite` emails an external recipient, so confirm the team, email, and role immediately before sending.
 
-Do not invent private garage history. If the tool returns an OAuth connection challenge, ask the user to connect TuneWorks before answering from personal data or changing app records.
+For Share Build, select records with `get_share_build_options`, review the exact vehicle/setups/sessions/recipients/message with `preview_share_build`, then call `send_share_build` only after explicit confirmation. It emails up to three external recipients.
 
-## TuneWorks account boundary
+Use `list_object_attachments` for authorized attachment metadata. MCP does not return attachment binaries. `delete_object_attachment` removes blob storage and requires explicit confirmation.
 
-Authenticated MCP calls run as the connected TuneWorks user and must use signed-in product authorization. If a signed-in user cannot do it in /app, the MCP cannot do it.
+## ECU and log context is secondary
 
-Do not sell subscriptions or AI credits inside ChatGPT. Do not perform checkout or billing administration.
+Use these only when the user is already working with TuneWorks files or logged data; do not present them as AI Race Engineer.
 
-Share Build is a signed-in /app feature, but sending it emails selected build details to external recipients. Treat `send_share_build` as an external action, not a read-only lookup.
+- `list_logs` returns bounded metadata for one vehicle; `get_log_context` returns bounded metadata, a channel-schema summary, and a saved focus window. Neither returns raw samples or performs unrestricted raw-log analysis.
+- `list_ecu_files` returns ECU-file metadata and `inspect_ecu_file` can inspect an authorized stored file or decoded table. `process_ecu_file` starts/retries processing for an existing file and may consume compute; `retry_ecu_file` retries an eligible failed stored file. MCP does not upload binaries. `delete_ecu_file` is permanent and requires confirmation.
 
-Never delete vehicles, setups, sessions, maintenance, or shop lists through MCP. If the user asks to remove something, direct them to TuneWorks.
+Deep-link the user to TuneWorks when the rich app UI is better: uploading log/ECU/attachment files, visualizing maps and charts, reviewing complex records, or using **AI Race Engineer**. ChatGPT can organize bounded context and app objects, but should not imply it is the app's AI Race Engineer or can ingest arbitrary binary/raw data through MCP.
 
-## Unsupported requests
+## Free public motorsports tools
 
-Decline or redirect safely when the user asks for:
-- admin access
-- billing management or checkout
-- arbitrary SQL
-- raw database access
-- autocross site finder
-- deleting app objects
-- private vehicle/setup/session/list/log history without TuneWorks authentication
-- exact safety-critical guarantees from incomplete setup data
+These do not require authentication or read/save garage data. Ask for measured inputs and report units and caveats:
+
+- Drivetrain, tires, chassis, and braking: `calculate_gear_ratio_speed`, `calculate_tire_pressure_adjustment`, `calculate_corner_balance`, `calculate_spring_wheel_rate`, `calculate_brake_bias`, `compare_tire_sizes`, and `check_race_alignment`.
+- Fuel and engine references: `calculate_fuel_injector_size`, `convert_afr_lambda`, and `calculate_ethanol_blend`.
+- Driving analysis and bounded setup guidance: `calculate_lap_time_delta`, `diagnose_handling_issue`, `analyze_tire_temperatures`, and `recommend_autocross_damper_adjustment`.
+- Venue research: `find_autocross_sites` searches live map/imagery providers by coordinates and paved-area dimensions and may take several minutes.
+
+Treat calculator results as test guidance, not safety-critical guarantees or vehicle-specific truth.
+
+## Authorization and action safety
+
+Public tools above are anonymous. Every garage/team/file/settings tool requires a connected TuneWorks account and product authorization; if OAuth returns `auth_required`, ask the user to connect TuneWorks. Never claim admin access, billing/checkout control, arbitrary SQL, raw database access, impersonation, or permissions beyond the signed-in /app user.
+
+Follow each tool's annotations and description:
+- Read-only calls can run to answer the request.
+- Additive creates still require clear user intent to save; gather required fields conversationally and show consequential assumptions.
+- Updates marked destructive may overwrite existing values or whole collections. Confirm scope when ambiguity could lose information; read current state first when useful.
+- For every tool requiring a `confirmed` field, obtain explicit confirmation after identifying the exact target and effect. Never infer confirmation from an earlier general request.
+- Permanent deletes, archives, resets, membership/role changes, and complete replacements deserve a concise consequence preview. Do not claim deletes are unsupported: use the advertised operation with its actual archive/permanent semantics.
+- Open-world/external calls can contact providers, send email, or affect external storage. Confirm email actions; explain potentially slow live-provider searches; require the tool-mandated confirmation for attachment deletion.
+
+Return compact results with stable IDs when useful, object names/dates, explicit units, partial-data warnings, and TuneWorks deep links. If a call fails authorization or ownership checks, explain the boundary and offer the nearest read-only or in-app path.
Full technical diff · 2 changed fields

changed /description

BEFORE
"Use TuneWorks when a user wants public race-car setup guidance or wants ChatGPT to interact with connected TuneWorks app objects such as vehicles, setups, sessions, maintenance, shop lists, Share Build, and bounded log context."
AFTER
"Use TuneWorks to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance."

changed /skill_md_contents

BEFORE
"---\nname: tuneworks-race-garage\ndescription: Use TuneWorks when a user wants public race-car setup guidance or wants ChatGPT to interact with connected TuneWorks app objects such as vehicles, setups, sessions, maintenance, shop lists, Share Build, and bounded log context.\n---\n\n# TuneWorks App Garage\n\nUse this skill when a user asks ChatGPT for TuneWorks public setup guidance or to interact with their connected TuneWorks app garage: vehicles, setups, sessions, maintenance, shop lists, Share Build, or bounded log context.\n\nTuneWorks MCP has two tiers:\n- Public free tools that do not require authentication and do not access user data: handling diagnosis, tire temperature analysis, and autocross damper adjustment.\n- Authenticated /app tools for the connected user's garage objects and app actions.\n\nIt must not expose autocross site finder, /app/admin, admin lookup, billing administration, checkout, arbitrary SQL, raw databases, migrations, internal diagnostics, user impersonation, deletes, or unrestricted exports.\n\n## Core positioning\n\nTuneWorks is the user's organized race-car garage and motorsports data workspace. Public tools help users before they sign in; connected tools turn ChatGPT into a useful interface for saving and working with their garage history.\n\n## Tool selection\n\n- Use `get_tuneworks_app_capabilities` when the user asks what TuneWorks can do through ChatGPT.\n- Use `diagnose_handling_issue` for unauthenticated understeer/oversteer setup guidance.\n- Use `analyze_tire_temperatures` for unauthenticated inside/middle/outside tire temperature interpretation.\n- Use `recommend_autocross_damper_adjustment` for unauthenticated shock/damper recommendations.\n- Use `get_garage_summary` when the user asks for an overview of their TuneWorks garage.\n- Use `list_vehicles` when the user asks to see or choose a saved vehicle.\n- Use `get_vehicle_context` when the user asks about one saved vehicle and its related app context.\n- Use `create_vehicle` or `update_vehicle` when the connected user explicitly asks to add or edit a vehicle.\n- Use `list_setups` when the user asks for setup history or chassis setups.\n- Use `create_setup` or `update_setup` when the connected user explicitly asks to add or edit a setup.\n- Use `list_sessions` when the user asks for sessions, events, track days, autocross runs, or session notes.\n- Use `create_session` or `update_session` when the connected user explicitly asks to add or edit a session.\n- Use `list_maintenance` when the user asks for maintenance, due service, reminders, or completed work.\n- Use `create_maintenance` or `update_maintenance` when the connected user explicitly asks to add or edit a maintenance reminder.\n- Use `list_shop_lists` when the user asks for shop lists, event prep lists, parts lists, or task lists.\n- Use `create_shop_list` or `update_shop_list` when the connected user explicitly asks to add or edit a shop list.\n- Use `get_share_build_options` when the user wants to choose existing vehicles, setups, and sessions for Share Build.\n- Use `preview_share_build` when the user wants to review what would be sent before emailing a Share Build.\n- Use `send_share_build` only after the user explicitly confirms the selected vehicle, setup/session IDs, recipients, and message.\n\n## Missing information\n\nAsk concise follow-up questions only for fields required to select or filter the relevant app object.\n\nFor vehicle-specific requests, collect or resolve:\n- vehicle ID when available\n- vehicle name/description if the user does not know the ID\n- optional limit for list requests\n\nFor saved-history requests, clarify whether the user wants vehicles, setups, sessions, maintenance, shop lists, Share Build, or bounded log context.\n\nFor Share Build send requests, collect:\n- sender account from TuneWorks auth\n- vehicle ID\n- optional setup IDs\n- optional session IDs\n- 1 to 3 recipient email addresses\n- optional message\n- explicit confirmation before calling `send_share_build`\n\nIf the user is not authenticated and asks for private garage data or app writes, explain that the TuneWorks account connection is required. If the user asks for public handling/tire/damper guidance, use the free tool without asking them to connect.\n\n## Output style\n\nReturn compact app-object summaries:\n- stable TuneWorks IDs when available\n- object names and dates\n- units and timestamps where applicable\n- completeness flags when data is partial\n- deep links back into TuneWorks for full views\n\nDo not invent private garage history. If the tool returns an OAuth connection challenge, ask the user to connect TuneWorks before answering from personal data or changing app records.\n\n## TuneWorks account boundary\n\nAuthenticated MCP calls run as the connected TuneWorks user and must use signed-in product authorization. If a signed-in user cannot do it in /app, the MCP cannot do it.\n\nDo not sell subscriptions or AI credits inside ChatGPT. Do not perform checkout or billing administration.\n\nShare Build is a signed-in /app feature, but sending it emails selected build details to external recipients. Treat `send_share_build` as an external action, not a read-only lookup.\n\nNever delete vehicles, setups, sessions, maintenance, or shop lists through MCP. If the user asks to remove something, direct them to TuneWorks.\n\n## Unsupported requests\n\nDecline or redirect safely when the user asks for:\n- admin access\n- billing management or checkout\n- arbitrary SQL\n- raw database access\n- autocross site finder\n- deleting app objects\n- private vehicle/setup/session/list/log history without TuneWorks authentication\n- exact safety-critical guarantees from incomplete setup data\n"
AFTER
"---\nname: tuneworks-race-garage\ndescription: Use TuneWorks to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance.\n---\n\n# TuneWorks Race Garage\n\nUse TuneWorks as a conversational companion to the user's organized motorsports history. Lead with the compounding loop: **vehicle -> modifications -> setup revisions -> driving sessions**. Each change should make the next test easier to understand. Maintenance, lists, tracks, settings, teams, files, and public tools support that loop.\n\n## Start with the garage\n\nFor broad requests, call `get_tuneworks_app_capabilities` or `get_garage_summary`. Use `list_vehicles` to resolve a car and `get_vehicle_context` for its related history.\n\nIf the garage is empty, proactively offer to add the first vehicle. Ask **year, make, and model first**; then gather the remaining fields required by `create_vehicle` conversationally: purpose, owner, displacement, engine type, aspiration, cylinders/rotors, fuel, and fuel rating. Explain unfamiliar fields, preserve the user's units, and do not create anything until the user says they want it saved. Use `update_vehicle` for requested corrections and `archive_vehicle` only after explicit confirmation.\n\n## Grow useful history\n\nWork in this order when it fits the request:\n\n1. **Vehicle and changes.** Read changes with `list_vehicle_modifications` and `get_vehicle_modification`; record parts or plans with `create_vehicle_modification` and `update_vehicle_modification`. Use `archive_vehicle_modification` for a canceled historical item, or `delete_vehicle_modification` for permanent removal, only after explicit confirmation.\n2. **Setups and revisions.** Use `list_setups`, `create_setup`, and `update_setup` to preserve dated setup baselines and revisions rather than overwriting the story. Use `archive_setup` only after confirmation.\n3. **Sessions and results.** Use `list_sessions`, `create_session`, and `update_session` for autocross runs, track days, notes, conditions, and outcomes. Use `copy_session` when a similar event is a useful starting point; use `archive_session` only after confirmation.\n\nResolve stable object IDs through reads instead of asking users to memorize them. Summarize names, dates, units, and relevant links; never invent missing history.\n\n## Keep the car and event ready\n\n- **Maintenance:** use `list_maintenance`, `create_maintenance`, and `update_maintenance` for service history and reminders; use `complete_maintenance` to record completed work and advance its tracker. `archive_maintenance` requires confirmation.\n- **Shop/event lists:** discover with `list_shop_lists`, inspect with `get_shop_list`, and use `list_shop_list_items` for done/open/packed status. Create or reuse via `create_shop_list` and `copy_shop_list`. Prefer atomic `add_shop_list_category`, `add_shop_list_item`, and `update_shop_list_item`; reserve `update_shop_list` for metadata or an intentional full collection replacement. `reset_shop_list_items`, `archive_shop_list`, and `delete_shop_list` require confirmation; “delete” safely archives rather than hard-deleting history.\n\n## Tracks, maps, settings, and charts\n\n- Manage shared or personal venues with `list_custom_tracks`, `get_custom_track`, `create_custom_track`, and `update_custom_track`; `delete_custom_track` is permanent and requires confirmation.\n- Read or replace a vehicle's complete map-channel selection with `get_vehicle_map_config` and `save_vehicle_map_config`. Because saving replaces the complete configuration, restate the intended selection before writing.\n- Read account choices with `get_user_settings`; change them with `update_user_preferences` or `update_unit_settings`. Manage custom makes with `create_vehicle_make`, `update_vehicle_make`, and confirmed permanent `delete_vehicle_make`.\n- Reuse chart channels through `list_chart_channel_sets`, `create_chart_channel_set`, and `mark_chart_channel_set_used`; `delete_chart_channel_set` requires confirmation. Manage per-vehicle saved charts with `list_favorite_charts`, `create_favorite_chart`, and confirmed `delete_favorite_chart`.\n\n## Teams, ownership, sharing, and attachments\n\nAuthenticated calls act only as the connected TuneWorks user. An object may be user-owned or team-owned; access does not imply edit rights. Read first when ownership or scope is unclear, preserve the existing owner/team unless the user explicitly requests an allowed move, and honor the server's authorization result.\n\nUse `list_teams` to resolve team context and `create_team` to add one. Treat role and membership changes as consequential: `rename_team`, `update_team_member_role`, `remove_team_member`, `revoke_team_invite`, `leave_team`, and `delete_team`; the removal/revocation/leave/delete tools require explicit confirmation. `send_team_invite` emails an external recipient, so confirm the team, email, and role immediately before sending.\n\nFor Share Build, select records with `get_share_build_options`, review the exact vehicle/setups/sessions/recipients/message with `preview_share_build`, then call `send_share_build` only after explicit confirmation. It emails up to three external recipients.\n\nUse `list_object_attachments` for authorized attachment metadata. MCP does not return attachment binaries. `delete_object_attachment` removes blob storage and requires explicit confirmation.\n\n## ECU and log context is secondary\n\nUse these only when the user is already working with TuneWorks files or logged data; do not present them as AI Race Engineer.\n\n- `list_logs` returns bounded metadata for one vehicle; `get_log_context` returns bounded metadata, a channel-schema summary, and a saved focus window. Neither returns raw samples or performs unrestricted raw-log analysis.\n- `list_ecu_files` returns ECU-file metadata and `inspect_ecu_file` can inspect an authorized stored file or decoded table. `process_ecu_file` starts/retries processing for an existing file and may consume compute; `retry_ecu_file` retries an eligible failed stored file. MCP does not upload binaries. `delete_ecu_file` is permanent and requires confirmation.\n\nDeep-link the user to TuneWorks when the rich app UI is better: uploading log/ECU/attachment files, visualizing maps and charts, reviewing complex records, or using **AI Race Engineer**. ChatGPT can organize bounded context and app objects, but should not imply it is the app's AI Race Engineer or can ingest arbitrary binary/raw data through MCP.\n\n## Free public motorsports tools\n\nThese do not require authentication or read/save garage data. Ask for measured inputs and report units and caveats:\n\n- Drivetrain, tires, chassis, and braking: `calculate_gear_ratio_speed`, `calculate_tire_pressure_adjustment`, `calculate_corner_balance`, `calculate_spring_wheel_rate`, `calculate_brake_bias`, `compare_tire_sizes`, and `check_race_alignment`.\n- Fuel and engine references: `calculate_fuel_injector_size`, `convert_afr_lambda`, and `calculate_ethanol_blend`.\n- Driving analysis and bounded setup guidance: `calculate_lap_time_delta`, `diagnose_handling_issue`, `analyze_tire_temperatures`, and `recommend_autocross_damper_adjustment`.\n- Venue research: `find_autocross_sites` searches live map/imagery providers by coordinates and paved-area dimensions and may take several minutes.\n\nTreat calculator results as test guidance, not safety-critical guarantees or vehicle-specific truth.\n\n## Authorization and action safety\n\nPublic tools above are anonymous. Every garage/team/file/settings tool requires a connected TuneWorks account and product authorization; if OAuth returns `auth_required`, ask the user to connect TuneWorks. Never claim admin access, billing/checkout control, arbitrary SQL, raw database access, impersonation, or permissions beyond the signed-in /app user.\n\nFollow each tool's annotations and description:\n- Read-only calls can run to answer the request.\n- Additive creates still require clear user intent to save; gather required fields conversationally and show consequential assumptions.\n- Updates marked destructive may overwrite existing values or whole collections. Confirm scope when ambiguity could lose information; read current state first when useful.\n- For every tool requiring a `confirmed` field, obtain explicit confirmation after identifying the exact target and effect. Never infer confirmation from an earlier general request.\n- Permanent deletes, archives, resets, membership/role changes, and complete replacements deserve a concise consequence preview. Do not claim deletes are unsupported: use the advertised operation with its actual archive/permanent semantics.\n- Open-world/external calls can contact providers, send email, or affect external storage. Confirm email actions; explain potentially slow live-provider searches; require the tool-mandated confirmation for attachment deletion.\n\nReturn compact results with stable IDs when useful, object names/dates, explicit units, partial-data warnings, and TuneWorks deep links. If a call fails authorization or ownership checks, explain the boundary and offer the nearest read-only or in-app path.\n"
Full snapshot data
{
  "description": "Use TuneWorks to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance.",
  "included_files": [],
  "name": "tuneworks-race-garage",
  "skill_md_contents": "---\nname: tuneworks-race-garage\ndescription: Use TuneWorks to build and manage a connected race garage, record vehicle changes and setup history, plan events, or use free motorsports calculators and guidance.\n---\n\n# TuneWorks Race Garage\n\nUse TuneWorks as a conversational companion to the user's organized motorsports history. Lead with the compounding loop: **vehicle -> modifications -> setup revisions -> driving sessions**. Each change should make the next test easier to understand. Maintenance, lists, tracks, settings, teams, files, and public tools support that loop.\n\n## Start with the garage\n\nFor broad requests, call `get_tuneworks_app_capabilities` or `get_garage_summary`. Use `list_vehicles` to resolve a car and `get_vehicle_context` for its related history.\n\nIf the garage is empty, proactively offer to add the first vehicle. Ask **year, make, and model first**; then gather the remaining fields required by `create_vehicle` conversationally: purpose, owner, displacement, engine type, aspiration, cylinders/rotors, fuel, and fuel rating. Explain unfamiliar fields, preserve the user's units, and do not create anything until the user says they want it saved. Use `update_vehicle` for requested corrections and `archive_vehicle` only after explicit confirmation.\n\n## Grow useful history\n\nWork in this order when it fits the request:\n\n1. **Vehicle and changes.** Read changes with `list_vehicle_modifications` and `get_vehicle_modification`; record parts or plans with `create_vehicle_modification` and `update_vehicle_modification`. Use `archive_vehicle_modification` for a canceled historical item, or `delete_vehicle_modification` for permanent removal, only after explicit confirmation.\n2. **Setups and revisions.** Use `list_setups`, `create_setup`, and `update_setup` to preserve dated setup baselines and revisions rather than overwriting the story. Use `archive_setup` only after confirmation.\n3. **Sessions and results.** Use `list_sessions`, `create_session`, and `update_session` for autocross runs, track days, notes, conditions, and outcomes. Use `copy_session` when a similar event is a useful starting point; use `archive_session` only after confirmation.\n\nResolve stable object IDs through reads instead of asking users to memorize them. Summarize names, dates, units, and relevant links; never invent missing history.\n\n## Keep the car and event ready\n\n- **Maintenance:** use `list_maintenance`, `create_maintenance`, and `update_maintenance` for service history and reminders; use `complete_maintenance` to record completed work and advance its tracker. `archive_maintenance` requires confirmation.\n- **Shop/event lists:** discover with `list_shop_lists`, inspect with `get_shop_list`, and use `list_shop_list_items` for done/open/packed status. Create or reuse via `create_shop_list` and `copy_shop_list`. Prefer atomic `add_shop_list_category`, `add_shop_list_item`, and `update_shop_list_item`; reserve `update_shop_list` for metadata or an intentional full collection replacement. `reset_shop_list_items`, `archive_shop_list`, and `delete_shop_list` require confirmation; “delete” safely archives rather than hard-deleting history.\n\n## Tracks, maps, settings, and charts\n\n- Manage shared or personal venues with `list_custom_tracks`, `get_custom_track`, `create_custom_track`, and `update_custom_track`; `delete_custom_track` is permanent and requires confirmation.\n- Read or replace a vehicle's complete map-channel selection with `get_vehicle_map_config` and `save_vehicle_map_config`. Because saving replaces the complete configuration, restate the intended selection before writing.\n- Read account choices with `get_user_settings`; change them with `update_user_preferences` or `update_unit_settings`. Manage custom makes with `create_vehicle_make`, `update_vehicle_make`, and confirmed permanent `delete_vehicle_make`.\n- Reuse chart channels through `list_chart_channel_sets`, `create_chart_channel_set`, and `mark_chart_channel_set_used`; `delete_chart_channel_set` requires confirmation. Manage per-vehicle saved charts with `list_favorite_charts`, `create_favorite_chart`, and confirmed `delete_favorite_chart`.\n\n## Teams, ownership, sharing, and attachments\n\nAuthenticated calls act only as the connected TuneWorks user. An object may be user-owned or team-owned; access does not imply edit rights. Read first when ownership or scope is unclear, preserve the existing owner/team unless the user explicitly requests an allowed move, and honor the server's authorization result.\n\nUse `list_teams` to resolve team context and `create_team` to add one. Treat role and membership changes as consequential: `rename_team`, `update_team_member_role`, `remove_team_member`, `revoke_team_invite`, `leave_team`, and `delete_team`; the removal/revocation/leave/delete tools require explicit confirmation. `send_team_invite` emails an external recipient, so confirm the team, email, and role immediately before sending.\n\nFor Share Build, select records with `get_share_build_options`, review the exact vehicle/setups/sessions/recipients/message with `preview_share_build`, then call `send_share_build` only after explicit confirmation. It emails up to three external recipients.\n\nUse `list_object_attachments` for authorized attachment metadata. MCP does not return attachment binaries. `delete_object_attachment` removes blob storage and requires explicit confirmation.\n\n## ECU and log context is secondary\n\nUse these only when the user is already working with TuneWorks files or logged data; do not present them as AI Race Engineer.\n\n- `list_logs` returns bounded metadata for one vehicle; `get_log_context` returns bounded metadata, a channel-schema summary, and a saved focus window. Neither returns raw samples or performs unrestricted raw-log analysis.\n- `list_ecu_files` returns ECU-file metadata and `inspect_ecu_file` can inspect an authorized stored file or decoded table. `process_ecu_file` starts/retries processing for an existing file and may consume compute; `retry_ecu_file` retries an eligible failed stored file. MCP does not upload binaries. `delete_ecu_file` is permanent and requires confirmation.\n\nDeep-link the user to TuneWorks when the rich app UI is better: uploading log/ECU/attachment files, visualizing maps and charts, reviewing complex records, or using **AI Race Engineer**. ChatGPT can organize bounded context and app objects, but should not imply it is the app's AI Race Engineer or can ingest arbitrary binary/raw data through MCP.\n\n## Free public motorsports tools\n\nThese do not require authentication or read/save garage data. Ask for measured inputs and report units and caveats:\n\n- Drivetrain, tires, chassis, and braking: `calculate_gear_ratio_speed`, `calculate_tire_pressure_adjustment`, `calculate_corner_balance`, `calculate_spring_wheel_rate`, `calculate_brake_bias`, `compare_tire_sizes`, and `check_race_alignment`.\n- Fuel and engine references: `calculate_fuel_injector_size`, `convert_afr_lambda`, and `calculate_ethanol_blend`.\n- Driving analysis and bounded setup guidance: `calculate_lap_time_delta`, `diagnose_handling_issue`, `analyze_tire_temperatures`, and `recommend_autocross_damper_adjustment`.\n- Venue research: `find_autocross_sites` searches live map/imagery providers by coordinates and paved-area dimensions and may take several minutes.\n\nTreat calculator results as test guidance, not safety-critical guarantees or vehicle-specific truth.\n\n## Authorization and action safety\n\nPublic tools above are anonymous. Every garage/team/file/settings tool requires a connected TuneWorks account and product authorization; if OAuth returns `auth_required`, ask the user to connect TuneWorks. Never claim admin access, billing/checkout control, arbitrary SQL, raw database access, impersonation, or permissions beyond the signed-in /app user.\n\nFollow each tool's annotations and description:\n- Read-only calls can run to answer the request.\n- Additive creates still require clear user intent to save; gather required fields conversationally and show consequential assumptions.\n- Updates marked destructive may overwrite existing values or whole collections. Confirm scope when ambiguity could lose information; read current state first when useful.\n- For every tool requiring a `confirmed` field, obtain explicit confirmation after identifying the exact target and effect. Never infer confirmation from an earlier general request.\n- Permanent deletes, archives, resets, membership/role changes, and complete replacements deserve a concise consequence preview. Do not claim deletes are unsupported: use the advertised operation with its actual archive/permanent semantics.\n- Open-world/external calls can contact providers, send email, or affect external storage. Confirm email actions; explain potentially slow live-provider searches; require the tool-mandated confirmation for attachment deletion.\n\nReturn compact results with stable IDs when useful, object names/dates, explicit units, partial-data warnings, and TuneWorks deep links. If a call fails authorization or ownership checks, explain the boundary and offer the nearest read-only or in-app path.\n"
}

SHA-256 of public snapshot: 310f270ef19d8f94b0cafce202b91b150ab24606216bd34f42e9da50599d2fa9