Skip to content
Back to skills

Ui Ai First

ASecurity

Final audit of a large task before closure — finds which operations are available only via code / curl / SQL and decides per each: automate with a skill or AI agent (A) or create a UI task (B). Protects against invisible usability debt. Walks through each implemented block: reads task.md + reports + guides + code → forms a sub-table with operations → A/B classification → master table + phased roadmap. Does not implement findings — records them as roadmap items. Use when: final step of an ar...

  • 19 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 3, 2026
toolsgobashsqldebuggingrefactoring

Works with

  • claude code
  • cli

Security analysis

A100/100

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

Scanned September 3, 2026

npx -y skills add bearded-illirian/trailmark --skill ui-ai-first --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ui Ai First?

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

Security grade badge for Ui Ai First
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bearded-illirian-ui-ai-first/badge)](https://www.skillsdirectory.com/skills/bearded-illirian-ui-ai-first)

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: ui-ai-first
description: |
  Final audit of a large task before closure — finds which operations
  are available only via code / curl / SQL and decides per each:
  automate with a skill or AI agent (A) or create a UI task (B).
  Protects against invisible usability debt.

  Walks through each implemented block: reads task.md + reports +
  guides + code → forms a sub-table with operations → A/B
  classification → master table + phased roadmap. Does not implement
  findings — records them as roadmap items.

  Use when: final step of an arch-first task before closure; review
  of a closed large task; "/ui-ai-first", "usability audit",
  "what's still only via code"
---

# UI/AI-First Protocol

Final protocol of the `*-first` family. Launched **after** implementing a large task — before formal closure. Protects against invisible usability debt: features implemented in code but unavailable to a non-developer (everything via curl / SQL / Claude Code).

## Input

A completed `arch-first` task near closure; its `task.md`, block reports, guides, and code changes.

## Output

`ui-ai-first-report.md` with operations classified A (automate via skill / AI agent) or B (build UI), and a phased roadmap of B items.

## Hands off to

`ship-first` (called from ship-first Step 0.6 when `run_ui_ai_first=true`).

---

## Introduction

### Why it's needed

Every large task leaves "code-only" operations. In reports this doesn't sound like a problem — "feature works", "endpoint in prod". But when an operator wants to use the capability — they hit curl with admin_password in JSON or SQL INSERT into several tables.

3 months later these capabilities effectively exist only on paper — no one but the task author uses them. This is **technical debt that looks like "everything's ready"**.

### A/B classification principle

For each "code-only" operation — one of two:

- **A — skill / AI agent** for rare or technical operations. Quick to build, cheap to run
- **B — UI task** for frequent operator operations where a skill is insufficient — need a form, button, dashboard

Not every feature needs UI. Not every operation needs a skill.

### What it does NOT do

Does not implement findings. Only classifies and forms a prioritized roadmap. Implementation — separate work streams with their own library-first / plan-first.

---

## Step 1 — Get task_path

If passed as argument — use. If not — ask user or propose the last closed task from routing DB.

Verify task is **actually closed**:
- task.md has blocks with ✅
- ≥1-2 `report-NN.md` in task log

If not — stop: "Task is not yet closed. Audit is premature."

---

## Step 2 — Gather list of implemented blocks

Read task.md → all blocks with ✅ or "Done" mark. Ignore planned or cancelled.

For each block record: number/name, `report-NN.md`, related guides, commits.

---

## Step 3 — Propose sub-table structure for approval

Rule: **1 task block = 1 sub-table**.

**Exception:** if a block has significant sub-blocks with many separate operations — extract them as **separate Sub-tables**. Don't merge — focus is lost.

Show user numbered list of S1 → Sn with expected volume. Mark hot zones with ⭐. Wait for approval.

---

## Step 4 — Pin structure in the master file

Create `{log_dir}/ui-ai-first-master.md` with skeleton:

```markdown
# UI/AI-First Audit — {task_slug}

**Start date:** YYYY-MM-DD

## Structure
[approved sub-table list]

## Sub-tables
See: ui-ai-first-b1.md, ui-ai-first-b2.md, ...

## Master table
[placeholder — Step 6]

## Roadmap
[placeholder — Step 7]

## Summary
[placeholder — Step 8]
```

This is the **index** and final aggregation.

---

## Step 5 — For each block: build sub-table (iteratively)

Cycle: S1 → Sn. Per S:

1. Read sources: `report-NN.md`, guides, key code files
2. Form sub-table per template:

```markdown
## Sub-table S{N} — Block {X} ({name})

**Sources:** {list}

**What the block brought:** {1-3 sentences}

### Operation groups

| # | Operation | Currently how | Frequency | Decision (A/B/–) | Skill/task |
|---|-----------|---------------|-----------|-------------------|------------|
| 1 | ... | ... | ... | A | /skill-name — description |
| 2 | ... | ... | ... | B | UI task — description |

### Result S{N}

- UI tasks: {N}
- Skills: {M}
- Main takeaway: {1-3 sentences}
```

3. Show user → approve → write to `ui-ai-first-b{N}.md`
4. Next block

### Frequency categories

| Level | When |
|---|---|
| High | Daily / several times per week |
| Medium | Weekly / monthly |
| Low | Quarterly, ad-hoc, debugging |
| Very low | One-off, GDPR / incident-only |

### Decisions

| Code | When |
|---|---|
| **A** | Rare/technical — skill/agent faster to build |
| **B** | Frequent operator — needs UI |
| **A + B** | Skill as stopgap, UI mid-term as stable solution |
| **–** | Neither needed — explain why |

---

## Step 6 — Master table

Merge all operations. Sort by priority:

1. **High ⭐** — frequent operator ops without A/B + critical blockers + HIGH bugs
2. **Medium** — frequent ops with A + medium-frequency ops
3. **Low** — rare, maintenance, optional
4. **Architectural TODO** — cross-cutting system improvements

Format:

```markdown
## Master table

### High priority ⭐
| # | Operation | Sub-table | Decision | Skill/task |

### Medium priority
[same shape]

### Low priority (backlog)
[same]

### Architectural TODO
| TODO | Referenced in |
```

Show user → approve → append to master.

---

## Step 7 — Phased roadmap

Group master table into 6 stages:

| Stage | What | When |
|---|---|---|
| **0 — Prerequisites** | Blockers — without them next stages don't work | Immediately after task closure |
| **1 — Burning pain points** | 3-5 high-priority skills + HIGH bugs | After Stage 0 |
| **2 — Basic automation** | Medium A skills for routine ops | After Stage 1 |
| **3 — UI tasks (mid-term)** | Main B tasks | After Stage 2 |
| **4 — GDPR + long-tail maintenance** | Compliance + rare ops | As client base grows |
| **5 — Backlog** | Low-priority A skills + long-term UI | When there's time |
| **6 — Architectural TODO** | System improvements (lifecycle, audit-log, signed URLs) | Separate streams |

For each Stage — short list of concrete items (skill names + descriptions / UI task names).

---

## Step 8 — Summary by category

```markdown
## Summary

| Category | Count |
|---|---|
| Skills Stage 1 (burning) | ... |
| Skills Stage 2 (basic automation) | ... |
| UI tasks Stage 3 | ... |
| GDPR + maintenance Stage 4 | ... |
| Backlog Stage 5 | ... |
| Architectural TODO Stage 6 | ... |
| **Total skills** | ~N |
| **Total UI tasks** | M |

**Main takeaways:**
- {where the main pain is}
- {what to do first}
- {which risks if not doing}

---

**Audit finished YYYY-MM-DD.**
```

---

## Step 9 — Optional: create backlog items

Ask: "Create separate files in `tasks/backlog/` for each roadmap item? (1=yes / 2=no)"

**If 2 (no):** roadmap stays only in master file. Done.

**If 1 (yes):** for each item create `tasks/backlog/{type}--{slug}.md`:

```markdown
---
type: backlog
created: YYYY-MM-DD
source: ui-ai-first audit of task {task_slug}
priority: high|medium|low
category: skill|ui|architecture
stage: 0-6
---

# {Item name}

**What:** {description}
**Why:** {rationale from audit}
**Source:** see master file — Stage {N}
**Next step:** library-first → plan-first → code (separate pass)
```

---

## Anti-patterns

### ❌ Audit only by guides

Guides cover user-facing aspects. Technical operations (SQL migrations, ad-hoc scripts) are often not mentioned. Without reading reports and code — operations will be missed.

**Rule:** for each block mandatory read `report-NN.md` + key code files.

### ❌ Classify everything as B (UI)

UI is slow and expensive. Most rare/technical operations should be A — much faster and cheaper.

**Rule:** B only when operation is **frequent operator** — otherwise A.

### ❌ Classify everything as A (skill)

Frequent operator operations must be in UI — otherwise the operator is stuck on CLI and Claude Code.

**Rule:** if the operation runs daily or several times per week — it's B.

### ❌ Not extracting sub-blocks as separate S

Hot zones get lost in parent block's sub-table. Gives false signal "parent is routine" while sub-block is the hottest part.

**Rule:** if a block has a sub-block with many separate operations — extract as separate S.

### ❌ Implement findings immediately

`ui-ai-first` is audit, not implementation. If mid-audit you want to write a skill — stop. Breaks focus, triples audit length.

**Rule:** all findings → roadmap items. Implementation — separate streams.

### ❌ Create backlog items automatically

Step 9 is optional. Not every user wants to split a roadmap into 25 files. Ask, don't do by default.

---

## File structure

```
{log_dir}/
├── ui-ai-first-master.md        # structure + master + roadmap + summary
├── ui-ai-first-b1.md            # sub-table S1
├── ui-ai-first-b2.md
└── ui-ai-first-b{N}.md
```

One protocol = one file per iteration.

---

## Launch triggers

- Direct: `/ui-ai-first <task_path>` or `/ui-ai-first` without arguments
- From `arch-first` — automatically as final block of a large task (5+ blocks)
- From `ship-first` — automatically as Step 0.5 before formal closure

---

## When NOT to launch

- Task is not yet closed (no blocks with ✅)
- Small task (1-2 blocks) — audit is more expensive than findings
- Purely refactoring task without new endpoints / tables / operations — nothing to audit

---

## Related skills

- **arch-first** — decomposes and drives large multi-block tasks; may invoke ui-ai-first as final block
- **ship-first** — invokes ui-ai-first at Step 0.5 before formal task closure
- **library-first** — parallel protocol, but for planning code reuse before implementation
- **flow-first** — parallel protocol, for landscape alignment before library-first

---

## Step 99 — Log invocation

```bash
sqlite3 {routing_db} \
  "INSERT INTO skill_invocations (task_id, block_num, skill_name, invoked_at)
   VALUES ('{slug}', '{N}', 'ui-ai-first', datetime('now'))" 2>/dev/null || true
```

If `{slug}` / `{N}` are unknown the row is written with empty values; `|| true` keeps a logging failure from aborting the skill.

Files in this skill

  • INFO.md2.3 KB
  • SKILL.md10.2 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.