> For the complete documentation index, see [llms.txt](https://islamu.gitbook.io/islamu-event/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://islamu.gitbook.io/islamu-event/documentation/readme/contributing.md).

# Contributing

How to contribute to ISLAMU Event through issues, documentation, translations, code, and AI-assisted workflows.

Welcome! We are building a free, ethical, and community-sovereign event management platform. Whether you are reporting bugs, improving documentation, translating into your language, or contributing code, your help is deeply valued.

ISLAMU Event is maintained by **Amir Akrari** with **ISLAMU (ASBL en formation)** established as its operational and legal steward. Because maintainer review capacity is constrained, **alignment matters far more than volume**.

***

## Core Contribution Principles

### 1. Alignment Over Volume

Not every pull request will be accepted—even if technically functional—if it increases maintenance overhead or diverges from our Clean Architecture roadmap. Review bandwidth is focused on deliberate, high-quality, and architecturally aligned improvements.

### 2. Atomic Changes ("One PR = One Change")

Keep pull requests tightly scoped:

* Focus exclusively on the single bug, feature, or document at hand.
* **Do not** reformat unrelated files, clean up unrelated code, or bundle multiple concerns into one PR.
* Independent refactors must be proposed and submitted separately.

### 3. Discussion Required for Larger Changes

Before writing code for non-trivial features, migrations, schema updates, or Blazor UI overhauls, you **must** open a discussion first:

* [GitHub Discussions](https://github.com/islamu-ngo/Event/discussions)
* [Discord Community](https://discord.gg/wrkY824Yv5)

Pull requests introducing major architectural shifts without prior alignment may be closed without review.

***

## AI Contribution Policy

AI-assisted contributions (using Cursor, GitHub Copilot, Claude Code, Gemini, ChatGPT, etc.) are **permitted and welcomed**, provided they adhere to strict engineering standards:

* **Mandatory Disclosure:** You must explicitly disclose all AI tools used in your pull request description.
* **Human Ownership & Comprehension:** You are personally responsible for every line of code submitted. You must understand the underlying logic, edge cases, and architectural compliance.
* **Human-Authored Summary:** The PR description and rationale must be written in your own words. Blindly copying raw LLM output is rejected.
* **Zero Tolerance for Unchecked PR Spam:** Uncoordinated, automated PRs that lack contextual understanding or fail to demonstrate comprehension will be closed.

{% hint style="info" %}
**Agentic Engineering Guide:** Interested in how we leverage autonomous AI agents with deterministic rigor? Read our dedicated [**Agentic Engineering & AI Workflow Guide**](/islamu-event/documentation/readme/contributing/agentic-engineering.md) to learn about our 5-stage lifecycle and worktree-isolated execution model.
{% endhint %}

***

## In this Section

* [**Agentic Engineering & AI Workflow**](/islamu-event/documentation/readme/contributing/agentic-engineering.md) — Understand our 5-stage AI lifecycle, worktree isolation, and agent governance.
* [**Local Development Guide**](/islamu-event/documentation/readme/contributing/local-development.md) — Set up your developer workstation with .NET 10, Docker, and .NET Aspire.
* [**Clean Architecture Conventions**](/islamu-event/documentation/readme/contributing/clean-architecture.md) — Understand domain invariants, MediatR CQRS slices, and HAL link assembly.
* [**TUnit Testing Conventions**](/islamu-event/documentation/readme/contributing/tunit.md) — Run fast, targeted unit and integration test slices with TUnit.
* [**Clean-Room IP & Licensing**](/islamu-event/documentation/readme/contributing/clean-room-ip-and-licensing.md) — AGPLv3 guidelines, CLA requirements, and clean-room provenance rules.
* [**Sponsorship & Sustainability**](/islamu-event/documentation/readme/contributing/sponsorship.md) — Support the project through individual donations or corporate sponsorship.

***

## Contributor License Agreement (CLA)

Every non-bot contributor must sign the **ISLAMU Event Contributor License Agreement (CLA) v1.0**. When you open a pull request, the CLA Assistant bot will guide you to sign directly in a comment:

```
I have read and agree to the ISLAMU Event Contributor License Agreement v1.0, and I confirm that I have the right to submit my contribution under it.
```

* **Anti-SaaS Protection:** The CLA protects the community: the Project Steward is legally bound never to grant closed-source commercial SaaS licenses. Any entity offering ISLAMU Event as a hosted service must remain open source under `AGPL-3.0-or-later`. Your contributions will never be locked behind a proprietary vendor wall. See [Clean-Room IP & Licensing](/islamu-event/documentation/readme/contributing/clean-room-ip-and-licensing.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://islamu.gitbook.io/islamu-event/documentation/readme/contributing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
