Agent skill

UI Behavior Spec

by bladeofgod in bladeofgod/flutter-ai-harness

适用:根据已批准任务、产品规则、原型或 Figma 输入生成、审计或执行 Version 1 UI 行为 Spec。不适用:替代产品决策、实现 UI、操作系统原生界面或探索未定义流程。触发词:UI Spec、行为契约、plan-spec、spec-writer、spec-auditor、app-operator、Marionette 验收。

MITAuto-check passedMobile

Install UI Behavior Spec

skills CLI
$ npx skills add bladeofgod/flutter-ai-harness --skill ui-behavior-spec -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bladeofgod/flutter-ai-harness ui-behavior-spec --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bladeofgod/flutter-ai-harness.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ui-behavior-spec .claude/skills/ui-behavior-spec && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ui-behavior-spec
GitHub stars
116
Token cost
~1.4k tokens
SKILL.md length
208 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
MIT

At a glance

适用:根据已批准任务、产品规则、原型或 Figma 输入生成、审计或执行 Version 1 UI 行为 Spec。不适用:替代产品决策、实现 UI、操作系统原生界面或探索未定义流程。触发词:UI Spec、行为契约、plan-spec、spec-writer、spec-auditor、app-operator、Marionette 验收。

  • Works in 5 steps: 人明确调用 /plan-spec 后,spec-writer… → 人明确调用 /execute-ui-spec… → 审计为 passed 后,execute-ui-spec 按… → …
  • Mobile work in your project
  • SKILL.md covers 事实与输出, Version 1 Schema, 字段约束 and 静态审计, plus 2 more sections
  • Calls bash and make

What it does

UI Behavior Spec is an agent skill from bladeofgod/flutter-ai-harness. 适用:根据已批准任务、产品规则、原型或 Figma 输入生成、审计或执行 Version 1 UI 行为 Spec。不适用:替代产品决策、实现 UI、操作系统原生界面或探索未定义流程。触发词:UI Spec、行为契约、plan-spec、spec-writer、spec-auditor、app-operator、Marionette 验收。

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile. It works with Figma. The repository describes itself as: An AI-native engineering harness for production Flutter and hybrid mobile app repositories. The licence is MIT.

When your agent uses it

  • Mobile work in your project

Example prompts

  • “/ui-behavior-spec”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. 人明确调用 /plan-spec 后,spec-writer 从事实来源生成或修改 Spec,运行 make spec-check;无待决问题时输出 ready。
  2. 人明确调用 /execute-ui-spec 并选择平台后,spec-auditor 才审计 ready Spec,对照实现输出结构化审计,不修改 Spec 或实现。
  3. 审计为 passed 后,execute-ui-spec 按 flutter-debug-runtime Skill 只为用户选择的平台构建、安装并启动 Debug App。
  4. app-operator 校验 Spec、审计和实现摘要一致,每次只执行一个用户明确选择的平台。
  5. Operator 依次执行 Step、Assertion、Teardown,首次失败时采集脱敏截图和日志,最终断开连接并写该平台的结构化运行报告。

What it can do on your machine

Read from SKILL.md and the folder at commit 9f1a1ca. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bash
    • make

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

UI Behavior Spec loads about 1.4k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 208 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~47
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from bladeofgod/flutter-ai-harness at commit 9f1a1ca, republished under its MIT licence (© bladeofgod). 208 words, ~1,353 tokens.

