npx claudepluginhub plurigrid/asi --plugin asiThis skill uses the workspace's default tool permissions.
> *"A pun exploits multiple valid decompositions of the same phonetic surface."*
Reflows content between contexts like FORMAL, COMPRESSED, RUBY, SQL, and CLOJURE while conserving GF(3) invariant. Useful for cross-context code translation and paradigm shifts.
Diagnoses why jokes fail and engineers improvements using nine systems properties like connection distance, density, and resolution satisfaction. For flat humor, forced punchlines, or comedic writing.
Deconstructs concepts across 8 philosophical dimensions into org-mode epiphany reports. Invoke via /ljg-learn or auto-triggers on 'explain/learn concept' phrases.
Share bugs, ideas, or general feedback.
"A pun exploits multiple valid decompositions of the same phonetic surface."
A pun is an information reflow that maps a single surface form to multiple semantic contexts. The humor arises from the unexpected context switch—the inductive bias favors one parse, but the pun activates another.
pun : Surface → {Context₁, Context₂, ...}
where each Contextᵢ has a valid decomposition
This skill knows its neighbors in the triad:
| Position | Skill | Trit | Role |
|---|---|---|---|
| Left | gestalt-hacking | 0 | Perceptual grouping exploitation |
| Self | pun-decomposition | -1 | Multiple parse validation |
| Right | acsets | 0 | Schema-aware decomposition |
Yang-Baxter coherence: (σ₁⊗id)(id⊗σ₁)(σ₁⊗id) = (id⊗σ₁)(σ₁⊗id)(id⊗σ₁)
pun-decomposition (-1) ⊗ gestalt-hacking (0) ⊗ gay-mcp (+1) = 0 ✓ [Core Pun]
pun-decomposition (-1) ⊗ acsets (0) ⊗ topos-generate (+1) = 0 ✓ [Schema Pun]
pun-decomposition (-1) ⊗ reflow (0) ⊗ gay-mcp (+1) = 0 ✓ [Reflow Pun]
three-match (-1) ⊗ gestalt-hacking (0) ⊗ gay-mcp (+1) = 0 ✓ [Pattern Match]
From the gestalt hacking thread:
enum GestaltPrinciple {
Proximity, // Close morphemes group
Similarity, // Similar sounds group
Closure, // Incomplete parse completed
Continuity, // Smooth phonetic path preferred
FigureGround, // Dominant meaning masks secondary
}
A pun exploits Closure and FigureGround:
# "I'm reading a book about anti-gravity. It's impossible to put down."
{
surface: "put down",
decompositions: [
{ parse: ["put", "down"], meaning: "place on surface", trit: 1 },
{ parse: ["put-down"], meaning: "stop reading", trit: -1 },
],
inductive_bias: 0.7, # Favors first parse
pun_strength: 0.3 # Second parse activation
}
# "Time flies like an arrow. Fruit flies like a banana."
{
surface: "flies like",
decompositions: [
{ parse: ["flies", "like"], pos: ["verb", "prep"], trit: 1 },
{ parse: ["flies", "like"], pos: ["noun", "verb"], trit: -1 },
],
gestalt_principle: :figure_ground,
context_switch: "arrow → banana"
}
# From the reflow skill:
{
word: "trimester",
decomposition: ["tri-", "mester"],
trits: [0, 0],
gf3_sum: 0, # Balanced!
resonance: :strong
}
{
word: "semester",
decomposition: ["se-", "mester"], # se- = six (2×3)
trits: [0, 0],
gf3_sum: 0, # Also balanced via factorization
resonance: :moderate
}
@present SchPun(FreeSchema) begin
Surface::Ob
Parse::Ob
Morpheme::Ob
Meaning::Ob
surface::Hom(Parse, Surface)
morphemes::Hom(Morpheme, Parse)
meaning::Hom(Parse, Meaning)
# Attributes
Text::AttrType
Trit::AttrType
Bias::AttrType
text::Attr(Surface, Text)
trit::Attr(Parse, Trit)
bias::Attr(Parse, Bias)
end
@acset_type Pun(SchPun, index=[:surface, :meaning])
The inductive bias determines which decomposition is "default":
P(parse₁ | surface) = softmax(bias₁ / τ)
P(parse₂ | surface) = softmax(bias₂ / τ)
where τ = temperature (context sensitivity)
At low temperature (focused context), one parse dominates. At high temperature (open context), multiple parses activate → PUN.
From gestalt hacking thread:
┌─────────────────────────────────────────────────────────┐
│ PunGame ∆ │
│ ───────────────────────────────────────────────────── │
│ play :: Surface → ∆ [Parse] ← enumerate parses │
│ evaluate :: [Parse] → Meaning ← select by context│
│ │
│ Pun = play produces multiple; evaluate oscillates │
└─────────────────────────────────────────────────────────┘
When puns attack comprehension, use stochastic sampling:
impl PunDefender {
fn disambiguate(&mut self, surface: &str) -> Parse {
let parses = self.decompose(surface);
if parses.len() > 1 {
// Multiple valid parses detected
let (_, selected) = self.poisson.next_arrival(0.0);
// Use Poisson timing to break tie
parses[selected.to_usize() % parses.len()].clone()
} else {
parses[0].clone()
}
}
}
Using the LMBIH seed (327833753928) for pun coloring:
# XIP-7074D4: LMBIH Etymological Resonance
seed = 327833753928 # "LMBIH".bytes → hex
index = 43
color_at(seed, index) # => #7074D4 (purple-blue)
# The pun lives in the purple-blue spectrum:
# - Blue = validation (checking parses)
# - Purple = blend of generation + validation
just pun-decompose "time flies" # Enumerate parses
just pun-triad gestalt acsets # Show GF(3) triad
just pun-bias 0.7 # Set inductive bias
just pun-attack closure # Test gestalt attack
This skill connects to the K-Dense-AI/claude-scientific-skills ecosystem:
algorithms: 19 citations in bib.duckdbThis skill maps to Cat# = Comod(P) as a bicomodule in the equipment structure:
Trit: 0 (ERGODIC)
Home: Prof
Poly Op: ⊗
Kan Role: Adj
Color: #26D826
The skill participates in triads satisfying:
(-1) + (0) + (+1) ≡ 0 (mod 3)
This ensures compositional coherence in the Cat# equipment structure.