AGENT SKILL

constraint-physical

Use this skill when designing structural constraints that prevent invalid actions through the shape, layout, or behavior of the design itself — paths (channels of motion), axes (rotary controls), barriers (blocks). Trigger when designing input controls, drag-and-drop affordances, modal dialogs, or hardware-style structural prevention. Sub-aspect of `constraint`; read that first.

License 许可
Apache-2.0
最近更新
2026-11-11
Stars
★ 1.6k
Forks
474

01 前言 Front Matter

name
constraint-physical
description
Use this skill when designing structural constraints that prevent invalid actions through the shape, layout, or behavior of the design itself — paths (channels of motion), axes (rotary controls), barriers (blocks). Trigger when designing input controls, drag-and-drop affordances, modal dialogs, or hardware-style structural prevention. Sub-aspect of `constraint`; read that first.

02 资源文件 1

03 SKILL.md 正文

Physical constraints

Physical constraints prevent invalid actions through the structure of the design — the shape of a connector, the boundary of a screen, the channel of a slider. The user can't take the wrong action because the structure rejects it. Stronger than psychological constraints; not always available.

The three subtypes (from the book)

Paths

Channels that direct motion. The user can move along the path; off-path movement is impossible or rejected.

Software examples:

  • Sliders constrain motion to one dimension.
  • Range inputs constrain values to a defined min/max.
  • Scroll bars constrain scrolling direction.
  • Dropdown lists constrain selection to provided options.
<!-- Path constraint: value must be 0-100 -->
<input type="range" min="0" max="100" value="50" />

<!-- Path constraint: choice from fixed set -->
<select>
  <option>Small</option>
  <option>Medium</option>
  <option>Large</option>
</select>

Axes

Rotary controls. Convert applied force into rotation; effectively infinite range in a small space.

Software examples:

  • Rotation gestures in canvas tools.
  • Color-wheel pickers that constrain hue selection to a circular path.
  • Dial-style controls for continuous values.

Barriers

Block, slow, or redirect motion.

Software examples:

  • Modal dialogs block interaction with content beneath.
  • Disabled buttons block their action.
  • Permission gates block access to features.
  • Screen edges stop cursor motion (Fitts's edge advantage).
  • Form-validation blocks prevent submission when invalid.

Patterns

Input-type constraints (paths)

<input type="email" />     <!-- only accepts email format -->
<input type="number" min="0" />   <!-- only non-negative numbers -->
<input type="date" />      <!-- only valid dates -->
<input type="color" />     <!-- only valid hex colors -->

The browser enforces the constraint; the user can't submit invalid data.

Drop-zone constraints (barriers)

A drag-and-drop interaction can constrain valid drops at the API level:

dropZone.addEventListener('dragover', e => {
  if (isValidTarget(draggedItem, dropZone)) {
    e.preventDefault();  // allow drop
  }
  // not preventing default = drop won't fire
});

The browser's drag-and-drop API itself uses constraint: preventDefault opens the channel; absence keeps it blocked.

Modal as barrier

<dialog open>
  <h2>Required action</h2>
  <p>You must complete this step before continuing.</p>
  <button onclick="proceed()">Continue</button>
</dialog>

The dialog blocks interaction with the page beneath. Use sparingly; barriers irritate when they don't serve a clear purpose.

Disabled state (block)

<button id="submit" disabled>Submit</button>

The button can't trigger its action until enabled. Pair with explanation of what would enable it.

When to use physical over psychological

  • When the consequence of the wrong action is severe (data loss, security breach, irreversible operation). Physical constraints are stronger.
  • When the user is novice or the system is unfamiliar — psychological constraints rely on prior knowledge that may not exist.
  • When there's no acceptable failure mode — make the wrong action impossible.

When physical constraints over-restrict

  • Format constraints stricter than necessary — phone fields that reject parentheses; name fields that reject apostrophes.
  • Hardware-style barriers in software contexts — a modal that blocks because of a non-blocking concern.
  • Disabled states that don't explain themselves — user can't act and doesn't know why.

The discipline: constrain real requirements; explain when surprises occur.

Resources

  • Norman, D. The Design of Everyday Things (1988, 2013).
  • Lidwell, Holden & Butler (2003).
  • WCAG — input-type and validation constraints contribute to accessibility.

Related sub-skills

  • constraint (parent).
  • constraint-psychological — the other half; symbols, conventions, mappings.
  • affordance — affordance + constraint = the action space.
  • accessibility-operable — physical constraints must be operable across assistive technologies.

04 同仓库更多 Skills

hashgraph-online
hashgraph-online/awesome-codex-plugins

migrate-to-e2e

Moves an existing Playwright, Cypress, Selenium, Appium, Detox, Maestro, or TesterArmy suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for /migrate-to-e2e, "migrate our tests to e2e", "port these Maestro flows", "move our TesterArmy tests", or when a project has an e2e config and an older suite still running.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

e2e

Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has an e2e.config.ts, when asked for end-to-end, browser, mobile, or agentic UI tests, to check a change in the running app, to QA or bug bash an app or branch, or when an e2e run fails.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

create-verification-skill

Generate a project-local verify-<app> skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for /create-verification-skill, "make a verification skill for this repo", or when a project has no scripted way to prove UI behavior.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

deja-search

deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

deja-reflect

End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.

★ 1.6k
hashgraph-online
hashgraph-online/awesome-codex-plugins

revid

Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.

图像与多媒体Skill与智能体开发
★ 1.6k