From parkpal-content
Use when outputting approved attraction objects as JSON seed files for Convex and DOCX documents for human review
How this skill is triggered — by the user, by Claude, or both
Slash command
/parkpal-content:formatterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Takes approved attraction objects and produces two parallel outputs: a JSON file that seeds Convex and a DOCX file for human review and fact-checking. Handles incremental updates — appending to existing files as attractions are completed.
Takes approved attraction objects and produces two parallel outputs: a JSON file that seeds Convex and a DOCX file for human review and fact-checking. Handles incremental updates — appending to existing files as attractions are completed.
An array of approved attraction objects matching schemas/attraction.schema.json.
data/json/{park_slug}.jsonA single JSON file per park containing an array of all attraction objects, ordered by land (in park walking order) then by attraction name within each land.
[
{ "park": "Magic Kingdom", "land": "Main Street, U.S.A.", "name": "Walt Disney World Railroad", ... },
{ "park": "Magic Kingdom", "land": "Main Street, U.S.A.", "name": "Main Street Vehicles", ... },
{ "park": "Magic Kingdom", "land": "Adventureland", "name": "Jungle Cruise", ... },
...
]
Park slugs:
magic_kingdomepcothollywood_studiosanimal_kingdomdisneylandcalifornia_adventureLand ordering (Magic Kingdom walking order):
data/docx/{Park_Name}.docxUse the docx skill at /mnt/skills/public/docx/SKILL.md for document generation.
One Word document per park containing all attractions organized by land.
Title Page: "{Park Name} — Attraction Guide"
Table of Contents (by land)
For each land:
Land Header (styled as Heading 1)
For each attraction in the land:
Attraction Name (Heading 2)
Fact Sheet Table:
┌──────────────┬─────────────────────────────┐
│ Park │ Magic Kingdom │
│ Land │ Liberty Square │
│ Lead Imagineer│ Yale Gracey · Marc Davis │
│ Opened │ October 1, 1971 │
│ Preceded By │ Disneyland Haunted Mansion │
│ Theme │ Southern Gothic manor... │
│ Sponsor │ None │
│ Ride System │ Omnimover (Doom Buggies) │
│ Duration │ ~9 minutes │
└──────────────┴─────────────────────────────┘
Imagineering & Design Notes (Heading 3)
• Bullet point for each fact
Trivia Questions (Heading 3)
🟢 EASY
Q1. [question]
A) ... B) ... C) ... D) ...
💡 Fun Fact: ...
🟠 MEDIUM
Q4. [question]
...
🔴 HARD
Q8. [question]
...
Answer Key:
┌────┬─────────┐
│ Q1 │ A │
│ Q2 │ C │
│ ...│ ... │
└────┴─────────┘
Page Break
// Read existing file
const existing = JSON.parse(fs.readFileSync(jsonPath, 'utf8'));
// Append new attractions
const updated = [...existing, ...newAttractions];
// Re-sort by land order then name
const sorted = sortByLandOrder(updated, parkSlug);
// Write back
fs.writeFileSync(jsonPath, JSON.stringify(sorted, null, 2));
For DOCX, regenerate the full document from the JSON source each time. The JSON file is the source of truth — the DOCX is always a full rebuild from JSON.
Before writing either file:
□ Every object in the array passes schema validation
□ No duplicate attraction names within the park
□ Land names are consistent (no "Adventureland" vs "Adventure Land" mismatches)
□ Attractions are sorted by land order, then alphabetically within land
□ JSON is valid (parseable)
□ DOCX generates without errors
If the user requests output before a park is complete:
_meta comment noting completenessnpx claudepluginhub tretuttle/ai-stuff --plugin parkpal-contentGenerates Quarto-based tour reports with embedded maps, daily itineraries, logistics tables, and accommodation/transport details. Outputs self-contained HTML or PDF for offline travel use.
Creates, reads, and edits Word documents (.docx) using pandoc, docx-js, and Python scripts. Activates on mentions of Word docs, .docx, or requests for reports/memos.
Creates, reads, edits, and analyzes .docx files using docx-js for generation, pandoc/Python for extraction, XML editing, tracked changes, and LibreOffice conversions.