weft

Rules for contributors and AI agents

These rules apply to every change, whether a person or an AI agent makes it. They keep Weft small, fast and consistent. If a rule gets in your way, open an issue before breaking it.

Hard rules

Names

The app was called Sprout until 1.5.0 (2026-11-01). User-facing text, class names (WeftApp, WeftType…), export file names and links say Weft. These stored names stay sprout on purpose, so Sprout installs update to Weft and keep their data; never rename them:

Behaviour rules

Design and text

Code

Workflow

  1. Read the skill for the feature you’re changing in .claude/skills/. It explains how the feature works, where the code is and how to check it.
  2. Make the change, then run the unit tests and the smoke suite (python3 tools/verify/smoke.py, see CONTRIBUTING.md).
  3. For UI changes, also check dark mode and the largest font size.
  4. Add a check to tools/verify/smoke.py for new behaviour, update or add the feature’s skill, and add anything left undone to TODO.md.
  5. When the maintainer asks for a commit, write a message that says what changed and why.