Skip to content

Commit 2debff0

Browse files
committed
OSS templates
1 parent 728f971 commit 2debff0

10 files changed

Lines changed: 492 additions & 15 deletions

File tree

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: 🐛 Bug report
2+
description: Something in oya behaves incorrectly.
3+
labels: ["bug", "needs-triage"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Thanks for filing a bug! Please search [existing issues](https://github.com/OyaAIProd/oya/issues) first.
9+
For **security** problems, do **not** use this form — see [SECURITY.md](../blob/main/SECURITY.md).
10+
- type: textarea
11+
id: what-happened
12+
attributes:
13+
label: What happened?
14+
description: A clear description of the bug and what you expected instead.
15+
placeholder: I called agent.generate(...) and got ...; I expected ...
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: repro
20+
attributes:
21+
label: Minimal reproduction
22+
description: The smallest code snippet or steps that reproduce it. A link to a repo/gist is ideal.
23+
render: ts
24+
validations:
25+
required: true
26+
- type: input
27+
id: version
28+
attributes:
29+
label: oyadotai version
30+
placeholder: e.g. 0.1.5 (run `bun pm ls | grep oyadotai`)
31+
validations:
32+
required: true
33+
- type: dropdown
34+
id: provider
35+
attributes:
36+
label: Model provider
37+
options:
38+
- anthropic
39+
- openai
40+
- google
41+
- other / not applicable
42+
validations:
43+
required: true
44+
- type: input
45+
id: runtime
46+
attributes:
47+
label: Runtime & OS
48+
placeholder: e.g. Bun 1.1.38, macOS 15 / Node 20, Linux
49+
validations:
50+
required: true
51+
- type: textarea
52+
id: logs
53+
attributes:
54+
label: Logs / stack trace
55+
description: Paste any relevant output. This is automatically formatted as code.
56+
render: shell
57+
- type: checkboxes
58+
id: checks
59+
attributes:
60+
label: Confirmations
61+
options:
62+
- label: I searched existing issues and this isn't a duplicate.
63+
required: true
64+
- label: I'm on the latest published version (or noted why not).
65+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 💬 Questions & discussion
4+
url: https://github.com/OyaAIProd/oya/discussions
5+
about: Ask questions, share what you built, or propose an idea before a PR.
6+
- name: 🔒 Report a security vulnerability
7+
url: https://github.com/OyaAIProd/oya/security/advisories/new
8+
about: Please report vulnerabilities privately — do not open a public issue.
9+
- name: ☁️ oya.ai (hosted platform)
10+
url: https://oya.ai
11+
about: Questions about the hosted platform rather than the open-source library.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: ✨ Feature request
2+
description: Suggest an idea or improvement for oya.
3+
labels: ["enhancement", "needs-triage"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Have a bigger idea or a design question? Consider starting a
9+
[Discussion](https://github.com/OyaAIProd/oya/discussions) first so we can
10+
shape it together before code.
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: What problem are you trying to solve?
15+
description: Describe the use case or pain point. Focus on the "why" before the "how".
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: proposal
20+
attributes:
21+
label: Proposed solution
22+
description: What would you like to see? API sketches welcome.
23+
render: ts
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: alternatives
28+
attributes:
29+
label: Alternatives considered
30+
description: Other approaches you've weighed, and why they fall short.
31+
- type: checkboxes
32+
id: contribution
33+
attributes:
34+
label: Contribution
35+
options:
36+
- label: I'd be willing to open a PR for this.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<!--
2+
Thanks for contributing to oya! Please fill this out so reviewers can move fast.
3+
Keep PRs to one logical change. Link the issue it closes.
4+
-->
5+
6+
## What & why
7+
8+
<!-- What does this change do, and why? Link related issues: "Closes #123". -->
9+
10+
Closes #
11+
12+
## Type of change
13+
14+
- [ ] Bug fix (non-breaking change that fixes an issue)
15+
- [ ] New feature (non-breaking change that adds functionality)
16+
- [ ] Breaking change (fix or feature that changes existing behavior)
17+
- [ ] Docs / examples only
18+
- [ ] Internal / refactor (no user-facing change)
19+
20+
## Checklist
21+
22+
- [ ] One logical change; the PR title reads as a present-tense commit subject
23+
(e.g. `add openai provider`)
24+
- [ ] `bun run typecheck && bun test && bun run build` all pass locally
25+
- [ ] Added or updated tests for the change
26+
- [ ] If the runtime changed, the mirrored reference tests under
27+
`packages/core/test/` still pass (see [CONTRIBUTING](../CONTRIBUTING.md#the-correctness-oracle))
28+
- [ ] I did **not** weaken the `OPAQUE`-never-leaks invariant
29+
(`packages/core/test/executor.test.ts`)
30+
- [ ] Updated docs (`docs/`) and both READMEs if user-facing behavior changed
31+
32+
## Notes for reviewers
33+
34+
<!-- Anything worth calling out: tradeoffs, follow-ups, areas you're unsure about. -->

CODE_OF_CONDUCT.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, caste, color, religion, or sexual
10+
identity and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
- Demonstrating empathy and kindness toward other people
21+
- Being respectful of differing opinions, viewpoints, and experiences
22+
- Giving and gracefully accepting constructive feedback
23+
- Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
- Focusing on what is best not just for us as individuals, but for the overall
26+
community
27+
28+
Examples of unacceptable behavior include:
29+
30+
- The use of sexualized language or imagery, and sexual attention or advances of
31+
any kind
32+
- Trolling, insulting or derogatory comments, and personal or political attacks
33+
- Public or private harassment
34+
- Publishing others' private information, such as a physical or email address,
35+
without their explicit permission
36+
- Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official email address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
**mk@oya.ai**. All complaints will be reviewed and investigated promptly
64+
and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series of
86+
actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or permanent
93+
ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within the
113+
community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.1, available at
119+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120+
121+
Community Impact Guidelines were inspired by
122+
[Mozilla's code of conduct enforcement ladder][mozilla].
123+
124+
[homepage]: https://www.contributor-covenant.org
125+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
126+
[mozilla]: https://github.com/mozilla/diversity

CONTRIBUTING.md

Lines changed: 62 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,35 @@
11
# Contributing to oya
22

3-
Thanks for your interest. `oya` is early and we welcome help — providers, the
4-
agent DX, streaming, and the playground.
3+
Thanks for your interest — **oya is a community project** and we'd love your help.
4+
It's early, so there's high-leverage work across providers, agent DX, streaming,
5+
the Studio, docs, and examples. This is also the open-source core that
6+
[oya.ai](https://oya.ai) is built on, so improvements here reach a lot of people.
7+
8+
New contributors are welcome. If it's your first PR to an open-source project,
9+
that's fine — say so and we'll help you through it.
10+
11+
## Ways to contribute
12+
13+
- **Report a bug** — open a [bug report](https://github.com/OyaAIProd/oya/issues/new?template=bug_report.yml).
14+
- **Request a feature** — open a [feature request](https://github.com/OyaAIProd/oya/issues/new?template=feature_request.yml),
15+
or start a [Discussion](https://github.com/OyaAIProd/oya/discussions) for
16+
anything design-shaped.
17+
- **Improve docs or examples** — often the best first PR.
18+
- **Pick up an issue** — look for [`good first issue`](https://github.com/OyaAIProd/oya/labels/good%20first%20issue)
19+
and [`help wanted`](https://github.com/OyaAIProd/oya/labels/help%20wanted).
20+
- **Answer questions** and help others in Discussions — this counts, and it's how
21+
people become maintainers.
22+
23+
For anything beyond a small fix, **open an issue or Discussion before you write a
24+
lot of code** so we can align on the approach — it saves everyone a painful review.
25+
26+
## Ground rules
27+
28+
- Be kind and constructive. All participation is governed by our
29+
[Code of Conduct](./CODE_OF_CONDUCT.md).
30+
- Governance and how decisions get made are described in [GOVERNANCE.md](./GOVERNANCE.md).
31+
- Report security issues **privately** — see [SECURITY.md](./SECURITY.md), never a
32+
public issue.
533

634
## Setup
735

@@ -46,9 +74,36 @@ Don't weaken it.
4674

4775
## Pull requests
4876

49-
- One logical change per PR; include tests.
50-
- Run `bun run typecheck && bun test && bun run build` before pushing.
51-
- Conventional, present-tense commit subjects (e.g. `add anthropic provider`).
77+
1. **Fork** the repo and create a branch off `main` (e.g. `feat/openai-tools`,
78+
`fix/handle-null-input`).
79+
2. Make **one logical change per PR** and include tests.
80+
3. Run the full check locally before pushing:
81+
```bash
82+
bun run typecheck && bun test && bun run build
83+
```
84+
4. Write a **conventional, present-tense subject** (e.g. `add anthropic provider`,
85+
`fix branch alias coercion`). The PR title becomes the squash-merge commit.
86+
5. Open the PR and fill in the template. **Link the issue it closes** (`Closes #NN`).
87+
6. Keep the PR focused and responsive to review — small, well-described PRs merge
88+
fast.
89+
90+
CI (`.github/workflows/ci.yml`) runs build → typecheck → test on every PR; it must
91+
be green to merge. Every merge to `main` auto-publishes a patch release to npm, so
92+
maintainers keep `main` releasable at all times.
93+
94+
### Review & merge
95+
96+
A maintainer will review — expect a first response within a few days. We may ask
97+
for changes; that's normal and not a rejection. Once approved and green, a
98+
maintainer squash-merges. Notable changes (public API, the Plan IR, projection
99+
semantics) follow the extra process in [GOVERNANCE.md](./GOVERNANCE.md).
100+
101+
## Licensing & sign-off
102+
103+
By contributing, you agree that your work is licensed under the project's
104+
[MIT license](./LICENSE), and you certify that you have the right to submit it
105+
under that license (the [Developer Certificate of Origin](https://developercertificate.org/)).
106+
107+
## Contact
52108

53-
By contributing you agree your work is licensed under the project's [MIT
54-
license](./LICENSE).
109+
Questions that don't fit an issue or Discussion? Email **mk@oya.ai**.

0 commit comments

Comments
 (0)