# Framework

## Contributing to the Knight Framework.

Thank you for being interested in contributing to the project.

### Code Of Conduct

* Refrain from using languages other than English.
* Refrain from discussing any politically charged or inflammatory topics.
* Uphold mature conversations and respect each other; excessive profanity, hate speech, or any kind of harassment will not be tolerated.
* No advertising.
* Do not mention members of GitHub unless a question is directed at them and can't be answered by anyone else.
* Do not mention any of the development team for any reason. We will read things as we get to them.

## Reporting Bugs

> **Notice:** If an issue is closed and you experiencing the same issue, you are most likely doing something wrong, please request help instead.

Before posting make sure:

* Clear & Understandable title
* Descriptive description with images & error logs.
* Explain what's happening & reproduction steps.

Please include:

* Knight Version
* is any other framework installed?
* Is any other knight addons installed?
* Knight version
* Roblox Studio/Client version

## Suggestions

Before posting makes sure:

* Clear & Understandable title
* Descriptive description
* **Make sure it doesn't exist already!**
* Explain the Pros & Cons of this addition and/or removal.

### Style Guidelines

Before you can push we have some requirements, make sure your commit message is:

* Under 72 characters.
* Start the commit message with specific emoji for the criteria:
* * 🎨 `:art:` when improving the format/structure of the code
* * 🐎 `:racehorse:` when improving performance
* * 📝 `:memo:` when writing docs
* * 🐛 `:bug:` when fixing a bug
* * 🔥 `:fire:` when removing code or files
* * ✅ `:white_check_mark:` when adding tests
* * 🔒 `:lock:` when dealing with security
* * ⬆️ `:arrow_up:` when upgrading dependencies
* * ⬇️ `:arrow_down:` when downgrading dependencies
* * 👕 `:shirt:` when removing linter warnings

### Lua Styleguide

* Do not repeat yourself.
* Do not trust the client
* Balance security and optimizations
* [Consider this Lua Performance guide](https://springrts.com/wiki/Lua_Performance)
* Make use of `KNIGHT_CONFIG` where it makes sense making features optional or customizable


---

# Agent Instructions: 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:

```
GET https://knight.metatable.dev/community/framework.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
