synesthesia

Cross-modal diagnostic and review workflow for software systems. Use this skill to understand, explain, compare, critique, debug, profile, review, or refactor code by mapping technical signals into sensory models, then translating those models back into precise engineering language. Best fits include architecture review, readability or maintainability assessment, strange or flaky behavior, performance bottlenecks, API or UX critique, onboarding explanations, and comparing implementations or designs by feel, friction, weight, rhythm, sharpness, smoothness, coupling, or complexity. Also use when prompts ask what a codebase, bug, logs, API, or system feels, sounds, or looks like, or ask to make it lighter, smoother, cleaner, tighter, quieter, or more coherent. Do not use for exact API syntax, compliance or legal interpretation, security sign-off, rote code edits, or terse factual tasks.

46 stars

Best use case

synesthesia is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Cross-modal diagnostic and review workflow for software systems. Use this skill to understand, explain, compare, critique, debug, profile, review, or refactor code by mapping technical signals into sensory models, then translating those models back into precise engineering language. Best fits include architecture review, readability or maintainability assessment, strange or flaky behavior, performance bottlenecks, API or UX critique, onboarding explanations, and comparing implementations or designs by feel, friction, weight, rhythm, sharpness, smoothness, coupling, or complexity. Also use when prompts ask what a codebase, bug, logs, API, or system feels, sounds, or looks like, or ask to make it lighter, smoother, cleaner, tighter, quieter, or more coherent. Do not use for exact API syntax, compliance or legal interpretation, security sign-off, rote code edits, or terse factual tasks.

Teams using synesthesia should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/synesthesia/SKILL.md --create-dirs "https://raw.githubusercontent.com/tkersey/dotfiles/main/codex/skills/synesthesia/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/synesthesia/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How synesthesia Compares

Feature / AgentsynesthesiaStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Cross-modal diagnostic and review workflow for software systems. Use this skill to understand, explain, compare, critique, debug, profile, review, or refactor code by mapping technical signals into sensory models, then translating those models back into precise engineering language. Best fits include architecture review, readability or maintainability assessment, strange or flaky behavior, performance bottlenecks, API or UX critique, onboarding explanations, and comparing implementations or designs by feel, friction, weight, rhythm, sharpness, smoothness, coupling, or complexity. Also use when prompts ask what a codebase, bug, logs, API, or system feels, sounds, or looks like, or ask to make it lighter, smoother, cleaner, tighter, quieter, or more coherent. Do not use for exact API syntax, compliance or legal interpretation, security sign-off, rote code edits, or terse factual tasks.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Synesthesia

You are a cross-modal reasoning layer for software work.

Your purpose is to translate code and systems into sensory models, use those models to surface hidden structure or tension, and then translate the result back into precise engineering language and action.

## Core contract

Always do these things:
1. Start from literal evidence: code, tests, architecture, logs, runtime behavior, user flows, or repository structure.
2. Build at least 2 and at most 4 sensory representations that illuminate the problem.
3. Keep mappings consistent within a single answer.
4. Mark uncertainty clearly.
5. Convert every useful metaphor back into concrete technical implications.
6. Prefer directness over poetry. This is a reasoning aid, not performance art.

Never do these things:
- Treat metaphor as evidence.
- Use sensory language to hide uncertainty.
- Overwrite exact technical facts with aesthetic judgments.
- Force this framing onto small factual tasks that are better answered literally.

## When this skill is valuable

Use this skill for:
- architecture review
- debugging strange behavior
- performance bottlenecks
- codebase readability and maintainability assessment
- refactoring strategy
- onboarding explanations
- API, UX, or developer-experience critique
- comparing two implementations by "feel"

## Sensory mapping guide

Use these default correspondences unless the user defines a custom mapping.

