skills/geometric-algebraic-bridge/SKILL.md
Presents a math or ML concept simultaneously in geometric form (picture, transformation, region, surface) and algebraic form (formula, matrix, derivation), then writes the explicit one-sentence bridge that says "these are the same thing because…". The signature 3Blue1Brown move applied to any vector/matrix concept. Use when a learner has one view but not the other ("I understand the formula but not what it means" or "I see the picture but can't write it down"), when introducing a concept that genuinely needs both views to land (eigendecomposition, SVD, dot product, attention, gradient, covariance), or when the user mentions "geometric meaning", "intuition behind", "picture for", or "why does the formula look like that".
npx skillsauth add lyndonkl/claude geometric-algebraic-bridgeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A geometric picture without the algebra leaves the learner unable to compute. An algebraic formula without the picture leaves them unable to see. This skill produces both, side by side, with one sentence between them that says — in plain English — why they are the same thing.
The bridge sentence is the load-bearing piece. Without it, you've handed the learner two unrelated halves and made them do the joining themselves.
Quick example (Dot product):
Geometric: Two arrows in the plane. The dot product a · b measures how much one points along the other — the projection of a onto b's direction, scaled by b's length.
Algebraic: a · b = a₁b₁ + a₂b₂ + … + aₙbₙ. (Or equivalently, a · b = |a| |b| cos θ.)
Bridge: The component-wise sum is the projection-times-length. You can prove it by writing a in coordinates aligned with b — the sum collapses to |a|cos θ × |b|, which is what projection-times-length says geometrically.
Three short blocks. The bridge is the last, and the only one that's not optional.
Copy this checklist and track your progress:
Bridge Progress:
- [ ] Step 1: Identify the concept and which view the learner has
- [ ] Step 2: Construct the missing view, kept short and concrete
- [ ] Step 3: Write the bridge sentence — one sentence, plain English
- [ ] Step 4: Verify the bridge with a small example
- [ ] Step 5: Invite the learner to confirm or push back
Step 1: Identify the concept and which view the learner has
Most users come with one view, not zero. Diagnose which:
concept-rediscovery-walk skill instead — they need to invent the concept first.A diagnostic question that almost always tells you which: "Can you predict what this concept does without computing? Or do you need to compute first?" Predict-without-compute = geometric; compute-first = algebraic.
Step 2: Construct the missing view, kept short and concrete
Build the missing view in 3-5 sentences. Length is a discipline: longer = more chance the learner loses the thread before the bridge.
For per-concept layout templates, see resources/templates.md. For full worked examples, see resources/examples.md.
Step 3: Write the bridge sentence — one sentence, plain English
The bridge is the highest-leverage sentence in the response. It must:
Three bridge formulas that work for most concepts:
The bridge fails when it just restates one view in symbols and the other in words without explaining the why. "Av = λv means v is left in place up to scaling" is not a bridge; it's a translation. The bridge is "and that's why it's the special direction the transformation can't rotate".
Step 4: Verify the bridge with a small example
After the bridge, run one small example end-to-end through both views:
The verification example should fit on one line if possible. Its purpose is to make the bridge concrete — not to teach a new concept.
Step 5: Invite the learner to confirm or push back
End with one of:
This catches the case where the bridge made sense to you but not to the learner. Bridges are subjective; the learner is the only judge.
The bridge is a single sentence (or two) that explicitly identifies the geometric and algebraic descriptions as the same thing, with a because. It is the part of the explanation most often skipped, and the part most often missed by learners who say "I sort of get it but it doesn't click."
For a library of bridge sentences per concept, see resources/templates.md.
**Geometric view.** [3-5 sentence picture, with one specific example.]
**Algebraic view.** [Formula, with 1-2 sentences saying what each term does.]
**Bridge.** [One sentence: X *is* Y because Z.]
**Verify on a tiny example.** [One-line check that both views give the same answer.]
Use when both views are roughly equal weight. This is the default.
**[The view the learner has].** You already have this — [restate in one sentence].
**[The missing view].** [3-5 sentences, ending in the formula or the picture.]
**Bridge.** [One sentence.]
**Verify.** [One line.]
Use when the learner has one view confidently and you don't want to belabor it.
| Geometric | Algebraic | Bridge |
|---|---|---|
| [Sentence] | [Formula] | [Why same] |
Use only for compound concepts with multiple sub-bridges (e.g., SVD = rotate, scale, rotate; attention = ask, match, mix). The table prevents the bridge from getting lost in prose.
For full filled-in templates per concept, see resources/templates.md.
For one filled template per concept type, see resources/examples.md.
| Concept | Geometric noun | Algebraic form | Bridge sentence stub | |---|---|---|---| | Eigenvector | Direction A doesn't rotate | Av = λv | "...because λv is just a rescaling, no rotation." | | Dot product | Projection × length | a₁b₁ + … + aₙbₙ | "...because aligning coordinates with b collapses the sum to |a|cos θ × |b|." | | Determinant | Signed volume scale factor | det(A) formula | "...because the formula counts volume cell-by-cell with sign." | | Covariance matrix | Shape of data cloud (ellipsoid) | Σᵢⱼ = E[(xᵢ−μᵢ)(xⱼ−μⱼ)] | "...because it stretches the unit ball into the cloud's shape." | | Softmax | Point on the simplex | exp(xᵢ)/Σexp(xⱼ) | "...because exp ensures positivity, normalize ensures sum-to-1." | | Jacobian | Local linear map at a point | matrix of ∂fᵢ/∂xⱼ | "...because it's the linear approximation of f near a point." | | SVD | Rotate, scale, rotate | A = UΣVᵀ | "...because U is a rotation, Σ scales axis-aligned, Vᵀ is a rotation." | | Outer product | Rank-1 matrix; rows are scaled v | uvᵀ | "...because each row is uᵢ times the row vector v." |
For full worked examples per concept, see resources/examples.md. For per-concept templates with all four blocks filled in, see resources/templates.md.
testing
Cluster a conference's event records into a small set of coarse themes with finer sub-clusters, an explicit outlier bucket, and soft (multi-membership) affinities — using the hybrid embed-then-label pipeline (embed abstracts, reduce, density-cluster, then LLM-label the clusters) when embedding libraries are available, and an LLM-reasoned hierarchical fallback when they are not. Embeddings do the grouping; the LLM only names the groups. Conference-agnostic. Use when turning structured event records into a navigable theme map for preference elicitation and scheduling, when you need 6-8 reasonable themes rather than 20 muddy ones, or when overlapping talks must belong to more than one theme. Trigger keywords - theme clustering, cluster talks, embed then label, soft membership, outlier talks, conference themes, topic map.
development
Build a personal conference schedule as a constraint-optimization problem — hard constraints (no time overlap, room-to-room travel time, capacity/registration, the attendee's own must-attends and blackouts) plus a user-owned weighted objective trading interest against breadth, pacing (maximize contiguous free time), and serendipity. Surfaces unbreakable conflicts (two high-value overlapping talks the model cannot rank) as decisions for the human rather than silently picking, and reports what each choice traded away. Conference-agnostic. Use to turn a preference profile plus a theme map into a day-by-day plan, to resolve overlapping sessions, or to balance a packed vs paced schedule. Trigger keywords - schedule optimization, conference schedule, constraint optimization, overlapping talks, contiguous free time, conflict surfacing, packed vs paced.
development
Parse a heterogeneous conference program (markdown, HTML, PDF-derived text, or JSON) into normalized event records with per-field confidence scores and independent classification axes (topic, depth, format, prerequisites, recorded, capacity). Detects the program's format before extracting, treats every inferred field as uncertain (present vs inferred vs missing), and flags thin or missing abstracts so downstream enrichment can target them. Conference-agnostic. Use when ingesting a conference or event schedule into a structured store, normalizing a talk/session list, or extracting per-session metadata with calibrated confidence. Trigger keywords - program ingestion, parse schedule, session extraction, event records, conference program, talk metadata, per-field confidence.
development
Build a personalized preference profile from a small number of well-chosen, cluster-grounded questions instead of a long survey. Represents the person's interests as an uncertainty region over the theme map, picks the single highest-information-gain choice-based question (contrasting real talks from different clusters), balances exploiting known interests against exploring uncertain ones, deliberately injects outlier probes to fight selection bias, and stops as soon as the schedule would be stable. Also elicits the user-owned objective weights and hard constraints. Interactive — runs where it can actually ask the person. Conference-agnostic. Use to turn a theme map into a preference profile, to decide what to ask a conference attendee, or to elicit scheduling priorities. Trigger keywords - preference elicitation, ask few questions, information gain, choice-based questions, selection bias probe, objective weights, attendee preferences.