Skip to content
Back to skills

Wireframer

ASecurity

Generates standalone HTML/CSS mockups for browser preview, one file per screen/state. Skipped automatically when feature.json.design_source is set.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 19, 2026
developmentgogitfrontend

Security analysis

A100/100

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

Scanned October 19, 2026

npx -y skills add petruseugene/full-development-cycle --skill wireframer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wireframer?

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

Security grade badge for Wireframer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/petruseugene-wireframer/badge)](https://www.skillsdirectory.com/skills/petruseugene-wireframer)

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: wireframer
description: Generates standalone HTML/CSS mockups for browser preview, one file per screen/state. Skipped automatically when feature.json.design_source is set.
disable-model-invocation: true
---

# Wireframer

## When to use

- Feature flow step 4b, only when `feature.json.design_source == null` and `has_ui == true`.

## Required reading

1. Read `${CLAUDE_PLUGIN_ROOT}/skills/playbook/SKILL.md` (the playbook core) before anything else; `${CLAUDE_PLUGIN_ROOT}` is the plugin root stated in your dispatch prompt.
2. `references/html-conventions.md`
3. `references/component-library.html` — canonical paper-sketch components. Copy its `<style>` block verbatim into every wireframe; reuse its markup. Do not invent new patterns.
4. `references/handoff-hints.md`

## The job

1. Read `spec.md` (sections: Users & Scenarios, Requirements).
2. List the screens/states needed (e.g., login form / login form with error / login success). Always include empty + loading + error states for any screen that loads or submits data.
3. For each, write a standalone HTML file at `<feature folder>/wireframes/<screen-state>.html`:
   - Inline CSS only — copy the main `<style>` block (the one without an `id`) from `references/component-library.html` into a `<style>` tag at the top of the file.
   - If `feature.json.platform == "mobile"`: also copy the `<style id="mobile">` block (only then; web wireframes copy the main block only) and render each screen state as one `.phone` frame, using the `#mobile` section's markup.
   - The Google Fonts `@import` at the top of that block is the only allowed external resource.
   - Compose the screen using markup snippets from the library (buttons, fields, alerts, nav, etc.). Match the paper / pencil-sketch style across every wireframe.
   - Use semantic HTML and realistic placeholder copy from the spec — never Lorem ipsum on labels, buttons, or headings.
   - Keep the agent-facing comments (`<!-- usage / a11y / data / interaction -->`) so frontend-dev picks them up.
4. Add an `<feature folder>/wireframes/index.html` listing all screens with links.
5. **Append wireframe ACs to `spec.md`.** This is non-negotiable: the wireframe must produce binding acceptance criteria, not a passive sketch.
   - Open `spec.md` in the feature folder.
   - Append a new section heading `## Wireframe acceptance criteria` at the end of the file (after any existing sections).
   - Number ACs **continuously from the spec-writer's last AC** (e.g. if spec.md ends at AC21, the first wireframe AC is AC22).
   - Emit **one AC per visible column / element / state per screen.** Granular is good — under-spec is the failure mode you're guarding against.
   - Each AC must be **observable from rendered output**: name the screen, name the element, name the data it binds to, and (where the wireframe shows it) the CSS class or token it uses. Examples:
     - `AC22: On /activity, each event row renders 7 columns in this order: timestamp (mono), status dot, message ("${subagent} → ${status} on ${feature_title}"), feature slug pill, phase chip, status chip, duration.`
     - `AC23: On /activity, the phase chip uses class .chip.phase-<phase>; implement / static-check render blue, review renders purple, auto-test / visual-test render orange, commit / git render green.`
     - `AC24: On /activity, the status chip uses class .chip.st-<status-lower>; DONE / APPROVED / PASSED render green; FAILED / CHANGES_REQUIRED / BLOCKED render red.`
     - `AC25: On /activity, the duration column renders HistoryEvent.duration_s as "Xs" / "Xm" / "Xm Ys".`
     - `AC26: The /activity empty state renders "No activity yet" in text-ink-500.`
   - Anchor each AC to the file path of the wireframe it derives from (e.g. `(wireframes/activity.html row template, lines 351–359)`).
   - If a wireframe contains a state your screen list missed during step 2 (e.g. you only listed "list", but the wireframe shows "list + empty + loading + error"), emit an AC for each state.
   - **Do not weaken or duplicate existing spec ACs.** If spec-writer already covered an aspect, skip it. Wireframe ACs add visual fidelity on top of data semantics.
6. Output one print-style line in the report telling the user how to open the index in their browser.

## Extending the library

If a screen needs a pattern that isn't in `references/component-library.html` and you'll use it in 2+ wireframes, add it to the library first (with `<!-- usage -->` and `<!-- a11y -->` comments), then use it. This keeps the visual language consistent across features.

## Output contract

```yaml
---
status: DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
output_file: docs/features/<folder>/wireframes/index.html
summary: <N screens generated; open <path> in browser>
tokens_used: ~<N>k
duration: <Xm Ys>
---
```

Final message: the YAML block above plus at most 5 lines of prose (playbook core §6).

Files in this skill

  • SKILL.md4.8 KB
  • references/component-library.html70.3 KB
  • references/handoff-hints.md795 B
  • references/html-conventions.md3.9 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.