Strict Programming Practices
code-yeongyu/oh-my-openagent
Applies strict, type-first coding rules for Python, Rust, TypeScript and Go, loading the matching language reference before the agent writes or edits any code.
Per-program stopover rules for award redemptions. An agent skill from borski/travel-hacking-toolkit.
$ npx skills add borski/travel-hacking-toolkit --skill stopovers -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install borski/travel-hacking-toolkit stopovers --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/stopovers .claude/skills/stopovers && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "stopovers" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopovers into .claude/skills/stopovers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stopovers", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopoversType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add borski/travel-hacking-toolkit --skill stopovers -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install borski/travel-hacking-toolkit stopovers --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/stopovers .agents/skills/stopovers && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "stopovers" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopovers into .agents/skills/stopovers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stopovers", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add borski/travel-hacking-toolkit --skill stopovers -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install borski/travel-hacking-toolkit stopovers --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/stopovers .cursor/skills/stopovers && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "stopovers" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopovers into .cursor/skills/stopovers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stopovers", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/borski/travel-hacking-toolkit.git --path plugins/travel-hacking-toolkit/skills/stopovers--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add borski/travel-hacking-toolkit --skill stopovers -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install borski/travel-hacking-toolkit stopovers --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/stopovers .gemini/skills/stopovers && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "stopovers" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopovers into .gemini/skills/stopovers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stopovers", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install borski/travel-hacking-toolkit stopoversInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add borski/travel-hacking-toolkit --skill stopovers -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/stopovers .github/skills/stopovers && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "stopovers" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopovers into .github/skills/stopovers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stopovers", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add borski/travel-hacking-toolkit --skill stopovers -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install borski/travel-hacking-toolkit stopovers --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/borski/travel-hacking-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/travel-hacking-toolkit/skills/stopovers .opencode/skills/stopovers && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "stopovers" agent skill from https://github.com/borski/travel-hacking-toolkit/tree/main/plugins/travel-hacking-toolkit/skills/stopovers into .opencode/skills/stopovers/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "stopovers", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
stopoversPer-program stopover rules for award redemptions. An agent skill from borski/travel-hacking-toolkit.
Stopovers is an agent skill from borski/travel-hacking-toolkit. Per-program stopover rules for award redemptions. Which programs allow free stopovers, how many, how long, and which don't. Covers Icelandair, Aeroplan, Alaska, Flying Blue, Singapore, Cathay, JAL, and the negative space (BA, AA, Delta).
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: AI-powered travel hacking and search with cash, points, miles, and award flights. Drop-in skills and MCP servers for Claude, Codex, and OpenCode. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit db82131. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(jq *)ReadFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
icelandair.comflyingblue.usFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Stopovers loads about 2.8k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,273 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from borski/travel-hacking-toolkit at commit db82131, republished under its MIT licence (© borski). 1,273 words, ~2,820 tokens.
.claude/skills/stopovers/SKILL.md (or your agent's skills folder).Reference data for which programs allow stopovers on award redemptions, how many, where, for how long, and at what cost. Sourced primarily from each airline's own award rules pages, cross-checked against Frequent Miler, OMAAT, Travel Miles 101, Prince of Travel, and Upgraded Points.
Data lives in data/stopovers.json. Refresh cadence is 90 days because stopover rules change rarely (much less often than transfer bonuses or program valuations).
A planned interruption of a journey at a point between origin and destination. The IATA standard definition is:
Each loyalty program defines its own rules within or beyond this baseline. Some programs let you stop for a week. Some let you stop for 365 days. Some don't allow stopovers at all.
The headline value: a free stopover lets you visit two destinations on a single award. Iceland on the way to Europe. Tokyo on the way to Bangkok. Singapore on the way to Sydney.
award-holds skill — that's a different concept)round-the-world skill — different framework with global routing rules)The full data is in data/stopovers.json. Headlines:
| Program | Max Round-Trip | Max Days | Cost | Booking | Confidence |
|---|---|---|---|---|---|
| Aeroplan | 2 (1 per direction) | 45 | 5,000 pts | Online | VERIFIED |
| Alaska Atmos Rewards | 2 (1 per one-way) | unspecified | Free | Phone | VERIFIED |
| ANA Mileage Club | 1 | unspecified | Free | Online | LIKELY |
| Avianca LifeMiles | 1 | unspecified | Free | Online | LIKELY |
| Cathay Asia Miles | 2 | unspecified | Free | Online | VERIFIED |
| Copa ConnectMiles | 1 | unspecified | Free | Online | LIKELY |
| Etihad Guest | 1 | unspecified | Free | Phone | LIKELY |
| Flying Blue (AF/KLM) | unlimited | up to 365 | Free | Phone | VERIFIED |
| Icelandair Saga Club | 2 (transatlantic) | 7 | Free | Online | VERIFIED |
| JAL Mileage Bank | 3 (partner only) | unspecified | Free | Phone | VERIFIED |
| Korean SKYPASS | 1 | unspecified | Free | Phone | LIKELY |
| Lufthansa Miles & More | 2 | unspecified | Free | Online | LIKELY |
| Qatar Privilege Club | 1 | unspecified | Free | Phone | UNVERIFIED |
| Singapore KrisFlyer | 1 (Saver) / 2 (Advantage) | 30 | Free | Online | VERIFIED |
| TAP Miles & Go | 1 (partners only) | unspecified | Free | Online | LIKELY |
| Turkish Miles & Smiles | 1 | unspecified | Free | Phone | LIKELY |
| United (Excursionist Perk) | DISCONTINUED Aug 2025 | — | — | — | VERIFIED |
These programs price each segment as its own award. Long layovers up to ~24 hours are still typically permitted but offer no perk.
For full details, restrictions, recent changes, and primary sources for any program, query data/stopovers.json.
Icelandair's stopover program is the single best free-vacation perk built into a flight ticket in commercial aviation. Some specifics worth highlighting:
When recommending stopover-friendly programs to a US-Europe traveler with flexible plans, this should usually be near the top of the list.
Primary source: icelandair.com/flights/stopover
# All programs that allow stopovers, sorted by max round-trip stopovers
jq '.programs[] | select(.category == "positive") |
{name, max_rt: .max_stopovers_round_trip, surcharge: .surcharge_points, booking: .booking_method}' \
data/stopovers.json | head -40
# Find programs that allow free phone-bookable stopovers
jq '.programs[] | select(.category == "positive" and .surcharge_points == 0 and .booking_method == "phone") |
{name, max_rt: .max_stopovers_round_trip, restrictions: .restrictions}' \
data/stopovers.json
# Programs that do NOT allow stopovers (negative space)
jq '.programs[] | select(.category == "negative") | {name, restrictions}' data/stopovers.json
# All sources/citations for a given program
jq '.programs[] | select(.id == "aeroplan") | .sources' data/stopovers.json
# Recently changed programs (last 24 months)
jq '.programs[] | select(.recent_changes != null) | {name, recent_changes}' data/stopovers.json
# Discontinued programs (e.g. United Excursionist)
jq '.programs[] | select(.discontinued == true) | {name, discontinued_date, restrictions}' data/stopovers.jsonWhen a user is planning a trip and stopovers are relevant, follow these:
Free Iceland stopover is the easiest second country for any US-Europe traveler. It's built into the cash fare AND the award redemption. Mention it whenever the trip includes US/Canada to/from Europe.
Map hub airports to programs. Match the user's likely connecting hub to a program with stopover rights:
Alaska Atmos is the most generous Western program for partner stopovers but requires phone booking. Allow 30+ minutes per call.
Flying Blue allows unlimited stopovers but requires phone booking. Some agents incorrectly say only AMS/CDG hub stopovers — cite the FAQ at flyingblue.us/en/spend/flights/rewards if pushed back on.
Singapore KrisFlyer Saver awards beat Advantage on cost but allow only 1 stopover round-trip vs 2.
Turkish Miles & Smiles is famously hard to book by phone but offers excellent Star Alliance pricing if you're patient.
United Excursionist Perk is GONE as of August 21, 2025. Don't recommend MileagePlus for stopover routing anymore.
For BA Avios, AA AAdvantage, Delta SkyMiles — these don't allow stopovers. Either book each segment as its own award (for the redemption price) or use a different program (e.g. Alaska Atmos for Cathay, Flying Blue for Delta metal).
When in doubt, the program's own award rules page is canonical. Frequent Miler, OMAAT, and Travel Miles 101 are cross-checks.
partner-awards — what you can book through a program (alliance + bilateral) before checking stopover rulesalliances — alliance membership for the multi-carrier oneworld/Star/SkyTeam stopover rulesbooking-guidance — phone numbers for programs that require phone booking (Flying Blue, Alaska, Turkish, Etihad, Qatar)transfer-partners — transferable point currency that reaches the program for the stopover redemptiontransfer-bonuses — current transfer promotions that may make a stopover-friendly program even cheaperaward-holds — most stopover-friendly programs (Aeroplan, Flying Blue, Alaska) DO NOT allow holds, so you can't lock the multi-city award before transferring. Plan timing carefully.round-the-world — RTW products are the natural next step when a single stopover isn't enough. Star Alliance RTW (a paid cash fare via staralliance.com, NOT a mileage award) allows up to 15 stopovers in one ticket. The only miles-priced RTW survivor is Lufthansa Miles & More.When sources disagree, the airline's own page wins. When the airline's page is silent or ambiguous, the most-recent Frequent Miler post wins. Never make up rules.
last_verified date when you cite a rule. Anything older than 90 days should be re-verified before being recommended for an actual booking.© borski, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/travel-hacking-toolkit/skills/stopovers of borski/travel-hacking-toolkit.
Open the folder on GitHubat commit db82131
Stopovers next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Stopovers this skillborski/travel-hacking-toolkit | 688 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Strict Programming Practicescode-yeongyu/oh-my-openagent | 70k | — | ~9.5k | Automated safety check: Pass | Custom licence | |
| Referral Programalirezarezvani/claude-skills | 28k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Intern Programsickn33/agentic-awesome-skills | 47k | 1 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Mentorship Programsickn33/agentic-awesome-skills | 47k | 1 repos | ~3.7k | Automated safety check: Pass | MIT | |
| Implementing Anti Phishing Training Programmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 |
code-yeongyu/oh-my-openagent
Applies strict, type-first coding rules for Python, Rust, TypeScript and Go, loading the matching language reference before the agent writes or edits any code.
alirezarezvani/claude-skills
When the user wants to design, launch, or optimize a referral or affiliate program.
sickn33/agentic-awesome-skills
Internship register: intern and department, supervisor and mentor, institution, start and end dates, stipend, learning goals, mid-term and final scores, conversion flags.
sickn33/agentic-awesome-skills
Mentorship register: mentor and mentee pair, department, focus area, mentee goal, session counts, last and next session, overall rating, progress notes and status.
mukul975/Anthropic-Cybersecurity-Skills
Guides designing, deploying, and measuring an anti-phishing security awareness program - baseline phishing simulations, interactive training modules, just-in-time learning, and metric tracking -…
sickn33/agentic-awesome-skills
Buddy programme register: new hire, assigned buddy, department, start and end dates, check-ins planned and done, and feedback score.
borski/travel-hacking-toolkit
Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright.
borski/travel-hacking-toolkit
Search Chase UR travel portal via Patchright for cash prices, points pricing, Points Boost offers, and Chase Edit hotel benefits.
borski/travel-hacking-toolkit
Deutsche Bahn train schedules, journey planning, and departures across Germany and into neighboring countries (Austria, Switzerland, Netherlands, France, Belgium).
borski/travel-hacking-toolkit
Search Sutochno.ru (СУТОЧНО.РУ), a Russian short-term apartment-rental platform where you book directly from owners and pay in rubles (Mir card / bank transfer).
borski/travel-hacking-toolkit
Search TicketsAtWork (EBG corporate perks) for hotels, theme park tickets, attractions, and rental cars via Patchright.
borski/travel-hacking-toolkit
Search VRBO (Vrbo / Expedia Group) vacation rentals including entire homes, condos, and cabins via Patchright browser automation.
Per-program stopover rules for award redemptions. An agent skill from borski/travel-hacking-toolkit. Stopovers is an agent skill from borski/travel-hacking-toolkit. Per-program stopover rules for award redemptions.
Run `npx skills add borski/travel-hacking-toolkit --skill stopovers -a claude-code`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/stopovers in borski/travel-hacking-toolkit) into .claude/skills/stopovers in your project. Claude Code loads it when a task matches its description.
Run `npx skills add borski/travel-hacking-toolkit --skill stopovers -a codex`. Or copy the skill folder (plugins/travel-hacking-toolkit/skills/stopovers in borski/travel-hacking-toolkit) into .agents/skills/stopovers in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add borski/travel-hacking-toolkit --skill stopovers -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stopovers, .gemini/skills/stopovers, .github/skills/stopovers and .opencode/skills/stopovers in your project.
Going by SKILL.md and its folder, Stopovers needs the command-line tools its instructions call (jq). Its frontmatter pre-approves these tools: Bash(jq *), Read.
SKILL.md names 2 domains. As links in the text: icelandair.com and flyingblue.us. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Stopovers is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Stopovers: Strict Programming Practices (code-yeongyu/oh-my-openagent, 70k stars), Referral Program (alirezarezvani/claude-skills, 28k stars), Intern Program (sickn33/agentic-awesome-skills, 47k stars) and Mentorship Program (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
borski (a GitHub user) maintains it in borski/travel-hacking-toolkit, which has 688 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on October 5, 2026.
Source: borski/travel-hacking-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.