Agent skill · research science · juxt

distill

Extract an Allium specification from an existing codebase. Use when the user has existing code and wants to distil behaviour into a spec, reverse engineer a specification from implementation, generate a spec from code, turn implementation into a behavioural specification, or document what a codebase does in Allium terms.

Why this skill is useful

Provides domain-specific knowledge on extracting Allium specifications from codebases, which the AI wouldn't reliably generate on its own.

What it needs

About 11k tokens when loaded. Last updated 2026-07-22. 443 stars on the source repository.

What this skill does

Distillation guide This guide covers extracting Allium specifications from existing codebases. The core challenge is the same as forward elicitation: finding the right level of abstraction. In elicitation you filter out implementation ideas as they arise. In distillation you filter out implementation details that already exist. Both require the same judgement about what matters at the domain level. Code tells you how something works. A specification captures what it does and why it matters. The skill is asking "why does the stakeholder care about this?" and "could this be different while still being the same system?" Interaction modes This skill runs in two modes. Every instruction below that asks, prompts or validates with the user follows the mode: Interactive — running inline in a conversation. Ask the user directly and wait for the answer. Non-interactive — running as the distill subagent (for example inside the Allium loop), where no user is reachable. Scope the distillation from the goal you were given, and do not guess at judgement calls: record each unconfirmed judgement — intended vs accidental behaviour, actor identity, candidate processes, scope exclusions — as an open question declaration in the distilled spec, and list the parked questions in your final output. Scoping the distillation effort Before diving into code, establish what you are trying to specify. Not every line of code deserves a place in the spec. Questions to ask first 1. "What subset of this codebase are we specifying?" Mono repos often contain multiple distinct systems. You may only need a spec for one service or domain. Clarify boundaries explicitly before starting. 2. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills juxt/distill

View the source on GitHub

Browse the @skills marketplace