From d0c784d365f3ebc92f6da21c88fafe01b8eb1bd2 Mon Sep 17 00:00:00 2001 From: heyradcode Date: Sun, 12 Jul 2026 16:46:49 -0400 Subject: [PATCH 1/3] docs: add issue and pr template --- .github/ISSUE_TEMPLATE/bug_report.md | 49 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++++ .github/ISSUE_TEMPLATE/feature_request.md | 38 ++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 43 ++++++++++++++++++++ README.md | 17 ++++++-- package.json | 1 + 6 files changed, 152 insertions(+), 4 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..6d009131 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,49 @@ +--- +name: Bug report +about: Report something that isn't working as expected +title: "[Bug]: " +labels: bug +assignees: '' +--- + +## Describe the bug + +A clear and concise description of what the bug is. + +## Component + + +- [ ] Frontend +- [ ] Backend +- [ ] Mobile +- [ ] Website +- [ ] Ethereum contracts +- [ ] Solana contracts +- [ ] Indexer (indexer-go) +- [ ] Other (please specify) + +## To Reproduce + +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '...' +3. See error + +## Expected behavior + +A clear and concise description of what you expected to happen. + +## Screenshots / Logs + +If applicable, add screenshots or log output to help explain the problem. + +## Environment + +- OS: [e.g. Windows 11, macOS 14] +- Browser (if applicable): [e.g. Chrome 126] +- Network (if applicable): [e.g. Sepolia, local Hardhat, Solana devnet] +- Commit / branch: + +## Additional context + +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..4bf68fd9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: Security Vulnerability + url: https://github.com/radcrew/do-not-stop/security/policy + about: Please report security vulnerabilities privately per SECURITY.md — do not open a public issue. + - name: Ask a Question / Discussion + url: https://github.com/radcrew/do-not-stop/discussions + about: Ask general questions or start a discussion. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..c02d9e53 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,38 @@ +--- +name: Feature request +about: Suggest an idea or enhancement for this project +title: "[Feature]: " +labels: enhancement +assignees: '' +--- + +## Is your feature request related to a problem? Please describe. + +A clear and concise description of what the problem is. e.g. "I'm always +frustrated when [...]" + +## Describe the solution you'd like + +A clear and concise description of what you want to happen. + +## Component + + +- [ ] Frontend +- [ ] Backend +- [ ] Mobile +- [ ] Website +- [ ] Ethereum contracts +- [ ] Solana contracts +- [ ] Indexer (indexer-go) +- [ ] Other (please specify) + +## Describe alternatives you've considered + +A clear and concise description of any alternative solutions or features +you've considered. + +## Additional context + +Add any other context, mockups, or screenshots about the feature request +here. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..6b401fac --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,43 @@ +## Description + + + +## Related Issue(s) + + + +## Type of Change + +- [ ] Bug fix +- [ ] New feature +- [ ] Breaking change +- [ ] Refactor / cleanup +- [ ] Documentation +- [ ] Other (please describe) + +## Component(s) + +- [ ] Frontend +- [ ] Backend +- [ ] Mobile +- [ ] Website +- [ ] Ethereum contracts +- [ ] Solana contracts +- [ ] Indexer (indexer-go) +- [ ] Other (please specify) + +## How Has This Been Tested? + + + +- [ ] `pnpm lint` +- [ ] `pnpm test` +- [ ] Manually verified in the app + +## Checklist + +- [ ] My code follows the style and conventions of this project +- [ ] I have performed a self-review of my own code +- [ ] I have added tests that prove my fix is effective or my feature works +- [ ] New and existing tests pass locally +- [ ] I have updated relevant documentation (README, docs/, etc.) diff --git a/README.md b/README.md index 8725d2e5..dbc864ec 100644 --- a/README.md +++ b/README.md @@ -61,10 +61,19 @@ For detailed setup and commands, see [DEVELOPMENT.md](./DEVELOPMENT.md). ## 🤝 Contributing -1. Create a feature branch -2. Make your changes -3. Run linting and tests -4. Submit a pull request +See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup, workflow, and pull request +guidelines. Please also review our [Code of Conduct](./CODE_OF_CONDUCT.md). + +## 🔒 Security + +See [SECURITY.md](./SECURITY.md) for how to report vulnerabilities. + +## 📄 License + +This project is licensed under the [PolyForm Noncommercial License +1.0.0](./LICENSE) — free to use, modify, and share for any noncommercial +purpose. Commercial use requires separate permission; contact +[code@radcrew.org](mailto:code@radcrew.org). --- diff --git a/package.json b/package.json index 6398265e..ca61e800 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "do-not-stop", "private": true, "version": "0.0.0", + "license": "SEE LICENSE IN LICENSE", "packageManager": "pnpm@9.15.9", "type": "module", "scripts": { From c0b38d127bf3657a1b3c2947fa58b5df23626c36 Mon Sep 17 00:00:00 2001 From: heyradcode Date: Sun, 12 Jul 2026 17:00:48 -0400 Subject: [PATCH 2/3] feat: add project licensing (PolyForm Noncommercial + MIT for contracts/infra) --- LICENSE | 133 ++++++++++++++++++ README.md | 12 +- backend/package.json | 1 + contracts/LICENSE | 21 +++ contracts/ethereum/package.json | 1 + .../cryptopets/programs/cryptopets/Cargo.toml | 1 + frontend/package.json | 1 + indexer-go/LICENSE | 21 +++ mobile/package.json | 1 + proto/LICENSE | 21 +++ shared/package.json | 1 + website/package.json | 1 + 12 files changed, 212 insertions(+), 3 deletions(-) create mode 100644 LICENSE create mode 100644 contracts/LICENSE create mode 100644 indexer-go/LICENSE create mode 100644 proto/LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..4eb9e053 --- /dev/null +++ b/LICENSE @@ -0,0 +1,133 @@ +PolyForm Noncommercial License 1.0.0 + + + +Required Notice: Copyright RadCrew (https://radcrew.org) + +## Acceptance + +In order to get any license under these terms, you must agree +to them as both strict obligations and conditions to all +your licenses. + +## Copyright License + +The licensor grants you a copyright license for the +software to do everything you might do with the software +that would otherwise infringe the licensor's copyright +in it for any permitted purpose. However, you may +only distribute the software according to [Distribution +License](#distribution-license) and make changes or new works +based on the software according to [Changes and New Works +License](#changes-and-new-works-license). + +## Distribution License + +The licensor grants you an additional copyright license +to distribute copies of the software. Your license +to distribute covers distributing the software with +changes and new works permitted by [Changes and New Works +License](#changes-and-new-works-license). + +## Notices + +You must ensure that anyone who gets a copy of any part of +the software from you also gets a copy of these terms or the +URL for them above, as well as copies of any plain-text lines +beginning with `Required Notice:` that the licensor provided +with the software. For example: + +> Required Notice: Copyright RadCrew (https://radcrew.org) + +## Changes and New Works License + +The licensor grants you an additional copyright license to +make changes and new works based on the software for any +permitted purpose. + +## Patent License + +The licensor grants you a patent license for the software that +covers patent claims the licensor can license, or becomes able +to license, that you would infringe by using the software. + +## Noncommercial Purposes + +Any noncommercial purpose is a permitted purpose. + +## Personal Uses + +Personal use for research, experiment, and testing for +the benefit of public knowledge, personal study, private +entertainment, hobby projects, amateur pursuits, or religious +observance, without any anticipated commercial application, +is use for a permitted purpose. + +## Noncommercial Organizations + +Use by any charitable organization, educational institution, +public research organization, public safety or health +organization, environmental protection organization, or +government institution is use for a permitted purpose +regardless of the source of funding or obligations resulting +from the funding. + +## Fair Use + +You may have "fair use" rights for the software under the +law. These terms do not limit them. + +## No Other Rights + +These terms do not allow you to sublicense or transfer any of +your licenses to anyone else, or prevent the licensor from +granting licenses to anyone else. These terms do not imply +any other licenses. + +## Patent Defense + +If you make any written claim that the software infringes or +contributes to infringement of any patent, your patent license +for the software granted under these terms ends immediately. If +your company makes such a claim, your patent license ends +immediately for work on behalf of your company. + +## Violations + +The first time you are notified in writing that you have +violated any of these terms, or done anything with the software +not covered by your licenses, your licenses can nonetheless +continue if you come into full compliance with these terms, +and take practical steps to correct past violations, within +32 days of receiving notice. Otherwise, all your licenses +end immediately. + +## No Liability + +***As far as the law allows, the software comes as is, without +any warranty or condition, and the licensor will not be liable +to you for any damages arising out of these terms or the use +or nature of the software, under any kind of legal claim.*** + +## Definitions + +The **licensor** is the individual or entity offering these +terms, and the **software** is the software the licensor makes +available under these terms. + +**You** refers to the individual or entity agreeing to these +terms. + +**Your company** is any legal entity, sole proprietorship, +or other kind of organization that you work for, plus all +organizations that have control over, are under the control of, +or are under common control with that organization. **Control** +means ownership of substantially all the assets of an entity, +or the power to direct its management and policies by vote, +contract, or otherwise. Control can be direct or indirect. + +**Your licenses** are all the licenses granted to you for the +software under these terms. + +**Use** means anything you do with the software requiring one +of your licenses. diff --git a/README.md b/README.md index dbc864ec..43191204 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,15 @@ See [SECURITY.md](./SECURITY.md) for how to report vulnerabilities. ## 📄 License -This project is licensed under the [PolyForm Noncommercial License -1.0.0](./LICENSE) — free to use, modify, and share for any noncommercial -purpose. Commercial use requires separate permission; contact +This monorepo uses two licenses depending on the package: + +| Package(s) | License | +| --- | --- | +| `contracts/ethereum`, `contracts/solana`, `indexer-go`, `proto` | [MIT](./contracts/LICENSE) — fully permissive | +| `frontend`, `backend`, `mobile`, `website`, `shared` (and anything else) | [PolyForm Noncommercial 1.0.0](./LICENSE) — free for any noncommercial purpose; commercial use requires permission | + +Each package's `package.json` / `go.mod` directory points at the license that +applies to it. For commercial licensing of the app layer, contact [code@radcrew.org](mailto:code@radcrew.org). --- diff --git a/backend/package.json b/backend/package.json index ec4ccebb..bfcea8cc 100644 --- a/backend/package.json +++ b/backend/package.json @@ -2,6 +2,7 @@ "name": "backend", "version": "1.0.0", "description": "Cryptopets backend: Web3 auth, dialogue LLM, and gRPC/GraphQL game-data APIs", + "license": "SEE LICENSE IN ../LICENSE", "main": "dist/src/server.js", "engines": { "node": ">=20" diff --git a/contracts/LICENSE b/contracts/LICENSE new file mode 100644 index 00000000..89dab1bc --- /dev/null +++ b/contracts/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025-2026 RadCrew + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/contracts/ethereum/package.json b/contracts/ethereum/package.json index 2f57cfc4..b8934b19 100644 --- a/contracts/ethereum/package.json +++ b/contracts/ethereum/package.json @@ -2,6 +2,7 @@ "name": "ethereum", "version": "0.0.0", "private": true, + "license": "SEE LICENSE IN ../LICENSE", "type": "module", "scripts": { "hh": "node scripts/hardhat.js", diff --git a/contracts/solana/cryptopets/programs/cryptopets/Cargo.toml b/contracts/solana/cryptopets/programs/cryptopets/Cargo.toml index b9f8b673..e0a46e72 100644 --- a/contracts/solana/cryptopets/programs/cryptopets/Cargo.toml +++ b/contracts/solana/cryptopets/programs/cryptopets/Cargo.toml @@ -3,6 +3,7 @@ name = "cryptopets" version = "0.1.0" description = "Created with Anchor" edition = "2021" +license-file = "../../../../LICENSE" [lib] crate-type = ["cdylib", "lib"] diff --git a/frontend/package.json b/frontend/package.json index 9c4ebf20..36d264e6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,6 +2,7 @@ "name": "frontend", "private": true, "version": "0.0.0", + "license": "SEE LICENSE IN ../LICENSE", "type": "module", "scripts": { "vite": "node ../node_modules/vite/bin/vite.js", diff --git a/indexer-go/LICENSE b/indexer-go/LICENSE new file mode 100644 index 00000000..89dab1bc --- /dev/null +++ b/indexer-go/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025-2026 RadCrew + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/mobile/package.json b/mobile/package.json index 3cc3a765..a8b758f4 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -2,6 +2,7 @@ "name": "mobile", "version": "0.0.1", "private": true, + "license": "SEE LICENSE IN ../LICENSE", "scripts": { "android": "react-native run-android", "ios": "react-native run-ios", diff --git a/proto/LICENSE b/proto/LICENSE new file mode 100644 index 00000000..89dab1bc --- /dev/null +++ b/proto/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025-2026 RadCrew + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/shared/package.json b/shared/package.json index a03783df..54dc9bb3 100644 --- a/shared/package.json +++ b/shared/package.json @@ -2,6 +2,7 @@ "name": "@shared/core", "version": "0.0.1", "description": "Shared cross-chain (EVM + Solana) game-data, auth, and wallet hooks for the frontend and mobile apps. Consumed as raw TypeScript source — no build step.", + "license": "SEE LICENSE IN ../LICENSE", "type": "module", "main": "src/index.ts", "types": "src/index.ts", diff --git a/website/package.json b/website/package.json index 291a279d..aa286e60 100644 --- a/website/package.json +++ b/website/package.json @@ -2,6 +2,7 @@ "name": "website", "private": true, "version": "0.0.0", + "license": "SEE LICENSE IN ../LICENSE", "scripts": { "dev": "next dev --port 3002", "build": "next build", From f2ef9b8678967df3792a42473c23cf1e7c923f6d Mon Sep 17 00:00:00 2001 From: heyradcode Date: Sun, 12 Jul 2026 17:02:21 -0400 Subject: [PATCH 3/3] docs: add contribution guide and security policy --- CONTRIBUTING.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ SECURITY.md | 44 +++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..80e971d3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,66 @@ +# Contributing to do-not-stop + +Thanks for your interest in contributing! This is a monorepo covering the +frontend, backend, mobile app, website, and Ethereum/Solana contracts for the +cryptopets project. This guide covers how to get set up and how to submit +changes. + +Before contributing, please read our [Code of Conduct](./CODE_OF_CONDUCT.md). + +## Getting Started + +See [DEVELOPMENT.md](./DEVELOPMENT.md) for full setup instructions, available +commands, and local blockchain configuration (Ethereum + Solana). The short +version: + +```bash +pnpm install +pnpm dev +``` + +For architecture and testing strategy, see [docs/](./docs), starting with +[docs/architecture.md](./docs/architecture.md). + +## Workflow + +1. Fork the repo and create a feature branch off `main`: + ```bash + git checkout -b feat/short-description + ``` +2. Make your changes, keeping them focused on a single concern. +3. Add or update tests for any behavior change. +4. Run linting and tests locally before opening a PR: + ```bash + pnpm lint + pnpm test + ``` +5. Commit using [Conventional Commits](https://www.conventionalcommits.org/) + style (`feat:`, `fix:`, `refactor:`, `docs:`, `chore:`, etc.) — this keeps + history and changelogs readable. +6. Push your branch and open a pull request against `main`, filling out the PR + template. + +## Pull Request Guidelines + +- Keep PRs scoped to one change; large unrelated changes are harder to review + and slower to merge. +- Describe *why* the change is needed, not just what changed. +- Link any related issues. +- Make sure CI (lint, tests, coverage) passes before requesting review. +- Be responsive to review feedback — most PRs go through a round or two of + comments before merging. + +## Reporting Bugs & Requesting Features + +Use the appropriate [issue template](./.github/ISSUE_TEMPLATE) when opening a +new issue. Search existing issues first to avoid duplicates. + +## Security Issues + +Please do **not** open a public issue for security vulnerabilities. See +[SECURITY.md](./SECURITY.md) for how to report them responsibly. + +## Questions? + +Open a [discussion](../../discussions) or issue, or email +[code@radcrew.org](mailto:code@radcrew.org). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..90a1f7b6 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,44 @@ +# Security Policy + +## Supported Versions + +This project is under active development on the `main` branch. Only the code +currently deployed from `main` (frontend, backend, and the latest deployed +contract addresses) is supported with security fixes. There are no maintained +release branches at this time. + +## Reporting a Vulnerability + +**Please do not open a public GitHub issue for security vulnerabilities.** + +This includes, but is not limited to: + +- Smart contract vulnerabilities (Ethereum contracts under `contracts/ethereum` + or Solana programs under `contracts/solana`) that could lead to loss of + funds, unauthorized minting, access-control bypass, or manipulation of game + outcomes (e.g. VRF/randomness handling). +- Authentication, session, or wallet-signature handling issues in the backend + or frontend. +- Any other issue that could compromise user funds, data, or accounts. + +Instead, email **[code@radcrew.org](mailto:code@radcrew.org)** with: + +- A description of the vulnerability and its potential impact. +- Steps to reproduce, or a proof-of-concept if available. +- The affected component (frontend, backend, mobile, contracts/ethereum, + contracts/solana, indexer-go, etc.) and, for contracts, the network/address + if relevant. + +We aim to acknowledge reports within 5 business days. Please give us +reasonable time to investigate and address the issue before any public +disclosure. + +## Scope + +This project involves deployed smart contracts and live testnets/mainnets. +Please avoid testing against production infrastructure in ways that could +disrupt other users (e.g. spamming transactions, draining testnet faucets, or +denial-of-service testing). Prefer testing against a local Hardhat network or +local Solana validator as described in [DEVELOPMENT.md](./DEVELOPMENT.md). + +Thank you for helping keep cryptopets and its users safe.