diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..ce88ac9f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @microsoft/ai-red-team-dev diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..1c7d190a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,88 @@ +name: Bug Report +description: Report a bug or unexpected behavior +labels: ["bug"] +body: + - type: textarea + id: description + attributes: + label: Description + description: A clear description of the bug. + validations: + required: true + + - type: textarea + id: repro + attributes: + label: Steps to reproduce + description: Minimal steps to reproduce the behavior. + placeholder: | + 1. Install RAMPART v... + 2. Create a test file with... + 3. Run `pytest ...` + 4. Observe... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + description: What you expected to happen. + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual behavior + description: What actually happened. + validations: + required: true + + - type: dropdown + id: python-version + attributes: + label: Python version + options: + - "3.11" + - "3.12" + - "3.13" + - "Other" + validations: + required: true + + - type: dropdown + id: os + attributes: + label: Operating system + options: + - Linux + - macOS + - Windows + validations: + required: true + + - type: input + id: rampart-version + attributes: + label: RAMPART version + placeholder: "0.1.0" + validations: + required: true + + - type: textarea + id: code + attributes: + label: Code to reproduce + description: Minimal code snippet that reproduces the issue. + render: python + validations: + required: false + + - type: textarea + id: context + attributes: + label: Additional context + description: Logs, screenshots, stack traces, or any other relevant information. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..5eede908 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Security vulnerabilities + url: https://github.com/microsoft/RAMPART/blob/main/.github/SECURITY.md + about: Do not report security vulnerabilities through public GitHub issues. See SECURITY.md for reporting guidance. diff --git a/.github/ISSUE_TEMPLATE/doc_improvement.yml b/.github/ISSUE_TEMPLATE/doc_improvement.yml new file mode 100644 index 00000000..612f8445 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/doc_improvement.yml @@ -0,0 +1,19 @@ +name: Documentation Improvement +description: Report confusing or missing documentation +labels: ["documentation"] +body: + - type: textarea + id: issue + attributes: + label: What is confusing or missing? + description: Tell us what's unclear, incorrect, or absent in the docs. + validations: + required: true + + - type: textarea + id: suggestion + attributes: + label: Suggested fix + description: How could the documentation be improved? + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..3c670529 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,43 @@ +name: Feature Request +description: Suggest a new feature or improvement +labels: ["enhancement"] +body: + - type: textarea + id: summary + attributes: + label: Summary + description: Brief description of the feature. + validations: + required: true + + - type: textarea + id: motivation + attributes: + label: Motivation + description: Why is this feature needed? What problem does it solve? + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Proposed solution + description: Describe the desired outcome. + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Any alternative approaches you've thought about. + validations: + required: false + + - type: textarea + id: context + attributes: + label: Additional context + description: Any other relevant information, references, or examples. + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/other.yml b/.github/ISSUE_TEMPLATE/other.yml new file mode 100644 index 00000000..9be0e455 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other.yml @@ -0,0 +1,11 @@ +name: Other +description: General issue that doesn't fit other categories +labels: ["triage"] +body: + - type: textarea + id: description + attributes: + label: Description + description: Describe your issue, question, or suggestion. + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md new file mode 100644 index 00000000..2e2cefc3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -0,0 +1,20 @@ + + + + + +## Description + + + + + + +## Breaking changes + + +## Checklist + +- [ ] `pre-commit run --all-files` passes +- [ ] Tests added or updated for changes +- [ ] Documentation updated diff --git a/README.md b/README.md index e1370de5..8dcd8960 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,22 @@ RAMPART Logo

-# RAMPART: Risk Assessment & Measurement Platform for Agentic Red Teaming +

RAMPART

+

Risk Assessment & Measurement Platform for Agentic Red Teaming

-**A pytest-native safety and security testing framework for agentic AI applications.** +

+ A pytest-native safety and security testing framework for agentic AI applications. +

+ +

+ OpenSSF Scorecard + CI + + + +

+ +--- RAMPART provides a structured, developer-friendly way to write and run safety and security tests for AI agents -- covering **adversarial attacks**, **benign failures**, and a broad range of **harm categories**, all with evaluation-driven assertions and seamless integration with [pytest](https://docs.pytest.org/).