II.
Page JSON
Structured · livepage:library-travel
Travel (Curated-Dataset + SQL-Tool Pattern) (Library) json
Inspect the normalized record payload exactly as the atlas UI reads it.
{
"id": "page:library-travel",
"_kind": "Page",
"_file": "wiki/library/travel.md",
"_cluster": "wiki",
"attributes": {
"nodeKind": "Page",
"title": "Travel (Curated-Dataset + SQL-Tool Pattern) (Library)",
"displayName": "Travel (Curated-Dataset + SQL-Tool Pattern) (Library)",
"slug": "library/travel",
"articlePath": "wiki/library/travel.md",
"article": "\n---\ndomain: business/travel\n---\n\n# Travel (Curated-Dataset + SQL-Tool Pattern)\n\nTwo processes that together turn a local SQLite file into a sophisticated\ntravel planner. The pattern is: do the curation once, then let an LLM\ncompose SQL against the curated database through Python scripts at plan\ntime. No MCP is involved at any stage.\n\n## Processes\n\n- **`flight-dataset-build.js`** -- discover open flight/airport/climate\n data sources, design a SQLite schema, author and run Python 3 + stdlib\n `sqlite3` ETL scripts, build indexes and denormalized helper views, and\n produce `SCHEMA.md` so downstream agents can author SQL without guessing.\n- **`travel-plan-compose.js`** -- read `SCHEMA.md`, resolve a traveler's\n loose intent into SQL-filterable constraints, compose and execute\n Python query scripts against the DB, and return ranked itineraries that\n include stopover-as-vacation options (two-destination trips that can\n beat a direct flight on price). Every itinerary carries the verbatim\n SQL that produced it as audit evidence.\n\n## Hard constraints (honoured by both processes)\n\n- Only `kind: 'agent'` tasks are used. No shell tasks, no sqlite3 CLI,\n no MCP adapters.\n- All database creation, loading, indexing, and querying happens through\n Python 3 scripts that use ONLY the standard library `sqlite3` module.\n- Database is opened read-only during planning (`mode=ro` URI) so the\n planner cannot mutate the dataset.\n- SQL used in the plan output is carried verbatim as audit evidence.\n\n## Agents\n\nUnder `agents/`:\n\n- `trip-scope-planner` -- turns origin + window + interests into concrete dataset scope.\n- `open-data-scout` -- discovers authoritative open data sources.\n- `sqlite-schema-architect` -- designs the schema, indexes, views, and writes `SCHEMA.md`.\n- `python-etl-engineer` -- writes and executes Python + stdlib `sqlite3` ETL scripts.\n- `data-quality-inspector` -- validates the DB against expected queries + integrity checks.\n- `traveler-profiler` -- resolves loose traveler inputs into SQL-filterable constraints.\n- `sql-query-composer` -- authors and runs Python query scripts against the DB.\n- `stopover-strategist` -- finds stopover-as-vacation itineraries.\n- `itinerary-narrator` -- explains tradeoffs in plain language, ranks, and exports markdown.\n\n## Inspired by\n\n- https://github.com/mluggy\n- https://www.linkedin.com/posts/mluggy_%D7%9B%D7%9E%D7%95-%D7%9E%D7%99%D7%9C%D7%99%D7%95%D7%A0%D7%99-%D7%99%D7%A9%D7%A8%D7%90%D7%9C%D7%99%D7%9D-%D7%92%D7%9D-%D7%90%D7%A0%D7%97%D7%A0%D7%95-%D7%9E%D7%AA%D7%9B%D7%A0%D7%A0%D7%99%D7%9D-%D7%97%D7%95%D7%A4%D7%A9%D7%95%D7%AA-ugcPost-7448843353275858944-b7d4\n",
"documents": [
"specialization:travel"
]
},
"outgoingEdges": [
{
"from": "page:library-travel",
"to": "specialization:travel",
"kind": "documents"
}
],
"incomingEdges": [
{
"from": "page:index",
"to": "page:library-travel",
"kind": "contains_page"
}
]
}