Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Conway-Research/automaton/llms.txt
Use this file to discover all available pages before exploring further.
Welcome
Thank you for your interest in contributing to Conway Automaton! This project is building the first sovereign AI agent runtime, and we welcome contributions from developers, researchers, and AI enthusiasts.Ways to Contribute
Code Contributions
- Core runtime improvements: Enhance the agent loop, policy engine, or tool system
- New built-in tools: Add capabilities to the automaton
- Skills: Create reusable skill packages (see Conway-Research/skills)
- Bug fixes: Fix issues reported on GitHub
- Performance optimizations: Reduce credit consumption, improve inference speed
- Tests: Expand test coverage for security and functionality
Documentation
- Guides and tutorials: Help new users get started
- API reference: Document tools, types, and interfaces
- Examples: Share automaton configurations and use cases
- Fix typos and improve clarity: Even small improvements help
Community
- Answer questions: Help others in GitHub discussions or Discord
- Report bugs: File detailed issue reports
- Feature requests: Propose new capabilities with use case justification
- Share your automaton: Showcase what you’ve built
Getting Started
Development Setup
-
Fork and clone the repository:
-
Install dependencies:
-
Build the project:
-
Run tests:
-
Run the runtime:
Project Structure
Making Changes
Code Guidelines
- Use TypeScript: All code must be strongly typed
- Follow existing patterns: Match the style of surrounding code
- Add tests: New features require test coverage
- Document public APIs: Use JSDoc comments for exported functions
- Run linter: Ensure
pnpm lintpasses before committing
Git Workflow
-
Create a feature branch:
-
Make your changes:
- Write code
- Add tests
- Update documentation
-
Commit with clear messages:
Use conventional commit format:
feat:new featurefix:bug fixdocs:documentation onlytest:test additions or fixesrefactor:code restructuring without behavior changeperf:performance improvement
-
Push and open a pull request:
Go to GitHub and create a pull request from your branch.
Pull Request Guidelines
- Describe the change: Explain what you did and why
- Reference issues: Link to related issues (e.g., “Fixes #42”)
- Include tests: Show that your code works and doesn’t break existing functionality
- Keep PRs focused: One logical change per PR
- Respond to feedback: Be open to suggestions and iterate
Security Contributions
Critical: Do Not Break the Constitution
The constitution (src/replication/constitution.ts, constitution.md) is immutable by design. Pull requests that:- Weaken constitutional constraints
- Allow modification of the constitution file
- Bypass the policy engine
Security-Sensitive Changes
If your contribution touches:- Policy engine (src/agent/policy-engine.ts)
- File protection logic (src/agent/tools.ts)
- Constitution propagation (src/replication/constitution.ts)
- Wallet handling (src/identity/)
- Detailed explanation of security implications
- Test cases proving safety properties
- Review of threat model impact
Reporting Security Issues
Do not open public issues for security vulnerabilities. Email security@conway.tech with:- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
Adding New Tools
Tool Structure
All tools follow this interface:Adding a Builtin Tool
-
Define the tool in
src/agent/tools.ts: -
Add tests in
src/__tests__/tools-security.test.ts: - Document the tool (if user-facing) in the API reference.
Risk Level Guidelines
- safe: Read-only, no side effects
- caution: Side effects, but generally safe
- dangerous: Can harm the automaton or violate policies
- forbidden: Never allowed under any circumstances
Creating Skills
Skills are reusable packages that extend automaton capabilities. See the Conway-Research/skills repository for:- Skill format specification
- Example skills
- Submission guidelines
Documentation Contributions
Editing Documentation
Documentation lives in thedocs/ directory (separate from this source repo).
-
Clone the docs repository:
-
Install Mintlify CLI:
-
Make changes to
.mdxfiles -
Preview locally:
- Submit a pull request
Writing Style
- Use active voice: “Run the command” not “The command should be run”
- Address the reader directly: Use “you” instead of “the user”
- Keep sentences concise: One idea per sentence
- Lead with the goal: Start instructions with what the user wants to accomplish
- Use consistent terminology: Don’t alternate between synonyms
- Include examples: Show, don’t just tell
Adding New Pages
- Create the
.mdxfile in the appropriate directory - Add YAML frontmatter:
- Update
docs.jsonto include the page in navigation
Community Guidelines
Code of Conduct
- Be respectful: Treat all contributors with respect
- Be constructive: Focus feedback on ideas, not people
- Be collaborative: We’re building this together
- Be patient: Not everyone has the same expertise or availability
Asking for Help
- Check existing issues and discussions first
- Provide context: What are you trying to do? What have you tried?
- Share error messages and logs
- Include your environment: OS, Node version, automaton version
Proposing Features
- Check if it already exists in issues or discussions
- Explain the use case: Why is this needed?
- Describe the behavior: What should it do?
- Consider alternatives: Are there other ways to solve this?
- Assess impact: How does this affect existing automatons?
Testing
Running Tests
Writing Tests
Use Vitest:Test Coverage Expectations
- Core logic: 100% coverage
- Tools: All execution paths tested
- Policy engine: All rules and edge cases
- Security-critical code: Comprehensive test suites
Release Process
(For maintainers)- Update version in
package.json - Update CHANGELOG.md
- Create git tag:
git tag v1.2.3 - Push tag:
git push origin v1.2.3 - GitHub Actions builds and publishes npm package
- Announce release in Discord and GitHub discussions
Recognition
All contributors will be:- Listed in CONTRIBUTORS.md
- Credited in release notes
- Thanked in community announcements
- Co-authorship on research papers
- Speaking opportunities at events
- Early access to new features
Questions?
- GitHub Discussions: For general questions and feature ideas
- GitHub Issues: For bug reports and specific problems
- Discord: For real-time chat and community support
- Email: dev@conway.tech for contributor inquiries