The central constraint
You bring the design intention. The AI executes it.
Before any generative design session, write your intention in one sentence. The toolkit enforces this. If you can't articulate what you wanted before the output arrived, the loop has already replaced your judgment.
This is the trespass.ing principle applied to design: author-preservation is agency.
Commands
In any Claude Code session with the skill installed:
| Command | Description |
|---|---|
/tilde-style init | Design intention interview → style.md + DESIGN.md |
/tilde-style gardening | Load the Gardening style (Teich-Morgen palette, pond vocabulary) |
/tilde-style ground | Write your intention before generating. Preserves authorship. |
/tilde-style tend | Review current state against the active metaphor. Flag drift — including season mixing. |
/tilde-style detect | Scan for anti-patterns. Deterministic. |
/tilde-style language | Define a new design language: metaphor → tokens → vocabulary |
/tilde-style document | Write or update DESIGN.md from current state |
/tilde-style season | Add a temporal palette variant via the data-mode pattern |
Tooling
Some commands above are creative — deriving a metaphor, picking a palette from a photograph — and stay a conversation, on purpose. Others turned out to be purely mechanical, and got ported to wiggle, this toolkit's own compiled CLI.
| Command | Mechanizes | What it does |
|---|---|---|
wiggle add <name> | part of init/language's file-writing step | Scaffolds styles/<name>/style.css — loud placeholder magenta, deliberately unfinished |
wiggle link <name> | same | Wires an existing style into this page: <link>, gallery card, switcher button, panel |
wiggle detect | detect's deterministic checks | Real static analysis (not regex) — scale-first vocabulary, motion without a still state, raw hex instead of tokens, season mixing |
wiggle season | season's CSS-generation step | Appends a mode's token overrides, wires a toggle button |
wiggle never decides what a style should look like — every command above only runs once a real design intention already exists.
git clone git@tangled.org:tilde.style/toolkit ~/tilde.style
cd ~/tilde.style && make build # → ./wiggle, ./wiggle-verify
Or install directly:
GOPRIVATE=tangled.org go install tangled.org/tilde.style/toolkit/tools/cmd/wiggle@latest
Styles
Three styles ship so far, all grounded in a real metaphor, none invented for this page. Every palette below is sampled from an actual photograph, not picked from a mood board — see the thumbnails in the gallery above. Create your own with /tilde-style language.
Gardening
Extracted from chatbot-garden — a vocational training knowledge assistant. The knowledge base is a pond, content floats as Lernhappen, the ingest workflow is a picnic, the tool server is a shed, the append-only event log is a Rundholz. Its palette — pond green, lily white, birdhouse amber — is sampled directly from the pond photos above, not a generic "nature" green.
Teich-Morgen palettePond vocabularyTending interaction model
Bonfire
A small fire, a finite circle of gathered guests, warmth as presence not spectacle. Two seasons: Funkenflug (night, sparks) and Erntetag (daylight, a harvest gathering) — each season's colors are sampled from the matching real photo, not invented warm tones.
Funkenflug / Erntetaghearth, kindling, embers
Sailplane
A glider climbing on thermals — no engine, reading wind and light instead of a fixed route. Rooted in the Baltic tideline and a real flight above the clouds — every token, from --wrack to --cumulus, is sampled from those two photos.
Aloft / DuskThermal, Variometer, Outlanding
Contribute a style
- Fork the repo on tangled.org
- Run
/tilde-style languagein a Claude Code session - Save your manifest to
styles/{your-style}/style.md - Open a PR — include the metaphor origin and a color swatch
Install
git clone git@tangled.org:tilde.style/toolkit ~/.claude/skills/tilde-style
Then in any Claude Code session:
/tilde-style init