evaluate-ux
Evaluate the UX of an existing UI from its inventory — Nielsen's heuristics, WCAG 2.2, task efficiency, consistency, navigation — as a UX index with…
Skill by wfukatsu
Chalk Labs
Need help deploying evaluate-ux?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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/wfukatsu-evaluate-ux
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, productivity
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 and code. 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/evaluate-ux
What's inside
- Skill name
evaluate-ux- Description
- Evaluate the UX of an existing UI from its inventory — Nielsen's heuristics, WCAG 2.2, task efficiency, consistency, navigation — as a UX index with source-cited findings; optionally adds runtime evidence from rendered pages. Requires analyze-ui output.
- License
- MIT
- Instructions
- 339 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: missing
Files (1)
- SKILL.md
SKILL.md (first lines)
# UX Evaluation
Shared files: a path written `@rules/…`, `@skills/…`, `@templates/…` or `@docs/…` is relative to the
plugin root, `${CLAUDE_PLUGIN_ROOT}` — not to the project being worked on. Read it from there.
## Desired Outcome
A UX evaluation of the existing UI that a migration decision can rest on, and that a second run on
the same UI would reproduce:
1. **Findings** — each one a defect from the vocabulary of @rules/ux-evaluation.md §5, on the axis
that owns it, citing a screen, action, input, component, feature or token, a criterion, a
calibrated severity and a concrete recommendation.
2. **Five axis scores and the UXI** — Heuristics, Accessibility, Efficiency, Consistency,
Navigation, each bounded by its metrics and by its own findings' severity, combined by the
formula of §3 into one index and a band that says whether to carry the UI over or redesign it.
3. **An honest method statement** — static expert review from code, plus runtime evidence where it
was captured; never presented as a usability test with real users.
## Decision Criteria
- **Measure, do not estimate** (@rules/ux-evaluation.md §1). Every count, ratio and contrast value
comes from `tools/lib/ui_metrics.py`; findings quote it as `metrics.<path>` with its value.
- **One defect, one finding, on the axis that owns it** (§2, §5). A redundant e-mail field is one
`redundant-input` on E — not also an H8, an H6 and an H4.
- **Scores are fenced twice** (§2): by the metric cap and by the worst severity among the axis's own
findings. Judgement moves a score inside the fence, never outside it.
- **The parent computes the UXI**, after every axis evaluator has returned.
- **Findings before scores.** The report leads with what costs users most; the index summarizes.
- **Security and architecture are routed, not scored** — view-only authorization, client-only
validation and view-layer business logic belong to `/architect:investigate-security` and the
redesign (§1 Out of scope).
## Prerequisites
| Input | Required/Recommended | Source | If missing |
|-------|---------------------|--------|------------|
| `reports/before/{project}/ui-inventory.json` + `ui-design-tokens.json` | Required | `/architect:analyze-ui` | Stop: "run /architect:analyze-ui first" |
| `reports/01_analysis/actors-roles-permissions.md` | Recommended (the pipeline runs `analyze` first) | `/architect:analyze` | Judge per role from `access.roles` alone |
| `reports/02_evaluation/ux-evaluation.json` | Optional | A previous run of this skill | No baseline: every finding is judged fresh |
| `reports/01_ux/personas.md`, `reports/01_ux/journey-maps.md` | Optional (read-only) | `/product:*` | No persona weighting; say so in the method statement |
| A running instance of the UI | Optional | User (`--base-url`) | Static evaluation only |
## Invocation
```
/architect:evaluate-ux [--base-url=<url>] [--storage-state=<path>] [--confirm-versions|--no-confirm-versions] [--auto]
```
| Argument/Flag | Required | Description |
|---------------|----------|-------------|
| `--base-url=<url>` | Optional | A running instance (`http://localhost:8080`). Adds runtime evidence per screen route (Step 4) |
| `--storage-state=<path>` | Optional | A Playwright storage-state file holding an authenticated session. Repeatable; write `<role>=<path>` to capture role-guarded screens with that role's session (`--storage-state=admin=work/ux-evaluation/runtime/admin.json`). Credentials are never asked for or written into a report |
| `--confirm-versions` / `--no-confirm-versions` | Optional | Whether to confirm the resolved Playwright / axe-core versions before installing them for the runtime pass (@rules/dependency-versions.md §4) |
| `--auto` | Optional | Ask nothing: every task is a primary task, carried-forward Open Questions stay open, and runtime capture runs only if `--base-url` is given. `/architect:pipeline` invokes it this way, static only |
## Execution
Write each step's output as soon as it completes; intermediate files go under `work/ux-evaluation/`.
### Step 0: Register the phase
Stamp `evaluate-ux` `in_progress` with `"plugin": "architect"` and `started_at` in
`work/pipeline-progress.json` (@skills/common/progress-registry.md).
### Step 1: Load the model, the baseline and the open questions
1. Locate `reports/before/*/ui-inventory.json` (one per project; `project_name`'s when there are
several) and validate it:
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/tools/lib/ui_inventory.py" <project_dir>
```
A non-zero exit stops the skill — an evaluation of an inventory that is not well-formed carries
its defects into every score.
2. If `reports/02_evaluation/ux-evaluation.json` exists, it is the **baseline**: copy it to
`work/ux-evaluation/baseline.json`. Evaluators receive it (Step 5) and keep a baseline judgement
for an unchanged subject unless new evidence contradicts it.
3. Read the actor matrix and, when they exist, the product personas and journeys (read-only; never
write under `reports/01_ux/`).
4. Read the Open Questions store (`work/context.md` § Open Questions) and pick up every `deferred` /
`unasked` entry whose impact names this skill or the UX of a screen (@rules/open-questions.md §7).
### Step 2: Compute the metrics
```bash
python3 "${CLAUDE_PLUGIN_ROOT}/tools/lib/ui_metrics.py" <project_dir> > work/ux-evaluation/metrics.json
```
This is the `metrics` block of the evaluation, embedded verbatim. Its `caps` are the ceiling of each
axis score.
### Step 3: Primary tasks and carried-forward questions
In one `AskUserQuestion` batch (at most four questions, @rules/open-questions.md §3):
- **Which tasks are primary** — `multiSelect: true`, up to four candidate tasks from
`metrics.tasks`, ranked by `steps`, then by `required_inputs`; "Other" names different ones. No
option is marked recommended: which tasks matter most is the user's call. The Efficiency evaluator
weighs these first.
- **The carried-forward Open Questions** of Step 1, re-asked with their recorded options; answers
are written back to the store under the same `OQ-` id.
Under `--auto`, every task is primary and the carried-forward questions stay as they are; the method
statement says both.
### Step 4: Runtime evidence (only with `--base-url`)
Skip this step without `--base-url`, and always under `/architect:pipeline`.
1. **Driver.** Prefer the Playwright MCP tools when the session has them; otherwise install
`playwright` and `@axe-core/playwright` into `work/ux-evaluation/runtime/` with versions looked
up per @rules/dependency-versions.md (confirmed per `--confirm-versions`) and run a script there.
With the MCP there is no axe-core: its accessibility snapshot and the checks below take its place,
and the method statement says so. If its screenshot tool cannot write under the project, take the
screenshot through its run-code tool (`page.screenshot({ path })`); results that tool returns are
written to their files by the parent. Pass scripts to it as functions, not as strings — a string
silently returns nothing.
2. **Sessions.** Clear the browser's cookies first, so no earlier session is reused silently. Load
each `--storage-state` (the MCP route: `context.addCookies` from the file's cookies). A userFrom wfukatsu/nexus-architect, MIT.
More from wfukatsu/nexus-architect
- 0.632score
config
wfukatsu
Generate ScalarDB configuration files (database.properties, build.gradle dependencies) based on your choices.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
crud-ops
wfukatsu
Show ScalarDB CRUD operation patterns — builder syntax for Get, Scan, Insert, Upsert, Update, Delete with examples.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
docs
wfukatsu
Search ScalarDB / ScalarDL documentation for specific topics.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze
wfukatsu
Extract ubiquitous language, actor-role-permission matrix, and domain-code mapping.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
build-app
wfukatsu
Build a complete ScalarDB application from a domain description.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
capture-followup
wfukatsu
Capture follow-up work discovered during backlog delivery — deferred tasks, out-of-scope findings, doc drift, waived acceptance criteria — into a reviewable…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
generate-test-specs
wfukatsu
Generate BDD scenarios, contract test, unit test, property-based test, integration test, and performance test specifications.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze-data-model
wfukatsu
Comprehensive data layer analysis including entity/relationship analysis, DB design evaluation, and ER diagram generation.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
deliver-backlog
wfukatsu
Drive each Issue under an Epic through implement → review → human approval → merge, in order, resuming from backlog-manifest.json and stopping at every human…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze-ui
wfukatsu
Analyze the user interface of an existing system: screens with their inputs, outputs, actions and access; UI components; features and user tasks; business…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
design-api
wfukatsu
Generate REST/GraphQL/gRPC/AsyncAPI specifications as the project's single, verifiable API contract — named schemas, every status code declared, RFC 9457…
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
design-data-layer
wfukatsu
Generic database design for non-ScalarDB projects.
SkillAFreshness: A★ 13Claude Code +9
Signals
- Stars
- 13
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 8, 2026 (22 days ago)
- Last release
- Oct 9, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/wfukatsu/nexus-architect
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from wfukatsu
- 0.632score
docs
wfukatsu
Search ScalarDB / ScalarDL documentation for specific topics.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
crud-ops
wfukatsu
Show ScalarDB CRUD operation patterns — builder syntax for Get, Scan, Insert, Upsert, Update, Delete with examples.
SkillAFreshness: A★ 13Claude Code +9 - 0.632score
config
wfukatsu
Generate ScalarDB configuration files (database.properties, build.gradle dependencies) based on your choices.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze
wfukatsu
Extract ubiquitous language, actor-role-permission matrix, and domain-code mapping.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
build-app
wfukatsu
Build a complete ScalarDB application from a domain description.
SkillAFreshness: A★ 13Claude Code +9 - 0.629score
analyze-ui
wfukatsu
Analyze the user interface of an existing system: screens with their inputs, outputs, actions and access; UI components; features and user tasks; business…
SkillAFreshness: A★ 13Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get evaluate-ux running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
evaluate-ux skill. Agent Mart. https://agentmart.dev/skills/wfukatsu-evaluate-ux (last updated 2026-10-24)