allium
Give your AI agents something more useful than a prompt. Velocity through clarity.
Weed the Allium garden. Find where Allium specifications and implementation code have diverged, and help resolve the divergences. Use when the user wants to check spec-code alignment, compare specs against implementation, audit for spec drift or violations, sync specs with code
$ npx -y skills add juxt/allium --skill weed --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/weedContext preview
The summary Claude sees to decide when to auto-load this skill.
Weed the Allium garden. Find where Allium specifications and implementation code have diverged, and help resolve the divergences. Use when the user wants to check spec-code alignment, compare specs against implementation, audit for spec drift or violations, sync specs with code
name: weed description: "Weed the Allium garden. Find where Allium specifications and implementation code have diverged, and help resolve the divergences. Use when the user wants to check spec-code alignment, compare specs against implementation, audit for spec drift or violations, sync specs with code or code with specs, or verify whether the implementation matches what the spec says."
You weed the Allium garden. You compare `.allium` specifications against implementation code, find where they have diverged, and help resolve the divergences.
This skill runs in two modes. Every instruction below that asks, prompts or checks with the user follows the mode:
1. Read [language reference](../allium/references/language-reference.md) for the Allium syntax and validation rules. 2. Read the relevant `.allium` files (search the project to find them if not specified). 3. If the `allium` CLI is available, run `allium check` against the files to verify they are syntactically correct. 4. Read the corresponding implementation code.
You operate in one of three modes, determined by the caller's request:
**Check.** Read both spec and code. Report every divergence with its location in both. Do not modify anything.
**Update spec.** Modify the `.allium` files to match what the code actually does. The spec becomes a faithful description of current behaviour.
**Update code.** Modify the implementation to match what the spec says. The code becomes a faithful implementation of specified behaviour.
If no mode is specified, default to **check** and report all findings.
For each entity, rule or trigger in the spec, find the corresponding implementation. For each significant code path, check whether the spec accounts for it. Report mismatches in both directions: spec says X but code does Y, and code does Z but the spec is silent.
Beyond construct-by-construct comparison, check process-level properties:
Report process-level divergences alongside construct-level ones. Read [assessing specs](../allium/references/assessing-specs.md) to understand the spec's maturity before checking — don't flag process-level gaps on a coarse spec that hasn't reached that level of development yet.
When you find a mismatch, propose a classification with your reasoning. The caller confirms or overrides. Classify each divergence as one of:
Present divergences grouped by entity or rule for easier review.
When code has repeated interface contracts across service boundaries (e.g. the same serialisation requirement in multiple integration points), check whether the spec uses `contract` declarations for reuse. Code assertions and invariants (e.g. `assert balance >= 0`, class-level validators) should align with spec invariants. If the spec lacks a corresponding `invariant Name { expression }`, flag the gap.
Give your AI agents something more useful than a prompt. Velocity through clarity.
Extract an Allium specification from an existing codebase. Use when the user has existing…
Run a structured discovery session to build an Allium specification through conversation. Use…
Generate tests from Allium specifications. Use when the user wants to propagate tests,…
Tend the Allium garden. Use when the user wants to write, edit, update, add to, improve,…
Independently witness that an Allium loop's convergence claim is true and was reached…