| name | improve-travel-hub |
| description | Propose improvements to the Eidos Travel Hub — new skills, updated bonus data, corrected award charts, new transfer partners, or playbook gaps. Motivated by a real gap in a travel hacking scenario. |
Improve Travel Hub Contract
Contract
{
"$schema": "https://json-schema.org/draft/2020-12",
"title": "Travel Hub Improvement Proposal",
"purpose": "Propose a specific, actionable change to the eidos-travel-hub. Every proposal must be motivated by a real gap: a redemption the hub couldn't optimize, a bonus that wasn't tracked, a transfer partner that was missing or wrong.",
"constraints": [
"One proposal per output",
"observed_gap must describe a real travel hacking scenario that the hub failed to handle",
"Data updates (bonus amounts, partner ratios) must cite a source URL",
"New skills must include a full SKILL.md draft in the proposal",
"self_update steps must be copy-pasteable commands or file edits"
],
"required": ["observed_gap", "proposal_type", "proposal", "self_update"],
"properties": {
"observed_gap": { "type": "string" },
"proposal_type": {
"enum": ["new_skill", "data_update", "playbook_addition", "bonus_update", "partner_update"]
},
"proposal": {
"type": "object",
"required": ["title", "description", "rationale"],
"properties": {
"title": { "type": "string" },
"description": { "type": "string" },
"rationale": { "type": "string" },
"source_url": { "type": ["string", "null"] },
"affected_files": { "type": "array", "items": { "type": "string" } },
"draft_content": { "type": ["string", "null"], "description": "Full SKILL.md or file content for new additions" }
}
},
"self_update": {
"type": "object",
"required": ["steps"],
"properties": {
"steps": { "type": "array", "items": { "type": "string" } },
"verify": { "type": "string" }
}
}
}
}