Skip to Content
ContributingContributing to FrootAI

Contributing to FrootAI

From the Roots to the Fruits. The open glue binding Infrastructure, Platform & Application teams with the GenAI ecosystem.

Thank you for contributing! FrootAI grows with every contribution.


Ways to Contribute

1. New Solution Play

Create a new solution play following the DevKit + TuneKit model with full .github Agentic OS:

solution-plays/XX-your-solution/ β”œβ”€β”€ .github/ # DevKit: Agentic OS (7 primitives) β”‚ β”œβ”€β”€ copilot-instructions.md # L1: Always-on solution context β”‚ β”œβ”€β”€ instructions/ β”‚ β”‚ β”œβ”€β”€ azure-coding.instructions.md # L1: Azure coding standards β”‚ β”‚ β”œβ”€β”€ <play>-patterns.instructions.md # L1: Play-specific patterns β”‚ β”‚ └── security.instructions.md # L1: Security guidelines β”‚ β”œβ”€β”€ prompts/ # L2: 4 slash commands β”‚ β”‚ β”œβ”€β”€ deploy.prompt.md β”‚ β”‚ β”œβ”€β”€ test.prompt.md β”‚ β”‚ β”œβ”€β”€ review.prompt.md β”‚ β”‚ └── evaluate.prompt.md β”‚ β”œβ”€β”€ agents/ # L2: 3 chained specialists β”‚ β”‚ β”œβ”€β”€ builder.agent.md β”‚ β”‚ β”œβ”€β”€ reviewer.agent.md β”‚ β”‚ └── tuner.agent.md β”‚ β”œβ”€β”€ skills/ # L3: Self-contained logic β”‚ β”‚ β”œβ”€β”€ deploy-azure/SKILL.md + deploy.sh β”‚ β”‚ β”œβ”€β”€ evaluate/SKILL.md β”‚ β”‚ └── tune/SKILL.md + tune-config.sh β”‚ β”œβ”€β”€ hooks/guardrails.json # L4: Lifecycle enforcement β”‚ └── workflows/ # L4: Agentic CI/CD β”‚ β”œβ”€β”€ ai-review.md β”‚ └── ai-deploy.md β”œβ”€β”€ .vscode/mcp.json + settings.json # IDE config β”œβ”€β”€ infra/main.bicep + parameters.json # DevKit: Azure infrastructure β”œβ”€β”€ config/openai.json # TuneKit: Model parameters β”œβ”€β”€ config/guardrails.json # TuneKit: Safety rules β”œβ”€β”€ config/agents.json # TuneKit: Agent behavior tuning β”œβ”€β”€ config/model-comparison.json # TuneKit: Model selection guide β”œβ”€β”€ evaluation/test-set.jsonl + eval.py # TuneKit: Quality scoring β”œβ”€β”€ agent.md # Agent personality (1500+ bytes) β”œβ”€β”€ instructions.md # System prompts β”œβ”€β”€ plugin.json # Marketplace manifest β”œβ”€β”€ CHANGELOG.md + README.md # Documentation β”œβ”€β”€ mcp/index.js + plugins/README.md # Legacy compatibility

2. Improve Existing Plays

  • Deepen agent.md content (more few-shot examples, better error handling)
  • Tune config/*.json parameters with real-world production values
  • Enhance evaluation/eval.py with additional metrics
  • Fix or improve infra/main.bicep templates with real Azure resource definitions

3. Knowledge Modules

  • Fix errors in existing modules (docs/*.md)
  • Add glossary terms to F3-AI-Glossary-AZ.md
  • Propose new modules via GitHub Issue

4. Platform Features

  • MCP server tools (npm-mcp/index.js)
  • VS Code extension features (vscode-extension/src/extension.js)
  • Website improvements (website/src/pages/*.tsx)

Quality Standards

Before submitting, verify your contribution:

  • agent.md is 1500+ bytes with: Identity, Rules, Azure Services, Architecture, Tools, Output Format, Error Handling, Few-Shot Examples
  • .github Agentic OS has all 19 files (7 primitives, 4 layers)
  • All config/*.json files include _comments explaining each parameter
  • All JSON files parse without errors (python3 -c "import json; json.load(open('file'))")
  • plugin.json is valid and has play metadata
  • README.md includes architecture diagram, DevKit section, TuneKit section
  • Uses Managed Identity (no API keys) for Azure services
  • UTF-8 encoding (no BOM) on all files

PR Process

  1. Fork the repository
  2. Create a feature branch (feat/XX-your-solution-play)
  3. Follow the file structure above β€” CI will validate all files
  4. Submit a Pull Request targeting the main branch
  5. CI validation runs automatically:
    • validate-primitives.yml β€” schema, naming, frontmatter, secrets scan
    • validate-plays.yml β€” solution play structure (23 plays)
    • auto-generate.yml β€” marketplace.json regenerated on merge
  6. Address review feedback β†’ merge

Branching Strategy

BranchPurposeWho Pushes
mainProduction β€” always stable, all CI passesMerge from PRs only
feat/*Feature branches for 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

Future consideration: As the community grows, we may adopt a staged→main model where:

  • staged is the development branch (PRs target here)
  • main is the published artifact (force-pushed from staged after CI build)
  • This ensures main always has regenerated marketplace.json, docs, and validated state
  • Currently not needed β€” direct-to-main with CI gates is sufficient for our scale

Contributing Standalone Primitives

Beyond solution plays, you can contribute individual primitives:

Agents (agents/)

node scripts/scaffold-primitive.js agent # Follow prompts β†’ creates .agent.md + fai-context.json npm run validate:primitives # Verify

Requirements: description (10+ chars), kebab-case filename, WAF alignment recommended.

Instructions (instructions/)

node scripts/scaffold-primitive.js instruction # Follow prompts β†’ creates .instructions.md with applyTo npm run validate:primitives

Requirements: description + applyTo glob pattern in frontmatter.

Skills (skills/)

node scripts/scaffold-primitive.js skill # Follow prompts β†’ creates folder/SKILL.md npm run validate:primitives

Requirements: name matches folder, description 10-1024 chars.

Hooks (hooks/)

node scripts/scaffold-primitive.js hook # Follow prompts β†’ creates folder/hooks.json + script npm run validate:primitives

Requirements: version: 1, valid events, bash script exists.


Naming Conventions

TermMeaning
DevKitBuild + Deploy ecosystem (.github Agentic OS + infra)
TuneKitAI Fine-Tuning ecosystem (config/ + evaluation/)
FROOTFoundations Β· Reasoning Β· Orchestration Β· Operations Β· Transformation
.github Agentic OS7 primitives: instructions, prompts, agents, skills, hooks, workflows, plugins

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 β€” we celebrate contributors! πŸŽ‰

Last updated on