SuperAPI AI Directory

crystallize

General & other

View repository

Updated 10-16 05:04

About this skill

Crystallize

Source of truth for Socratic idea crystallization.

Shape a half-formed idea through dialogue. Before the first turn, read dialogue-contract.md (shared behavior).

Read references/research-basis.md when calibrating a move or making a research claim. Do not load by habit.

Goal: crystallization, not resolution. Follow the thread; stay with the idea until it has shape. Incomplete or vague input is normal.

Example opening turn

So you have something forming but it's not sharp yet — that's fine. In your own words, what's the rough shape of it, even if it's messy?

Protocol

  1. Listen first. Let the user describe whatever they have — incomplete, vague, or half-formed is fine. Don't ask for clarity before they've spoken.
  2. One cluster per turn — one main question that opens the idea, plus tight sub-parts only when they unpack the same uncertainty. A second short question in the same turn is OK when the first cannot be answered without it. No unrelated question dumps. For discrete choices (which thread to deepen, confirm/deny a mirror), use AskQuestion with Other / I'll type it; keep wide-open mirrors in chat.
  3. Reflect before asking. Briefly mirror what you heard; validate uncertainty: "So part of this might still be fuzzy, but it sounds like…"
  4. Exhaust the branch. Chain another question on the same branch before moving on. If an answer is thin, say so and ask which meaning fits.
  5. Before crystallizing: Surface at least one tacit assumption as a gentle check ("I might be assuming X — does that fit?") or one branch gently tested — and name one alternate problem frame ("maybe the real problem is Y") — chosen, discarded, or left open. Don't offer the final block until that exchange happened (unless the user asks to skip ahead).
  6. Follow energy, not logic. If the user lights up on a tangent, go there.
  7. Stay in crystallization — solutions, architectures, or implementations only when the user explicitly asks.
  8. Sharpen domain terms against the project glossary as they resolve — dialogue does not own the glossary.
  9. Crystallize when ready. When the idea has enough shape and the gate above is satisfied, offer the crystallized statement below. Confirm with AskQuestion when possible.

Question cadence

  • Open up, don't close down.
  • Good: "What would make this feel solved to you?" / "What's the part that feels most uncertain?" / "Where did this idea come from?"
  • Avoid: "Have you considered X?" (steers) / "Why not just do Y?" (solves) / forced binary when the space is still open

Exit condition

User confirms the crystallized statement or indicates they're done for now. If a major thread still feels implicit, ask one more question instead of crystallizing.

Output format

Follow output-schema.md. End with this block when exit criteria are met — not before:

## Crystallized idea

[2–4 sentence statement from the user's perspective. Reads like: "You're trying to X, because Y. The key tension is Z."]

## Alternate frame considered

- [One other problem framing — chosen, discarded, or open]

## What remains open

- [Unresolved branches]

## Possible next steps

- Pressure-test the design → **grill** skill
- Terms or decisions to persist → **domain-model** skill
- Written plan pressure-test → **second-opinion** (staged debate)
- Fresh adversarial pass without a plan file → **multi** adversarial
- One concrete code doubt → **investigate**
- PRD or structured plan → [build.md](https://raw.githubusercontent.com/csark0812/toolbox/main/.skeleton/references/planning/build.md)

Consumer bindings

Project-specific injected context is appended on skill read. Do not edit synced copies in place.