| 1 |
# Contributing to Alloy |
| 2 |
|
| 3 |
Alloy is currently solo-built by Max Johnson under Make Creative, LLC. External patches are not being accepted yet; this document records the conventions the project follows so the work stays internally consistent. |
| 4 |
|
| 5 |
## License |
| 6 |
|
| 7 |
Alloy is licensed under the GNU General Public License v3.0 or later. See [LICENSE](LICENSE). Code contributed to this repository must be compatible with GPLv3+. Any future code outside this license (vendored dependencies, etc.) must carry compatible terms. |
| 8 |
|
| 9 |
One crate is deliberately exempt: `crates/alloy_tui` is MIT ([its own LICENSE](crates/alloy_tui/LICENSE)), because it is the reusable design system rather than the application. Publishing it permissively lets other terminal UIs adopt Alloy's look without inheriting copyleft, and lets non-GPL siblings link it. Contributions to that crate are MIT; everything else in the repo is GPLv3+. |
| 10 |
|
| 11 |
## Project state |
| 12 |
|
| 13 |
Pre-v0. The docs in [`docs/`](docs/) are the project. Code follows. When a design decision changes, edit the relevant doc and let the commit message carry the rationale — no separate changelog. |
| 14 |
|
| 15 |
## Conventions |
| 16 |
|
| 17 |
These mirror the rest of the `~/Code` ecosystem; deviations should be deliberate. |
| 18 |
|
| 19 |
- **No emoji.** Anywhere. UI copy, commit messages, docs, comments, file names. The only graphic mark Alloy will adopt is its own. |
| 20 |
- **No PRs, no issue tracker.** Discussion happens directly. Open questions live in [`docs/todo.md`](docs/todo.md). |
| 21 |
- **Rust 2024 edition.** Latest stable. Latest deps; don't pin without a reason recorded in the manifest. |
| 22 |
- **Commits:** concise, imperative, no emoji. One logical change per commit when practical. |
| 23 |
- **Native builds per architecture.** No cross-compilation. |
| 24 |
|
| 25 |
## Code style (when code lands) |
| 26 |
|
| 27 |
- The ratatui design-system crate is `alloy_tui`. Token constants and themed widgets live there; downstream apps re-export rather than redefine. |
| 28 |
- Tokens are the source of truth for color and font-family hints. See [`docs/TOKENS.md`](docs/TOKENS.md). No hardcoded colors in widget code — pull from tokens. |
| 29 |
- Prose surfaces stay in the working monospace. Mono-only is part of the brand. See [`docs/TOKENS.md`](docs/TOKENS.md). |
| 30 |
- Color is reserved for information. Chrome is tinted-greyscale. See [`docs/DESIGN-LANGUAGE.md`](docs/DESIGN-LANGUAGE.md). |
| 31 |
|
| 32 |
## Working notes |
| 33 |
|
| 34 |
Personal notes, todos, and audit material that aren't part of the public project live outside this repo, under `_private/docs/alloy/` in the author's environment. The `.gitignore` blocks `CLAUDE.md` and `todo.local.md` so those never enter version control. |
| 35 |
|