replica-build — Claude Code skill: rebuild an app screen by screen
Rebuilds an app screen by screen from the recon map: shell first, then the core flow, then every screen with all its states. Useful when you need to reproduce a product in your own code.
npx skills add Jakeschincariol/replica-skill --skill replica-build -a claude-codeWhat replica-build does
The skill reads replica/recon.md, replica/architecture.md and the replica/design/ folder, ticks off rows in replica/features.csv as it goes and keeps a running replica/build-log.md. The order is fixed: the shell with routing for every screen in the inventory, then the core loop end to end, then individual screens in the order given by architecture.md.
Clean room is the rule that shapes everything. Every line is written fresh from the recon map and the specs: no HTML, CSS, SVG or images from the original, nothing loaded from its domain or CDN. Button labels, empty states and emails are your own words too. Behaviour should match; sentences should not. Components take tokens only, no raw hex or pixel values, and a missing value gets added to the tokens.
Each screen runs the same checklist: every state from the recon map plus empty, loading and error, working at 390px and 1440px, the flow completable with a keyboard alone, a clean console, and a screenshot saved to replica/clone-screens/S07.png for the later diff. If replica-backend has not run yet, the skill suggests seed data and a fake data layer with matching function signatures, so swapping in the real one touches no screen code. One commit per screen, named like build: S07 booking page.
What it helps with
- rebuild an app from the recon map instead of starting blank
- get the core flow working before touching individual screens
- cover empty, loading and error states on every screen
- mark features done in
features.csvas the build moves - save per-screen screenshots for a later diff against the original
Example prompts for the agent
- build the clone from the recon map
- build screen S07, the booking page
- start building — shell and core flow first
How to install replica-build
1Skills CLI (Vercel)
npx skills add Jakeschincariol/replica-skill --skill replica-build -a claude-code2Manually: put the files in place
~/.claude/skills/replica-build/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/replica-build/
1Skills CLI (Vercel)
npx skills add Jakeschincariol/replica-skill --skill replica-build -a codex2Manually: put the files in place
.agents/skills/replica-build/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jakeschincariol/replica-skill --skill replica-build -a cursor2Manually: put the files in place
.cursor/skills/replica-build/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jakeschincariol/replica-skill replica-build2Manually: put the files in place
.github/skills/replica-build/SKILL.md1Skills CLI (Vercel)
npx skills add Jakeschincariol/replica-skill --skill replica-build -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jakeschincariol/replica-skill --path replica-buildManually: put the files in place
.devin/skills/replica-build/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jakeschincariol/replica-skill --skill replica-build -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about replica-build
How do I install replica-build in Claude?
Run npx skills add Jakeschincariol/replica-skill --skill replica-build -a claude-code. The skill lands at ~/.claude/skills/replica-build/SKILL.md.
What does replica-build do?
It rebuilds an app screen by screen from the recon map: the shell and routing first, then the core flow, then each screen with all its states. Every line is written fresh, with no code, assets or copy from the original.
What does the skill need to run?
It expects the earlier steps to exist: replica/recon.md, replica/architecture.md and the replica/design/ folder. If replica-backend has not run yet, the build works on seed data and a fake data layer.
Source text
SKILL.md · MIT
--- name: replica-build description: >- Rebuilds an app screen by screen from the recon map: app shell first, then the core flow as a vertical slice, then every screen with all its states, ticking off the feature matrix as it goes. Writes every line fresh, never the original's code, assets or copy. Use when the user says "build the clone", "build screen S07", "start building", "rebuild this screen", "implement the booking page", or after /replica-design. --- # replica-build Reads `replica/recon.md`, `replica/architecture.md`, `replica/design/`. Updates `replica/features.csv` (the `clone` column) and keeps `replica/build-log.md`. ## The rules - **Clean room.** Every line of code is written here, from the recon map and the specs. Never paste the original's HTML, CSS, JavaScript, SVGs or images, never load anything from its domain or CDN, never "view source and adapt". - **Your words.** Write every label, button, empty state and email fresh. Matching what a button does is parity. Matching its sentence is copying. - **Tokens only.** No raw hex or pixel values in components. If a value is missing, add it to the tokens. ## Step 1: the shell Routing for every screen in the inventory (stub pages are fine), the layout (nav, header, sidebar), tokens wired in, the primitives from replica-design, and seed data so screens have something real to show. Commit. ## Step 2: the vertical slice The core loop from the recon map, end to end, before anything else. For a booking app: create an event type, open the public page, book a slot, see it on the dashboard. Ugly is fine. Working is the point. If replica-backend has not run yet, use the seed data and a fake data layer with the same function signatures, so swapping in the real one changes no screen code. ## Step 3: screen by screen Work in the order of `architecture.md`. For each screen: 1. Read its row in the recon map: purpose, components, states, which flows pass through it. 2. Look at the reference screenshot for layout and hierarchy. Not for pixels. 3. Build it with the primitives. Real data from the data layer. 4. **Every state**: empty, loading (skeletons, not spinners, if the original does), filled, error, no permission, long content (a 60 character name), mobile width. 5. Basics, every time: semantic HTML, labels on inputs, keyboard reachable, visible focus, images with alt text. 6. Set the matching rows in `features.csv` to `yes` or `partial` (with a note). 7. Screenshot it at the same viewport as the reference into `replica/clone-screens/S07.png` for replica-diff. 8. One commit per screen: `build: S07 booking page`. ## Definition of done, per screen - [ ] every state from the recon map, plus empty, error and loading - [ ] works at 390px and 1440px wide - [ ] keyboard only: can complete the flow - [ ] no console errors - [ ] no hard-coded copy borrowed from the original - [ ] features.csv updated - [ ] screenshot saved for diff ## Step 4: the build log `replica/build-log.md`, one line per screen: ID, date, done or partial, what is missing, what was harder than expected. When a feature is bigger than it looked, say so in the log and in the chat. Do not quietly ship half of it. ## When you are stuck on how something works Go back to the original as a user: read its help article, watch its public walkthrough, use the user's own account. Do not dig into its code or network calls. Then build your own version of the behaviour. ## Output Screens built, the feature matrix updated, screenshots saved, and a summary: screens done of total, must-haves done of total, what is next. Then `/replica-backend` if the data layer is still fake, else `/replica-test`.
© Jakeschincariol · MIT · Jakeschincariol/replica-skill