Download SKILL.mdSave it as .claude/skills/ui-behavior-spec/SKILL.md (or your agent's skills folder).
name
ui-behavior-spec
description
适用:根据已批准任务、产品规则、原型或 Figma 输入生成、审计或执行 Version 1 UI 行为 Spec。不适用:替代产品决策、实现 UI、操作系统原生界面或探索未定义流程。触发词:UI Spec、行为契约、plan-spec、spec-writer、spec-auditor、app-operator、Marionette 验收。
paths
docs/app-operator/**/*.spec.yaml, docs/app-operator/**/*.audit.yaml, docs/app-operator/**/*.run.yaml, .claude/agents/spec-writer.md…

UI 行为 Spec

把产品输入转换为独立于实现、可静态审计并可由 Marionette 执行的行为契约。

事实与输出

事实优先级依次为:已批准任务和产品规则、Figma/原型中的明确行为、代码中的 Route、Key、Semantics 与可操作边界。代码不得反向定义产品要求;存在会改变用户行为的缺失决策时生成 draft,不得猜测。

  • Spec 统一写入 docs/app-operator/specs/<spec-id>.spec.yaml;任务卡、产品规则、Figma 和原型只作为 sources。
  • 静态审计写入同目录 <spec-id>.audit.yaml。
  • 运行报告:按平台写入 docs/app-operator/runs/<spec-id>/<platform>.run.yaml;同一平台重新执行时覆盖当前报告,历史由 Git 保存。

Spec、Audit 和 Run 是人工独立安排的自动化证据,不属于普通任务卡元数据、执行门禁或归档产物。ready Spec、passed Audit 或已有 Run 均不得自动触发后续阶段。

Version 1 Schema

yaml
version: 1
revision: 1
id: profile-save-name
status: ready
title: 保存个人资料名称
sources:
  - type: task
    ref: profile-save-name
platforms: [android, ios]
steps:
  - id: open-profile
    action: tap
    target: {by: semantics, value: 个人资料}
  - id: enter-name
    action: enter_text
    target: {by: key, value: profile_name_input}
    value: Demo User
  - id: save
    action: tap
    target: {by: semantics, value: 保存}
assertions:
  - id: save-succeeded
    condition: visible
    target: {by: text, value: 保存成功}
teardown:
  - id: close-profile
    action: tap
    target: {by: semantics, value: 关闭}
openQuestions: []

字段约束

  • version 固定为 1;revision 从 1 开始,行为内容变化时递增;id 和各条目 id 使用小写 kebab-case。
  • status 只允许 draft、ready。
  • sources 至少一个,type 只允许 task、product、prototype、figma、code。task Source 的 ref 使用稳定任务 slug,校验器同时查找活动与归档任务,不保存会随归档变化的任务路径;其他本地 Source 使用仓库相对路径。
  • platforms 至少一个,只允许 android、ios。
  • teardown 使用与 Step 相同的结构,无清理动作时显式写 []。
  • Steps 必须从 App 启动后的可观察界面开始,完整编码 App 内导航和交互,不依赖未声明的页面状态。
  • ready 表示内容完整、没有待决问题且通过机器校验,不要求逐条人工 Review;draft 必须列出 openQuestions,由人补充决策后再继续。
  • ready 必须有 Step 和 Assertion,且 openQuestions 为空。

Step 的 action 只允许 tap、enter_text、scroll_until_visible、wait_for。Assertion 的 condition 只允许 visible、not_visible、text_equals、enabled、disabled。Target 的 by 只允许 key、semantics、text;禁止坐标和 Widget 层级索引。enter_text 必须提供字符串 value,text_equals 必须提供字符串 expected,等待覆盖使用正整数 timeoutMs。

Assertion 只验证用户可观察状态,不断言私有方法、Controller 字段或 Mock 调用顺序。

静态审计

审计文件使用 Version 1 YAML:

yaml
version: 1
spec: docs/app-operator/specs/profile-save-name.spec.yaml
specId: profile-save-name
specRevision: 1
status: passed
implementationDigest: <sha256>
items:
  - id: open-profile
    status: covered
    evidence: [app/packages/app_features/lib/feature_profile/routes.dart:18]
  - id: enter-name
    status: covered
    evidence: [app/packages/app_features/lib/feature_profile/pages/profile_page.dart:42]
  - id: save
    status: covered
    evidence: [app/packages/app_features/lib/feature_profile/pages/profile_page.dart:51]
  - id: save-succeeded
    status: covered
    evidence: [app/packages/app_features/lib/feature_profile/pages/profile_page.dart:64]
  - id: close-profile
    status: covered
    evidence: [app/packages/app_features/lib/feature_profile/pages/profile_page.dart:72]

审计项必须逐一覆盖 Spec 中的 Step、Assertion 和 Teardown ID,状态只允许 covered、missing、wrong。covered、wrong 的证据必须是仓库内真实生产实现的 file:line,不得引用测试、文档、生成文件、仓库外路径或越界行号;missing 不得包含证据。passed 要求全部为 covered,并运行 bash scripts/dart-tool.sh run tool/implementation_digest.dart <证据文件路径...> 计算去重后全部证据文件的 implementationDigest;实现文件变化后旧审计自动失效。spec、specId 和 specRevision 必须与同目录 Spec 一致;修改 Spec 后必须重新审计。

运行报告

每个由人实际选择并执行的平台单独生成 Version 1 YAML:

yaml
version: 1
spec: docs/app-operator/specs/profile-save-name.spec.yaml
audit: docs/app-operator/specs/profile-save-name.audit.yaml
specId: profile-save-name
specRevision: 1
implementationDigest: <与 Audit 一致的 sha256>
platform: android
status: passed
environment:
  osVersion: Android 15
  deviceKind: emulator
  buildMode: debug
  flutterVersion: 3.41.9
  marionetteVersion: 0.6.0
items:
  - id: open-profile
    status: passed
    evidence: []
  - id: enter-name
    status: passed
    evidence: []
  - id: save
    status: passed
    evidence: []
  - id: save-succeeded
    status: passed
    evidence: []
  - id: close-profile
    status: passed
    evidence: []

报告必须逐一覆盖 Spec 的全部 ID,条目状态只允许 passed、failed、skipped;总体 passed 要求全部条目 passed。失败条目必须引用 docs/app-operator/evidence/<spec-id>/ 下的脱敏截图或日志。环境只记录平台复现所需的非敏感信息,不记录设备 ID、主机名、用户名、VM Service URI、账号或真实数据。只要求本次由人明确选择的平台生成报告;未选择的声明平台不影响普通任务状态。

角色流程

  1. 人明确调用 /plan-spec 后,spec-writer 从事实来源生成或修改 Spec,运行 make spec-check;无待决问题时输出 ready。
  2. 人明确调用 /execute-ui-spec 并选择平台后,spec-auditor 才审计 ready Spec,对照实现输出结构化审计,不修改 Spec 或实现。
  3. 审计为 passed 后,execute-ui-spec 按 flutter-debug-runtime Skill 只为用户选择的平台构建、安装并启动 Debug App。
  4. app-operator 校验 Spec、审计和实现摘要一致,每次只执行一个用户明确选择的平台。
  5. Operator 依次执行 Step、Assertion、Teardown,首次失败时采集脱敏截图和日志,最终断开连接并写该平台的结构化运行报告。

Marionette 只操作 Flutter Widget Tree。系统权限弹窗等原生系统 UI 必须使用平台自动化,不得写成本 Schema 的 Step。Spec、审计和运行报告均不得记录凭据、VM Service URI、设备标识或真实用户数据。

© bladeofgod, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/ui-behavior-spec of bladeofgod/flutter-ai-harness.

Open the folder on GitHubat commit 9f1a1ca

Compare with similar skills

UI Behavior Spec next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

UI Behavior Spec compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
UI Behavior Spec this skillbladeofgod/flutter-ai-harness116—~1.4kAutomated safety check: PassMIT
Sleek Design Mobile Appssleekdotdesign/agent-skills584—~2.1kAutomated safety check: PassMIT
Tsh UI VerifyingTheSoftwareHouse/copilot-collections284—~7.8kAutomated safety check: NotesMIT
Apple Designvrcm-team/VRCM1791 repos~6.2kAutomated safety check: PassMIT
Jetpack Compose and Multiplatform Expertrcosteira79/android-skills151—~2.6kAutomated safety check: PassMIT
macOS Golden Gate Designgithub/awesome-copilot40k—~2.1kAutomated safety check: PassMIT

Similar skills

  • Sleek Design Mobile Apps

    sleekdotdesign/agent-skills

    Design mobile app screens with Sleek, edit Sleek projects, and implement their designs in React Native or HTML.

    584 GitHub stars~2.1k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Tsh UI Verifying

    TheSoftwareHouse/copilot-collections

    UI verification criteria, structure checklists, severity definitions, and tolerance rules for comparing implementations against Figma designs.

    284 GitHub stars~7.8k tokensUpdated 3 days ago
    MobileAuto-check: notes
  • Apple Design

    vrcm-team/VRCM

    Cross-platform UI/UX design reviewer grounded in Apple's Human Interface Guidelines (122 pages pulled from developer.apple.com, including 57 component pages) plus a design-craft lens for…

    179 GitHub starsUsed in 1 repo~6.2k tokens
    MobileAuto-check passed
  • Guides writing correct, performant Compose and Compose Multiplatform UI across Android, desktop, iOS and web, from state and animation to design-to-code and crash fixes.

    151 GitHub stars~2.6k tokensUpdated 19 days ago
    MobileAuto-check passed
  • macOS Golden Gate Design

    github/awesome-copilot

    Official

    Design, implement, review, or refactor native macOS 27 Golden Gate interfaces in SwiftUI or AppKit.

    40k GitHub stars~2.1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Pulsar Haptics

    software-mansion-labs/skills

    Implement, migrate, design, review, and troubleshoot haptic feedback with Software Mansion Pulsar across React Native, iOS, Android, Kotlin Multiplatform, Flutter, and Web.

    291 GitHub stars~2.6k tokensUpdated 10 days ago
    MobileAuto-check passed

More from bladeofgod/flutter-ai-harness

All 11 skills in this repo
  • Getx Patterns

    bladeofgod/flutter-ai-harness

    适用:代码使用 GetxController、GetxService、Rx、Obx、GetBuilder、Get.find、Bindings 或 Worker。不适用:GetX 路由、Dialog、Snackbar,或 Controller 内隐式查找 API。触发词:GetX、Obx、.obs、Rx、Get.find、GetxService、Worker、Binding。

    116 GitHub stars~462 tokensUpdated 1 mo ago
    Auto-check passed
  • Flutter Debug Runtime

    bladeofgod/flutter-ai-harness

    适用:在 App Operator 或 Marionette 验证前,为 Android/iOS 构建、安装并启动 Flutter Debug App,获取 VM Service URI。不适用:Release 构建、签名配置、系统权限自动化、账号登录或测试数据准备。触发词:flutter run、Debug App、设备安装、VM Service URI、App Operator 前置环境。

    116 GitHub stars~274 tokensUpdated 1 mo ago
    Auto-check passed
  • Dart Coding Standards

    bladeofgod/flutter-ai-harness

    适用:编写或审查 Dart/Flutter 生产代码,尤其是 Controller、Service、Stream、异步任务和依赖注入。不适用:Kotlin、Swift 或生成代码规范。触发词:Dart、Controller、Service、StreamSubscription、unawaited、dynamic、DI、重构。

    116 GitHub stars~228 tokensUpdated 1 mo ago
    Auto-check passed
  • Figma To Flutter

    bladeofgod/flutter-ai-harness

    适用:读取 Figma 或根据节点实现 Flutter UI,包括 Token 反查、Auto Layout、组件 Variant、Asset 和视觉验证。不适用:替代产品决策,或从像素推断设计稿不可见的数据行为。触发词:Figma URL、node-id、design-to-code、视觉还原、Auto Layout、design token。

    116 GitHub stars~270 tokensUpdated 1 mo ago
    Auto-check passed
  • Go Router

    bladeofgod/flutter-ai-harness

    适用:新增 Route、Redirect、ShellRoute/StatefulShellRoute、DeepLink、路由参数、Observer 或 Route 级 Controller 装配。不适用:GetX 导航或没有明确兼容边界的任意 Navigator Stack。触发词:GoRouter、GoRoute、redirect、deep link、shell…

    116 GitHub stars~295 tokensUpdated 1 mo ago
    Auto-check passed
  • Kotlin Android Standards

    bladeofgod/flutter-ai-harness

    适用:编写或审查 Android Kotlin Native Module、Bridge Adapter、Host 接线、Manifest、Gradle 和原生 UI。不适用:Swift/iOS、Dart Client 或 Wire Contract 设计。触发词:Kotlin、Android、Gradle、Manifest、Coroutine、Flow、CameraX、Activity。

    116 GitHub stars~352 tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about UI Behavior Spec

What does UI Behavior Spec do?

适用:根据已批准任务、产品规则、原型或 Figma 输入生成、审计或执行 Version 1 UI 行为 Spec。不适用:替代产品决策、实现 UI、操作系统原生界面或探索未定义流程。触发词:UI Spec、行为契约、plan-spec、spec-writer、spec-auditor、app-operator、Marionette 验收。. UI Behavior Spec is an agent skill from bladeofgod/flutter-ai-harness.

When should I use UI Behavior Spec?

UI Behavior Spec fits situations like: mobile work in your project.

How do I install UI Behavior Spec in Claude Code?

Run `npx skills add bladeofgod/flutter-ai-harness --skill ui-behavior-spec -a claude-code`. Or copy the skill folder (.claude/skills/ui-behavior-spec in bladeofgod/flutter-ai-harness) into .claude/skills/ui-behavior-spec in your project. Claude Code loads it when a task matches its description.

How do I install UI Behavior Spec in Codex?

Run `npx skills add bladeofgod/flutter-ai-harness --skill ui-behavior-spec -a codex`. Or copy the skill folder (.claude/skills/ui-behavior-spec in bladeofgod/flutter-ai-harness) into .agents/skills/ui-behavior-spec in your project. Codex loads it when a task matches its description.

Can I use UI Behavior Spec in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bladeofgod/flutter-ai-harness --skill ui-behavior-spec -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ui-behavior-spec, .gemini/skills/ui-behavior-spec, .github/skills/ui-behavior-spec and .opencode/skills/ui-behavior-spec in your project.

What does UI Behavior Spec need to run?

Going by SKILL.md and its folder, UI Behavior Spec needs the command-line tools its instructions call (bash and make).

Does UI Behavior Spec access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is UI Behavior Spec safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does UI Behavior Spec use?

UI Behavior Spec is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does UI Behavior Spec use?

About 1.4k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to UI Behavior Spec?

Skills that share tags, products or a category with UI Behavior Spec: Sleek Design Mobile Apps (sleekdotdesign/agent-skills, 584 stars), Tsh UI Verifying (TheSoftwareHouse/copilot-collections, 284 stars), Apple Design (vrcm-team/VRCM, 179 stars) and Jetpack Compose and Multiplatform Expert (rcosteira79/android-skills, 151 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains UI Behavior Spec?

bladeofgod (a GitHub user) maintains it in bladeofgod/flutter-ai-harness, which has 116 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 7, 2026.

Source: bladeofgod/flutter-ai-harness on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.