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

# Contribute to Sunbird Spark

<p align="center">Sunbird Spark is a community-maintained open-source project. Contributions in any form are welcome — code, documentation, testing, design, and community engagement are all equally valued.</p>

### Contribution areas

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td>🐛 <strong>Bug reports</strong></td><td>File an issue on the relevant GitHub repository</td></tr><tr><td>💡 <strong>Feature proposals</strong></td><td>Start a discussion in the community forum, then file an issue after alignment</td></tr><tr><td>🔧 <strong>Code — bug fixes</strong></td><td>Fork the repository, fix the bug, submit a PR</td></tr><tr><td>🚀 <strong>Code — new features</strong></td><td>Align with the community first (discussion forum), then implement and submit a PR</td></tr><tr><td>📝 <strong>Documentation</strong></td><td>Edit any page using the "Edit on GitHub" link at the bottom of each page</td></tr><tr><td>🧪 <strong>Testing</strong></td><td>Join the release testing process — contact the community QA team</td></tr><tr><td>🌍 <strong>Translation / I18N</strong></td><td>Contribute language files via the I18N repository</td></tr></tbody></table>

### First-time contributor guide

**1. Pick a good first issue**

Look for issues labelled `good first issue` or `help wanted` in the GitHub repositories:

* [SunbirdEd-portal →](https://github.com/Sunbird-Spark/sunbird-spark-portal.git)
* [knowledge-platform (knowlg-service) →](https://github.com/project-sunbird/knowledge-platform/issues)
* [lern-service →](https://github.com/project-sunbird/lern-service/issues)
* [SunbirdEd-mobile-app →](https://github.com/Sunbird-Spark/sunbird-spark-mobile-app)

**2. Set up your local development environment**

Follow the [Developer Guide › Local Setup](/sunbird-spark/use/developer-guide/local-development-guide.md) to get the full stack running locally.

**3. Make your change and write tests**

All contributions require:

* Code changes that address the issue
* Unit tests covering the changed code
* Test results documented in the PR description

**4. Submit a pull request**

Open a PR against the main branch of the relevant repository. Include:

* A reference to the issue your PR addresses
* A description of what you changed and why
* Test cases and results
* Any migration steps required

**5. QA validation**

Once your PR is merged, the community QA team validates your change as part of the next release testing cycle. You are expected to be available to fix issues found during QA within the release timeline.

### Contribution workflow

Community discussion → Issue created → Development → PR submitted →

Code review → QA validation → Release sign-off → Merged to release

If your contribution is not completed before the release cutoff, the changes will be reverted from the release branch. A fresh PR can be submitted for the next release cycle. This policy ensures release quality.

### Community forums

* [GitHub Discussions — Sunbird ED →](https://github.com/project-sunbird/SunbirdEd-portal/discussions)
* [Sunbird Community Practices →](https://sunbird.gitbook.io/sunbird-community-practices)


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://sunbird.gitbook.io/sunbird-spark/engage/contribute-to-sunbird-spark.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
