Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: Bug Report
about: Report a bug or unexpected behavior
title: '[BUG] '
labels: bug
assignees: ''
---

## Description

<!-- A clear and concise description of the bug -->

## Steps to Reproduce

1.
2.
3.

## Expected Behavior

<!-- What you expected to happen -->

## Actual Behavior

<!-- What actually happened -->

## Environment

- **OS**: (e.g., Windows 11, macOS 14, Ubuntu 22.04)
- **Go version**: `go version`
- **AI provider**: (e.g., OpenAI, Gemini, Anthropic)
- **AWS region**: (if applicable)

## Logs / Error Messages

```
<!-- Paste relevant logs or error output -->
```

## Additional Context

<!-- Any other context, screenshots, or config snippets -->
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Discussions
url: https://github.com/VersusControl/ai-infrastructure-agent/discussions
about: Ask questions or share ideas
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature Request
about: Suggest a new feature or enhancement
title: '[FEATURE] '
labels: enhancement
assignees: ''
---

## Problem Statement

<!-- Describe the problem or use case this feature would address -->

## Proposed Solution

<!-- Describe the feature you'd like to see -->

## Alternatives Considered

<!-- Any alternative solutions or approaches you've considered -->

## Additional Context

<!-- AWS services involved, AI provider, etc. -->
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: Question
about: Ask a question about the project
title: '[QUESTION] '
labels: question
assignees: ''
---

## Question

<!-- Your question here -->

## Context

<!-- Any relevant context (what you're trying to do, what you've tried, etc.) -->
37 changes: 37 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
## Summary

<!-- Brief description of the changes -->

## Type of Change

- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update
- [ ] Other (please describe):

## Related Issues

<!-- Link to related issues, e.g. Closes #123 -->

## Changes Made

<!-- List the main changes -->

-
-
-

## Testing

<!-- Describe how you tested your changes -->

- [ ] Ran `go test ./...`
- [ ] Manual testing (describe below)

## Checklist

- [ ] My code follows the project's [coding standards](../CONTRIBUTING.md#coding-standards)
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The checklist link uses ../CONTRIBUTING.md#coding-standards. In PR descriptions, relative links are resolved from the repository root, so the ../ prefix can break navigation. Prefer a root-relative link like /CONTRIBUTING.md#coding-standards (or CONTRIBUTING.md#coding-standards).

Suggested change
- [ ] My code follows the project's [coding standards](../CONTRIBUTING.md#coding-standards)
- [ ] My code follows the project's [coding standards](CONTRIBUTING.md#coding-standards)

Copilot uses AI. Check for mistakes.
- [ ] I have run `gofmt` and `go vet`
- [ ] I have added/updated tests as needed
- [ ] I have updated documentation if applicable
33 changes: 33 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in 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:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior:

* The use of sexualized language or imagery, and sexual attention or advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers. All complaints will be reviewed and investigated promptly and fairly. 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 that they deem inappropriate, threatening, offensive, or harmful.
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Code of Conduct says to report incidents to “project maintainers” but doesn’t provide any contact method (email, form, or GitHub contact). Adding an explicit contact route is important so reports can be made consistently and privately.

Suggested change
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers. All complaints will be reviewed and investigated promptly and fairly. 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 that they deem inappropriate, threatening, offensive, or harmful.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers via email at conduct@example.com. All complaints will be reviewed and investigated promptly and fairly. 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 that they deem inappropriate, threatening, offensive, or harmful.

Copilot uses AI. Check for mistakes.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
131 changes: 131 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# Contributing to AI Infrastructure Agent

Thank you for your interest in contributing! This document provides guidelines for contributing to the AI Infrastructure Agent project.

## Table of Contents

