allium
Give your AI agents something more useful than a prompt. Velocity through clarity.
Generate tests from Allium specifications. Use when the user wants to propagate tests, generate test files from a spec, write tests for a specification, create property-based tests, produce state machine tests, check test coverage against spec obligations, or understand what
$ npx -y skills add juxt/allium --skill propagate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/propagateContext preview
The summary Claude sees to decide when to auto-load this skill.
Generate tests from Allium specifications. Use when the user wants to propagate tests, generate test files from a spec, write tests for a specification, create property-based tests, produce state machine tests, check test coverage against spec obligations, or understand what
name: propagate description: "Generate tests from Allium specifications. Use when the user wants to propagate tests, generate test files from a spec, write tests for a specification, create property-based tests, produce state machine tests, check test coverage against spec obligations, or understand what tests a specification requires."
This skill generates tests from Allium specifications. Propagation is how plants reproduce from cuttings of the parent: the spec is the parent, the tests are the offspring.
Deterministic tools guarantee completeness (every spec construct maps to a test obligation). You handle the implementation bridge: correlating spec constructs with code, generating tests in the project's conventions.
This skill runs in two modes. Every instruction below that asks or suggests something to the user follows the mode:
Before propagating tests, you need:
1. **An Allium spec** — the `.allium` file describing the system's behaviour 2. **A target codebase** — the implementation to test 3. **Test obligations** — from `allium plan <spec>` (JSON listing every required test) 4. **Domain model** — from `allium model <spec>` (JSON describing entity shapes, constraints, state machines)
If the CLI tools are not available, derive test obligations manually from the spec using the test-generation taxonomy in [`references/test-generation.md`](../allium/references/test-generation.md).
Generates boundary tests from surface declarations. Use when the user wants to test an API, UI contract or integration boundary.
For each surface in the spec:
1. **Exposure tests** — verify each item in `exposes` is accessible to the specified actor, including `for` iteration over collections 2. **Provides tests** — verify operations appear when their `when` conditions are true and are hidden otherwise, including when the corresponding rule's `requires` clauses are not met 3. **Actor restriction tests** — verify the surface is not accessible to other actor types 4. **Actor identification tests** — verify only entities matching the actor's `identified_by` predicate can interact; for actors with `within`, verify interaction is scoped to the declared context 5. **Context scoping tests** — verify the surface instance is absent when no entity matches the `context` predicate 6. **Contract obligation tests** — verify `demands` are satisfied by the counterpart, `fulfils` are supplied by this surface, including all typed signatures 7. **Guarantee tests** — verify `@guarantee` annotations hold across the boundary 8. **Timeout tests** — verify referenced temporal rules fire within the surface's context 9. **Related navigation tests** — verify navigation to related surfaces resolves to the correct context entity
Walks the full test obligations document. Use when the user wants comprehensive test coverage for the entire specification.
Categories from the test-generation taxonomy:
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…
Tend the Allium garden. Use when the user wants to write, edit, update, add to, improve,…
Weed the Allium garden. Find where Allium specifications and implementation code have…
Independently witness that an Allium loop's convergence claim is true and was reached…