Thank you for your interest in contributing to The OAK Repository! This document outlines the process for contributing to the Open Agentic Knowledge Repository.
The OAK Repository aims to build an open knowledge foundation that empowers AI to interact with the world's APIs without artificial barriers or unnecessary intermediaries. By contributing, you're helping create a comprehensive "knowledge layer" for agents - a communal repository of detailed, AI-optimized information about public APIs.
Note: We are actively developing tools to make the feedback and PR process easier for contributors. Stay tuned for updates that will streamline the contribution workflow to help you effortlessly participate in building The OAK Repository.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to community@jentic.com.
- Fork the Repository: Start by forking the repository to your own GitHub account.
- Clone the Repository: Clone your forked repository to your local machine.
- If preparing a contribution review Contribution Process.
We welcome contributions in the following areas:
- API Specifications Enhancements: Improvements to the OpenAPI specifications contained in this repository, including new specifications, better descriptions, more comprehensive error handling, improved examples, and more accurate schema definitions.
- Arazzo Workflows: New workflows or improvements to those listed in this repository, expressed as Arazzo specifications, which describe workflows composed of OpenAPI operations and other workflows.
- Documentation Improvements: Enhancements documentation, examples, and guides.
- Tooling: Tools that help with validation, generation, or management of API specifications.
- Must be valid OpenAPI 3.0 or higher
- Must include comprehensive schema definitions
- All endpoints must have accurate descriptions and example responses
- Authentication methods must be clearly documented
- Rate limits and other important API behaviors should be noted
Arazzo workflows are a core focus of The OAK Repository. They define composable operations across one or more APIs. Contributed workflows:
- Must follow the OpenAPI Initiative's Arazzo specification
- Should include clear documentation of inputs, outputs, and purpose
- Provide meaningful descriptions for each step in the workflow
- Include example values to aid agent understanding
- Document any authentication requirements clearly
- Use a consistent, logical flow with clear transition conditions
Workflows should be structured according to our standardized directory structure:
- Single API workflows: Directory named after the API they reference
- For primary APIs: just the vendor identifier (e.g.,
stripe.com) - For sub APIs: vendor~api-name (e.g.,
microsoft.com~graph)
- For primary APIs: just the vendor identifier (e.g.,
- Multi-API workflows: Directory name combines APIs in alphabetical order
- Uses
+to separate different primary APIs (e.g.,stripe.com+twilio.com) - Uses
+and~to refer to sub APIs (e.g.,stripe.com+twilio.com~messaging) - Uses
~to refer to multiple sub APIs (e.g.,twilio.com~messaging~video)
- Uses
Contribute Arazzo workflows as .arazzo.json files:
workflows.arazzo.json: The default workflow file for general operations- Purpose-specific workflow files with descriptive names:
payment-flows.arazzo.jsonauth-flows.arazzo.jsonintegration-flows.arazzo.json
We particularly value contributions of cross-API workflows that demonstrate how multiple services can be orchestrated together. For these:
- Ensure directory names follow the multi-API convention with alphabetical ordering
- Document dependencies between API calls clearly
- Explain any data transformations needed between different APIs
- Provide example values that show realistic data flows
- Consider error handling and fallback strategies between services
Effective Arazzo workflows should:
- Be modular and composable, allowing for reuse in different contexts
- Handle errors gracefully with appropriate recovery actions
- Include sufficient contextual information for AI agents to understand intent
- Use consistent parameter naming conventions across related operations
- Document any rate limiting or other API behavior considerations
- Create a Branch: Create a branch in your forked repository for your contribution.
- Make Your Changes: Implement your changes, following our style and quality guidelines.
- Test Your Changes: Ensure your contributions validate against OpenAPI standards.
- Submit a Pull Request: Open a pull request from your branch to our main repository.
- Update any relevant documentation with details of changes if appropriate.
- Include a clear description of the changes and their benefits in your PR.
- The PR will be reviewed by maintainers, who may request changes.
- Once approved, your PR will be merged by a maintainer.
- Branch Naming: Use descriptive names:
feature/description,fix/issue-description - Commit Messages: Write clear, concise commit messages describing your changes
- Documentation: Update relevant documentation when making changes
When adding new API specifications or workflows, please follow our established directory structure as documented in STRUCTURE.md. This document provides comprehensive guidance on:
- API organization by vendor and version
- Workflow file naming conventions
- Multi-API workflow organization
- Required metadata files
Please refer to this document before submitting any contributions to ensure your submissions follow our standardized structure.
Before submitting, please validate your OpenAPI specifications using standard validation tools like:
- Discussions: [Insert forum/discussion board]
- Questions: Open an issue with a "question" label for any questions
- Meetings: [Insert information about community meetings if applicable]
Contributors will be recognized in our documentation and through appropriate credit mechanisms. We believe in acknowledging all forms of contribution.
Thank you for helping build the open knowledge foundation for AI agents!
This document may be updated as the project evolves.