- [Code of Conduct](#code-of-conduct)
- [Getting Started](#getting-started)
- [Development Environment Setup](#development-environment-setup)
- [Coding Standards](#coding-standards)
- [Commit Message Conventions](#commit-message-conventions)
- [Pull Request Process](#pull-request-process)
- [Reporting Security Vulnerabilities](#reporting-security-vulnerabilities)

## Code of Conduct

This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code.

## Getting Started

1. **Fork the repository** and clone your fork locally.
2. **Create a branch** for your work: `git checkout -b feat/your-feature-name` or `fix/your-bug-fix`.
3. **Make your changes** following our [coding standards](#coding-standards).
4. **Run tests** before submitting: `go test ./...`
5. **Submit a pull request** using our [PR template](.github/PULL_REQUEST_TEMPLATE.md).

## Development Environment Setup

### Prerequisites

- **Go 1.24+** – [Install Go](https://golang.org/doc/install)
- **Docker** (optional) – For containerized runs
- **AWS credentials** – For testing AWS operations (use a dev account or localstack)

### Setup Steps

```bash
# Clone your fork
git clone https://github.com/YOUR_USERNAME/ai-infrastructure-agent.git
cd ai-infrastructure-agent

# Add upstream remote
git remote add upstream https://github.com/VersusControl/ai-infrastructure-agent.git

# Install dependencies
go mod download

# Run tests
go test ./...

# Build
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build command writes to bin/agent, but the repo doesn’t include a bin/ directory. As written, go build -o bin/agent ./cmd/agent will fail unless the user creates bin/ first. Consider adding mkdir -p bin or using an output path that always exists.

Suggested change
# Build
# Build
mkdir -p bin

Copilot uses AI. Check for mistakes.
go build -o bin/agent ./cmd/agent
```

### Environment Variables

For local development, you may need:

- `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION` – AWS credentials
- `OPENAI_API_KEY` or `GEMINI_API_KEY` or `ANTHROPIC_API_KEY` – AI provider API key
- `CONFIG_PATH` – Path to `config.yaml` (optional)

See [docs/api-key-setup/](docs/api-key-setup/) for provider-specific setup.

## Coding Standards

### Go Style

- Follow [Effective Go](https://golang.org/doc/effective_go) and [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments).
- Use `gofmt` for formatting: `gofmt -s -w .`
- Use `go vet`: `go vet ./...`
- Prefer `camelCase` for variables and functions, `PascalCase` for exported symbols.

### Project Structure

- `cmd/` – Application entrypoints
- `pkg/` – Reusable packages
- `internal/` – Private application code
- `docs/` – Documentation

### Testing

- Write unit tests for new logic.
- Use table-driven tests where appropriate.
- Mock AWS services when testing without real credentials.

## Commit Message Conventions

We follow [Conventional Commits](https://www.conventionalcommits.org/):

```
<type>(<scope>): <description>

[optional body]

[optional footer]
```

**Types:** `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`

**Examples:**

- `feat(ec2): add instance tagging support`
- `fix(mcp): handle empty tool response`
- `docs: update Gemini API setup guide`

## Pull Request Process

1. Ensure your branch is up to date with `upstream/main`.
2. Fill out the [PR template](.github/PULL_REQUEST_TEMPLATE.md).
3. Link related issues (e.g., `Closes #123`).
Comment on lines +107 to +111
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue #79 acceptance criteria mentions documenting the release process and pre-commit hooks/local checks, but CONTRIBUTING.md currently stops at the PR process. Consider adding a short “Release process” section (e.g., tagging v* to trigger releases) and a “Pre-commit hooks / linting” section, and linking them from the Table of Contents.

Copilot uses AI. Check for mistakes.
4. Request review from maintainers.
5. Address feedback promptly.
6. Once approved, maintainers will merge.

## Reporting Security Vulnerabilities

**Do not** open a public issue for security vulnerabilities.

Please report security issues to the maintainers privately. Include:

Comment on lines +120 to +121
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The security reporting section asks reporters to contact maintainers privately, but it doesn’t provide a concrete reporting channel (e.g., security email address, or a link to GitHub Security Advisories/private vulnerability reporting). Without an explicit contact method, vulnerabilities may still be reported publicly or not reported at all.

Suggested change
Please report security issues to the maintainers privately. Include:
Please report security issues to the maintainers privately using GitHub Security Advisories:
[https://github.com/VersusControl/ai-infrastructure-agent/security/advisories/new](https://github.com/VersusControl/ai-infrastructure-agent/security/advisories/new)
When reporting, please include:

Copilot uses AI. Check for mistakes.
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)

We will acknowledge receipt and work with you on a fix before any public disclosure.

## Questions?

Open a [Discussion](https://github.com/VersusControl/ai-infrastructure-agent/discussions) or an issue with the `question` label.
Loading