fm-route

Manages Strangler Fig route flips for migrated pages at nginx or CloudFront edge layers.

1|Updated Feb 19, 2026
One-click install
npx skills add https://github.com/ohmyhotelco/hare-cc-plugins --skill fm-route-ohmyhotelco
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: fm-route
Source: https://github.com/ohmyhotelco/hare-cc-plugins/tree/main/frontend-migration-plugin/skills/fm-route
Command: npx skills add https://github.com/ohmyhotelco/hare-cc-plugins --skill fm-route-ohmyhotelco

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Flipping production traffic from a legacy app to a migrated page is risky and irreversible if done before verification gates pass. This Skill enforces a gated, two-PR feature-flag workflow so a route flip only happens after verify, e2e, and parity gates all pass, with a safe revert path. ## Core Features & Use Cases - Four flip actions: --flag-off prepares the routing artifact and flag (default OFF) for the code PR, --flag-on activates the path flip, --flag-on --confirm-live records human confirmation that the merged flip is live, and --revert rolls back an in-flight or live flip. - Dual edge mechanisms: edits the nginx config or the CloudFront behavior manifest depending on the app's configured flipMechanism, with identical flip semantics. - Gate-evidence freshness checks: recomputes content hashes of the page's source paths, shared package dependencies, and migration plan before allowing a flip, blocking on stale or uncommitted evidence. - Use Case: After a migrated hotel booking page passes all gates, run --flag-off to prepare the nginx route in PR1, then --flag-on to cut over the path in PR2 once the code PR merges. ## Quick Start Run fm-route with the page name and --flag-off to prepare the routing artifact for the code PR once all migration gates have passed.

Frequently Asked Questions about fm-route

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I flip traffic to a migrated page using the Strangler Fig pattern?▼

Run fm-route with --flag-off first to prepare the routing artifact and flag for the code PR, then --flag-on after verify, e2e, and parity gates pass. After PR2 merges and deploys, run --flag-on --confirm-live to record the flip.

What is the difference between --flag-on and --flag-on --confirm-live?▼

--flag-on edits the routing artifact to activate the path flip for PR2. --confirm-live is a separate action that edits nothing and only records the human's observation that the merged flip is live at the edge.

Does fm-route support CloudFront as well as nginx?▼

Yes. The flip mechanism is read from the app's flipMechanism config: nginx edits the infra/nginx config, while cloudfront edits the behavior manifest in the cloudfront directory. The flip semantics and gate preconditions are identical for both.

Why does --flag-on get blocked even after all gates passed?▼

The gate-evidence freshness check recomputes content hashes of the page's source paths, shared package dependencies, and migration plan. If code changed after a gate ran, or evidence is uncommitted, the flip blocks and you must re-run fm-verify to restart the gate chain.

How do I roll back a route flip that is already live?▼

Run fm-route with --revert, which edits the in-repo artifact to restore the legacy route and clears flip state in the tracker. The rollback completes only when the revert PR is merged and propagated, so do not start a new flip cycle before then.