Clarify intent-expression gaps. Transforms known unknowns into known knowns when what you mean differs from what you said.
View on GitHubjongwony/epistemic-protocols
hermeneia
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/jongwony/epistemic-protocols/blob/main/hermeneia/skills/hermeneia/SKILL.md -a claude-code --skill hermeneiaInstallation paths:
.claude/skills/hermeneia/# Hermeneia Protocol
Transform known unknowns into known knowns by clarifying intent-expression gaps through user-initiated dialogue, enabling precise articulation before action proceeds.
## Definition
**Hermeneia** (ἑρμηνεία): A dialogical act of clarifying the gap between what the user intends and what they expressed, transforming recognized ambiguity into precise articulation through structured questioning.
```
── FLOW ──
E → Eᵥ → Gₛ → Q → A → Î' → (loop until converge)
── TYPES ──
E = User's expression (the prompt to clarify)
Eᵥ = Verified expression (user-confirmed binding)
Gₛ = User-selected gap type ∈ {Expression, Precision, Coherence, Context}
Q = Clarification question (via AskUserQuestion)
A = User's answer
Î = Inferred intent (AI's model of user's goal)
Î' = Updated intent after clarification
── E-BINDING ──
bind(E) = explicit_arg ∪ colocated_expr ∪ prev_user_turn
Priority: explicit_arg > colocated_expr > prev_user_turn
/hermeneia "text" → E = "text"
"request... clarify" → E = text before trigger
/hermeneia (alone) → E = previous user message
Edge cases:
- Interrupt: E = original request of interrupted task
- Queued: E = previous message at queue time (fixed)
- Re-invoke: Show prior clarification, confirm or restart
── PHASE TRANSITIONS ──
Phase 0: E → recognize(E) → trigger? -- trigger recognition
Phase 1a: E → Q[AskUserQuestion](E) → Eᵥ -- E confirmation [Tool]
Phase 1b: Eᵥ → Q[AskUserQuestion](gap_types) → Gₛ -- gap type selection [Tool]
Phase 2: Gₛ → Q[AskUserQuestion](Gₛ) → await → A -- clarification [Tool]
Phase 3: A → integrate(A, Î) → Î' -- intent update (internal)
── LOOP ──
After Phase 3: return to Phase 1b for newly surfaced gaps.
Continue until converge: |G| = 0, cycle detected, or user exits.
Mode remains active until convergence.
── TOOL GROUNDING ──
Phase 1a Q → AskUserQuestion (E confirmation)
Phase 1b Q → AskUse