travel-plan-spreadsheet-generator
SkillFiles & storageCreate .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.
No other account needed.
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
.xlsxUse 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, andDocuments or screenshots that would improve accuracy. Readreferences/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.mdexists Read that file before spreadsheet work, then continue with this skill's workbook-specific rules.
Quick Reference
| Need | Read or run | Why |
|---|---|---|
| One-batch intake discipline | references/intake-protocol.md | Prevent drip-fed questioning |
| Deterministic workbook contract | references/workbook-spec.md | Sheet order, widths, merges, formulas, palette |
| Canonical trip model fields | references/trip-model.md | Build the internal model before writing cells |
| Field-to-sheet mapping | references/mapping-rules.md | Keep Pack vs Buy vs Prep clean |
| Volatile travel research rules | references/research-policy.md | Verify visas, transit, medicine, conference dates, and other unstable facts |
| Build the workbook | python3 scripts/build_workbook.py --trip-model /path/to/model.json | Generate the .xlsx artifact |
| Validate the workbook | python3 scripts/validate_workbook.py /path/to/output.xlsx --trip-model /path/to/model.json | Check structure, formulas, validations, and row patterns |
| Visual-risk scan | python3 scripts/render_check.py /path/to/output.xlsx | Catch likely clipping or spillover when a renderer is unavailable |
| Review packaging and sample build | python3 scripts/test_skill.py /path/to/skill | Run the local functional smoke test |
Operating Rules
- 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.
- 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.
- Build a canonical trip model before touching the workbook. Use
templates/trip_model_schema.jsonandreferences/trip-model.md. - Keep the deterministic and heuristic layers separate:
- Use
scripts/build_workbook.pyfor 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.
- Use
- 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.
- Keep shopping visible across the workbook. It belongs in Daily Plan, the destination options bank, and Buy List when relevant.
- 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.
- 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.
- Treat the workbook as the deliverable. After building it, run
scripts/validate_workbook.py. If a renderer such as@oai/artifact-toolis 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
- Extract facts from the user's files and notes.
- Run only the one required clarification batch if blockers remain.
- Build the canonical trip model and record assumptions, sources, review flags, and shopping objectives explicitly.
- Verify volatile facts that matter. Read
references/research-policy.md. - Run
scripts/build_workbook.pyto generate the workbook. - Run
scripts/validate_workbook.pyon the generated.xlsx. - If
@oai/artifact-toolor another renderer is available, render each sheet for a quick visual check. Otherwise runscripts/render_check.pyfor a structural visual-risk pass. - 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 responsibilities | Heuristic planner responsibilities |
|---|---|
| Workbook filename strategy | Extract facts from messy PDFs, screenshots, and notes |
| Sheet order and naming | Decide when contradictory evidence becomes a blocker |
| Merged ranges, widths, row heights, fills, borders, fonts | Reconcile conflicting traveller counts or date references |
| Column headers and validation lists | Choose realistic neighbourhood clusters and fallbacks |
| Formula generation and cross-sheet references | Protect conference or work anchors without wrecking the family plan |
| Status vocab and chip styling | Decide when split plans are necessary because coverage is partial |
| Source logging structure | Decide what belongs in Prep vs Pack vs Buy |
| One-day-before and one-day-after planner window | Prune absurd routes, overpacked days, or cross-city zig-zags |
Do not improvise the deterministic layer in prose. Use the builder script.
Reading Guide
| Task | Read |
|---|---|
| Exact workbook architecture, merges, counters, naming rules | references/workbook-spec.md |
| Intake questions, blockers, and one-batch discipline | references/intake-protocol.md |
| Source verification, official-source priority, and what to research | references/research-policy.md |
| Canonical model fields and normalization rules | references/trip-model.md |
| Sheet-mapping and categorization rules | references/mapping-rules.md |
| Failure modes and anti-patterns | references/gotchas.md |
| Portability and spreadsheet-runtime notes | references/cross-harness-notes.md |
Gotchas
- 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.
- Do not bury shopping in a note field. If shopping matters, surface it in Daily Plan, the options bank, and Buy List.
- Do not turn Pack List into Buy List. Pack is what physically travels. Buy is the purchase tracker.
- Do not silently accept partial coverage. When flights, hotel rooms, or attraction tickets cover fewer people than the plan assumes, keep the mismatch visible.
- 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.pybuilds the workbook from a canonical model.scripts/validate_workbook.pychecks structure, formulas, data validations, widths, merges, and Daily Plan row patterns.scripts/render_check.pyperforms a lightweight visual-risk scan when a richer renderer is unavailable.templates/trip_model_schema.jsondefines the canonical trip-model contract.templates/workbook_template_spec.yamlmirrors 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