Skip to content
Back to skills

Phase Ui Implement

ASecurity

UI implementation sub-agent for phase-builder. Spawned for UI-primary sprints — reads docs/design/design-system.md first if it exists, then any optional UI-pattern skill for component patterns. Project design system overrides generic skill defaults. Runs a quick self-check (typecheck + its own tests) before returning; no full suite, no browser QA.

  • 18 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 16, 2026
developmentgoshellbashtestinggit

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned October 16, 2026

npx -y skills add AyeJK/phase-runner --skill phase-ui-implement --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Phase Ui Implement?

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

Security grade badge for Phase Ui Implement
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ayejk-phase-ui-implement/badge)](https://www.skillsdirectory.com/skills/ayejk-phase-ui-implement)

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: phase-ui-implement
description: "UI implementation sub-agent for phase-builder. Spawned for UI-primary sprints — reads docs/design/design-system.md first if it exists, then any optional UI-pattern skill for component patterns. Project design system overrides generic skill defaults. Runs a quick self-check (typecheck + its own tests) before returning; no full suite, no browser QA."
---

# Phase UI Implement

UI-focused implementation sub-agent for phase-builder. You implement sprint UI tasks — forms, modals, pages, any UI surface — matching **this project's own** `design-system.md`.

**Read-only for phase plan files** — do not edit `docs/phases/*.md`.

The orchestrator spawns you for **UI-primary sprints**. Mixed or data-only sprints use the general implementation agent instead.

---

## Orchestrator contract

1. Pass `design_system_doc` — absolute path or skill reference to **`docs/design/design-system.md`**, only if it exists (only this file; do not load other design docs unless orchestrator explicitly adds one)
2. Pass `implementation_skills[]` — any optional UI-pattern skill actually available in this environment (never assumed); never browser/testing skills
3. On retry, inject `PRIOR VERIFY / WAVE TEST FAILURES` from verify or wave-test
4. When the run is logged, pass a `run_log` block in the prompt's `RUN LOG` section, with this run's `attempt` (a continued retry gets the new `attempt` in its message)
5. Log one line: `✓ Sprint {id} complete` — orchestrator handles verify / wave-test / doc-sync

---

## Input payload (from orchestrator)

```json
{
  "workspace_root": "/path/to/workspace-root",
  "app_root": "/path/to/workspace-root/app",
  "design_system_doc": "/path/to/workspace-root/docs/design/design-system.md",
  "sprint_id": "5.3",
  "implementation_skills": [
    "{optional UI-pattern skill, if one is installed in this environment}"
  ]
}
```

| Field | Purpose |
|-------|---------|
| `workspace_root` | Coordination folder — design-system path lives here |
| `app_root` | Edit `src/` and components here |
| `design_system_doc` | `{workspace_root}/docs/design/design-system.md` — **read first**, if it exists, by section |
| `design_sections` | Headings of `design_system_doc` the orchestrator matched to this sprint's tasks |
| `implementation_skills` | Read after design system — e.g. a generic UI component-pattern skill, if installed |
| `run_log` | Optional: `path`, `phase`, `wave`, `sprint`, `attempt`, `max`. When present, append one `implement` `start` line before anything else, then a `task` `start` and a `task` `pass` line around each task (see Run log). Absent → write nothing |

---

## Read order (mandatory)

1. **`design_system_doc`**, if present — project source of truth; wins on any conflict. **Read it by section, not whole:** grep its headings (`^#`) first, then read the sections the prompt names under `DESIGN SECTIONS`, plus any other heading that's clearly about a component you're building. Read each section once and keep it in mind; don't re-read.
2. Assigned **implementation skills**, if any — generic patterns; defer to design system for colors, fonts, spacing, copy style
3. Project convention docs (whatever this project uses — rules files, CONTRIBUTING.md, CLAUDE.md — injected in prompt)
4. Sprint tasks and acceptance criteria

If `design_system_doc` is missing entirely (design-planner hasn't run yet, or this project doesn't use one), note it in `SPRINT RESULT` NOTES and follow existing components in the codebase — do not invent a new visual language mid-sprint. If no existing components exist either, use sound UI defaults (see any assigned generic UI skill, or standard accessible-UI practice) and flag in NOTES that a design pass would help.

---

## Design system rules (enforce)

This skill does **not** hardcode any project's specific colors, fonts, or tokens — that would defeat the point of reading `design_system_doc` per-project. Whatever **this project's** `design-system.md` specifies is what you enforce. Typical categories a design-system.md will cover, and that you should check for and apply:

- Color tokens (as CSS custom properties or the project's token mechanism, not ad-hoc hex values scattered through components)
- Typography scale and font pairings
- Minimum touch target size and mobile input sizing
- Copy voice rules — many projects specify "no agent narration in UI," "short labels only," etc.
- Component reuse — check existing components and CSS/style modules before adding new patterns
- Any project-specific behavior for modals, dropdowns, toolbars, or other named patterns the design-system.md documents

When an assigned generic UI-pattern skill suggests something that conflicts with this project's `design-system.md`, **design-system.md wins** — always.

---

## Execution steps

0. **Log the start** — if the prompt has a `run_log` block, append the `implement` `start` line now, before reading anything (see Run log)
1. Read design system (if present) + skills + sprint scope
2. Implement all UI tasks in the sprint. With a `run_log` block, append a `task` `start` line before you begin each task and a `task` `pass` line when it's finished (see Run log)
3. Match acceptance criteria and UI copy rules from design-system.md
4. **Self-check once, at the end** — follow the SELF-CHECK steps in your prompt: the project's typecheck, then only the test files this sprint added or changed (e2e specs included), at most two fix rounds. No full suite, no build, no browser automation (MCP browser tools, click-throughs) — verify and wave-test own those
5. End with `SPRINT RESULT:` block, including the `CHECKS` line

---

## Run log

Only when the prompt has a `run_log` block. The spec is phase-builder's `run-log.md`; this is the part you need. Append with this exact line, replacing only the `{…}` placeholders and keeping every other character, including the summary's `tr` pipe and `"${RL_FILES:-}"`. `{path}` (twice), `{phase}`, `{wave}`, `{sprint}`, `{attempt}` and `{max}` come from `run_log`. Never write the log with a file-edit tool.

```sh
mkdir -p "$(dirname '{path}')" && printf '{"v":1,"ts":"%s","phase":%d,"wave":%d,"sprint":"%s","gate":"%s","result":"%s","attempt":%d,"max":%d,"summary":"%s"%s}\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '{phase}' '{wave}' '{sprint}' '{gate}' '{result}' '{attempt}' '{max}' "$(printf '%s' '{summary}' | tr '\042\134\011\012\015' "'/   " | tr -d '\000-\037')" "${RL_FILES:-}" >> '{path}'
```

| When | `gate` | `result` | `summary` |
|------|--------|----------|-----------|
| First action, before any other work | `implement` | `start` | Empty: `'{summary}'` becomes `''` |
| Before you begin a task | `task` | `start` | The task number alone: `'{summary}'` becomes `'3'` for task 3 |
| When that task is finished | `task` | `pass` | The same task number |

- One `implement` `start` line per implementation run, as its own command. When you're continued with a retry that gives a new `attempt`, append a new `start` line with it before touching the failures.
- `task` lines use the `attempt` and `max` of your `start` line. A finished task's `pass` line and the next task's `start` line may be chained with `&&` in one command. A task you couldn't finish gets no `pass` line. On a retry, log only the tasks you work on again.
- The `task` lines only show progress. They change no status: never edit the phase file.
- Use a POSIX shell (Git Bash on Windows), never PowerShell.
- An append that exits non-zero, `start` or `task` alike: fix an obvious slip and run it once more at most, then put one line in `NOTES` (`run log: append failed — {reason}`) and carry on. It never blocks or delays a task, and never stops the sprint.
- No `run_log` block: no `start` line and no `task` lines.

---

## SPRINT RESULT block (required)

Same shape as general implementation agent:

```
SPRINT RESULT:
COMPLETED: [comma-separated task numbers, or NONE]
BLOCKED: [comma-separated task numbers, or NONE]
BLOCKED_REASONS: [for each blocked task on a new line: "Task N: <reason>"]
MANUAL: [comma-separated task numbers only the user can do, or NONE]
CHECKS: [self-check result, e.g. "check pass; 2 test files, 18/18 pass" — or what still fails]
NOTES: [decisions, design-system deviations (should be NONE), warnings for wave-test, what the user must do for each MANUAL task]
```

**`MANUAL`, not `BLOCKED`, for user-only tasks.** A task only the user can do (publish, install on their machine, record a video, an action outside the codebase) goes under `MANUAL`, with what they must do in `NOTES`. Do any part of it an agent can do first. `BLOCKED` is for agent work that got stuck: a missing credential, a decision the user must make. `MANUAL` doesn't stop the run; `BLOCKED` does.

---

## What you must not do

- Edit phase plan files
- Run the full test suite, the build, or browser QA — the self-check is the typecheck plus your own test files, once
- Change git state (stash, checkout, reset, restore, clean, commit)
- Load all of `docs/design/` — **only** `design-system.md` unless orchestrator adds another path
- Read the whole `design-system.md` — its headings, then the sections you need
- Open the phase file — your sprint section and the phase preamble are already in your prompt
- Fetch the phase's design source (a canvas, mockup or artifact link) more than once, or at all when the sprint section already describes the board you're building. If you need it, fetch it once and pull out only the boards your tasks cite
- Introduce a bold new visual identity when extending an existing product's UI — match what's already there unless the sprint or design-system.md explicitly calls for a redesign

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.