Principle Redesign From First Principles
cursor/plugins
Apply when integrating a new requirement into an existing design.
Apply the principle of Control — the level of autonomy a system gives the user, and how that level should be matched to the user's expertise and the task's stakes.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill control -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins control --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control .claude/skills/control && rm -rf skills-srcUse ~/.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/
Install the "control" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control into .claude/skills/control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "control", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/controlType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill control -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins control --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control .agents/skills/control && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "control" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control into .agents/skills/control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "control", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill control -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins control --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control .cursor/skills/control && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "control" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control into .cursor/skills/control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "control", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hashgraph-online/awesome-codex-plugins.git --path plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill control -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins control --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control .gemini/skills/control && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "control" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control into .gemini/skills/control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "control", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hashgraph-online/awesome-codex-plugins controlInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hashgraph-online/awesome-codex-plugins --skill control -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control .github/skills/control && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "control" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control into .github/skills/control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "control", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashgraph-online/awesome-codex-plugins --skill control -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hashgraph-online/awesome-codex-plugins control --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control .opencode/skills/control && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "control" agent skill from https://github.com/hashgraph-online/awesome-codex-plugins/tree/main/plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control into .opencode/skills/control/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "control", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
controlApply the principle of Control — the level of autonomy a system gives the user, and how that level should be matched to the user's expertise and the task's stakes.
Control is an agent skill from hashgraph-online/awesome-codex-plugins. Apply the principle of Control — the level of autonomy a system gives the user, and how that level should be matched to the user's expertise and the task's stakes. Use when designing for novice vs. expert audiences, choosing between fully automated and manually controlled behaviors, deciding what to expose vs. abstract away, or building products that span experience levels (a tool a beginner will use once and an expert will use thousands of times). Too much control overwhelms novices; too little frustrates…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/lineage.md`).
The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 78497e5. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Control loads about 3.4k tokens when it runs, and up to ~5.3k if it reads all its reference files. Until then it costs about 150 tokens; SKILL.md has 1,919 words of instructions outside code blocks.
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.
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.
The full file from hashgraph-online/awesome-codex-plugins at commit 78497e5, republished under its Apache-2.0 licence (© hashgraph-online). 1,919 words, ~3,366 tokens.
.claude/skills/control/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Definition. Control is the degree of authority and decision-making the system delegates to the user. A high-control system exposes parameters, asks for choices, and lets the user direct outcomes; a low-control system makes decisions on the user's behalf, hiding parameters and presenting outcomes. Neither is universally better. The right level of control depends on the user's expertise, the stakes of the task, and how often the user will perform the task.
The classic illustration: a microwave. A novice user wants three buttons — popcorn, defrost, reheat. An expert wants the panel of granular options — exact wattage, time in seconds, multi-stage cooking sequences. A microwave that exposes only the three buttons frustrates the expert; a microwave that exposes only the granular panel intimidates the novice. The well-designed microwave does both: large simple presets up front, granular controls available but tucked away.
The same problem appears in software a hundred times a day. A photo editor for a casual user is "auto-enhance"; for a professional, it's curves, levels, masks, and color spaces. A code editor for a beginner is "run this script"; for an expert, it's customizable shortcuts, plugin systems, and direct shell access. The challenge is rarely "what should this product do" but "how much control over the doing should the user have."
The principle named "control" in the design literature is sometimes also called "user agency" or "user autonomy" — different traditions, same problem. The effect is well-documented: users with appropriately calibrated control perform tasks faster, with fewer errors, and report higher satisfaction. Users with insufficient control feel constrained and frustrated; users with excessive control feel overwhelmed and paralyzed.
The cost of miscalibration is paid in a few specific ways. Novices facing too much control freeze. They can't decide which option matters and which doesn't, and either pick poorly (defaulting to whichever is most prominent) or abandon the task. Experts facing too little control work around the system. They open external tools, write scripts, find hacks. The work-arounds are often less reliable than the system would be if it just exposed the controls the experts need. Mid-level users — neither novice nor expert — get the worst of both. A simplified UI that experts work around is usually also too simplified to teach anyone how the underlying system works, leaving mid-level users perpetually stuck.
Control is not a single dial but several interacting dimensions.
Granularity. How fine-grained are the choices? "Loud / Medium / Quiet" is low-granularity; a continuous slider with 0–100 is high-granularity. Granularity affects how precisely the user can express intent and how much cognitive effort each choice requires.
Defaults. Even high-control systems should have sensible defaults so the user doesn't have to make every choice. A high-granularity slider with a clearly marked default position is much easier to use than the same slider with no default suggested.
Reversibility. Are choices easy to change later? A system where every choice is reversible — undo, redo, change-your-mind — can afford to give the user more control because mistakes are recoverable. A system where choices are permanent (place an order, send a message) needs higher confirmation, lower granularity, or stronger defaults.
Visibility. Are the controls visible at all times, or hidden behind progressive disclosure? A power-user tool can show all controls at once; a consumer tool typically hides advanced controls behind a "more options" or "settings" disclosure.
A well-designed control system makes deliberate choices on each of these dimensions — not by accident but by understanding the user, the task, and the stakes.
The right level of control depends on who's using the product and how often.
Novices and one-time users. Reduce granularity. Hide most parameters behind sensible defaults. Make the common path obvious and the exotic paths discoverable but not pushed. The goal is to let the user complete the common task without making choices they aren't equipped to make. A novice using a video editor for the first time should be able to trim a clip without learning what a codec is.
Experts and frequent users. Increase granularity. Expose parameters. Make the common path fast and the exotic paths possible. The goal is to let the user direct the system precisely without constant simplification. An expert using a video editor every day should be able to set frame rates, chroma subsampling, and audio bus routing without leaving the application.
Mixed audiences. Layer the controls. Common operations are simple and obvious; advanced operations are accessible but not in the default view. Adobe Lightroom does this well: a "Basic" panel for everyday adjustments, with deeper panels available below for the user who wants them.
Rare-but-critical tasks. Reduce control. When a task is performed rarely but matters greatly, full granularity is dangerous because the user has forgotten the conventions. Provide a guided wizard with sensible defaults, even for users who would normally want full control.
The stakes of the task affect how much control is appropriate even at a fixed expertise level.
Low-stakes, recoverable. Maximize control. Let users experiment, change their minds, undo. The cost of a wrong choice is one undo.
High-stakes, recoverable with effort. Calibrate control to expertise. A novice should be guided; an expert should be allowed to direct. Provide clear feedback at each stage so the user can catch errors early.
High-stakes, irreversible. Reduce control even for experts. A surgeon's interface for a robot manipulator allows fine control of motion but blocks abrupt jumps. A trading system for a professional trader allows order placement but flags any order over a threshold for confirmation. The constraint is not insulting the expert's judgment; it's catching the moments where expert judgment fails.
The default UI: large auto-enhance button, a few one-tap filters, a basic crop tool. The "More" disclosure reveals exposure, contrast, saturation, and white balance sliders. A further "Advanced" disclosure reveals curves, levels, and color masks.
A novice opens the app, taps auto-enhance, gets a better photo, and is done. An expert opens the app, opens both disclosures, and uses the granular tools. Both audiences are served. The progressive disclosure is a control mechanism: it hides the high-control surface from users who don't need it.
The anti-pattern: showing all the granular tools to all users. The novice is intimidated and either uses none of them or picks badly. The expert tolerates it but doesn't actually need the visual prominence.
The other anti-pattern: hiding the granular tools so deeply that experts can't find them, or removing them entirely "to simplify the experience." Experts work around (open an external tool, switch products) and the product loses its credibility with the audience that drives word-of-mouth.
Default search: a single search bar. Type, get results. Maximum simplicity, low control.
Advanced search (often hidden behind a link): operators, filters, date ranges, sort criteria. Maximum control for the rare expert.
Both audiences served. The novice never sees the advanced surface; the expert clicks through and gets the granular tools.
A common failure: putting filters in the default search interface alongside the search bar. Novices don't use the filters and find them visual clutter; experts use them but they're scattered across the screen rather than collected in one focused panel. The compromise serves no one well.
A retail trading app shows: stock symbol, buy / sell button, dollar amount. The user can place a market order with three taps. Low control, high accessibility, suitable for casual investors.
A professional trading platform shows: all the order types (market, limit, stop, stop-limit, OCO), routing options (DMA, dark pools), time-in-force settings, and live order books. High control, demanding interface, suitable for experts who would resent the simpler interface.
Notice that the professional platform doesn't try to also serve the casual investor — and shouldn't. Audiences with this much divergence in expertise need different products, not layered controls.
The hardware version of the same problem. Three large buttons (popcorn, reheat, defrost) plus a numeric keypad and a "more" panel. Both audiences served by the same hardware.
The failure: a microwave with only the three buttons, with no way to set custom times. Novice users are happy; expert users buy a different microwave.
The opposite failure: a microwave with only the numeric keypad and no presets. Novice users squint, hesitate, and microwave their food for the wrong time.
VS Code's default surface is a relatively simple file tree, editor, and a few panels. An expert can install extensions, customize keybindings, configure language servers, and turn it into a deeply customized environment. A beginner can use the default surface productively and grow into the customization gradually.
The crucial design choice: the customization is available but not promoted. The default user is not pushed to configure things; the expert can find what they need. Both audiences are served by progressive control rather than by separate products.
Two failure modes are worth knowing.
False simplicity that prevents productive use. A product that aggressively simplifies — removes parameters, hides settings, decides things for the user — can make some tasks impossible. A photo editor that has only an "auto-enhance" button can't be used for serious editing. A spreadsheet that has only "sum" and "average" can't be used for real analysis. Aggressive simplification is appropriate for products targeting only casual users; for products that span expertise levels, it forecloses the expert use case.
Exposed complexity that paralyzes. The opposite failure: showing every option to every user, on the theory that "the user can decide what they need." Most users can't decide because they don't know what most options do. The defaults end up doing the work for them, but the visible options still consume attention and create anxiety. Hide what most users don't need; expose what most users do need; provide a path to the rest.
Before designing the control surface, ask: Who is the user, and how often will they do this task? Calibrate granularity and visibility to that audience. What are the stakes of this task? High-stakes tasks deserve more friction even for experts. What is the recoverability profile? Reversible tasks can afford more control; irreversible tasks need more constraint. Is there a single audience, or multiple? If multiple, layer the controls; if single, calibrate to that one audience. What's the default for each control? Defaults are the hidden control surface — most users will accept them, so they should be sensible.
references/lineage.md — origins in human-factors engineering and HCI.control-locus/ — sub-skill on perceived agency and locus of control.control-power-vs-simplicity/ — sub-skill on layering controls for mixed audiences.© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control of hashgraph-online/awesome-codex-plugins.
Open the folder on GitHubat commit 78497e5
Control 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Control this skillhashgraph-online/awesome-codex-plugins | 1.2k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Principle Redesign From First Principlescursor/plugins | 10k | 8 repos | ~211 | Automated safety check: Pass | None | |
| Uxui Principlessickn33/agentic-awesome-skills | 47k | 2 repos | ~548 | Automated safety check: Pass | MIT | |
| Structured Autonomy Implementgithub/awesome-copilot | 40k | 2 repos | ~272 | Automated safety check: Pass | MIT | |
| Give Me Tipscode-yeongyu/oh-my-openagent | 70k | — | ~3.3k | Automated safety check: Pass | Custom licence | |
| Structured Autonomy Generategithub/awesome-copilot | 40k | 1 repos | ~1k | Automated safety check: Pass | MIT |
cursor/plugins
Apply when integrating a new requirement into an existing design.
sickn33/agentic-awesome-skills
Evaluate interfaces against 168 research-backed UX/UI principles, detect antipatterns, and inject UX context into AI coding sessions.
github/awesome-copilot
Structured Autonomy Implementation Prompt. An agent skill from github/awesome-copilot.
code-yeongyu/oh-my-openagent
Explains a specific senpi tip in depth, such as a Tip: line shown in the terminal UI, after checking the real tip catalog on your machine.
github/awesome-copilot
Structured Autonomy Implementation Generator Prompt. An agent skill from github/awesome-copilot.
mindfold-ai/Trellis
Systematic first principles thinking for any problem domain.
hashgraph-online/awesome-codex-plugins
Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.
hashgraph-online/awesome-codex-plugins
Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).
hashgraph-online/awesome-codex-plugins
A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…
hashgraph-online/awesome-codex-plugins
Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…
hashgraph-online/awesome-codex-plugins
Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.
hashgraph-online/awesome-codex-plugins
Analyze nonfiction manuscripts for reader engagement signals, including heading-level word counts, slow starts, long slogs, weak takeaway titles, value pacing, beta-reader comment dropoff, and…
Apply the principle of Control — the level of autonomy a system gives the user, and how that level should be matched to the user's expertise and the task's stakes. Control is an agent skill from hashgraph-online/awesome-codex-plugins. Apply the principle of Control — the level of autonomy a system gives the user, and how that level should be matched to the user's expertise and the task's stakes.
Control fits situations like: designing for novice vs.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill control -a claude-code`. Or copy the skill folder (plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control in hashgraph-online/awesome-codex-plugins) into .claude/skills/control in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hashgraph-online/awesome-codex-plugins --skill control -a codex`. Or copy the skill folder (plugins/HDeibler/universal-design-principles/plugins/interaction-and-control-principles/skills/control in hashgraph-online/awesome-codex-plugins) into .agents/skills/control in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill control -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/control, .gemini/skills/control, .github/skills/control and .opencode/skills/control in your project.
SKILL.md names no scripts, command-line tools or credentials: Control is instructions for the agent only.
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.
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.
Control is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Control: Principle Redesign From First Principles (cursor/plugins, 10k stars), Uxui Principles (sickn33/agentic-awesome-skills, 47k stars), Structured Autonomy Implement (github/awesome-copilot, 40k stars) and Give Me Tips (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,242 GitHub stars. The repository holds 686 skills in this directory. The repository was last updated on October 8, 2026.
Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.