diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..37b1b341 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,40 @@ +# CCS Code of Conduct + +CCS is a technical project. Keep discussion respectful, constructive, and focused on improving the work. + +## Expected Behavior + +- Be respectful in issues, pull requests, reviews, and discussions. +- Assume good intent and ask clarifying questions before escalating. +- Give feedback that is specific, technical, and actionable. +- Be patient with contributors who are new to the codebase or toolchain. +- Respect maintainers' time by keeping reports reproducible and well scoped. + +## Unacceptable Behavior + +- Harassment, discrimination, or hate speech +- Personal attacks, insults, or hostile dogpiling +- Publishing private information, credentials, logs, or screenshots that expose sensitive data +- Spam, repeated derailment, or intentionally disruptive behavior +- Sexualized language or unwelcome sexual attention + +## Scope + +This applies to project spaces, including: + +- GitHub issues +- Pull requests and review comments +- Discussions +- Any other repository-managed collaboration channel + +## Enforcement + +Maintainers may edit or remove content, lock conversations, close threads, reject contributions, or block participants when needed to protect the project and contributors. + +For non-sensitive concerns, open a GitHub Discussion or issue. + +For sensitive concerns, do not post details publicly. Ask a maintainer for a private reporting path first and keep the initial message minimal. + +## Practical Rule + +Critique code, behavior, and decisions. Do not attack people. diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 00000000..d134cfd1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,101 @@ +name: Bug report +description: Report a reproducible problem in the CLI, dashboard, config flow, or packaging. +title: "bug: " +labels: + - bug +body: + - type: markdown + attributes: + value: | + Thanks for reporting this. Keep the report concrete and reproducible. + - type: dropdown + id: area + attributes: + label: Affected area + description: Pick the closest area. + options: + - CLI runtime + - Dashboard UI + - Config or auth flow + - Provider integration + - Install or packaging + - Documentation + validations: + required: true + - type: textarea + id: summary + attributes: + label: What broke? + description: Brief summary of the problem. + placeholder: Running `ccs config --host 0.0.0.0` prints the wrong reachable URL on macOS. + validations: + required: true + - type: textarea + id: reproduction + attributes: + label: Reproduction steps + description: Exact steps, commands, inputs, and settings needed to reproduce. + placeholder: | + 1. Run `ccs ...` + 2. Open ... + 3. Observe ... + validations: + required: true + - type: textarea + id: expected + attributes: + label: Expected behavior + validations: + required: true + - type: textarea + id: actual + attributes: + label: Actual behavior + validations: + required: true + - type: input + id: version + attributes: + label: CCS version + description: Output of `ccs --version` + placeholder: 7.54.0 + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating system + options: + - macOS + - Linux + - Windows + - Other + validations: + required: true + - type: textarea + id: environment + attributes: + label: Environment details + description: Include Node.js version, Bun version, shell, terminal, and anything else relevant. + placeholder: | + Node.js: + Bun: + Shell: + Terminal: + - type: textarea + id: logs + attributes: + label: Logs, screenshots, or terminal output + description: Redact tokens, cookies, email addresses, and any private config before posting. + render: shell + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I searched existing issues first. + required: true + - label: I removed secrets and private data from logs/screenshots. + required: true + - label: I can still reproduce this on the latest released or dev build. + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..312d0210 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Questions and discussion + url: https://github.com/kaitranntt/ccs/discussions + about: Use Discussions for open-ended questions, support requests, and idea shaping. diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml new file mode 100644 index 00000000..cb3cd87f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -0,0 +1,44 @@ +name: Documentation improvement +description: Report missing, outdated, or confusing docs. +title: "docs: " +labels: + - documentation +body: + - type: dropdown + id: area + attributes: + label: Documentation area + options: + - README + - CONTRIBUTING guide + - Local docs in docs/ + - Command help output + - Dashboard copy or labels + - Other + validations: + required: true + - type: input + id: location + attributes: + label: File or page + description: Path or URL if you know it. + placeholder: README.md or docs/cursor-integration.md + - type: textarea + id: problem + attributes: + label: What is wrong or unclear? + placeholder: The guide still says to use an old command/path that no longer exists. + validations: + required: true + - type: textarea + id: suggestion + attributes: + label: Suggested improvement + placeholder: Replace it with ... + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I checked whether this is already covered elsewhere in the repo. + required: true diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 00000000..6e63b442 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,69 @@ +name: Feature request +description: Suggest a focused improvement for the CLI, dashboard, or contributor workflow. +title: "feat: " +labels: + - enhancement +body: + - type: markdown + attributes: + value: | + Feature requests land faster when they describe the user problem first and stay narrow. + - type: dropdown + id: area + attributes: + label: Affected area + options: + - CLI runtime + - Dashboard UI + - Config or auth flow + - Provider integration + - Install or packaging + - Documentation + - Contributor workflow + validations: + required: true + - type: textarea + id: problem + attributes: + label: What problem are you trying to solve? + placeholder: I manage multiple profiles, but ... + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + placeholder: Add a command or dashboard control that ... + validations: + required: true + - type: textarea + id: user-flow + attributes: + label: Suggested user flow + description: Show the command, screen, or sequence you expect. + placeholder: | + CLI: + 1. `ccs ...` + + Dashboard: + 1. Open ... + 2. Click ... + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Existing workaround, rejected approach, or why current behavior is not enough. + - type: textarea + id: context + attributes: + label: Additional context + description: Mockups, screenshots, links to related issues, or compatibility notes. + - type: checkboxes + id: checks + attributes: + label: Before submitting + options: + - label: I searched existing issues and discussions first. + required: true + - label: This request describes a concrete user problem, not just a broad idea dump. + required: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..b3c8b996 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,25 @@ +## Summary + +- + +## Testing + +- [ ] `bun run validate` +- [ ] `bun run validate:ci-parity` +- [ ] `cd ui && bun run validate` if UI changed +- [ ] Not run + +## Checklist + +- [ ] Base branch is `dev` unless this is an approved hotfix +- [ ] Branch name follows `feat/*`, `fix/*`, `docs/*`, or approved hotfix naming +- [ ] Relevant `--help` output updated if CLI behavior changed +- [ ] Tests added or updated if behavior changed +- [ ] README or local docs updated if user-facing behavior changed +- [ ] No secrets, tokens, or private config data are included + +## Docs Impact + +Docs impact: `none | minor | major` + +Action: `no update needed` or describe what doc was updated diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3f81539..e985452a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -195,3 +195,4 @@ Releases are automated with semantic-release. - Questions and discussion: https://github.com/kaitranntt/ccs/discussions - User-facing docs: [README.md](./README.md) - Internal architecture notes: [docs/](./docs) +- Community expectations: [`.github/CODE_OF_CONDUCT.md`](./.github/CODE_OF_CONDUCT.md)