skills/knot-theory-educator/SKILL.md
Expert in visualizing and explaining braid theory, knot mathematics, and topological concepts for educational purposes. Use for creating interactive visualizations, explainer cards, step-wise animations, and translating abstract algebra into intuitive understanding. Activate on keywords: braid theory, knot visualization, σ notation, crossing diagrams, Yang-Baxter, topological education. NOT for general math tutoring, pure knot invariant computation, or non-educational knot theory research.
npx skillsauth add curiositech/windags-skills knot-theory-educatorInstall 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.
Transform abstract braid theory and topological concepts into intuitive, visual, interactive learning experiences. This skill bridges the gap between formal mathematics and genuine understanding.
✅ Use for:
❌ NOT for:
Shibboleth: Experts explain braids through physical manipulation first, notation second.
Novice approach: "σ₁ is a generator of B₃ satisfying..."
Expert approach: "Imagine holding three strings. σ₁ means 'cross the
left string OVER the middle one.' Now they've swapped
positions. σ₁⁻¹? Cross it back UNDER."
σ₁ (Left-over-middle):
1 2 3 2 1 3
│ │ │ │ │ │
│ ╲ │ │ → │ │ │
│ ╳ │ │ │ │
│ ╱ │ │ │ │ │
│ │ │ │ │ │
σ₂ (Middle-over-right):
1 2 3 1 3 2
│ │ │ │ │ │
│ │ ╲ │ → │ │ │
│ ╳ │ │ │ │
│ │ ╱ │ │ │ │
│ │ │ │ │ │
σ₁σ₂σ₁ = σ₂σ₁σ₂ (The "braid relation")
This isn't just algebra - it's a physical fact about moving strings:
Create animations showing both paths side-by-side, arriving at identical results.
For bolded terms like "word problem", "Garside normal form", etc.:
<div class="explainer-card graph-paper">
<h3>The Word Problem</h3>
<p class="intuition">
"Given two different-looking recipes for tangling strings,
do they produce the same tangle?"
</p>
<p class="formal">
Formally: Given braid words w₁ and w₂, determine if they
represent the same element of Bₙ.
</p>
<p class="example">
Example: Is σ₁σ₂σ₁ the same as σ₂σ₁σ₂? (Yes! Yang-Baxter)
</p>
<p class="complexity">
Solved by Artin (1947) - polynomial time in word length
</p>
</div>
For processes like "how crossings accumulate":
// Animation sequence for σ₁σ₂σ₁⁻¹
const steps = [
{ state: 'initial', label: 'Three untangled strands: ε (identity)' },
{ state: 'after_s1', label: 'σ₁: Left crosses over middle', highlight: [0,1] },
{ state: 'after_s2', label: 'σ₂: Middle crosses over right', highlight: [1,2] },
{ state: 'after_s1_inv', label: 'σ₁⁻¹: Left crosses UNDER middle', highlight: [0,1] },
{ state: 'final', label: 'Result: Strands repositioned, complexity = 3' }
];
For "why 3 dogs is fundamentally different from 2":
┌─────────────────────┬─────────────────────┐
│ TWO STRANDS (B₂) │ THREE STRANDS (B₃) │
├─────────────────────┼─────────────────────┤
│ One generator: σ₁ │ Two generators: σ₁,σ₂│
│ │ │
│ Abelian (order │ NON-abelian │
│ doesn't matter) │ (order MATTERS!) │
│ │ │
│ σ₁σ₁⁻¹ = ε always │ σ₁σ₂ ≠ σ₂σ₁ │
│ │ │
│ Always untangle by │ May need complex │
│ counting crossings │ algorithms to solve │
│ │ │
│ Like a single dial │ Like a Rubik's cube │
└─────────────────────┴─────────────────────┘
Symptom: Starting with "B₃ = ⟨σ₁, σ₂ | σ₁σ₂σ₁ = σ₂σ₁σ₂⟩"
Problem: Readers without group theory background are immediately lost. The notation is correct but pedagogically backwards.
Solution:
Symptom: A single image showing "before and after" a braid operation
Problem: Braiding is inherently a continuous process. Students need to see the motion, not just endpoints.
Solution:
Symptom: "The complexity is 7" without explaining what that means practically
Problem: Numbers are meaningless without grounding in physical reality
Solution:
Each strand gets a consistent color throughout all diagrams:
This makes tracking permutations intuitive.
Show the braid as horizontal slices:
t=0: R───G───B (initial positions)
t=1: G───R───B (after σ₁: R crossed over G)
t=2: G───B───R (after σ₂: R crossed over B)
Create mappings to everyday objects:
Purpose: Show why walking 2 dogs is trivially manageable but 3 dogs creates genuine complexity.
Implementation:
// Simplified physics demo with thick rope rendering
class BraidDemo {
constructor(numStrands) {
this.strands = numStrands;
this.crossings = [];
this.mode = 'interactive'; // or 'playback'
}
// Render thick ropes with clear over/under
renderThickRope(strand, ctx) {
ctx.lineWidth = 20;
ctx.lineCap = 'round';
// Draw shadow pass first (creates depth)
// Then main strand with gradient
}
// Highlight the key insight
showComplexityDifference() {
if (this.strands === 2) {
return "Count crossings. Apply that many σ₁⁻¹. Done.";
} else {
return "Must track which strand crossed which. Order matters!";
}
}
}
Purpose: Let users discover that σ₁σ₂σ₁ = σ₂σ₁σ₂ through experimentation.
Features:
Is the concept about static structure or dynamic process?
├── Static (e.g., "what is a braid group?")
│ └── Use: Comparison cards, diagrams with annotations
└── Dynamic (e.g., "how does σ₁ work?")
├── Is it a single operation?
│ └── Use: Before/after with animation between
└── Is it a sequence?
└── Use: Step-wise timeline with scrubbing
When using the simulation's physics engine for demonstrations:
This skill encodes: Visual pedagogy for braid theory | Explainer card patterns | Animation specifications | Anti-patterns in math education | Physical-first teaching approach
tools
Building resilient distributed systems with circuit breakers, retries with full-jitter exponential backoff, retry budgets (per-request 3-attempt + per-client 10% ratio per Google SRE), deadline propagation, and the cascading-failure math (4 layers × 3 retries = 64x amplification). Grounded in Resilience4j, Microsoft Cloud Patterns, AWS Architecture Blog (Marc Brooker), and Google SRE Book.
testing
Designing HTTP cache headers that work correctly across browsers, CDNs, and shared proxies — `Cache-Control` directives per RFC 9111, `stale-while-revalidate` and `stale-if-error` per RFC 5861, the Vary header for varying responses, and surrogate keys for tag-based purging. Grounded in IETF RFCs and Cloudflare/Fastly docs.
development
Use when designing or fixing a Content Security Policy on a real site, choosing between nonce-based and hash-based CSP, adding strict-dynamic, debugging "Refused to execute inline script" errors, deploying CSP in report-only mode first, configuring report-to / report-uri, or auditing an existing policy for unsafe-inline / unsafe-eval / wildcards. Triggers: "CSP blocks legitimate inline script", strict-dynamic, nonce-{RANDOM}, sha256-{HASH}, object-src none, base-uri none, frame-ancestors, Trusted Types, X-Content-Security-Policy obsolete, report-only vs enforced. NOT for general HTTP security headers (HSTS, COOP/COEP), Trusted Types deep dive, CORS configuration, or building a WAF.
tools
Choosing and operating an HTTP API versioning strategy that doesn't break clients — Stripe's date-based pinned versions, the Deprecation/Sunset header pair (RFC 9745 + RFC 8594), URI vs header vs media-type approaches, and the version-transformer pattern. Grounded in Stripe's published architecture and IETF RFCs.