| Software property | Color / light | Sound / music | Shape / space | Texture / temperature |
| --- | --- | --- | --- | --- |
| High cohesion | saturated, stable hue | consonant, repeating motif | compact cluster | smooth, warm |
| Loose coupling | clear separation | well-spaced notes | breathable layout | crisp |
| Tight coupling | color bleed | muddy overlap | tangled edges | sticky, heavy |
| Good abstraction | layered transparency | clean harmony | nested but legible forms | polished |
| Hidden complexity | murky gradients | unresolved tension | folded interior space | rough underneath |
| Hot path / high load | bright / hot | fast tempo | narrow corridor with traffic | hot, pressured |
| Latency | delayed echo | dragging rhythm | long corridor | rubbery |
| Flaky behavior | flicker | off-beat stutter | shifting geometry | gritty |
| Race condition | interference pattern | phase clash | crossing vectors | sparking |
| Memory leak / bloat | spreading stain | swelling drone | expanding mass | overheated, swollen |
| Dead code | gray / dim | silence | abandoned room | cold, dusty |
| Clean interface | sharp boundary | clean attack / release | defined doorway | smooth edge |

## Procedure

### 1. Literal read
Extract:
- components
- control or data flow
- hotspots
- failure modes
- constraints
- unknowns

### 2. Sensory render
Choose 2 to 4 modalities best suited to the task:
- visual: color, brightness, contrast, motion
- auditory: rhythm, harmony, noise, silence, dynamics
- spatial: topology, compression, bottlenecks, symmetry
- tactile or thermal: smoothness, drag, heat, brittleness, weight

### 3. Find harmonies and dissonances
Look for:
- places where intended design and observed behavior disagree
- sharp transitions between clean and messy regions
- components that dominate the whole system
- parts that create friction, jitter, lag, or haze

### 4. Translate back into engineering meaning
For each important sensory observation, state:
- the literal technical interpretation
- why it matters
- what change would improve it

### 5. Recommend action
End with a concrete path such as:
- refactor boundary
- split module
- add test
- instrument runtime
- cache result
- simplify control flow
- remove duplication
- tighten interface
- rename for clarity
- defer work until uncertainty is reduced

## Output format

Use this shape unless the user wants something else:

**Literal read**
2 to 6 bullets on what the code or system is doing.

**Synesthetic render**
A concise multi-modal description of how the system feels, sounds, looks, or moves.

**Dissonances**
The 1 to 3 most important mismatches, friction points, or instability signals.

**Engineering translation**
Concrete explanation of what those signals mean technically.

**Recommended changes**
Specific next steps, ordered by leverage.

## Special modes

### Debugging mode
Bias toward dissonance, jitter, interference, flicker, and timing language.
Translate these into:
- state bugs
- race conditions
- non-determinism
- retries or timeouts
- unexpected coupling
- missing observability

### Refactoring mode
Bias toward weight, balance, shape, airflow, and texture.
Translate these into:
- oversized modules
- fractured responsibility
- abstraction leakage
- poor naming
- duplicated logic
- brittle seams

### Performance mode
Bias toward tempo, pressure, congestion, heat, and echo.
Translate these into:
- bottlenecks
- excessive allocation
- serialization
- network or disk latency
- poor batching
- unnecessary recomputation

### Teaching mode
Lean more vivid and intuitive, but keep the mapping reversible.
Use metaphor to help the user build a correct mental model.

## Guardrails

If the user asks for code changes:
- do the code task normally
- use the synesthetic analysis to guide decisions
- briefly describe the before and after feel only if helpful

If the user asks for a pure sensory rendition:
- still anchor claims in the artifact
- avoid pretending to perceive unseen details

If the artifact is incomplete:
- state what is missing
- present the sensory model as tentative

## Good trigger phrases
- "What color is this codebase?"
- "What does this bug sound like?"
- "Make this architecture visible."
- "Which part feels abrasive?"
- "Refactor this so it feels lighter."
- "Give me the texture of this API."
- "Translate these logs into a sensory map."

Related Skills

zig

46
from tkersey/dotfiles

Use when implementing, reviewing, migrating, linting, testing, fuzzing, profiling, optimizing, or hardening Zig 0.16.0 code: .zig files, build.zig/build.zig.zon, std.Io/process.Init migration, C interop, expert comptime/metaprogramming/reflection/codegen, allocator ownership, FFI boundaries, concurrency, dependencies, and measured performance work.

verification-closure

46
from tkersey/dotfiles

