reverse-wireframe-ui
Use when creating wireframe diagrams from existing app screenshots or mockups.
Skill by DimmKirr
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/dimmkirr-reverse-wireframe-ui
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/reverse-wireframe-ui
What's inside
- Skill name
reverse-wireframe-ui- Description
- Use when creating wireframe diagrams from existing app screenshots or mockups. Triggers when user provides UI screenshots and wants drawio wireframes, component hierarchy documentation, or visual specs. Also use when reverse-engineering UI structure from images for design handoff, documentation, or re-implementation planning.
- License
- MIT
- Instructions
- 336 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- openai.yaml · agents/
- evals.json · evals/
SKILL.md (first lines)
# Reverse Wireframe UI
Create structured draw.io wireframes from existing app screenshots by identifying UI elements, cross-referencing with source code (any framework), and producing annotated `.drawio` + `.png` deliverables.
Works with any UI framework: React Native, SwiftUI, Flutter, Vue, Angular, web apps, etc. The drawio output is framework-agnostic — only the code cross-reference phase is framework-specific.
## When to Use
- User provides screenshots/mockups and wants wireframe diagrams
- Documenting an existing app's UI structure for handoff or re-implementation
- Creating visual specs from a running app or design screenshots
- Need to map screenshot elements to actual component names in code
- Migrating between frameworks (e.g. React Native → SwiftUI) and need a visual spec as bridge
## Workflow
```dot
digraph wireframe_flow {
rankdir=TB;
"1. Inventory screens" -> "2. Vision analysis";
"2. Vision analysis" -> "3. Code cross-reference";
"3. Code cross-reference" -> "4. Build drawio XML";
"4. Build drawio XML" -> "5. Export PNG";
"5. Export PNG" -> "6. Visual comparison";
"6. Visual comparison" -> "4. Build drawio XML" [label="differences found"];
"6. Visual comparison" -> "7. Done" [label="matches"];
}
```
## Phase 0: Pre-flight Checks
Before processing screenshots, verify they fit within Claude's vision limits:
1. **Check dimensions**: Run `identify -format "%wx%h %f\n" *.png` (ImageMagick) on all screenshots
2. **Resize if needed**: If any dimension exceeds **1568px**, resize: `mogrify -resize "1568x1568>" *.png`
- Claude's recommended max is 1568px on the longest side
- 2000px is the hard limit for multi-image requests
- iPhone @3x screenshots (1170x2532) **always** need resizing
3. **Verify**: Re-check dimensions after resize to confirm all are within limits
Skip this phase only if you've confirmed all images are already ≤1568px.
## Phase 1: Inventory Screens
Glob the screenshot directory. Name each screen by its file name pattern:
- `Screen - Main.png` = main/default state
- `Screen - Main - Filter Active.png` = variant with a filter selected
- `Screen - Detail Popup.png` = popup/modal overlay
Group screens by base state vs. variants vs. overlays. Variants share most elements with the base — only document the delta.
## Phase 2: Vision Analysis
Read each screenshot with the `Read` tool (LLM vision). For each screen, identify **top-to-bottom**:
1. **Status bar** (OS chrome)
2. **Navigation bars** (utility bar, header)
3. **Scrollable content sections** (cards, lists, filters)
4. **Floating elements** (FABs, overlays)
5. **Tab bars** (bottom navigation)
For each element, note:
- **Visual role**: pill, card, badge, text label, icon button, separator
- **Content**: actual text/values shown
- **Color**: fill, border, text colors (use hex from the screenshot)
- **State**: active/inactive, selected/unselected, expanded/collapsed
- **Grouping**: which elements are visually contained in panels/cards
## Phase 3: Code Cross-Reference
**If no codebase is visible in the current working directory, ask the user:** "Is there source code available for this app? If so, where?" — the wireframe is much more useful when element names map to real component names.
If code is available, search for component names that map to visual elements. This phase is framework-agnostic — adapt the search strategy to the tech stack. If no code exists, use generic descriptive names (e.g. `category-filter-pills`, `provider-bar`, `stats-card`).
### Searching large files
App entry points can be enormous (2MB+). Never try to read the whole file — it will exceed token limits. Instead:
1. **Grep for imports first** — find component names used on the screen
2. **Grep for render functions / template sections** — search by visible text strings from the screenshot
3. **Read targeted offsets** — once you find the line number, read ±40 lines around it
4. **Read the imported component files** — they're usually small and self-contained
**React / React Native example:**
```bash
grep "import.*from" app/(tabs)/index.tsx | head -30
grep "ITEMS FOUND\|FEATURED\|renderHeader\|renderMainTabs" app/(tabs)/index.tsx
```
**Vue / Nuxt example:**
```bash
grep "<template>\|<script.*setup>\|defineComponent" pages/index.vue
grep "ITEMS FOUND\|FeaturedCard\|CategoryFilter" components/**/*.vue
```
**SwiftUI example:**
```bash
grep "struct.*View\|var body" Sources/Views/*.swift
grep "Text(\"ITEMS FOUND\")\|NavigationStack" Sources/Views/HomeView.swift
```
**Flutter example:**
```bash
grep "class.*Widget\|build(BuildContext" lib/screens/*.dart
grep "'ITEMS FOUND'\|FeaturedCard\|CategoryFilter" lib/screens/home_screen.dart
```
### Build a mapping table
| Visual Element | Component/Function | File |
|---|---|---|
| Category filter pills | `renderCategoryTabs()` / `CategoryFilterBar` | `app/(tabs)/index.tsx` |
| Provider chips | `<ProviderBar compact />` | `src/components/ProviderBar.tsx` |
| Metric card | `<MetricCard compact />` | `src/components/metrics/MetricCard.tsx` |
| Bottom tab bar | Tab layout config | `app/(tabs)/_layout.tsx` |
This mapping goes into the annotation panel of the wireframe.
**CRITICAL — This mapping also drives Phase 4 layer definitions.** Each component/function in the mapping table becomes a drawio layer. Do NOT proceed to Phase 4 without this table complete. When dispatching sub-agents for parallel wireframe generation, the mapping table must be completed first and included in each agent's prompt.From DimmKirr/skills, MIT.
More from DimmKirr/skills
- 0.570score
drawio-diagram
DimmKirr
Use when working with .drawio diagrams — creating new architecture diagrams from scratch, cleaning up layout, analyzing positioning, fixing alignment or…
SkillAFreshness: AClaude Code +9 - 0.570score
git-group-commit
DimmKirr
Group uncommitted changes into feature commits with conventional messages, and emit runnable commit artifacts.
SkillAFreshness: AClaude Code +9 - 0.570score
data-engineer
DimmKirr
Data quality verification skill for data engineering tasks.
SkillAFreshness: AClaude Code +9 - 0.558score
git-pr-message
DimmKirr
Generate a pull request description from committed groups and save it to .scratch/PR.md.
SkillAFreshness: AClaude Code +9 - 0.558score
continue-debug
DimmKirr
Analyze the output of the most recent debug run in .scratch/debug/ and iterate with ranked hypotheses.
SkillAFreshness: AClaude Code +9 - 0.529score
kitcut-implement
DimmKirr
Reproduce a working application from a kitcut-artifact/2.0 bundle (facts.json + checks.json + requirements/ + digests/; evidence/ optional and…
SkillBFreshness: BClaude Code +9 - 0.529score
vector-designer
DimmKirr
Use when creating logos, icons, SVG graphics, or any vector design work requiring visual iteration.
SkillBFreshness: BClaude Code +9 - 0.529score
devops-engineer
DimmKirr
Use when making infrastructure changes (nix, docker, MCP, terraform) that need validation, when an E2E test is too expensive for the iteration cycle, when you…
SkillBFreshness: BClaude Code +9 - 0.529score
frontend-qa
DimmKirr
Frontend QA workflow for Expo/React Native web apps.
SkillBFreshness: BClaude Code +9 - 0.526score
pm
DimmKirr
Project manager for backlog grooming, ticket analysis, and implementation status tracking.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-qa
DimmKirr
iOS Visual QA using Go tests + Claude Vision.
SkillBFreshness: BClaude Code +9 - 0.524score
git-commit-message
DimmKirr
Generate a structured conventional commit message for current changes and save it to .scratch/COMMIT.md.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 4, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/DimmKirr/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from DimmKirr
- 0.570score
data-engineer
DimmKirr
Data quality verification skill for data engineering tasks.
SkillAFreshness: AClaude Code +9 - 0.570score
git-group-commit
DimmKirr
Group uncommitted changes into feature commits with conventional messages, and emit runnable commit artifacts.
SkillAFreshness: AClaude Code +9 - 0.570score
drawio-diagram
DimmKirr
Use when working with .drawio diagrams — creating new architecture diagrams from scratch, cleaning up layout, analyzing positioning, fixing alignment or…
SkillAFreshness: AClaude Code +9 - 0.558score
continue-debug
DimmKirr
Analyze the output of the most recent debug run in .scratch/debug/ and iterate with ranked hypotheses.
SkillAFreshness: AClaude Code +9 - 0.558score
git-pr-message
DimmKirr
Generate a pull request description from committed groups and save it to .scratch/PR.md.
SkillAFreshness: AClaude Code +9 - 0.529score
kitcut-implement
DimmKirr
Reproduce a working application from a kitcut-artifact/2.0 bundle (facts.json + checks.json + requirements/ + digests/; evidence/ optional and…
SkillBFreshness: BClaude Code +9
Cite this page
reverse-wireframe-ui skill. Agent Mart. https://agentmart.dev/skills/dimmkirr-reverse-wireframe-ui (last updated 2026-10-24)