Skip to content
Back to skills

Fabrico Reverse Engineering Spec

ASecurity

Reverse-engineer a complete, platform-agnostic SPEC.md from a running legacy web application by inspecting it with the Playwright MCP (Chrome automation): crawl routes, capture every screen, infer the data model, roles, flows, and integrations, then synthesize features into user stories with acceptance criteria. Use when modernizing an old web app to a newer stack or porting it to mobile/iOS. Produces a SPEC.md compatible with /fabrico-autopilot.

  • 2 stars
  • 0 votes
  • 0 copies
  • 9 views
  • Added September 6, 2026
ai-agentsgoreactexpress

Works with

  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add aiFabricoCom/fabrico-collections --skill fabrico-reverse-engineering-spec --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fabrico Reverse Engineering Spec?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fabrico Reverse Engineering Spec
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aifabricocom-fabrico-reverse-engineering-spec/badge)](https://www.skillsdirectory.com/skills/aifabricocom-fabrico-reverse-engineering-spec)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fabrico-reverse-engineering-spec
description: "Reverse-engineer a complete, platform-agnostic SPEC.md from a running legacy web application by inspecting it with the Playwright MCP (Chrome automation): crawl routes, capture every screen, infer the data model, roles, flows, and integrations, then synthesize features into user stories with acceptance criteria. Use when modernizing an old web app to a newer stack or porting it to mobile/iOS. Produces a SPEC.md compatible with /fabrico-autopilot."
---

# Reverse-engineering a spec from a running web app

Turn an existing (often legacy) web application into a clean, **platform-agnostic** `SPEC.md` that
`/fabrico-autopilot` (or a migration build) can use to rebuild it on a modern stack or port it to mobile.

You observe the running app through the **Playwright MCP** (it drives a real Chromium/Chrome). You describe
*what the app does* (behavior, data, roles, flows) — NOT how the old code is written. The output is a behavioral
spec, not a code transliteration.

## Inputs you need before starting

- **Base URL** of the running app (production, staging, or localhost).
- **Access**: if any area is behind login, the credentials or a logged-in session. Auth-gated areas you cannot
  reach must be flagged, not guessed.
- **Scope**: whole app, or specific areas/roles. If unspecified, cover everything reachable.

If the URL is missing or auth blocks a required area → STOP and ask the user (this is a true blocker).

## Output artifacts

- `SPEC.md` — the deliverable, following the structure of `SPEC.template.md`, plus a **Target (fill at build time)**
  section (platform-agnostic) and a **Source mapping** appendix.
- `legacy-inventory.md` — sitemap/route inventory with per-screen notes.
- `legacy-capture/` — screenshots and saved accessibility snapshots per screen (evidence).
- `reverse-spec-notes.md` — open questions, uncertainties, and assumptions for the user to confirm.

## Process (track progress with this checklist)

```
Reverse-engineering progress:
- [ ] Step 1: Scope & access confirmed
- [ ] Step 2: Route/page inventory (sitemap)
- [ ] Step 3: Per-screen capture loop complete
- [ ] Step 4: Data model inferred
- [ ] Step 5: Roles, permissions & flows inferred
- [ ] Step 6: Integrations & non-functional inferred
- [ ] Step 7: Features synthesized into user stories with acceptance criteria
- [ ] Step 8: SPEC.md written + coverage gate passed
```

### Step 1 — Scope & access
Confirm base URL, credentials, and scope. Open the app with the Playwright MCP and verify you can reach it.
For the concrete browser recipe (which `mcp__playwright__*` tools to call and in what order), follow
[`references/playwright-capture.md`](references/playwright-capture.md).

### Step 2 — Route / page inventory
Crawl the app to build a sitemap: follow navigation, menus, links, and obvious URL patterns (e.g. `/users`,
`/users/:id/edit`). Record every distinct screen/state in `legacy-inventory.md`. Note auth-gated areas and which
role they belong to. Don't recurse infinitely — collapse list/detail pages into one representative example each.

### Step 3 — Per-screen capture loop
For each screen in the inventory: take a screenshot, capture the accessibility-tree snapshot, and record the
meaningful elements — **forms** (fields, types, validation hints, required markers), **tables/lists** (columns,
filters, sorting, pagination), **actions** (buttons and what they do), **navigation**, and visible **states**
(empty, error, loading, modals). Exercise key interactions (open a form, submit, paginate) to reveal behavior and
validation. Save evidence under `legacy-capture/`.

### Step 4 — Infer the data model
From forms, tables, detail pages, and URL patterns, infer the entities and their relationships (e.g. a "Users"
table + "Edit user" form + `/users/:id/orders` ⇒ `User 1—* Order`). Capture fields, types, and obvious constraints.
Express it as the lightweight entity sketch used in `SPEC.template.md` §5 — schemas are designed later by the architect.

### Step 5 — Roles, permissions & flows
Compare what's visible/possible across roles (anonymous vs logged-in vs admin). Infer the role set and what each
can do. Trace multi-step **flows** (e.g. checkout, onboarding, approval) end to end and document the steps.

### Step 6 — Integrations & non-functional
From network requests and page content, identify external integrations (payment providers, maps, auth/SSO,
analytics, email, third-party widgets) and note which are core vs incidental. Capture non-functional signals:
languages/i18n, responsive behavior, auth model, file uploads, anything that affects a rebuild.

### Step 7 — Synthesize features → user stories
Group screens/flows into epics and write concrete **user stories with testable acceptance criteria** (same shape
as `SPEC.template.md` §4). Base every acceptance criterion on observed behavior; where behavior is unclear, write a
provisional criterion and list the open question in `reverse-spec-notes.md`. Do NOT invent features the app
doesn't have, and do NOT silently drop features you saw.

### Step 8 — Write SPEC.md + coverage gate
Assemble `SPEC.md` using the `SPEC.template.md` structure, with two additions:
- A **"Target (fill at build time)"** section: keep the spec platform-agnostic; list candidate targets
  (modern web / iOS / React Native) and instruct that the concrete target is chosen by `/fabrico-modernize` or
  by editing this section before `/fabrico-autopilot`. UX described in behavioral terms (what the screen does),
  not pixel layouts, so it ports across platforms.
- A **"Source mapping"** appendix: table of *old screen/URL → epic/story* so nothing is lost and parity is checkable.

**Coverage gate:** every screen in `legacy-inventory.md` maps to at least one story (or is explicitly marked
out-of-scope with a reason). If not, go back. Then summarize open questions from `reverse-spec-notes.md` for the user.

## Important guidance

- **Behavior over implementation.** Describe what the app does for users and data, not the legacy framework's quirks.
- **Don't guess behind auth.** If you can't reach an area, flag it — never fabricate its features.
- **Handle SPAs/dynamic content.** Wait for content to load; interact to reveal hidden states (tabs, modals, lazy lists).
- **Representative sampling for big lists.** Document the pattern once; note volume rather than capturing every row.
- **Mark every uncertainty.** Anything inferred-but-unconfirmed goes to `reverse-spec-notes.md` with a clear question.
- **Keep the spec platform-agnostic** so the same SPEC.md can target modern web, iOS, or React Native.

Files in this skill

  • SKILL.md6.5 KB
  • references/playwright-capture.md4.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…