agentsclimarketplace

Ui

Skill samdae/archflow/skills/ui

Generate UI specification from requirements and backend API design. Derives screen list, component hierarchy, and user interactions. Triggers: ui, ui spec, screen designFrom its SKILL.md

Install
npx -y skills add samdae/archflow --skill ui

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.4 KB, as published. Nobody here has run it

Global Rules: Adheres to rules/archflow-rules.md.

Model: Opus required. UI derivation needs domain knowledge and pattern matching.

UI Workflow

Generate UI specification from requirements + backend API endpoints.

Tool Fallback

ToolAlternative
ReadRequest user to copy-paste document content
AskQuestion"Select: 1) A 2) B" format

Document Structure

docs/{serviceName}/
  ├── spec.md      # Input (requirements)
  ├── arch-be.md   # Input (backend API)
  └── ui.md        # ← This skill's output

Phase -1: Service Discovery

Scan docs/, select service, resolve spec.md and arch-be.md paths.

Phase 0: Skill Entry

0-1. Collect Document Input

If Service Discovery successful: verify spec.md and arch-be.md exist. Both exist → auto-load. Missing → guide to /spec or /arch.

If Service Discovery failed:

{
  "title": "UI Specification",
  "questions": [
    {
      "id": "has_spec",
      "prompt": "Do you have a requirements document? (docs/{serviceName}/spec.md)",
      "options": [
        {"id": "yes", "label": "Yes - I will provide via @filepath"},
        {"id": "no", "label": "No - Run /spec first"}
      ]
    },
    {
      "id": "has_arch_be",
      "prompt": "Do you have a backend design document? (docs/{serviceName}/arch-be.md)",
      "options": [
        {"id": "yes", "label": "Yes - I will provide via @filepath"},
        {"id": "no", "label": "No - Run /arch (Backend) first"}
      ]
    }
  ]
}

Either no → guide to required skill. Both yes → request paths → 0-1.5.

0-1.5. Responsive Option

{
  "title": "Target Platform",
  "questions": [
    {
      "id": "responsive",
      "prompt": "What platforms are you targeting?",
      "options": [
        {"id": "mobile", "label": "Mobile only - 375px viewport"},
        {"id": "desktop", "label": "Desktop only - 1280px+"},
        {"id": "responsive", "label": "Both (Responsive) - Mobile First"}
      ]
    }
  ]
}

Breakpoint hints for responsive:

breakpoints:
  mobile: "< 640px"
  tablet: "640-1024px"
  desktop: "> 1024px"

Record selection in ui.md header, apply to all wireframes.

0-2. Infer serviceName

Extract from path: docs/blog/spec.md → serviceName = "blog" → output: docs/blog/ui.md

0-3. Load Documents

Read spec.md (functional requirements) and arch-be.md (API endpoints, schemas).


Phase 1: Derive Screen List

1-1. Analyze Endpoints

Endpoint PatternScreen Derivation
GET /resourcesList screen
GET /resources/:idDetail screen
POST /resourcesCreate form
PUT /resources/:idEdit form
DELETE /resources/:idDelete confirmation (modal)
POST /auth/loginLogin screen
POST /auth/registerRegistration screen

1-2. Map Requirements to Screens

Cross-reference spec.md with derived screens. Flag screens without requirements or requirements without screens.

1-3. Generate Screen List

#ScreenRouteRelated EndpointsAuth RequiredSpec Reference
1{name}{route}{endpoints}Yes/NoFR-xxx

1-4. User Checkpoint

"I've derived {N} screens from the API endpoints. Please review:

{Screen List Table}

Should I proceed with detailed UI specifications?"


Phase 2: Screen Specifications

For each screen:

2-1. UI Components (ASCII Wireframe)

┌─────────────────────────────────────────────┐
│ [Logo]                    [Login/Profile]   │
├─────────────────────────────────────────────┤
│                                             │
│  Main content area                          │
│                                             │
└─────────────────────────────────────────────┘

2-2. Component Hierarchy

{ScreenName}Page:
  - Header:
      - Logo
      - Navigation
      - AuthButton
  - MainContent:
      - {Feature}Section:
          - {Component}
          - {Component}
  - Footer

2-3. States Definition

StateTriggerUI Behavior
loadingInitial fetchShow skeleton/spinner
emptyNo dataShow empty state message
errorAPI errorShow error message + retry
loadedData receivedRender content

2-4. User Interactions

#ActionTriggerAPI CallResult
1{action}{event}{endpoint}{outcome}

Phase 3: Shared Components

3-1. Identify Reusable Components

ComponentUsed InPropsDescription
HeaderAll pages-Global navigation
AuthButtonHeaderisLoggedIn, userLogin/profile toggle
PaginationList pagespage, total, onChangePage navigation
ConfirmModalDelete actionstitle, onConfirmConfirmation dialog
LoadingSkeletonAll pagesvariantLoading placeholder
EmptyStateList pagesmessage, actionNo data state
ErrorMessageFormsmessageValidation/API error

3-2. Design System Reference

recommendation:
  ui_library: "{recommended library}"
  styling: "{styling approach}"
  icons: "{icon library}"
patterns:
  layout: "{layout pattern}"          # e.g., max-w-4xl mx-auto
  spacing: "{spacing system}"         # e.g., Tailwind default scale
  typography: "{typography approach}"  # e.g., prose class for content

Phase 4: Generate ui.md

Template

# UI Specification: {Feature Name}

> Created: {date}
> Service: {serviceName}
> Platform: {mobile|desktop|responsive}
> Requirements: docs/{serviceName}/spec.md
> Backend API: docs/{serviceName}/arch-be.md

## 0. Responsive Strategy
```yaml
platform: "{type}"
breakpoints:              # responsive only
  mobile: "< 640px"
  tablet: "640-1024px"
  desktop: "> 1024px"
approach: "Mobile First"

1. Screen List

#ScreenRouteRelated EndpointsAuth RequiredSpec Reference

2. Screen Specifications

2.1 {ScreenName} ({route})

Purpose: {description} UI Components:

{ASCII wireframe}

Component Hierarchy:

{component tree}

States:

StateTriggerUI Behavior
loading{behavior}{detail}
empty{behavior}{detail}
error{behavior}{detail}
loaded{behavior}{detail}

User Interactions:

#ActionTriggerAPI CallResult

(Repeat for each screen)

3. Shared Components

ComponentPropsUsage

4. Design System Reference

recommendation:
  ui_library: "{lib}"
  styling: "{approach}"
  icons: "{lib}"

5. Next Steps

Run /arch Frontend to generate technical architecture. Input: docs/{serviceName}/spec.md + docs/{serviceName}/ui.md


Save: `docs/{serviceName}/ui.md`

## Phase 5: Completion Report

Report: service, screen count, component count, derived-from docs. Next: run `/arch` Frontend.

---

# Integration Flow

[spec] → spec.md ↓ [arch] (Backend) → arch-be.md ↓ [ui] → ui.md ↓ [arch] (Frontend) → arch-fe.md ↓ [build] (Frontend) → Implementation


## Important Notes

1. **Endpoint-driven**: every screen maps to at least one endpoint; screens without endpoints may indicate missing backend features
2. **Domain patterns**: use common UI patterns for the domain (e-commerce, blog, dashboard, etc.)
3. **State handling**: every screen must define all 4 states (loading/empty/error/loaded)
4. **ASCII wireframes**: focus on component structure and hierarchy, not visual design

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.