# Contributing to MayaFlux

Thank you for your interest in contributing to **MayaFlux**!
This project is built on the principles of open knowledge, equitable access, and collaborative development.
By participating, you agree to abide by the **GPLv3 license** and the guidelines below.

---

## 🧩 Contribution Philosophy

1. **Open Source First**
   All contributions must remain open and compatible with GPLv3.
   No proprietary or NDA-bound work can be merged.

2. **Shared Credit**
   All contributors are acknowledged in release notes, `CONTRIBUTORS.md`, and Git history.
   Attribution and citation are integral to how MayaFlux recognizes effort.

3. **Public Benefit**
   Contributions should advance the public, creative, or technical potential of digital media systems.
   This project exists to empower creators, not gatekeep technology.

4. **Technical Integrity**
   MayaFlux adheres to real-time safety, cross-platform correctness, and compositional clarity.
   PRs that violate these principles may be deferred until restructured.

---

## 🔧 Contribution Workflow

1. **Fork** the repository.
2. **Create a branch** for your feature, fix, or document.
3. **Commit cleanly** — prefer focused commits with descriptive messages.
4. **Submit a Pull Request (PR)** containing:

   * A summary of what was done and why
   * Notes on testing (especially for real-time or platform-critical changes)
   * References to any algorithms, papers, or external code used

PRs are reviewed for technical clarity, conceptual alignment, and code safety.

---

## 🚀 Contribution Areas

MayaFlux welcomes contributions across several domains:

| Area                                | Description                                            | Reference                                      |
| ----------------------------------- | ------------------------------------------------------ | ---------------------------------------------- |
| **Core Development**                | Engine code, nodes, scheduling, DSP, graphics, runtime | Internal review required                       |
| **Documentation & Tutorials**       | Guides, concept overviews, teaching materials          | `docs/`                                        |
| **Starter Tasks**                   | Logging cleanup, context tagging, code modernization   | [`docs/StarterTasks.md`](docs/StarterTasks.md) |
| **Build Operations & Distribution** | CI/CD, installers, package manager recipes             | [`docs/BuildOps.md`](docs/BuildOps.md)         |
| **Research & Theory**               | Algorithmic or conceptual proposals                    | Open issue → Discussion thread                 |

---

**New to MayaFlux?** Start with [Starter Tasks](docs/StarterTasks.md) or [Build Operations](docs/BuildOps.md).

---

## 🧱 Requirements for All PRs

* Code must **compile cleanly** on at least one supported platform.
* Documentation should be updated when behavior changes.
* Maintain **real-time safety** in audio and rendering contexts.
* Follow existing code style conventions.
* Include license headers where appropriate.

---

## 🤝 Communication & Etiquette

* Use Issues or Discussions for questions before starting major work.
* Be respectful and patient — we aim for rigor, not speed.
* Engage constructively; critical discourse is encouraged, hostility is not.
* Contributions are welcome regardless of background or experience.

---

## 🧠 AI-Assisted Contributions

MayaFlux recognizes that AI, in the hands of thoughtful and experienced practitioners, can be a powerful tool.

Like any instrument, its value depends on the person using it.

A master musician does not rely on the prestige of a rare instrument to create meaningful work. A Stradivarius may refine expression, but it does not replace authorship, intent, or understanding. The same applies to AI: it can extend capability, but it cannot substitute responsibility.

**Policy:**

* AI-assisted contributions are **welcome**.
* AI may be used for ideation, drafting, refactoring, or bulk generation.
* However, **all contributions must be authored, reviewed, and submitted by a human**.

The individual submitting a PR is fully responsible for:

* The correctness and safety of the code
* Compliance with GPLv3 and licensing requirements
* Alignment with MayaFlux’s architectural and conceptual principles

**Non-negotiable constraint:**

* Contributions **must not be authored or signed by autonomous agents**.
* No bot-driven commits, AI identities, or automated PR generation without human ownership.

If you submit work, you are the author.

---

## ⚖️ Legal & Licensing

By contributing, you affirm that:

* You have the right to share your contribution under GPLv3.
* Your code/documentation is free from third-party restrictions.

This ensures MayaFlux remains open, sustainable, and publicly beneficial.

---

## 🪜 Where to Start

If you’re new, begin with:

* [`docs/StarterTasks.md`](docs/StarterTasks.md) — short, tangible starter issues
* [`docs/BuildOps.md`](docs/BuildOps.md) — if you’re interested in build systems, CI/CD, or packaging

---

*(For questions or coordination, open an issue with the appropriate label, e.g. `build-ops`, `doc`, `feature`, or `discussion`.)*
