diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2ea5d56..675880b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,8 +32,32 @@ cargo test --workspace - Branch from `main`, open PRs against `main`. - Run `cargo fmt`, `cargo clippy`, and `cargo test --workspace` before pushing. -- Use issue prefixes: `[contracts]`, `[backend]`, `[documentation]`, `[infra]`. -- Label Drips Wave issues with `Drips Wave` and `complexity:*`. +- Keep PRs focused on one issue and include `Closes #` when the work fully satisfies the acceptance criteria. + +## Issue prefixes and labels + +Use bracketed prefixes in issue titles so contributors can quickly match work to the right crate, document, or operational surface: + +| Prefix | Scope | +|--------|-------| +| `[contracts]` | Soroban escrow logic under `contracts/waveflow-escrow` | +| `[gateway]` | GitHub webhook ingestion, HMAC verification, and chain attestation in `crates/gateway` | +| `[api]` | REST read/admin routes, middleware, and API state in `crates/api` | +| `[shared]` | Shared config, error, and type definitions in `crates/shared` | +| `[documentation]` | README, PRD, roadmap, runbooks, and contributor docs | +| `[infra]` | Docker, Render, migrations, CI, and deployment support | + +Wave-aligned issues should carry: + +- `Drips Wave` for work intended to participate in Wave-style bounty accounting. +- `complexity:low`, `complexity:medium`, or `complexity:high` so maintainers can map the issue to the gateway point schedule. +- Any area label that helps routing, such as `contracts`, `gateway`, `api`, `documentation`, `security`, or `infra`. + +When maintainers open or update the gateway point-mapping issue, link it from Wave bounty issues whose complexity label determines payout. If no mapping issue exists yet, document the expected point value directly in the issue body. + +## Wave program alignment + +WaveFlow is Stellar-native by design. It borrows the Wave contribution pattern of labelled issues, merged PRs, points, and payouts, but PRD non-goal NG6 keeps it independent from any Drips API dependency. Contributors should implement behavior against WaveFlow's Soroban escrow, gateway, API, and Postgres audit trail rather than assuming an external Wave service will calculate or submit payouts. ## Security diff --git a/README.md b/README.md index 351345e..9b9816a 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,7 @@ cargo run -p waveflow-api - [Product Requirements](docs/PRD.md) - [Implementation Roadmap](docs/ROADMAP.md) - [Core loop walkthrough](docs/core-loop.md) +- [Contributing guide](CONTRIBUTING.md) ## License