# Contributing to Alloy 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. ## License 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. 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+. ## Project state 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. ## Conventions These mirror the rest of the `~/Code` ecosystem; deviations should be deliberate. - **No emoji.** Anywhere. UI copy, commit messages, docs, comments, file names. The only graphic mark Alloy will adopt is its own. - **No PRs, no issue tracker.** Discussion happens directly. Open questions live in [`docs/todo.md`](docs/todo.md). - **Rust 2024 edition.** Latest stable. Latest deps; don't pin without a reason recorded in the manifest. - **Commits:** concise, imperative, no emoji. One logical change per commit when practical. - **Native builds per architecture.** No cross-compilation. ## Code style (when code lands) - The ratatui design-system crate is `alloy_tui`. Token constants and themed widgets live there; downstream apps re-export rather than redefine. - 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. - Prose surfaces stay in the working monospace. Mono-only is part of the brand. See [`docs/TOKENS.md`](docs/TOKENS.md). - Color is reserved for information. Chrome is tinted-greyscale. See [`docs/DESIGN-LANGUAGE.md`](docs/DESIGN-LANGUAGE.md). ## Working notes 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.