Skip to content
Merged
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
83 changes: 83 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Bug Report
description: Report a bug in Forge
title: "[Bug]: "
labels: ["bug"]
body:
- type: dropdown
id: component
attributes:
label: Component
description: Which part of Forge is affected?
options:
- forge-core (registry, tools, security, channels, LLM)
- forge-cli (commands, TUI wizard, runtime)
- forge-plugins (channel plugins, markdown converter)
- forge-skills (skill parser, compiler, analyzer, trust)
- Documentation
- Other
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: A clear description of the bug
placeholder: Describe the bug
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: How can we reproduce this behavior?
placeholder: |
1. Run `forge ...`
2. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected behavior
description: What did you expect to happen?
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual behavior
description: What actually happened?
validations:
required: true

- type: input
id: os
attributes:
label: Operating system
description: "e.g. macOS 14.2, Ubuntu 22.04, Windows 11"
placeholder: macOS 14.2

- type: input
id: go-version
attributes:
label: Go version
description: "Output of `go version`"
placeholder: go1.25.0

- type: textarea
id: forge-yaml
attributes:
label: forge.yaml (if relevant)
description: Paste your `forge.yaml` configuration (redact secrets)
render: yaml

- type: textarea
id: logs
attributes:
label: Logs / error output
description: Paste any relevant log output or error messages
render: text
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Documentation
url: https://github.com/initializ/forge/tree/main/docs
about: Read the Forge documentation before opening an issue
- name: Discussions
url: https://github.com/initializ/forge/discussions
about: Ask questions and share ideas in GitHub Discussions
60 changes: 60 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Feature Request
description: Suggest a new feature or enhancement
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: dropdown
id: component
attributes:
label: Component
description: Which part of Forge does this feature relate to?
options:
- forge-core (registry, tools, security, channels, LLM)
- forge-cli (commands, TUI wizard, runtime)
- forge-plugins (channel plugins, markdown converter)
- forge-skills (skill parser, compiler, analyzer, trust)
- Documentation
- Other
validations:
required: true

- type: dropdown
id: scope
attributes:
label: Scope
description: How large is this feature?
options:
- Small (single file / minor change)
- Medium (multiple files / new command)
- Large (new module / architectural change)
validations:
required: true

- type: textarea
id: problem
attributes:
label: Problem statement
description: What problem does this feature solve? Is it related to a frustration?
placeholder: I'm always frustrated when ...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed solution
description: Describe the solution you'd like
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Describe any alternative solutions or features you've considered

- type: textarea
id: context
attributes:
label: Additional context
description: Add any other context, screenshots, or examples
78 changes: 78 additions & 0 deletions .github/ISSUE_TEMPLATE/new-skill.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: New Skill Proposal
description: Propose a new Forge skill
title: "[Skill]: "
labels: ["skill", "proposal"]
body:
- type: input
id: skill-name
attributes:
label: Skill name
description: "Kebab-case identifier (e.g. `my-cool-skill`)"
placeholder: my-cool-skill
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: What does this skill do and why is it useful?
placeholder: Describe the skill's purpose and use cases
validations:
required: true

- type: dropdown
id: execution-type
attributes:
label: Execution type
description: How will the skill's tools run?
options:
- Script-backed (shell scripts in scripts/)
- Binary-backed (compiled binary in PATH)
validations:
required: true

- type: input
id: category
attributes:
label: Category
description: "Skill category (e.g. sre, research, ops, dev, security)"
placeholder: ops

- type: textarea
id: requirements
attributes:
label: Requirements
description: List required binaries, environment variables, and egress domains
placeholder: |
Binaries: curl, jq
Env vars: MY_API_KEY (required)
Egress: api.example.com

- type: textarea
id: use-case
attributes:
label: Example use case
description: Describe a concrete scenario where this skill would be used
placeholder: |
As a developer, I want to ...
validations:
required: true

- type: textarea
id: security
attributes:
label: Security considerations
description: Describe any security implications (network access, credentials, read-only constraints)
placeholder: |
- Read-only access to ...
- Requires API key for ...

- type: textarea
id: example-interaction
attributes:
label: Example interaction
description: Show an example input/output or conversation with the skill
placeholder: |
Input: {"query": "example"}
Output: {"results": [...]}
35 changes: 35 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## Type of Change

- [ ] Bug fix
- [ ] New feature
- [ ] Enhancement / refactor
- [ ] New skill
- [ ] Documentation
- [ ] CI / build

## Description

<!-- What does this PR do and why? -->

## General Checklist

- [ ] Tests pass for affected modules (`go test ./...`)
- [ ] Code is formatted (`gofmt -w`)
- [ ] Linter passes (`golangci-lint run`)
- [ ] `go vet` reports no issues
- [ ] No new egress domains added without justification

## Skill Contribution Checklist

<!-- Delete this section if not contributing a skill -->

- [ ] `forge skills validate` passes with no errors
- [ ] `forge skills audit` reports no policy violations
- [ ] `egress_domains` lists every domain the skill contacts
- [ ] No secrets or credentials are hardcoded
- [ ] SKILL.md includes `## Tool:` sections with input/output tables
- [ ] Skill tested locally with expected input/output

## Related Issues

<!-- Link related issues: Closes #123, Fixes #456 -->
72 changes: 72 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and maintainers of the Forge project 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, caste, color, 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:

- Being respectful and considerate in communication
- Giving and gracefully accepting constructive feedback
- Focusing on what is best for the community and the project
- Showing empathy toward other community members
- Being patient with newcomers and helping them get started

Examples of unacceptable behavior:

- The use of sexualized language or imagery, and unwelcome 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
- Sustained disruption of discussions, reviews, or other community activities
- Other conduct which could reasonably be considered inappropriate in a professional setting

## Scope

This Code of Conduct applies within all project spaces — including the GitHub repository, issues, pull requests, discussions, and any other communication channels associated with Forge. It also applies when an individual is officially representing the project in public spaces.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project maintainers at:

**conduct@initializ.ai**

All complaints will be reviewed and investigated promptly and fairly. The project team is obligated to maintain confidentiality regarding the reporter of an incident.

## Enforcement Guidelines

Project maintainers will follow these guidelines in determining consequences for any action deemed in violation of this Code of Conduct:

### 1. Correction

**Impact:** Use of inappropriate language or other behavior deemed unprofessional or unwelcome.

**Consequence:** A private written warning from maintainers, with clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Impact:** A violation through a single incident or series of actions.

**Consequence:** A warning with consequences for continued behavior. No interaction with the people involved for a specified period. This includes avoiding interactions in project spaces and external channels. Violating these terms may lead to a temporary or permanent ban.

### 3. Temporary Ban

**Impact:** A serious violation of community standards, including sustained inappropriate behavior.

**Consequence:** A temporary ban from any sort of interaction or public communication with the project for a specified period. No public or private interaction with the people involved is allowed during this period. Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Impact:** Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

**Consequence:** A permanent ban from any sort of public interaction within the project.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.

For answers to common questions about the Contributor Covenant, see the [FAQ](https://www.contributor-covenant.org/faq).
Loading
Loading