chore(community): rewards program, issue templates, and triage workflow (#176)

* chore(community): rewards program, issue templates, and triage workflow

Adds the public-facing community engagement infrastructure.

CONTRIBUTING.md introduces a three-tier rewards program (sticker / t-shirt /
hoodie) gated on merged PRs, with explicit eligibility rules to keep the
program sustainable. Fulfillment is handled by emailing support@kaelio.com.

The .github/ISSUE_TEMPLATE/ forms give structure to bug reports and feature
requests, and config.yml routes questions to the KTX Slack instead of GitHub
Discussions (matching the routing established in docs-site/.../support.mdx).

The triage-issues workflow applies a needs-triage label only when the issue
author isn't OWNER, MEMBER, or COLLABORATOR — so internal issues stay clean
while external contributions get queued for maintainer review.

The first 14 connector contribution issues (#161-174) have been filed using
these labels and reward tiers.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(community): add SECURITY.md

Documents the private reporting channel (GitHub Security Advisories with
support@kaelio.com as fallback), what reporters should include, and the
supported-version policy.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Luca Martial 2026-05-19 19:42:06 -04:00 committed by GitHub
parent 6dbb0c8b3a
commit 14626c294b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 262 additions and 0 deletions

56
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View file

@ -0,0 +1,56 @@
name: Bug report
description: Report something that isn't working
title: "[bug] "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
For questions or general discussion, use the
[KTX Slack](https://join.slack.com/t/ktxcommunity/shared_invite/zt-3y9b44m1x-LVyNNJD5nwaZHq4XS29LMQ).
- type: textarea
id: bug
attributes:
label: What's the bug?
description: What happened, and what did you expect?
placeholder: When I run `ktx ingest --all`, the Postgres connector fails with X. I expected Y.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: How can we reproduce it?
description: Commands or steps. A minimal example helps.
render: shell
validations:
required: true
- type: input
id: version
attributes:
label: KTX version
placeholder: "0.x.x"
validations:
required: true
- type: dropdown
id: area
attributes:
label: Which area?
options:
- CLI / setup
- Connector (Postgres)
- Connector (Snowflake)
- Connector (BigQuery)
- Connector (MySQL)
- Connector (SQL Server)
- Connector (SQLite)
- Python semantic layer
- Python daemon
- Docs
- Other
validations:
required: true
- type: textarea
id: extra
attributes:
label: Anything else?
description: OS, Node/Python versions, logs, screenshots. Redact secrets.

14
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: KTX Slack — questions and chat
url: https://join.slack.com/t/ktxcommunity/shared_invite/zt-3y9b44m1x-LVyNNJD5nwaZHq4XS29LMQ
about: Ask a question, share what you're building, or get help from maintainers and other users. Faster than filing an issue.
- name: Documentation
url: https://docs.kaelio.com/ktx/docs/
about: Many setup, configuration, and integration questions are answered here.
- name: Community & Support guide
url: https://docs.kaelio.com/ktx/docs/community/support
about: Full guide on where to ask what — Slack vs. GitHub Issues vs. docs.
- name: Security issues
url: https://github.com/Kaelio/ktx/security/advisories/new
about: Report security vulnerabilities privately via GitHub Security Advisories. Please do not file security issues publicly.

View file

@ -0,0 +1,39 @@
name: Feature request
description: Propose a new feature or improvement
title: "[feature] "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
For bug reports, use the bug template. For questions, use the
[KTX Slack](https://join.slack.com/t/ktxcommunity/shared_invite/zt-3y9b44m1x-LVyNNJD5nwaZHq4XS29LMQ).
- type: textarea
id: request
attributes:
label: What do you want, and why?
description: Describe the problem and your proposed solution.
validations:
required: true
- type: dropdown
id: area
attributes:
label: Which area?
options:
- CLI / setup
- Connectors
- Context engine
- Python semantic layer
- Python daemon
- Docs
- Other
validations:
required: true
- type: checkboxes
id: contribute
attributes:
label: Want to contribute this?
options:
- label: Yes, I'd like to open a PR
- label: I'd like guidance, then I'll open a PR
- label: No, just reporting the idea

28
.github/workflows/triage-issues.yml vendored Normal file
View file

@ -0,0 +1,28 @@
name: Triage new issues
on:
issues:
types: [opened]
permissions:
issues: write
jobs:
label-external:
name: Add needs-triage to external issues
runs-on: ubuntu-latest
if: |
github.event.issue.author_association != 'OWNER' &&
github.event.issue.author_association != 'MEMBER' &&
github.event.issue.author_association != 'COLLABORATOR'
steps:
- name: Apply needs-triage label
uses: actions/github-script@v7
with:
script: |
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: ['needs-triage'],
});

94
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,94 @@
# Contributing to KTX
Thanks for your interest in KTX. This page covers **how to contribute** and
the **contributor rewards program**. For development setup, repository
layout, and verification commands, see the
[Contributing guide in the docs](https://docs.kaelio.com/ktx/docs/community/contributing).
## How to contribute
1. Browse open issues labeled
[`good first issue`](https://github.com/Kaelio/ktx/labels/good%20first%20issue)
or [`help wanted`](https://github.com/Kaelio/ktx/labels/help%20wanted).
2. Comment on the issue to claim it. A maintainer will confirm scope and
assign it to you.
3. For changes not covered by an existing issue, open one first so we can
align on scope before you write code.
4. Open a pull request that resolves the issue. Keep it focused — one
logical change per PR.
5. Run the relevant checks before requesting review. See the
[docs contributing page](https://docs.kaelio.com/ktx/docs/community/contributing#running-tests)
for the right commands per area.
## Contributor rewards program
We send merch to contributors whose pull requests get merged. The goal is
to thank the people building KTX with us, not to drive volume.
### How it works
1. A maintainer marks an issue `reward:eligible` when it's ready for an
outside contributor.
2. You open a PR that resolves the issue.
3. A maintainer reviews and merges.
4. After merge, the maintainer adds a `reward:tier-*` label and replies
on the PR asking you to email `support@kaelio.com` with your shipping
address, size (if applicable), and a link to the merged PR.
5. We ship within four weeks.
### Reward tiers
| Tier | Reward | Earned by |
|------|--------|-----------|
| 1 | Sticker pack | Your first merged PR, any size |
| 2 | T-shirt | A substantive merged PR: bug fix with a regression test, new docs page, connector test fixture, CLI improvement |
| 3 | Hoodie | Three or more merged PRs, or one major contribution (new integration, significant feature) |
Maintainers decide tier; decisions are final. Tiers do not stack on the
same PR.
### Eligibility
- Only **merged** PRs count. Closed-without-merge or stale PRs do not earn
rewards.
- The GitHub account must be at least 30 days old at the time the PR is
opened.
- The PR must resolve a real issue or measurable improvement.
- We ship worldwide where customs allow. If we cannot ship to your region
we will substitute an equivalent (gift card or digital).
### Not eligible
- Typo-only PRs and whitespace/formatting changes
- Drive-by style or lint cleanup without prior discussion
- Mass reformatting or wrapper/abstraction churn
- AI-generated PRs that do not pass review on their first revision
- PRs that bundle unrelated changes
- Anything that would be reverted in code review
We use these rules to keep the program sustainable and to protect the
quality of the project. They are not a judgment on contributors — they
exist so a small maintainer team can keep saying yes.
## Where to ask what
See the [Community & Support](https://docs.kaelio.com/ktx/docs/community/support)
page for the full guide. The short version:
- **Questions, "how do I...", setup help, sharing patterns**: join the
[KTX Slack](https://join.slack.com/t/ktxcommunity/shared_invite/zt-3y9b44m1x-LVyNNJD5nwaZHq4XS29LMQ).
- **Bugs**: use the [Bug report](.github/ISSUE_TEMPLATE/bug_report.yml)
template.
- **Feature requests**: use the
[Feature request](.github/ISSUE_TEMPLATE/feature_request.yml) template.
- **Security**: report privately via
[GitHub Security Advisories](https://github.com/Kaelio/ktx/security/advisories/new),
not as a public issue.
## Code of conduct
KTX follows the
[Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/).
Be respectful, assume good intent, and keep discussion focused on the
project. Report concerns to the maintainers in Slack or by email at
`support@kaelio.com`.

31
SECURITY.md Normal file
View file

@ -0,0 +1,31 @@
# Security Policy
## Reporting a vulnerability
If you believe you've found a security vulnerability in KTX, please report it
**privately** through GitHub Security Advisories:
[Report a vulnerability](https://github.com/Kaelio/ktx/security/advisories/new)
If you cannot use GitHub Security Advisories, email `support@kaelio.com`
instead. Please do **not** open a public issue, post in the KTX Slack, or
share details elsewhere until we have published a fix.
When reporting, please include:
- A description of the issue and its impact
- Steps to reproduce
- The KTX version affected
## What to expect
- We will acknowledge your report within a few business days.
- We will work with you to verify the issue and develop a fix.
- We will credit you in the resulting advisory unless you prefer to remain
anonymous.
## Supported versions
We provide security fixes for the latest released version of
[`@kaelio/ktx`](https://www.npmjs.com/package/@kaelio/ktx). Older versions
may receive fixes at the maintainers' discretion.