travel-plan-spreadsheet-generator

SkillFiles & storage

Create .xlsx travel workbooks with itinerary, preparation, or shopping sheets for trip, holiday, or conference planning. Skip prose itineraries, recommendation chat, and calendar-only scheduling.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the travel-plan-spreadsheet-generator skill

What this skill tells your AI

The instructions your AI receives, as published by jpcaparas/skills in skills/productivity/travel-plan-spreadsheet-generator/SKILL.md and read by ahel’s review.

Turn messy travel inputs into a calm, editable .xlsx workbook with deterministic structure and pragmatic trip-planning judgment.

Decision Tree

What did the user actually ask for?

  • The user wants an editable workbook, spreadsheet, tracker, or .xlsx Use this skill.

  • The user gave PDFs, screenshots, notes, bookings, shopping asks, or conference constraints Extract everything you can first. Do not ask questions that the attachments already answer.

  • The request is missing material facts that would make the workbook wrong Ask exactly one consolidated intake batch. Group it as Required to proceed, Useful but optional, and Documents or screenshots that would improve accuracy. Read references/intake-protocol.md.

  • The request has non-blocking ambiguity Proceed with explicit assumptions and visible review flags. Do not stop the build just to perfect every detail.

  • The user only wants prose, lightweight recommendations, or a casual itinerary chat Do not use this skill as the primary tool.

  • You are in an OpenAI or Codex-style environment and /home/oai/skills/spreadsheets/SKILL.md exists Read that file before spreadsheet work, then continue with this skill's workbook-specific rules.

Quick Reference

NeedRead or runWhy
One-batch intake disciplinereferences/intake-protocol.mdPrevent drip-fed questioning
Deterministic workbook contractreferences/workbook-spec.mdSheet order, widths, merges, formulas, palette
Canonical trip model fieldsreferences/trip-model.mdBuild the internal model before writing cells
Field-to-sheet mappingreferences/mapping-rules.mdKeep Pack vs Buy vs Prep clean
Volatile travel research rulesreferences/research-policy.mdVerify visas, transit, medicine, conference dates, and other unstable facts
Build the workbookpython3 scripts/build_workbook.py --trip-model /path/to/model.jsonGenerate the .xlsx artifact
Validate the workbookpython3 scripts/validate_workbook.py /path/to/output.xlsx --trip-model /path/to/model.jsonCheck structure, formulas, validations, and row patterns
Visual-risk scanpython3 scripts/render_check.py /path/to/output.xlsxCatch likely clipping or spillover when a renderer is unavailable
Review packaging and sample buildpython3 scripts/test_skill.py /path/to/skillRun the local functional smoke test

Operating Rules

  1. Start with extraction, not interrogation. Read the user's PDFs, screenshots, pasted notes, flight details, hotel confirmations, shopping asks, and fixed commitments before asking anything.
  2. Separate blockers from non-blockers. If essential trip facts are still missing, ask one consolidated clarification batch and only one batch unless the user later changes scope.
  3. Build a canonical trip model before touching the workbook. Use templates/trip_model_schema.json and references/trip-model.md.
  4. Keep the deterministic and heuristic layers separate:
    • Use scripts/build_workbook.py for filename strategy, sheet order, merges, widths, formulas, validations, fills, fonts, borders, and fixed row patterns.
    • Use judgment for extracting messy facts, reconciling contradictions, deciding pace, keeping shopping visible, pruning absurd plans, and deciding when split plans are required.
  5. Default to the whole group staying together unless the evidence clearly says otherwise. When only part of the group is booked, create split fallbacks and visible review flags instead of pretending coverage exists.
  6. Keep shopping visible across the workbook. It belongs in Daily Plan, the destination options bank, and Buy List when relevant.
  7. Research only what matters for this trip. Verify future or current entry rules, transit constraints, medicine rules, airline check-in windows, and event dates from official sources when they materially affect the plan.
  8. Do not silently flatten contradictions. A mismatch between traveller count and booking coverage must surface in Overview, Bookings, Prep & Compliance, and the Daily Plan when it changes the day's shape.
  9. Treat the workbook as the deliverable. After building it, run scripts/validate_workbook.py. If a renderer such as @oai/artifact-tool is available, do a visual pass before hand-off.

