Skip to content

Commit ac423af

Browse files
docs: track examples via issues (claim + draft PR workflow) (#52)
## What & why We're now tracking planned examples (internal and external) in GitHub Issues. To make in-flight work visible and avoid duplication, contributors should **comment on an issue to claim it** and **open a draft PR that links the issue**. This PR surfaces that workflow everywhere it's documented and adds a lightweight issue form to keep proposals consistent. Closes #<!-- process/meta change; no tracking issue --> Changes: - **New** `.github/ISSUE_TEMPLATE/example_proposal.yml` — lightweight form (required Bucket + What & why, optional Opik-products multi-select) with a claim/draft-PR note at the top. - **New** `.github/ISSUE_TEMPLATE/config.yml` — keeps blank issues enabled, links Opik docs. - `CONTRIBUTING.md` — new step 1 (find/claim an issue) and a draft-PR-linking-the-issue step; renumbered. - `AGENTS.md` — claim-the-issue and open-a-linked-draft-PR bullets for coding agents. - `.github/pull_request_template.md` — explicit `Closes #` line + "linked to its tracking issue" checklist item. - `README.md` — points contributors to Issues to browse/claim/propose. > Note: the issue form only renders once this is on `main`. ## Checklist - [x] Docs/index updated where the workflow is surfaced - [x] No credentials or `.env` files committed
2 parents 17a4d0b + 5a25935 commit ac423af

6 files changed

Lines changed: 76 additions & 10 deletions

File tree

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: 📚 Opik documentation
4+
url: https://www.comet.com/docs/opik/
5+
about: Product docs and API reference for Opik.
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: 💡 Example proposal
2+
description: Propose a new Opik example, guide, integration, or utility script
3+
title: "[Example]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for proposing an example! **Want to build it yourself?**
10+
Comment on this issue to claim it, then open a **draft PR that links back here**
11+
(`Closes #<this issue>`) so we can see it's in-flight.
12+
See the [contributing guide](https://github.com/comet-ml/opik-examples/blob/main/CONTRIBUTING.md).
13+
- type: dropdown
14+
id: bucket
15+
attributes:
16+
label: Bucket
17+
description: Which part of the repo would this live in?
18+
options:
19+
- Guide (how-to for an Opik workflow)
20+
- Integration (add Opik to a framework/library)
21+
- Use-case (end-to-end app using Opik)
22+
- Utility script (automate/manage Opik resources)
23+
- Chore (repo maintenance / CI)
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: what-why
28+
attributes:
29+
label: What & why
30+
description: What problem does this solve, and what should the example demonstrate?
31+
placeholder: e.g. Show how to visualise multi-turn feedback scores to understand conversation trajectory.
32+
validations:
33+
required: true
34+
- type: dropdown
35+
id: opik-products
36+
attributes:
37+
label: Opik products / features involved
38+
description: Select all that apply (optional).
39+
multiple: true
40+
options:
41+
- Tracing / observability
42+
- Datasets
43+
- Experiments & evaluation (offline)
44+
- Online evaluation (LLM-as-judge rules)
45+
- Test suites
46+
- Prompt optimization (Optimizer)
47+
- Prompt library / versioning
48+
- Annotation queues
49+
- Feedback scores / human review
50+
- Threads (multi-turn conversations)
51+
- Metrics (built-in / custom)
52+
- Guardrails
53+
- Other / not sure

.github/pull_request_template.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
## What & why
22

3-
<!-- What does this PR change, and why? Link any related issue. -->
3+
<!-- What does this PR change, and why? -->
4+
5+
Closes #<!-- the tracking issue this PR implements; comment on it to claim it before starting -->
46

57
## Checklist
68

79
<!-- See CONTRIBUTING.md for details. Tick what applies; delete rows that don't. -->
810

11+
- [ ] Linked to its tracking issue (commented to claim it before starting)
912
- [ ] Example is in the right bucket (`integrations` / `guides` / `use-cases` / `scripts`)
1013
- [ ] Folder name is `lowercase_with_underscores`
1114
- [ ] `README.md` has all required sections; index tables updated if examples were added/renamed/removed

AGENTS.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ Every example is a `uv` project: its `pyproject.toml` is the single source of tr
6868
- **Principles:** DRY, KISS, SOLID, YAGNI. Prefer reusing an existing helper over adding a new one.
6969
- **Type hints** on function signatures. Match the surrounding file's style, naming, and comment density.
7070
- **Git / PR safety:**
71+
- **Claim the tracking issue before starting.** Work is tracked in [GitHub Issues](https://github.com/comet-ml/opik-examples/issues) — comment on the relevant issue to claim it before writing code. If none exists, ask the user whether to open one (via the *Example proposal* form).
72+
- **Open a draft PR that links the issue early.** Right after cutting the branch, open a **draft** PR with `Closes #<issue>` in the body so in-flight work is visible; mark it ready for review only when complete.
7173
- Never `git commit` or `git push` on `main`/`master`. Cut a feature branch (`<user>/<topic>`, e.g. `fschlz/feature/...`), push there, open a PR, and let a human merge.
7274
- Commits follow **Conventional Commits**: `feat:`, `fix:`, `chore:`, `refactor:`, `docs:`.
7375
- Never `gh pr merge`, `gh pr close`, or `gh pr review --approve` — author/reviewer actions only. Blocked in [`.claude/settings.json`](.claude/settings.json).

CONTRIBUTING.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@ Thank you for contributing. This repo is a reference library for Opik users —
1212

1313
This is the loop we follow for non-trivial contributions. The slash-commands in brackets come from Claude Code plugins (see below) and are optional but recommended. **Start every contribution with `/brainstorming`** to agree on scope, and **finish by reviewing your own PR with `/review`** before asking a human.
1414

15-
1. **Plan first.** Switch Claude Code to plan mode on the best available model with reasoning effort maxed before writing any code.
16-
2. **Brainstorm the scope** (`/brainstorming`) — agree on *what* to build before *how*.
17-
3. **Write the plan** (`/writing-plans`) — turn the agreed scope into an implementation plan.
18-
4. **Cut a feature branch**`git switch -c <user>/<topic>` (never commit on `main`).
19-
5. **Implement and commit frequently** — small [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `chore:`, `refactor:`, `docs:`).
20-
6. **Test and fix** — run the example in dry-run (and with credentials if you have them) until it works; `uv run ruff check .` is clean.
21-
7. **Update the READMEs** — the example's own README plus any index tables (see the [PR checklist](#pr-checklist)).
22-
8. **Open a PR with a description** — what changed and why. A human merges it.
23-
9. **Review your own PR** (`/review`) before requesting human review.
15+
1. **Find or open an issue, and claim it.** Planned examples are tracked in [GitHub Issues](https://github.com/comet-ml/opik-examples/issues). Pick one you want to build (or file one with the *Example proposal* form), then **comment on it to claim it** so we don't double up.
16+
2. **Plan first.** Switch Claude Code to plan mode on the best available model with reasoning effort maxed before writing any code.
17+
3. **Brainstorm the scope** (`/brainstorming`) — agree on *what* to build before *how*.
18+
4. **Write the plan** (`/writing-plans`) — turn the agreed scope into an implementation plan.
19+
5. **Cut a feature branch**`git switch -c <user>/<topic>` (never commit on `main`).
20+
6. **Open a draft PR early that links the issue.** As soon as you branch, open a **draft** PR with `Closes #<issue>` in the description — this is how we track what's in-flight.
21+
7. **Implement and commit frequently** — small [Conventional Commits](https://www.conventionalcommits.org/) (`feat:`, `fix:`, `chore:`, `refactor:`, `docs:`).
22+
8. **Test and fix** — run the example in dry-run (and with credentials if you have them) until it works; `uv run ruff check .` is clean.
23+
9. **Update the READMEs** — the example's own README plus any index tables (see the [PR checklist](#pr-checklist)).
24+
10. **Mark the PR ready for review** with a description of what changed and why, then **review your own PR** (`/review`) before requesting human review. A human merges it.
2425

2526
**Recommended Claude Code plugins:** `superpowers` (provides `/brainstorming`, `/writing-plans`, and `/review`) and `caveman` (terse output mode). Install `superpowers` from inside Claude Code:
2627

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,6 @@ Browse them in [community/](community/), or add your own via
6969

7070
## Contributing
7171

72+
Planned examples are tracked in [Issues](https://github.com/comet-ml/opik-examples/issues) — browse open ones to see what's wanted, or propose your own with the **Example proposal** template. Comment to claim an issue before you start.
73+
7274
See [CONTRIBUTING.md](CONTRIBUTING.md) for the contribution guide and example template.

0 commit comments

Comments
 (0)