Skip to main content

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.md content with more few-shot examples and error handling
  • Tune config/*.json parameters with real-world production values
  • Enhance evaluation pipelines with additional metrics
  • Fix or improve infra/main.bicep templates 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โ€‹

  1. Fork the repository on GitHub
  2. Clone your fork locally
git clone https://github.com/YOUR_USERNAME/frootai.git
cd frootai
npm install
  1. Create a feature branch
git checkout -b feat/XX-your-solution-play
  1. Make your changes following naming conventions and the PR checklist

  2. Validate before committing

npm run validate:primitives # Must pass with 0 errors
  1. Commit using conventional commits
git commit -m "feat: add Play XX - Your Solution Play"
  1. 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 scan
  • validate-plays.yml โ€” solution play structure validation
  • auto-generate.yml โ€” marketplace.json regenerated on merge

Branching Strategyโ€‹

BranchPurposeWho Pushes
mainProduction โ€” always stable, all CI passesMerge from PRs only
feat/*New primitives, plays, or featuresContributors
fix/*Bug fixesContributors
docs/*Documentation updatesContributors

Rules:

  • Never push directly to main โ€” always via PR
  • All PRs require validate-primitives to 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:primitives passes 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โ€‹