From exec-func-skills
Safely adjust personal computing affordances as self-accommodations that reduce executive function load. Use when user wants to tweak configs, rebind keys, add aliases, reduce friction in their setup, or says things like "too many steps", "I keep forgetting where X is", "make this easier to do". Also covers iterating on previous changes and physical workspace adjustments.
How this skill is triggered — by the user, by Claude, or both
Slash command
/exec-func-skills:tuning-affordancesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Environment friction compounds executive dysfunction. Every extra step, hidden shortcut, or misplaced tool is a tax on initiation, working memory, and sustained attention. This skill treats the computing environment as a living set of affordances — the actions the system makes easy, hard, or invisible — and helps adjust them safely and iteratively as self-accommodations. The computer is not a f...
Environment friction compounds executive dysfunction. Every extra step, hidden shortcut, or misplaced tool is a tax on initiation, working memory, and sustained attention. This skill treats the computing environment as a living set of affordances — the actions the system makes easy, hard, or invisible — and helps adjust them safely and iteratively as self-accommodations. The computer is not a fixed tool but a surface that shapes, and is shaped by, the user's attention and habits.
.zshrc, .config, settings.json, editor/shell/WM configSome triggers overlap with other tasks. Use this skill when the intent is reshaping what the environment affords, not fixing a one-time problem:
The unit of change is not "a line in a file" but "an action the environment makes easier or harder." Always name the affordance before touching the config. Example: not "add alias gco" but "make switching git branches a two-keystroke move."
Every change should be easy to undo. Prefer: version-controlled configs, additive edits over rewrites, feature flags / conditional blocks, and staged rollout (try in a scratch shell before sourcing globally). If a change can't be rolled back in under a minute, flag that cost explicitly.
Tuning is a loop, not a project. Favor many small reversible experiments over one big refactor. The goal is to learn what the user actually wants from their environment, which is often only visible after living with a change for a few days.
The environment shapes the user and the user shapes the environment. A new keybinding changes what becomes habitual; a new habit reveals what the next keybinding should be. Treat friction reports as signal about the user's evolving workflow, not just bugs to patch.
A well-tuned environment is prosthetic executive function. Visible cues replace recall. Short paths replace initiation cost. Consistent layouts replace spatial working memory. Every affordance that removes a decision or a step is one fewer thing the executive system has to manage.
A desk layout change and a window manager rebind are the same kind of move: both adjust what's in arm's reach. Don't artificially scope to just software.
Before touching anything, get explicit about what action should become easier, harder, or differently-shaped. Write it as a sentence: "I want [action] to take [effort/steps], instead of [current effort/steps]."
Identify where the change lives. Common surfaces:
Prefer staged application over global commit:
~/bin/experimental/ before promotingThe honest evaluation of an affordance change takes hours to days, not seconds. When possible, explicitly mark the change as "trial" and check back before committing.
After the trial, either promote (move to canonical config, remove the comment, document if non-obvious) or revert cleanly. Avoid the middle state where half-finished experiments accumulate.
Before any change that touches shared or fragile surfaces, confirm:
For changes to login shells, display managers, or anything that runs at boot: always keep a known-good fallback (backup file, alternative shell, recovery shortcut) before applying.
❌ Do NOT rewrite a whole config file when a three-line edit would do ❌ Do NOT add layers of abstraction ("a framework for managing my dotfiles") before the underlying edits are stable ❌ Do NOT treat every friction as needing a config fix — sometimes the answer is a habit change, not a knob ❌ Do NOT commit experiments to canonical config before living with them ❌ Do NOT build cross-machine portability before knowing what the local affordance should even be ❌ Do NOT confuse "more configured" with "better tuned" — subtractive changes count
With sensing-limits: Low-capacity states are a bad time for irreversible config surgery. If the user is depleted, prefer the smallest possible tweak or defer the change entirely.
With getting-started: When stuck on a task because the environment is in the way, a small affordance tweak can be the "2-minute starter" that unblocks everything else.
With saving-progress: Experimental config changes are in-progress state — capture what was tried, what's on trial, and what to revisit.
This skill is working when:
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub drews/skills --plugin project-tools