How to Contribute
FrootAI is open source under the MIT License and grows with every contribution. Whether you're adding a new agent, creating a solution play, or fixing a typo โ we welcome it all.
Ways to Contributeโ
1. New Solution Playโ
Create a complete, deployable AI solution with the full DevKit + TuneKit + SpecKit structure:
solution-plays/XX-your-solution/
โโโ .github/ # DevKit: Agentic OS
โ โโโ copilot-instructions.md # Always-on solution context
โ โโโ agents/ # builder, reviewer, tuner
โ โโโ instructions/ # Coding standards
โ โโโ prompts/ # Slash commands
โ โโโ skills/ # Step-by-step procedures
โ โโโ hooks/ # Security guardrails
โโโ config/ # TuneKit
โ โโโ openai.json # Model parameters
โ โโโ guardrails.json # Quality thresholds
โโโ spec/ # SpecKit
โโโ infra/ # Azure Bicep
โโโ evaluation/ # Quality pipeline
โโโ fai-manifest.json # FAI Protocol wiring
โโโ README.md # Documentation
2. Standalone Primitivesโ
Add individual agents, skills, instructions, or hooks to the shared repository:
# Scaffold a new primitive interactively
node scripts/scaffold-primitive.js agent
node scripts/scaffold-primitive.js skill
node scripts/scaffold-primitive.js instruction
node scripts/scaffold-primitive.js hook
# Validate after creation
npm run validate:primitives
3. Improve Existing Playsโ
- Deepen
agent.mdcontent with more few-shot examples and error handling - Tune
config/*.jsonparameters with real-world production values - Enhance evaluation pipelines with additional metrics
- Fix or improve
infra/main.biceptemplates with real Azure resource definitions
4. Documentation & Knowledgeโ
- Fix errors in existing knowledge modules (
docs/*.md) - Add glossary terms to
F3-AI-Glossary-AZ.md - Improve cookbook recipes in
cookbook/ - Propose new modules via GitHub Issue
5. Platform Featuresโ
- MCP server tools (
mcp-server/) - VS Code extension features (
vscode-extension/) - CLI commands
- Website improvements
PR Workflowโ
- Fork the repository on GitHub
- Clone your fork locally
git clone https://github.com/YOUR_USERNAME/frootai.git
cd frootai
npm install
- Create a feature branch
git checkout -b feat/XX-your-solution-play
-
Make your changes following naming conventions and the PR checklist
-
Validate before committing
npm run validate:primitives # Must pass with 0 errors
- Commit using conventional commits
git commit -m "feat: add Play XX - Your Solution Play"
- Push and open a Pull Request targeting
main
git push origin feat/XX-your-solution-play
info
CI validation runs automatically on every PR:
validate-primitives.ymlโ schema, naming, frontmatter, secrets scanvalidate-plays.ymlโ solution play structure validationauto-generate.ymlโ marketplace.json regenerated on merge
Branching Strategyโ
| Branch | Purpose | Who Pushes |
|---|---|---|
main | Production โ always stable, all CI passes | Merge from PRs only |
feat/* | New primitives, plays, or features | Contributors |
fix/* | Bug fixes | Contributors |
docs/* | Documentation updates | Contributors |
Rules:
- Never push directly to
mainโ always via PR - All PRs require
validate-primitivesto pass (0 errors) - Squash merge preferred for clean history
- Delete feature branches after merge
Quality Standardsโ
Before submitting, verify your contribution:
- All JSON files parse without errors
- Frontmatter has required fields per primitive type
- Uses Managed Identity (no API keys) for Azure services
- UTF-8 encoding (no BOM) on all files
-
npm run validate:primitivespasses with 0 errors - File naming follows lowercase-hyphen convention
Code of Conductโ
- Be respectful and constructive
- Focus on the infra/platform audience
- Quality over quantity โ one deeply customized play beats ten skeletons
- MIT License โ all contributions are MIT-licensed
Contribution Licenseโ
By submitting a pull request, you agree that your contribution is licensed under the MIT License and may be incorporated into FrootAI. You retain credit for your work.
Next Stepsโ
- Naming Conventions โ file naming rules for all primitives
- PR Checklist โ what CI validates on every PR
- Your First Solution Play โ build a play to contribute