Contributing
How to contribute to the PromptPack specification and ecosystem.
Contributing
Thank you for your interest in contributing to PromptPack. This guide will help you get started with contributing to the specification, documentation, and surrounding ecosystem.
Ways to Contribute
Documentation
- Fix Typos: Small corrections are always welcome
- Improve Examples: Add better code examples and use cases
- Write Tutorials: Help others learn PromptPack
- Translate Content: Internationalization support
Specification
- Propose RFCs: Suggest new features or improvements
- Review RFCs: Provide feedback on proposed changes
- Update Schemas: Maintain JSON schemas and validation
- Test Examples: Ensure examples work correctly
Ecosystem
- Build Tools: Create PromptPack development tools
- Write Integrations: Connect PromptPack to other systems
- Share Examples: Real-world PromptPack implementations
- Community Support: Help others in discussions
Getting Started
1. Setup Development Environment
# Clone the repository
git clone https://github.com/altairalabs/promptpack-spec.git
cd promptpack-spec
# Install documentation dependencies
cd promptpack-docs
npm install
# Start development server
npm start
2. Understand the Structure
promptpack-spec/
├── docs/ # Specification documents
├── examples/ # Example PromptPack files
├── schemas/ # JSON schemas
├── promptpack-docs/ # Documentation website
└── tools/ # Development utilities
3. Join the Community
- GitHub Discussions: Ask questions and share ideas
- RFC Process: Participate in specification decisions
- Issue Tracker: Find bugs to fix or features to implement
Contribution Process
For Documentation Changes
- Fork Repository: Create your own copy
- Create Branch:
git checkout -b docs/improve-examples - Make Changes: Edit markdown files
- Test Locally: Run
npm startto preview - Submit PR: Create pull request with description
For Specification Changes
- Start Discussion: Open GitHub discussion about your idea
- Write RFC: Use the RFC template for formal proposals
- Gather Feedback: Iterate based on community input
- Implementation: Code the approved changes
- Update Documentation: Ensure docs reflect changes
For Code Contributions
- Check Issues: Look for
good first issuelabels - Claim Issue: Comment that you're working on it
- Follow Standards: Match existing code style
- Add Tests: Include test coverage
- Update Docs: Document new features
Code Standards
Documentation
- Markdown: Use standard markdown formatting
- Links: Prefer relative links for internal content
- Examples: Include working code examples
- Structure: Follow existing page organization
YAML Examples
# Good: Clear, complete, realistic
apiVersion: v1
kind: PromptPack
metadata:
name: customer-support
version: 1.0.0
description: Customer support automation system
spec:
prompts:
- name: greeting
template: "Hello {{customer_name}}, how can I help you?"
variables:
- name: customer_name
type: string
required: true
Code Style
- Formatting: Use Prettier for consistent formatting
- Naming: Use descriptive, kebab-case names
- Comments: Explain complex logic and decisions
- Testing: Write comprehensive test cases
Review Process
What We Look For
- Correctness: Changes are technically sound
- Clarity: Documentation is easy to understand
- Completeness: Examples work and are well-documented
- Compatibility: Changes don't break existing usage
- Tests: Appropriate test coverage included
Review Timeline
- Documentation: Usually reviewed within 3 days
- Minor Changes: Reviewed within 1 week
- Major Changes: May take 2-3 weeks for thorough review
- RFCs: Timeline varies based on complexity
Feedback Process
- Initial Review: Maintainers provide first feedback
- Iteration: Address feedback and update PR
- Approval: Get approval from required reviewers
- Merge: Changes are merged to main branch
- Release: Included in next version release
Recognition
Contributor Credits
- Documentation: Listed in contributor section
- Code: Git history and release notes
- RFCs: Author attribution on accepted proposals
- Community: Recognition in community discussions
Maintainer Path
Active contributors may be invited to become maintainers with:
- Commit Access: Direct repository access
- RFC Approval: Vote on specification changes
- Release Management: Help with version releases
- Community Leadership: Guide project direction
Resources
Documentation
- RFC Process - How to propose changes
- Governance - Project governance model
- Schema Reference - Complete field reference
Development Tools
- JSON Schema Validator
- YAML Linter
- Markdown Linter
- Prettier - Code formatting
Community
Questions?
If you need help:
- Start Small: Look for
good first issuelabels - Ask Questions: Use GitHub discussions for help
- Join Community: Connect with other contributors
- Be Patient: Good contributions take time
Thank you for helping make PromptPack better.