Thank you for your interest in contributing to GödelOS! This document provides guidelines and instructions for contributing to the project.
- Code of Conduct
- Getting Started
- Development Workflow
- Coding Standards
- Testing Guidelines
- Documentation Guidelines
- Pull Request Process
- Issue Reporting
We are committed to providing a friendly, safe, and welcoming environment for all contributors. Please be respectful and considerate of others when participating in this project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/yourusername/godelOS.git cd godelOS - Set up the development environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e ".[dev]"
- Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
- Make your changes in your feature branch
- Write tests for your changes
- Run the tests to ensure they pass:
pytest
- Update documentation if necessary
- Commit your changes with a descriptive commit message
- Push your changes to your fork on GitHub
- Submit a pull request to the main repository
- Follow PEP 8 style guidelines for Python code
- Use meaningful variable and function names
- Write docstrings for all functions, classes, and modules
- Keep functions and methods small and focused on a single responsibility
- Use type hints where appropriate
- Format your code using
blackandisort:black . isort .
- Write unit tests for all new code
- Ensure all tests pass before submitting a pull request
- Aim for high test coverage of your code
- Test edge cases and error conditions
- Use pytest fixtures and parameterized tests where appropriate
- Update the documentation for any changes to the API or behavior
- Document complex algorithms and design decisions
- Use clear and concise language
- Include examples where appropriate
- Keep the README.md up to date
- Update the README.md and other documentation with details of changes if appropriate
- Ensure all tests pass and the code meets the coding standards
- The pull request will be reviewed by at least one maintainer
- Address any feedback from the review
- Once approved, your pull request will be merged
- Use the GitHub issue tracker to report bugs or suggest features
- Before creating a new issue, check if a similar issue already exists
- Provide a clear and descriptive title
- Include detailed steps to reproduce the issue
- Include information about your environment (OS, Python version, etc.)
- If possible, include a minimal code example that reproduces the issue
When contributing to the Core KR System, please ensure:
- Type safety is maintained throughout the system
- Changes to the AST structure are backward compatible or clearly documented as breaking changes
- The unification engine handles all edge cases correctly
- Performance implications of changes are considered
When contributing to the Inference Engine, please ensure:
- New provers implement the BaseProver interface
- Proof objects are properly structured and contain all necessary information
- Resource limits are respected in all inference algorithms
- Changes to the inference coordinator maintain backward compatibility
Copilot coding agents and automated CI workflows require a GitHub Personal Access Token with specific scopes.
| Scope | Purpose |
|---|---|
repo |
Full repository access (read/write code, pull requests, issues) |
project |
Projects V2 read/write access (required for GitHub Projects board automation) |
workflow |
Manage GitHub Actions workflows |
read:org |
Read organisation membership (required for org-level Projects) |
Important: The
projectscope is mandatory for Copilot agent tasks that interact with GitHub Projects V2. Without it, project board operations will fail with a 403 error.
- Go to GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens (recommended) or Tokens (classic).
- For a classic PAT: check
repo,project,workflow, andread:org. - Set an expiry of 90 days maximum (rotate before expiry — see schedule below).
- Give it a descriptive name:
godelos-copilot-agentor similar.
- Store the PAT as a repository secret:
Settings → Secrets and variables → Actions → New repository secret. - Secret name:
COPILOT_PAT(orGITHUB_TOKENoverride where applicable). - Never commit the raw token to source code or include it in log output.
| Event | Action |
|---|---|
| Every 90 days | Revoke old token, generate new one, update repository secret |
| Suspected compromise | Revoke immediately, generate new token, audit recent Actions logs |
| Team member offboarding | Revoke tokens associated with the departing member |
curl -s -H "Authorization: token <YOUR_TOKEN>" https://api.github.com/rate_limit \
-I | grep -i x-oauth-scopesThe response header X-OAuth-Scopes must include project for Projects V2 operations.
For local development where Copilot agents or scripts need the PAT, set it in your shell session (never in .env files committed to the repo):
export GITHUB_PAT="ghp_..."Add to your local .gitignore any files that might inadvertently capture secrets:
.env.local
.secrets
*.token
Your contributions help make this project better for everyone.