fm-analyze

Analyzes a legacy Angular target and records dependency graphs, shared-package candidates, and required migration gates.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Before migrating a legacy OhMyHotel Angular page, component, service, or store, teams need a structured understanding of its dependencies, cross-app differences, and risk profile. This Skill automates that analysis and produces a machine-readable baseline that every later migration step depends on. ## Core Features & Use Cases - Automated legacy analysis: Launches an isolated analyzer agent that writes analysis.json containing the dependency graph, shared-package candidates, 3-app diff (pc/mobile/hana), and required gates. - State and safety guards: Refuses to run on flipped, done, or flip-in-flight pages, warns before demoting verified pages, and enforces per-page and tracker locks to prevent concurrent corruption. - Advisory audit: Optionally spawns an independent Codex audit of the analysis stage without changing page status. - Use Case: A developer starting the migration of the hotel-booking-info page runs this Skill to get its risk level, required gates (webview, telemetry), and shared-package extraction candidates before planning. ## Quick Start Ask the assistant to analyze the legacy page hotel-booking-info for the pc app using the fm-analyze skill.

Frequently Asked Questions about fm-analyze

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

FAQPage Schema
How do I analyze a legacy Angular page before migrating it?▼

Run the fm-analyze skill with the target page and optional --app and --kind flags. It launches an analyzer agent that writes analysis.json with the dependency graph, risk level, and required gates, then advances the page state to analyzed.

What does the analysis.json output contain?▼

The analysis.json file records the target's dependency graph, shared-package extraction candidates, a 3-app diff across pc, mobile, and hana counterparts, god-component split seams, and the required migration gates such as webview or telemetry.

Can I re-run analysis on a page that is already flipped or verified?▼

No. The skill refuses flipped, done, or flip-in-flight pages because re-analysis would overwrite the baseline used for delta diffs. For verified or parity-passed pages it warns first, since re-analysis demotes the page and discards gate progress.

Why does fm-analyze stop with a lock error?▼

The skill acquires a per-page lock at docs/migration/{app}/{page}/.lock before running. If another process holds a fresh lock, it reports the holder and stops; only a stale lock whose holder is gone is reclaimed.

What happens if the app configuration is missing?▼

The skill reads .claude/frontend-migration-plugin.json first and stops with a message to run fm-init if it is absent. It also verifies the requested app entry exists in the config before launching any agent.