Contributing
How to contribute to the PromptPack specification and ecosystem.
Welcome Contributors! 🎉
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?
Don't hesitate to ask! We're here to 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! 🚀