diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..1e33633 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,60 @@ +# Code of Conduct + +## Our Pledge + +We as contributors and maintainers pledge to make participation in this project and +our community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment include: + +- Being respectful, constructive, and empathetic +- Giving and gracefully accepting actionable feedback +- Focusing on what is best for the community and project +- Showing courtesy and professionalism in public and private interactions + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery, and sexual attention or advances +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information without explicit permission +- Other conduct that could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Project maintainers are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior they deem inappropriate, threatening, offensive, or +harmful. + +## Scope + +This Code of Conduct applies in all project spaces and whenever an individual is +officially representing the project in public spaces. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the maintainers by opening a private security report as described in +[`SECURITY.md`](./SECURITY.md) or by contacting the repository owner through +GitHub. + +All complaints will be reviewed and investigated promptly and fairly. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +. + +[homepage]: https://www.contributor-covenant.org diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..a1ae5a9 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,55 @@ +# Contributing to climate + +Thanks for your interest in contributing. + +## Before you start + +- Search existing issues and pull requests to avoid duplicate work. +- For larger changes, open an issue first to discuss approach and scope. + +## Required workflow for feature work + +For feature changes, follow this sequence: + +1. **Design first** + - Describe problem, goals, non-goals, API/CLI UX, and edge cases. + - Add or update design docs in `docs/`. +2. **Document behavior** + - Update user-facing docs (`README.md`, `docs/index.md`) when commands or capabilities change. +3. **Write tests** + - Add targeted unit tests for new logic before/with implementation. +4. **Implement code** + - Keep changes focused and consistent with project style. +5. **Update skills** + - Update `skills/climate.md` and `skills/climate-generator/SKILL.md` when command set or workflows change. +6. **Validate locally** + - Run: + + ```bash + go build ./... + go test ./... + ``` + +7. **Validate CI health** + - Ensure PR checks are green before merge. + +## Pull request expectations + +- Keep PRs small and clearly scoped. +- Explain what changed and why. +- Include tests for behavior changes. +- Update docs and skills files when required. +- Ensure CI is green. + +## Commit style + +Use clear, imperative commit messages (for example: `Add security policy`). + +## Reporting bugs and requesting features + +Use the issue templates to provide all required context. + +## Code of Conduct + +By participating, you agree to abide by the +[Code of Conduct](./CODE_OF_CONDUCT.md). diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..a6436c6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,56 @@ +name: Bug report +description: Report a reproducible problem in climate +title: "bug: " +labels: + - bug +body: + - type: markdown + attributes: + value: | + Thanks for reporting a bug. Please provide enough detail to reproduce it. + - type: textarea + id: summary + attributes: + label: Summary + description: What happened? + placeholder: A clear and concise description of the bug. + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce + description: Exact steps, commands, and inputs. + placeholder: | + 1. Run ... + 2. Generate ... + 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: climate version + placeholder: e.g. climate version output + - type: textarea + id: environment + attributes: + label: Environment + description: OS, architecture, Go version (if building from source), etc. + - type: textarea + id: logs + attributes: + label: Relevant logs/output + render: shell diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..71bef23 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Security vulnerability report + url: https://github.com/disk0Dancer/climate/security/advisories/new + about: Please report vulnerabilities privately. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..7f03540 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,34 @@ +name: Feature request +description: Suggest an enhancement for climate +title: "feat: " +labels: + - enhancement +body: + - type: markdown + attributes: + value: | + Thanks for the suggestion. Share the problem first, then your proposed solution. + - type: textarea + id: problem + attributes: + label: Problem statement + description: What problem are you trying to solve? + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: What would you like to happen? + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Any alternatives or workarounds you've tried. + - type: textarea + id: context + attributes: + label: Additional context + description: Links, examples, or related issues. diff --git a/.github/SECURITY.md b/.github/SECURITY.md new file mode 100644 index 0000000..1ac0052 --- /dev/null +++ b/.github/SECURITY.md @@ -0,0 +1,24 @@ +# Security Policy + +## Supported versions + +Only the latest release is actively supported with security fixes. + +## Reporting a vulnerability + +Please do **not** report security vulnerabilities in public issues. + +Instead, use GitHub's private vulnerability reporting for this repository: + +- Go to the repository's **Security** tab +- Select **Report a vulnerability** + +If private reporting is unavailable, contact the repository owner directly on +GitHub and include: + +- A clear description of the issue +- Reproduction steps or proof of concept +- Potential impact +- Any suggested remediation + +We will acknowledge reports as quickly as possible and work on a fix. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..916a6c0 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,18 @@ +## Summary + +Describe the change and why it is needed. + +## Changes + +- + +## Required workflow checklist + +- [ ] Design doc added/updated (`docs/`) when applicable +- [ ] README/docs updated (`README.md`, `docs/index.md`) when behavior/UX changed +- [ ] Skills updated (`skills/climate.md`, `skills/climate-generator/SKILL.md`) when commands/workflows changed +- [ ] Tests added/updated +- [ ] Implementation kept focused and scoped +- [ ] `go build ./...` passes +- [ ] `go test ./...` passes +- [ ] CI checks are green