docs: add community governance and contribution guidelines

- Add CONTRIBUTING.md with TDD requirements, PR workflow, and AI usage
  policy
- Add CODE_OF_CONDUCT.md based on Contributor Covenant
- Add SECURITY.md with vulnerability reporting scope and process
- Add AGENTS.md with AI usage policy for human contributors and AI
  agents
- Add CLAUDE.md to require reading AGENTS.md before any work
- Add Gitea issue templates for bug reports and feature requests
- Add pull request template with TDD and code quality checklist
This commit is contained in:
2026-01-23 20:46:48 +01:00
parent 7ce35da1ce
commit a965848076
10 changed files with 984 additions and 0 deletions

View File

@@ -0,0 +1,97 @@
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug/unconfirmed"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour
description: How do you expect STA to behave?
placeholder: "Relay 3 should turn on after calling POST /api/relays/3/toggle"
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: Actual behaviour
description: How does the actual behaviour differ from the expected behaviour?
placeholder: "The relay state remains unchanged and the API returns a 500 error"
validations:
required: true
- type: textarea
id: reproduction-steps
attributes:
label: Steps to reproduce
description: Step-by-step instructions to reproduce the issue reliably
placeholder: |
1. Start the STA backend with the following configuration: ...
2. Send a POST request to /api/relays/3/toggle
3. Observe that ...
validations:
required: true
- type: dropdown
id: component
attributes:
label: Affected component
description: Which part of STA is affected?
options:
- Backend API
- Frontend
- Modbus hardware communication
- Configuration
- Other / unsure
validations:
required: true
- type: dropdown
id: package-version
attributes:
label: STA version
description: What version of STA are you using?
options:
- main
- develop
- something else (please specify)
- type: dropdown
id: source
attributes:
label: Source of backend
description: From which source did you get the backend?
options:
- Compiled yourself (Nix development shell)
- Compiled yourself (non-Nix development shell)
- Release binary
- Docker image
- something else (please specify)
- type: dropdown
id: os-platform
attributes:
label: Operating system and platform
description: On which OS and hardware are you running the STA backend?
options:
- Linux (ARM / Raspberry Pi)
- Linux (x86_64)
- Other (please specify)
validations:
required: true
- type: textarea
id: rust-version
attributes:
label: Rust version
description: If you compiled the binary yourself, which version of Rust did you use?
placeholder: "Rust 1.y.z"
- type: textarea
id: logs
attributes:
label: Relevant code or log output
description: Please copy and paste any relevant code or log output. This will be automatically formatted into code, so no need for backticks.
render: text
- type: textarea
id: other-info
attributes:
label: Other relevant information
description: Please provide any other information which could be relevant to the issue (SQLite version? Upstream bug?)

View File

@@ -0,0 +1,59 @@
name: Documentation Issue
description: Report missing, incorrect, or unclear documentation
title: "[Docs]: "
labels: ["documentation"]
body:
- type: markdown
attributes:
value: |
Use this template to report issues in the documentation, such as missing
content, incorrect information, or unclear explanations.
- type: dropdown
id: doc-location
attributes:
label: Documentation location
description: Which part of the documentation is affected?
options:
- README
- CONTRIBUTING.md
- Wiki
- rustdoc (inline code documentation)
- API documentation (OpenAPI / Swagger UI)
- specs/ (specifications and constitution)
- docs/ (guides)
- Other
validations:
required: true
- type: input
id: doc-page
attributes:
label: Specific page or section
description: Link or name of the specific page, section, or function affected
placeholder: "e.g. docs/cors-configuration.md § Fail-Safe Defaults"
- type: dropdown
id: issue-type
attributes:
label: Type of issue
options:
- Missing documentation (undocumented feature or behaviour)
- Incorrect information
- Outdated information
- Unclear or confusing explanation
- Broken link
- Other
validations:
required: true
- type: textarea
id: description
attributes:
label: Description
description: Describe the documentation issue in detail
placeholder: "The section on X does not explain Y, which is needed to Z..."
validations:
required: true
- type: textarea
id: suggested-fix
attributes:
label: Suggested improvement
description: If you have a suggestion for how to fix or improve the documentation, please share it
placeholder: "The section should clarify that..."