Intake Protocol

Ask nothing if the message and attachments already cover the essentials.

If a clarification batch is necessary, use this exact grouping and keep it short:

Required to proceed
- ...

Useful but optional
- ...

Documents or screenshots that would improve accuracy
- ...

Cover these only when relevant and still missing: trip name or destination, start/end dates, departure and final home arrival, cities or bases, traveller list and roles, passport nationalities when immigration matters, flights and transit, accommodation, fixed bookings, conference or family commitments, budget sensitivity, pace, mobility constraints, dietary constraints, shopping goals and requesters, group split patterns, pre-departure and recovery-day preference, official prep tasks, and preferred output filename.

Read references/intake-protocol.md for the full checklist, blocker logic, and wording rules.

Build Workflow

  1. Extract facts from the user's files and notes.
  2. Run only the one required clarification batch if blockers remain.
  3. Build the canonical trip model and record assumptions, sources, review flags, and shopping objectives explicitly.
  4. Verify volatile facts that matter. Read references/research-policy.md.
  5. Run scripts/build_workbook.py to generate the workbook.
  6. Run scripts/validate_workbook.py on the generated .xlsx.
  7. If @oai/artifact-tool or another renderer is available, render each sheet for a quick visual check. Otherwise run scripts/render_check.py for a structural visual-risk pass.
  8. Hand over the workbook with a short summary of open flags, assumptions, and anything the user still needs to confirm.

Deterministic vs Heuristic Boundary

Deterministic builder responsibilitiesHeuristic planner responsibilities
Workbook filename strategyExtract facts from messy PDFs, screenshots, and notes
Sheet order and namingDecide when contradictory evidence becomes a blocker
Merged ranges, widths, row heights, fills, borders, fontsReconcile conflicting traveller counts or date references
Column headers and validation listsChoose realistic neighbourhood clusters and fallbacks
Formula generation and cross-sheet referencesProtect conference or work anchors without wrecking the family plan
Status vocab and chip stylingDecide when split plans are necessary because coverage is partial
Source logging structureDecide what belongs in Prep vs Pack vs Buy
One-day-before and one-day-after planner windowPrune absurd routes, overpacked days, or cross-city zig-zags

Do not improvise the deterministic layer in prose. Use the builder script.

Reading Guide

TaskRead
Exact workbook architecture, merges, counters, naming rulesreferences/workbook-spec.md
Intake questions, blockers, and one-batch disciplinereferences/intake-protocol.md
Source verification, official-source priority, and what to researchreferences/research-policy.md
Canonical model fields and normalization rulesreferences/trip-model.md
Sheet-mapping and categorization rulesreferences/mapping-rules.md
Failure modes and anti-patternsreferences/gotchas.md
Portability and spreadsheet-runtime notesreferences/cross-harness-notes.md

Gotchas

  1. Do not ask a second or third round of "just one more thing" questions. Either ask the full blocker batch once or proceed with assumptions.
  2. Do not bury shopping in a note field. If shopping matters, surface it in Daily Plan, the options bank, and Buy List.
  3. Do not turn Pack List into Buy List. Pack is what physically travels. Buy is the purchase tracker.
  4. Do not silently accept partial coverage. When flights, hotel rooms, or attraction tickets cover fewer people than the plan assumes, keep the mismatch visible.
  5. Do not over-research. Only add prep or compliance tasks that actually matter for this route, these passports, these medicines, and these commitments.

Helper Files

  • scripts/build_workbook.py builds the workbook from a canonical model.
  • scripts/validate_workbook.py checks structure, formulas, data validations, widths, merges, and Daily Plan row patterns.
  • scripts/render_check.py performs a lightweight visual-risk scan when a richer renderer is unavailable.
  • templates/trip_model_schema.json defines the canonical trip-model contract.
  • templates/workbook_template_spec.yaml mirrors the deterministic layout contract for human review.

Signals

GitHub stars
48
Forks
3
Last commit
Sep 2026

ahel review

  • K6low
    bundled executables the agent is told to run

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Catalog kind
skill
Gateway key
travel-plan-spreadsheet-generator
Source
github.com/jpcaparas/skills