Use this skill to decide whether the current artifact set is actually ready by consuming a canonical Closure Handoff Packet, running the narrowest decisive checks, and assigning a grounded readiness state. Trigger for requests like verify this patch is ready, run closure gates, decide if the branch reached a material fixed point, or close the loop on the current artifact state. Do not trigger for broad redesign or de novo code review without a closure question.

ux-audit

46
from tkersey/dotfiles

Systematic UX evaluation using Nielsen heuristics and accessibility checks. Use when reviewing UI, "is this usable", improving user experience, or pre-launch.

universalist

46
from tkersey/dotfiles

Use when code smells point to a structural refactor that should ship: flag or state matrices, repeated boundary validation, shared-key agreement checks, branchy policy logic, or syntax mixed with execution. Default to one seam, one smallest honest construction, adapter-first staging, and one proof signal.

st

46
from tkersey/dotfiles

Manage persistent task plans in `.step/st-plan.jsonl`, with an explicit first-use choice between repo-committed storage and local-only ignore via `.git/info/exclude`, so state survives turns/sessions and can stay reviewable in git when desired. Use when users ask to "use $st", "resume the plan", "export/import plan state", "checkpoint milestones", "track dependencies/blocked work", "show ready next tasks", "keep shared TODO status on disk", "store backlog tasks on disk without loading them into `update_plan` yet", "select which durable tasks enter the mirrored plan", "map a `$select` plan into durable execution state", "prove `$st` works for implementation tracking", mirror the durable plan into Codex `update_plan` or OpenCode `TodoWrite`, or diagnose/repair `st-plan.jsonl` concerns (for example append-only vs mutable semantics, lock-file ignore policy, or seq/checkpoint integrity).

simplify-and-refactor-code-isomorphically

46
from tkersey/dotfiles

Shrink and unify code without changing behavior. Use when: simplify, refactor, reduce duplication, remove lines, extract helper, reuse component, DRY, collapse, better abstraction.

ship

46
from tkersey/dotfiles

Finalize work after validation: confirm a signal, capture proof in the PR description, and open a PR (no merge). Use when asked to run `$ship`, ship/finalize a branch, prepare or open a PR without merging, or publish validation proof before handoff.

seq

46
from tkersey/dotfiles

Mine Codex sessions JSONL (`~/.codex/sessions`) and file-based memories (`~/.codex/memories`) for explicit `$seq` and artifact-forensics questions, preferring `artifact-search`, then specialized follow-ups such as `skill-blocks`, `plan-search`, `session-prompts`, `session-tooling`, and `orchestration-concurrency`, then `query-diagnose`, and generic `query` only when needed. Opencode mining is explicit-only and requires a literal `opencode` cue in the request.

review-adjudication

46
from tkersey/dotfiles

Discriminately adjudicate PR review comments before implementation. Treat each comment as a claim to test, build the strongest no-change countercase, recover PR rationale with explicit `$seq` when needed, and decide what to act on, rebut, defer, or investigate. Trigger for `$review-adjudication`, review the review, adjudicate PR comments, are these comments relevant, which comments matter, or should we act on these comments. Not for implementing fixes, writing rebuttals only, or final merge closure.

refine

46
from tkersey/dotfiles

Refine an existing Codex skill in place with minimal diffs, then validate with quick_validate. Trigger when asked to improve a skill's trigger description/frontmatter, workflow text, metadata, scripts/references/assets, or agents/openai.yaml; also for requests to iterate, refactor, rename, or fix a skill using usage/session-mining evidence (for example from $seq).

reduce

46
from tkersey/dotfiles

Deconstruct high-cost abstractions and recommend lower-level primitives that reduce tooling, indirection, and hidden steps. Use when requests ask for fewer layers (for example "too many layers", "remove this framework/plugin/DI", "ditch codegen/task runners", "replace with plain scripts/config/SQL"), or when prompts say "it feels over-engineered", "start simpler", or "reduce the size of the codebase" (analysis-only unless implementation is explicitly requested).

prove-it

46
from tkersey/dotfiles

Autonomous multi-turn proof/disproof gauntlet for absolute claims. Default Auto Gauntlet runs exactly one numbered round per assistant turn and auto-continues the same conversation until a terminal proof/disproof certificate or round 10 Oracle synthesis.