View File

@@ -0,0 +1,40 @@
name: Feature Request
description: Request a new feature
title: "[Feature Request]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request a new feature!
- type: checkboxes
id: pre-submission
attributes:
label: Pre-submission checklist
options:
- label: I have searched existing issues and this feature has not already been requested
required: true
- type: textarea
id: feature-description
attributes:
label: New feature
description: Description of the new feature
placeholder: "Describe the feature you would like to see added to STA"
validations:
required: true
- type: textarea
id: feature-reason
attributes:
label: Why this new feature
description: Describe why this new feature should be added to STA
placeholder: "Describe the problem this feature would solve or the value it would add"
validations:
required: true
- type: textarea
id: ideas-implementation
attributes:
label: Implementation ideas and additional thoughts
description: Do you have an idea on how to implement it?
placeholder: "It could be implemented by..."
validations:
required: false

View File

@@ -0,0 +1,73 @@
name: Hardware Compatibility Report
description: Report compatibility issues with a specific Modbus relay device
title: "[Hardware]: "
labels: ["hardware", "compatibility"]
body:
- type: markdown
attributes:
value: |
Use this template to report issues specific to a Modbus relay device that STA
fails to communicate with or control correctly.
- type: textarea
id: device-info
attributes:
label: Device information
description: Manufacturer, model, and firmware version of the relay device
placeholder: |
Manufacturer: ...
Model: ...
Firmware: ...
validations:
required: true
- type: textarea
id: modbus-config
attributes:
label: Modbus configuration
description: The Modbus settings you are using (from your base.yaml or environment variables)
placeholder: |
host: 192.168.x.x
port: 502
slave_id: x
timeout_secs: x
validations:
required: true
- type: textarea
id: expected-behaviour
attributes:
label: Expected behaviour
description: What should STA be able to do with this device?
placeholder: "STA should be able to read and toggle all 8 relays"
validations:
required: true
- type: textarea
id: actual-behaviour
attributes:
label: Actual behaviour
description: What does STA actually do?
placeholder: "STA returns a Modbus exception or times out when writing a coil"
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please paste any relevant STA log output. This will be formatted as code automatically.
render: text
validations:
required: true
- type: dropdown
id: os-platform
attributes:
label: Operating system and platform
description: On which OS and hardware are you running the STA backend?
options:
- Linux (ARM / Raspberry Pi)
- Linux (x86_64)
- Other (please specify)
validations:
required: true
- type: textarea
id: additional-info
attributes:
label: Additional information
description: Any other context that may help, such as Modbus traffic captures, wiring details, or links to the device datasheet

View File

@@ -0,0 +1,40 @@
## Description
<!-- Describe what this PR does and why. -->
Closes #
## Type of Change
<!-- Remove lines that do not apply. -->
- Bug fix (`fix/` branch)
- New feature (`feature/` branch)
- Documentation update
- Other (please describe):
## Checklist
<!-- All boxes must be checked before requesting a review. -->
### Branch & Scope
- [ ] Branches from `develop` and targets `develop`
- [ ] Covers a single topic (one feature or one fix)
### Test-Driven Development
- [ ] Failing tests were written before the implementation
- [ ] All new code is covered by tests
- [ ] `just test` passes locally
### Code Quality
- [ ] `just lint` passes with no warnings
- [ ] `just format-check` passes
- [ ] Code coverage has not dropped below 75%
### AI Usage
- [ ] No AI-generated code, **or** AI usage is disclosed below and
the majority of the code is human-authored
## AI Usage Disclosure
<!-- If AI was used, describe how. Delete this section if not applicable. -->