| name | insight-crystallizer |
| description | A meta-skill for recognizing when a reusable methodology has emerged during work, articulating that tacit 'unnameable' insight into explicit words, and crystallizing it into a new skill for future reuse. Trigger proactively (don't wait for an explicit request) when any of these signals fires: (a) a breakthrough after prolonged struggle; (b) the user's short correction fundamentally changes your approach; (c) the same non-obvious judgment keeps recurring (3+ times); (d) someone says 'it just feels off / I can't say why but it should be this way'; (e) explicit request such as 'turn this into a skill' / 'save this as a skill' / 'always do it this way' / 'this matters' / 'crystallize it'. Also use it to review past work for lessons worth codifying. Operate in the user's working language. |
Insight Crystallizer
A meta-protocol: recognize "a methodology worth accumulating has just emerged," force that unspoken-yet-important tacit understanding into explicit language, then crystallize it into a reusable new skill.
Inspiration: Christopher Alexander's Pattern Language. He proved that "quality without a name" can be captured โ if you interrogate it with the right structure: Context โ Tension โ Move โ Boundary.
This skill runs in three phases: Recognize โ Articulate โ Crystallize. None can be skipped, and the order cannot be reversed โ without recognition there is no material; without articulation you only ever crystallize hollow slogans.
This skill works in the user's working language: it speaks to the user and writes the crystallized skill in whatever language the user is using.
Phase 1 โ Recognize (when is something worth crystallizing?)
Not every experience deserves to become a skill. What's worth crystallizing is a methodology, not a fact.
- Fact: "This API's timeout is 30 seconds" โ just note it down, no need to crystallize.
- Technique: "Library X is faster than library Y" โ a one-line remark suffices.
- Methodology: "When the stakeholder says 'we want everything,' first ship an ugly-but-complete version to force out the real priorities" โ this is worth crystallizing.
Trigger signals (act when any fires)
- Breakthrough after struggle โ repeated failed attempts, then a perspective shift suddenly makes the problem simple. The "perspective delta" before and after the breakthrough is the methodology.
- Corrective redirection โ a short user remark makes you scrap the entire approach. Ask: what judgment framework does the user possess that let them see what I missed?
- Recurring judgment โ the same non-obvious trade-off appears three or more times in a task. Three times is a pattern.
- "I can't say why" moment โ you or the user say something like "this feels off," "it's almost there," "I can't explain it but it should be this way" โ and later it proves the intuition was right.
- Explicit request โ the user directly asks to crystallize.
A signal firing โ must interrupt. First pass it through the suppression rules below.
Suppression rules (avoid being a nuisance)
When a signal fires, check these first. If any hits, hold the confirmation prompt, just jot one line in the conversation, and do not force an interruption:
- It is already covered by a crystallized skill (re-crystallizing is noise).
- The user is in high-density flow and clearly does not want to be interrupted (e.g., rapid short commands, rushing).
- It is merely a fact or technique, not a methodology.
- The same topic has already been asked about once this session.
Action after recognition
Pause and, in the user's working language, say a confirmation (see appendix), e.g.:
"I noticed the turning point just now was ___. There seems to be a reusable methodology behind it โ worth crystallizing into a skill?"
If the user agrees, move to Phase 2. If they decline, just record one line in the conversation; don't push.
Phase 2 โ Articulate (say the unnameable)
This is the hardest step. The enemy of tacit knowledge is premature generalization โ the moment you generalize, it collapses into "communicate more" / "grasp the essence," platitudes everyone repeats and no one can use.
Countermeasure: tell the story first, distill later. Rigorously interrogate with the four questions below; each answer must be grounded in the specific incident that just happened. No abstract conclusions first.
Four-question structure (a Pattern Language variant)
- Context โ what specifically happened? In what task, under what conditions? โ write it concretely enough that a reader says "oh, I've been in that situation too."
- Tension โ what two forces were in conflict? (e.g., fast vs. right; what the user said vs. what they wanted; local optimum vs. global optimum). The unnameable usually hides in the tension โ it is an unspoken resolution of that tension.
- Move โ what specific action resolved the tension? Use verbs, not adjectives. "Ship an ugly-but-complete version first" is a move; "stay agile" is not.
- Boundary โ when does this move stop working? State at least one concrete, credible, observable counterexample โ a way to tell you've crossed the line. A methodology that can't state its failure mode is a slogan, not a methodology.
Tension-first (advanced): if the four questions stall and you're speechless, work backward from Tension โ force out the unspoken contradiction first; Context and Move will usually surface on their own. When the user says "I can't say why but it's this way," you can almost always recover a tension.
Quality gate
After articulating, self-check:
- โ
Could someone who wasn't in that conversation read this and behave differently in their own situation?
- โ
Is it falsifiable (has a boundary where it breaks)?
- โ Has it degenerated into a motivational quote? ("Have more empathy" / "focus on what matters" โ rejected, go back to the concrete case.)
Read the four answers back to the user (in their working language) and invite correction โ the user can usually supply the half-sentence the AI can't see. Do not skip this step: the unnameable usually emerges jointly between human and machine; writing it alone is incomplete.
Phase 3 โ Crystallize (become a reusable skill)
Once the user confirms the articulation, solidify it into a standard skill.
Crystallization template
Create skills/<skill-name>/SKILL.md (in the user's working language):
---
name: <verb-phrase name describing "what it does", e.g. ugly-first-prototype>
description: <critical: this decides whether it triggers correctly in future. Must include
(1) one sentence on the methodology itself;
(2) a concrete description of the trigger situation โ rewrite Phase 2's Context answer,
writing what the user might say or how the task might appear;
(3) "pushy" wording โ better to over-trigger than miss.>
---
# <skill name>
## When (Context) / When
<Phase 2 question 1 answer>
## Core tension / Core tension
<Phase 2 question 2 answer>
## How (Move) / How
<Phase 2 question 3 answer, as executable steps>
## When not (Boundary) / When not
<Phase 2 question 4 answer>
## Source case / Source case
<a minimal excerpt of the actual dialogue/event (with struggle โ breakthrough before/after).
The case is the anchor of tacit knowledge; re-reading it on future triggers evokes
better judgment than re-reading abstract steps. Keep it in the original language.>
Discipline
- Crystallize one methodology at a time. Found three? Make three skills; don't merge them into one blob.
- Keep the source case (most critical): abstraction drifts, cases don't. The case must include the struggle โ breakthrough before/after, not just the polished conclusion โ judgment lives in the turn. Keep the case in its original language.
- Write the description in the trigger situation's language, not the methodology's language. Future triggering relies on situation-matching, not concept-matching.
- After crystallizing, package it as a
.skill (if a skill-creator bundler is available) to hand to the user for their library.
Reuse: after crystallization
When a new task appears, the crystallized skill enters the candidate set via its description. Then:
- First re-read that skill's source case; confirm the current situation is truly isomorphic to the case (not merely superficially similar).
- Check the Boundary section โ is the current situation inside the failure zone?
- After using it, if the methodology needs revision (new boundary, better move), write it back and append the new case to the source-case section. A skill is alive; every use is a chance to re-crystallize.
Live-test loop: the best test is live. Next time a "turning point" appears in conversation, say "crystallize it" and see whether the forced four-question answer is exactly that unnameable thing in your head. If what comes out is still too shallow, that's where the four-question structure needs more pressure โ iterate on this skill itself.
TL;DR
Recognize the turn โ force the unnameable out via ContextโTensionโMoveโBoundary โ crystallize with the source case โ each reuse re-crystallizes.
Appendix: localizable microcopy
Recognition prompt
- "I noticed the turning point just now was ___. There seems to be a reusable methodology behind it โ worth crystallizing into a skill?"
Falsifiability gate
- "Any methodology that can't state a failure counterexample is rejected โ the unfalsifiable is a slogan, not a methodology. Give at least one concrete situation where it breaks."
Delivery
- "Crystallized as skill . Open the .skill to save it to your library. Next reuse = re-crystallization."