chore(docs): bounty program - standard
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
name: Standard Bounty
|
||||
description: A bounty task for general framework contributions (not integration-specific)
|
||||
title: "[Bounty]: "
|
||||
labels: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## Standard Bounty
|
||||
|
||||
This issue is part of the [Bounty Program](../../docs/bounty-program/README.md).
|
||||
**Claim this bounty** by commenting below — a maintainer will assign you within 24 hours.
|
||||
|
||||
- type: dropdown
|
||||
id: bounty-size
|
||||
attributes:
|
||||
label: Bounty Size
|
||||
options:
|
||||
- "Small (10 pts)"
|
||||
- "Medium (30 pts)"
|
||||
- "Large (75 pts)"
|
||||
- "Extreme (150 pts)"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
id: difficulty
|
||||
attributes:
|
||||
label: Difficulty
|
||||
options:
|
||||
- Easy
|
||||
- Medium
|
||||
- Hard
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: What needs to be done to complete this bounty.
|
||||
placeholder: |
|
||||
Describe the specific task, including:
|
||||
- What the contributor needs to do
|
||||
- Links to relevant files in the repo
|
||||
- Any context or motivation for the change
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: acceptance-criteria
|
||||
attributes:
|
||||
label: Acceptance Criteria
|
||||
description: What "done" looks like. The PR must meet all criteria.
|
||||
placeholder: |
|
||||
- [ ] Criterion 1
|
||||
- [ ] Criterion 2
|
||||
- [ ] CI passes
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: relevant-files
|
||||
attributes:
|
||||
label: Relevant Files
|
||||
description: Links to files or directories related to this bounty.
|
||||
placeholder: |
|
||||
- `path/to/file.py`
|
||||
- `path/to/directory/`
|
||||
|
||||
- type: textarea
|
||||
id: resources
|
||||
attributes:
|
||||
label: Resources
|
||||
description: Links to docs, issues, or external references that will help.
|
||||
placeholder: |
|
||||
- Related issue: #XXXX
|
||||
- Docs: https://...
|
||||
@@ -1,6 +1,6 @@
|
||||
# Integration Bounty Program
|
||||
# Bounty Program
|
||||
|
||||
Earn XP, Discord roles, and money by testing, documenting, and building integrations for the Aden agent framework.
|
||||
Earn XP, Discord roles, and money by contributing to the Aden agent framework — from quick fixes to major features, plus integration testing and development.
|
||||
|
||||
## Why Contribute?
|
||||
|
||||
@@ -33,6 +33,10 @@ Lurkr auto-assigns the first two roles. Core Contributor requires sustained, qua
|
||||
|
||||
## Bounty Types
|
||||
|
||||
### Integration Bounties
|
||||
|
||||
Focused on the tool ecosystem — testing, documenting, and building integrations.
|
||||
|
||||
| Type | Label | Points | What You Do |
|
||||
| --------------------- | ----------------- | ------ | -------------------------------------------------------------------------- |
|
||||
| **Test a tool** | `bounty:test` | 20 | Test with a real API key, submit a report with logs |
|
||||
@@ -42,6 +46,47 @@ Lurkr auto-assigns the first two roles. Core Contributor requires sustained, qua
|
||||
|
||||
Promoting a tool from unverified to verified is the final step — submit a PR moving it from `_register_unverified()` to `_register_verified()` after the [promotion checklist](promotion-checklist.md) is complete.
|
||||
|
||||
### Standard Bounties
|
||||
|
||||
General contributions to the framework, docs, tests, and infrastructure — not tied to a specific integration.
|
||||
|
||||
| Size | Label | Points | Scope |
|
||||
| ------------ | ------------------ | ------ | ---------------------------------------------------------------------------------- |
|
||||
| **Small** | `bounty:small` | 10 | Typo fixes, broken links, error message improvements, confirm/reproduce bug reports |
|
||||
| **Medium** | `bounty:medium` | 30 | Bug fixes, new or improved unit tests, how-to guides, CLI UX improvements |
|
||||
| **Large** | `bounty:large` | 75 | New features, performance optimizations with benchmarks, architecture docs |
|
||||
| **Extreme** | `bounty:extreme` | 150 | Major subsystem work, security audits, cross-cutting refactors, new core capabilities |
|
||||
|
||||
#### Examples by size
|
||||
|
||||
**Small (10 pts):**
|
||||
- Fix typos or broken links in documentation
|
||||
- Improve an error message to include actionable guidance
|
||||
- Add missing type annotations to a module
|
||||
- Reproduce and confirm an open bug report with environment details
|
||||
- Fix linting or CI warnings
|
||||
|
||||
**Medium (30 pts):**
|
||||
- Fix a non-critical bug with a regression test
|
||||
- Write a how-to guide or tutorial for a common workflow
|
||||
- Add or significantly improve test coverage for a core module
|
||||
- Improve CLI help text, argument validation, or UX
|
||||
- Add structured logging or observability to a module
|
||||
|
||||
**Large (75 pts):**
|
||||
- Implement a new user-facing feature end to end
|
||||
- Performance optimization with before/after benchmarks
|
||||
- Build a new CLI command or subcommand
|
||||
- Write comprehensive architecture documentation for a subsystem
|
||||
- Add a new credential adapter type
|
||||
|
||||
**Extreme (150 pts):**
|
||||
- Design and implement a major subsystem (e.g., plugin system, caching layer)
|
||||
- Security audit of a core module with findings and fixes
|
||||
- Major refactor of core architecture (must have maintainer pre-approval)
|
||||
- Build a complete example application or reference implementation
|
||||
- End-to-end testing framework for agent workflows
|
||||
|
||||
## Quality Gates
|
||||
|
||||
- **PRs** must be merged by a maintainer (not self-merged)
|
||||
@@ -52,12 +97,28 @@ Promoting a tool from unverified to verified is the final step — submit a PR m
|
||||
|
||||
## Labels
|
||||
|
||||
### Integration bounty labels
|
||||
|
||||
| Label | Color | Meaning |
|
||||
| ------------------- | ------------------ | --------------------------------------- |
|
||||
| `bounty:test` | `#1D76DB` (blue) | Test a tool with a real API key |
|
||||
| `bounty:docs` | `#FBCA04` (yellow) | Write or improve documentation |
|
||||
| `bounty:code` | `#D93F0B` (orange) | Health checker, bug fix, or improvement |
|
||||
| `bounty:new-tool` | `#6F42C1` (purple) | Build a new integration from scratch |
|
||||
|
||||
### Standard bounty labels
|
||||
|
||||
| Label | Color | Meaning |
|
||||
| ------------------- | ------------------ | -------------------------------------------------- |
|
||||
| `bounty:small` | `#C2E0C6` (green) | Quick fix — typos, links, error messages |
|
||||
| `bounty:medium` | `#0E8A16` (green) | Bug fix, tests, guides, CLI improvements |
|
||||
| `bounty:large` | `#B60205` (red) | New feature, perf work, architecture docs |
|
||||
| `bounty:extreme` | `#000000` (black) | Major subsystem, security audit, core refactor |
|
||||
|
||||
### Difficulty labels
|
||||
|
||||
| Label | Color | Meaning |
|
||||
| ------------------- | ------------------ | --------------------------------------- |
|
||||
| `difficulty:easy` | `#BFD4F2` | Good first contribution |
|
||||
| `difficulty:medium` | `#D4C5F9` | Requires some familiarity |
|
||||
| `difficulty:hard` | `#F9D0C4` | Significant effort or expertise needed |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Contributor Guide — Integration Bounty Program
|
||||
# Contributor Guide — Bounty Program
|
||||
|
||||
Earn XP, Discord roles, and eventually real money by testing and building integrations for the Aden agent framework.
|
||||
Earn XP, Discord roles, and eventually real money by contributing to the Aden agent framework — from quick fixes to major features and integration work.
|
||||
|
||||
## Getting Started
|
||||
|
||||
@@ -30,7 +30,13 @@ XP comes from GitHub bounties (auto-pushed on PR merge) and Discord activity in
|
||||
|
||||
## Bounty Types
|
||||
|
||||
### Test a Tool (20 pts)
|
||||
There are two categories: **integration bounties** (tool-specific) and **standard bounties** (general contributions).
|
||||
|
||||
---
|
||||
|
||||
### Integration Bounties
|
||||
|
||||
#### Test a Tool (20 pts)
|
||||
|
||||
Test an unverified tool with a real API key and report what happens.
|
||||
|
||||
@@ -41,7 +47,7 @@ Test an unverified tool with a real API key and report what happens.
|
||||
|
||||
Report both successes and failures. Finding bugs is valuable.
|
||||
|
||||
### Write Docs (20 pts)
|
||||
#### Write Docs (20 pts)
|
||||
|
||||
Write a README for a tool that's missing one.
|
||||
|
||||
@@ -52,7 +58,7 @@ Write a README for a tool that's missing one.
|
||||
|
||||
Function names and API URLs must match reality — no AI hallucinations.
|
||||
|
||||
### Code Contribution (30 pts)
|
||||
#### Code Contribution (30 pts)
|
||||
|
||||
Add a health checker, fix a bug, or improve an integration.
|
||||
|
||||
@@ -66,7 +72,7 @@ Add a health checker, fix a bug, or improve an integration.
|
||||
1. Find a bug during testing, file an issue
|
||||
2. Fix it in a PR with a test covering the bug
|
||||
|
||||
### New Integration (75 pts)
|
||||
#### New Integration (75 pts)
|
||||
|
||||
Build a complete integration from scratch.
|
||||
|
||||
@@ -77,6 +83,60 @@ Build a complete integration from scratch.
|
||||
|
||||
Expect multiple review rounds.
|
||||
|
||||
---
|
||||
|
||||
### Standard Bounties
|
||||
|
||||
General contributions to the framework — not tied to a specific integration. Sized by effort and impact.
|
||||
|
||||
#### Small (10 pts)
|
||||
|
||||
Quick, focused fixes. Great for first-time contributors.
|
||||
|
||||
- Fix typos or broken links in documentation
|
||||
- Improve an error message to include actionable guidance
|
||||
- Add missing type annotations to a module
|
||||
- Reproduce and confirm a bug report with environment details
|
||||
- Fix linting or CI warnings
|
||||
|
||||
**How:** Open a PR with the fix. Tag with `bounty:small`.
|
||||
|
||||
#### Medium (30 pts)
|
||||
|
||||
Meaningful improvements that require reading and understanding existing code.
|
||||
|
||||
- Fix a non-critical bug with a regression test
|
||||
- Write a how-to guide or tutorial
|
||||
- Add or significantly improve test coverage for a core module
|
||||
- Improve CLI help text, argument validation, or UX
|
||||
- Add structured logging or observability to a module
|
||||
|
||||
**How:** Claim the issue first. Submit a PR with tests where applicable. Tag with `bounty:medium`.
|
||||
|
||||
#### Large (75 pts)
|
||||
|
||||
Significant work that adds real capability or improves the project substantially.
|
||||
|
||||
- Implement a new user-facing feature end to end
|
||||
- Performance optimization with before/after benchmarks
|
||||
- Build a new CLI command or subcommand
|
||||
- Write comprehensive architecture documentation for a subsystem
|
||||
- Add a new credential adapter type
|
||||
|
||||
**How:** Claim the issue and discuss your approach in the issue before starting. Submit a PR. Tag with `bounty:large`.
|
||||
|
||||
#### Extreme (150 pts)
|
||||
|
||||
Major contributions that shape the project's direction. Requires maintainer pre-approval.
|
||||
|
||||
- Design and implement a major subsystem (e.g., plugin system, caching layer)
|
||||
- Security audit of a core module with findings and fixes
|
||||
- Major refactor of core architecture
|
||||
- Build a complete example application or reference implementation
|
||||
- End-to-end testing framework for agent workflows
|
||||
|
||||
**How:** Comment on the issue with a design proposal. Wait for maintainer approval before starting work. Tag with `bounty:extreme`.
|
||||
|
||||
## Rules
|
||||
|
||||
1. **Claim before you start** — comment on the issue, wait for assignment
|
||||
|
||||
@@ -27,7 +27,7 @@ When someone comments "I'd like to work on this":
|
||||
5. Merge — the GitHub Action auto-awards XP and posts to Discord
|
||||
6. Close the linked bounty issue
|
||||
|
||||
### Quality Gates
|
||||
### Quality Gates — Integration Bounties
|
||||
|
||||
**`bounty:docs`:**
|
||||
- [ ] Follows the [tool README template](templates/tool-readme-template.md)
|
||||
@@ -51,6 +51,31 @@ When someone comments "I'd like to work on this":
|
||||
- [ ] `make check && make test` passes
|
||||
- [ ] Registered in `_register_unverified()` (not verified)
|
||||
|
||||
### Quality Gates — Standard Bounties
|
||||
|
||||
**`bounty:small`:**
|
||||
- [ ] Change is correct and doesn't introduce regressions
|
||||
- [ ] CI passes
|
||||
- [ ] Scope matches "small" — not padded into a bigger change
|
||||
|
||||
**`bounty:medium`:**
|
||||
- [ ] CI passes
|
||||
- [ ] Bug fixes include a regression test
|
||||
- [ ] Docs/guides are accurate and follow existing style
|
||||
- [ ] Not AI-generated without verification
|
||||
|
||||
**`bounty:large`:**
|
||||
- [ ] Design was discussed in the issue before implementation
|
||||
- [ ] CI passes, new tests cover the change
|
||||
- [ ] Benchmarks included for performance work (before/after)
|
||||
- [ ] Architecture docs reviewed by a second maintainer
|
||||
|
||||
**`bounty:extreme`:**
|
||||
- [ ] Maintainer pre-approved the design proposal before work began
|
||||
- [ ] CI passes, comprehensive test coverage
|
||||
- [ ] Documentation updated to reflect the change
|
||||
- [ ] Reviewed by at least two maintainers
|
||||
|
||||
### Rejecting Submissions
|
||||
|
||||
1. Leave specific, constructive feedback
|
||||
@@ -78,6 +103,8 @@ If a Core Contributor is inactive 8+ weeks, reach out privately first, then remo
|
||||
|
||||
Post dollar values in `#bounty-payouts` (Core Contributors only):
|
||||
|
||||
### Integration bounties
|
||||
|
||||
| Bounty Type | Dollar Range |
|
||||
|-------------|-------------|
|
||||
| `bounty:test` | $10–30 |
|
||||
@@ -85,6 +112,15 @@ Post dollar values in `#bounty-payouts` (Core Contributors only):
|
||||
| `bounty:code` | $20–50 |
|
||||
| `bounty:new-tool` | $50–150 |
|
||||
|
||||
### Standard bounties
|
||||
|
||||
| Bounty Type | Dollar Range |
|
||||
|-------------|-------------|
|
||||
| `bounty:small` | $5–15 |
|
||||
| `bounty:medium` | $20–50 |
|
||||
| `bounty:large` | $50–150 |
|
||||
| `bounty:extreme` | $150–500 |
|
||||
|
||||
**Payout:** PR merged → verify quality → record in `#bounty-payouts` → process payment.
|
||||
|
||||
XP is always awarded regardless of budget. Money is a bonus layer.
|
||||
|
||||
@@ -14,7 +14,7 @@ Complete setup from zero to running. Estimated time: 30 minutes.
|
||||
./scripts/setup-bounty-labels.sh
|
||||
```
|
||||
|
||||
This creates 7 labels: 4 bounty types (`bounty:test`, `bounty:docs`, `bounty:code`, `bounty:new-tool`) and 3 difficulty levels (`difficulty:easy`, `difficulty:medium`, `difficulty:hard`).
|
||||
This creates 11 labels: 4 integration bounty types (`bounty:test`, `bounty:docs`, `bounty:code`, `bounty:new-tool`), 4 standard bounty sizes (`bounty:small`, `bounty:medium`, `bounty:large`, `bounty:extreme`), and 3 difficulty levels (`difficulty:easy`, `difficulty:medium`, `difficulty:hard`).
|
||||
|
||||
## Step 2: Create Discord Channels (3 min)
|
||||
|
||||
|
||||
@@ -68,10 +68,16 @@ interface LeaderboardEntry {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const POINTS: Record<string, number> = {
|
||||
// Integration bounties
|
||||
"bounty:test": 20,
|
||||
"bounty:docs": 20,
|
||||
"bounty:code": 30,
|
||||
"bounty:new-tool": 75,
|
||||
// Standard bounties
|
||||
"bounty:small": 10,
|
||||
"bounty:medium": 30,
|
||||
"bounty:large": 75,
|
||||
"bounty:extreme": 150,
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -276,6 +282,10 @@ function formatBountyNotification(bounty: BountyResult): string {
|
||||
docs: "\u{1F4DD}",
|
||||
code: "\u{1F527}",
|
||||
"new-tool": "\u{2B50}",
|
||||
small: "\u{1F4A1}",
|
||||
medium: "\u{1F6E0}",
|
||||
large: "\u{1F680}",
|
||||
extreme: "\u{1F525}",
|
||||
};
|
||||
|
||||
const emoji = typeEmoji[bounty.bountyType] ?? "\u{1F3AF}";
|
||||
@@ -301,7 +311,7 @@ function formatLeaderboard(entries: LeaderboardEntry[]): string {
|
||||
|
||||
const medals = ["\u{1F947}", "\u{1F948}", "\u{1F949}"];
|
||||
|
||||
let msg = "**\u{1F3C6} Integration Bounty Leaderboard**\n\n";
|
||||
let msg = "**\u{1F3C6} Bounty Leaderboard**\n\n";
|
||||
|
||||
for (let i = 0; i < top10.length; i++) {
|
||||
const entry = top10[i];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# Creates GitHub labels for the Integration Bounty Program.
|
||||
# Creates GitHub labels for the Bounty Program.
|
||||
# Usage: ./scripts/setup-bounty-labels.sh [owner/repo]
|
||||
# Requires: gh CLI authenticated
|
||||
|
||||
@@ -9,12 +9,18 @@ REPO="${1:-adenhq/hive}"
|
||||
|
||||
echo "Setting up bounty labels for $REPO..."
|
||||
|
||||
# Bounty type labels
|
||||
# Integration bounty labels
|
||||
gh label create "bounty:test" --repo "$REPO" --color "1D76DB" --description "Bounty: test a tool with real API key (20 pts)" --force
|
||||
gh label create "bounty:docs" --repo "$REPO" --color "FBCA04" --description "Bounty: write or improve documentation (20 pts)" --force
|
||||
gh label create "bounty:code" --repo "$REPO" --color "D93F0B" --description "Bounty: health checker, bug fix, or improvement (30 pts)" --force
|
||||
gh label create "bounty:new-tool" --repo "$REPO" --color "6F42C1" --description "Bounty: build a new integration from scratch (75 pts)" --force
|
||||
|
||||
# Standard bounty labels
|
||||
gh label create "bounty:small" --repo "$REPO" --color "C2E0C6" --description "Bounty: quick fix — typos, links, error messages (10 pts)" --force
|
||||
gh label create "bounty:medium" --repo "$REPO" --color "0E8A16" --description "Bounty: bug fix, tests, guides, CLI improvements (30 pts)" --force
|
||||
gh label create "bounty:large" --repo "$REPO" --color "B60205" --description "Bounty: new feature, perf work, architecture docs (75 pts)" --force
|
||||
gh label create "bounty:extreme" --repo "$REPO" --color "000000" --description "Bounty: major subsystem, security audit, core refactor (150 pts)" --force
|
||||
|
||||
# Difficulty labels
|
||||
gh label create "difficulty:easy" --repo "$REPO" --color "BFD4F2" --description "Good first contribution" --force
|
||||
gh label create "difficulty:medium" --repo "$REPO" --color "D4C5F9" --description "Requires some familiarity" --force
|
||||
|
||||
Reference in New Issue
Block a user