Skip to content

Conversation

@Shreyanshsingh23
Copy link
Contributor

🧪 A/B Test Framework Generator Recipe

Overview

This PR adds a comprehensive A/B Test Framework Generator recipe that creates complete A/B testing infrastructure for web applications. The recipe demonstrates advanced orchestration, parameter passing, conditional logic, and multi-extension integration.

🎯 Advanced Recipe Requirements Met

  • Uses 4+ extensions: developer, memory, filesystem MCP, github MCP
  • Uses 3 sub-recipes: experiment-tracker, ab-test-statistical-analyzer, ab-test-dashboard-generator
  • Demonstrates orchestration: Multi-stage workflow with dependencies
  • Parameter passing: Values passed between main recipe and sub-recipes
  • Conditional logic: Framework-specific implementations (React/Vue/Angular/vanilla)
  • Parallel execution: Sub-recipes can run independently

🚀 Key Features

Main Recipe: ab-test-framework-generator.yaml

  • Framework Detection: Automatically detects React, Vue, Angular, or vanilla JS projects
  • Complete Infrastructure: Generates variant setup, tracking code, statistical analysis, and dashboards
  • Multi-Framework Support: Adapts implementations based on detected framework
  • Production Ready: Includes error handling, fallbacks, and comprehensive documentation

Sub-Recipes:

1. experiment-tracker.yaml

  • Generates experiment configuration files (JSON/YAML)
  • Creates user bucketing and randomization algorithms
  • Implements tracking event handlers for metrics collection
  • Sets up persistent storage for user assignments
  • Framework-specific utilities (React hooks, Vue composables, Angular services)

2. ab-test-statistical-analyzer.yaml

  • Performs chi-square tests for categorical metrics
  • Calculates t-tests for continuous metrics
  • Computes confidence intervals and statistical significance
  • Determines sample size requirements for statistical power
  • Generates automated analysis scripts

3. ab-test-dashboard-generator.yaml

  • Creates interactive HTML dashboard with responsive design
  • Real-time metrics visualization and comparison charts
  • Statistical significance indicators and confidence intervals
  • Conversion funnel analysis and user journey tracking
  • Export functionality for reports and data

📊 Recipe Parameters

Parameter Type Required Default Description
project_path string - Path to web application project
test_name string - Name of the A/B test
variants string - Comma-separated variant names
metrics string - Comma-separated metrics to track
framework string "auto" Web framework (react/vue/angular/vanilla)
sample_size string "1000" Minimum sample size per variant
confidence_level string "95" Statistical confidence level
include_dashboard string "true" Generate reporting dashboard
auto_commit string "false" Auto-commit and create PR

🔧 Extensions Used

  1. Developer (builtin) - File operations, code generation, framework detection
  2. Memory (builtin) - Storing experiment configurations and tracking patterns
  3. Filesystem (MCP) - Enhanced filesystem operations for A/B test files
  4. GitHub (MCP) - Integration for creating PRs with infrastructure changes

📁 Files Added

documentation/src/pages/recipes/data/recipes/
├── ab-test-framework-generator.yaml (main recipe - 303 lines)
└── subrecipes/
├── experiment-tracker.yaml (198 lines)
├── ab-test-statistical-analyzer.yaml (221 lines)
└── ab-test-dashboard-generator.yaml (268 lines)

🧪 Testing & Validation

  • ✅ All YAML files validated successfully with goose recipe validate
  • ✅ Recipe loads correctly and parses all parameters
  • ✅ Sub-recipe references work properly
  • ✅ Template syntax validated and fixed
  • ✅ DCO compliant with proper sign-off

💡 Usage Example

goose run --recipe ab-test-framework-generator.yaml \
  --params project_path=/path/to/project \
  --params test_name=button-color-test \
  --params variants=control,red-button,blue-button \
  --params metrics=conversion,click-rate \
  --params framework=react \
  --params include_dashboard=true

🎨 What It Generates

The recipe creates a complete A/B testing infrastructure including:

  • Experiment Configuration: JSON/YAML config files with variant definitions
  • Tracking Code: Framework-specific utilities for variant assignment and event tracking
  • Statistical Analysis: Python/R scripts for significance testing and power analysis
  • Interactive Dashboard: HTML dashboard with real-time metrics visualization
  • Documentation: Comprehensive setup guides and API documentation
  • Testing Utilities: Mock data, validation functions, and performance benchmarks

🔍 Unique Aspects

This recipe is unique because it:

  • Orchestrates multiple specialized sub-recipes for different aspects of A/B testing
  • Adapts to different web frameworks with conditional logic
  • Provides end-to-end infrastructure from setup to analysis to reporting
  • Includes statistical rigor with proper significance testing
  • Generates production-ready code with error handling and documentation

📧 Contact Information

Email: [email protected]


Resolves #4991

Signed-off-by: Shreyansh Singh Gautam [email protected]

🎨 What It Generates
The recipe creates a complete A/B testing infrastructure including:
Experiment Configuration: JSON/YAML config files with variant definitions
Tracking Code: Framework-specific utilities for variant assignment and event tracking
Statistical Analysis: Python/R scripts for significance testing and power analysis
Interactive Dashboard: HTML dashboard with real-time metrics visualization
Documentation: Comprehensive setup guides and API documentation
Testing Utilities: Mock data, validation functions, and performance benchmarks
🔍 Unique Aspects
This recipe is unique because it:
Orchestrates multiple specialized sub-recipes for different aspects of A/B testing
Adapts to different web frameworks with conditional logic
Provides end-to-end infrastructure from setup to analysis to reporting
Includes statistical rigor with proper significance testing
Generates production-ready code with error handling and documentation
📧 Contact Information
Email: [email protected]
Github: Shreyanshsingh23
Resolves #4991
Signed-off-by: Shreyansh Singh Gautam [email protected]

- Add main recipe ab-test-framework-generator.yaml with 4 extensions and 3 sub-recipes
- Add experiment-tracker.yaml sub-recipe for variant setup and tracking
- Add ab-test-statistical-analyzer.yaml sub-recipe for statistical analysis
- Add ab-test-dashboard-generator.yaml sub-recipe for interactive dashboard
- Demonstrates orchestration, parameter passing, and conditional logic
- Uses developer, memory, filesystem MCP, and github MCP extensions
- Supports React, Vue, Angular, and vanilla JS frameworks
- Includes comprehensive A/B testing infrastructure generation

Resolves block#4991

Signed-off-by: Shreyansh Singh Gautam <[email protected]>
@Shreyanshsingh23 Shreyanshsingh23 requested a review from a team as a code owner October 25, 2025 22:06
@github-actions
Copy link
Contributor

Recipe Validation Passed

Your recipe(s) are valid and ready for review!

🔍 Next Steps:

  1. Our team will review your recipe
  2. If approved, we'll run a security scan
  3. Once merged, you'll receive $10 in OpenRouter credits (if email provided)

Thanks for contributing to the goose Recipe Cookbook! 🎉

@github-actions
Copy link
Contributor

🔍 Recipe Security Scan Results

Status: BLOCKED - One or more recipes have MEDIUM risk or higher

⚠️ Merge Protection: This PR cannot be merged until security concerns are addressed.
Repository maintainers can override this decision if needed.

📊 Scan Summary:

  • Total recipes scanned: 4
  • Blocked recipes: 2

📋 Individual Recipe Results:
❌ Recipe 1: BLOCKED (HIGH risk)
✅ Recipe 2: APPROVED (LOW risk)
✅ Recipe 3: APPROVED (LOW risk)
✅ Recipe 4: APPROVED (LOW risk)

🔗 View detailed scan results in the workflow artifacts.

- Remove filesystem and github MCP extensions (HIGH risk)
- Remove auto_commit parameter and workflow
- Keep core A/B test generation functionality intact
- Still uses 2 builtin extensions (developer, memory)
- Still uses 3 sub-recipes with orchestration
- Still meets advanced recipe requirements
- Add note about manual file operations

Resolves security scan HIGH risk flags

Signed-off-by: Shreyansh Singh Gautam <[email protected]>
@github-actions
Copy link
Contributor

Recipe Validation Passed

Your recipe(s) are valid and ready for review!

🔍 Next Steps:

  1. Our team will review your recipe
  2. If approved, we'll run a security scan
  3. Once merged, you'll receive $10 in OpenRouter credits (if email provided)

Thanks for contributing to the goose Recipe Cookbook! 🎉

@github-actions
Copy link
Contributor

🔍 Recipe Security Scan Results

Status: APPROVED - All recipes passed security scan

📊 Scan Summary:

  • Total recipes scanned: 4

📋 Individual Recipe Results:
✅ Recipe 1: APPROVED (LOW risk)
✅ Recipe 2: APPROVED (LOW risk)
✅ Recipe 3: APPROVED (LOW risk)
✅ Recipe 4: APPROVED (LOW risk)

🔗 View detailed scan results in the workflow artifacts.

Copy link
Contributor

@blackgirlbytes blackgirlbytes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cool one!

@blackgirlbytes blackgirlbytes added hacktoberfest Issues awarding points for Hacktoberfest 2025! hacktoberfest-accepted medium Weight label for Hacktoberfest 2025 issues labels Oct 26, 2025
@blackgirlbytes blackgirlbytes merged commit 491eabf into block:main Oct 26, 2025
17 checks passed
@github-actions
Copy link
Contributor

✅ $10 OpenRouter API key sent to [email protected]. Thanks for your contribution to the goose cookbook!

michaelneale added a commit that referenced this pull request Oct 26, 2025
* main:
  fixing typo in blog metadata (#5382)
  feat: add new blog entry on adopting Goose in the enterprise (#5381)
  Blog/acp intro oct 2024 (#5379)
  feat: add A/B test framework generator recipe (#5378)
  Doc: (blog) - Deep Dive into goose's Extension System and Model Context Protocol (MCP) (#5291)
  Some system prompt tidying (#5313)
  Fix scheduler jobs dates formatting (#5368)
  Use Instructions as Prompt in Scheduler (#5359)
  feat(snowflake): add support for newer Claude 4.5 and 4 models (#5350)
  Add bottom menu extension selection (#5352)
  (re)Standardize Session Name Attribute (#5279)
  chore: improve timeout for entering password when running goose ui from source (#5349)
michaelneale added a commit that referenced this pull request Oct 26, 2025
* main:
  fixing typo in blog metadata (#5382)
  feat: add new blog entry on adopting Goose in the enterprise (#5381)
  Blog/acp intro oct 2024 (#5379)
  feat: add A/B test framework generator recipe (#5378)
  Doc: (blog) - Deep Dive into goose's Extension System and Model Context Protocol (MCP) (#5291)
  Some system prompt tidying (#5313)
  Fix scheduler jobs dates formatting (#5368)
  Use Instructions as Prompt in Scheduler (#5359)
  feat(snowflake): add support for newer Claude 4.5 and 4 models (#5350)
  Add bottom menu extension selection (#5352)
  (re)Standardize Session Name Attribute (#5279)
  chore: improve timeout for entering password when running goose ui from source (#5349)
michaelneale added a commit that referenced this pull request Oct 27, 2025
* main: (54 commits)
  fixing typo in blog metadata (#5382)
  feat: add new blog entry on adopting Goose in the enterprise (#5381)
  Blog/acp intro oct 2024 (#5379)
  feat: add A/B test framework generator recipe (#5378)
  Doc: (blog) - Deep Dive into goose's Extension System and Model Context Protocol (MCP) (#5291)
  Some system prompt tidying (#5313)
  Fix scheduler jobs dates formatting (#5368)
  Use Instructions as Prompt in Scheduler (#5359)
  feat(snowflake): add support for newer Claude 4.5 and 4 models (#5350)
  Add bottom menu extension selection (#5352)
  (re)Standardize Session Name Attribute (#5279)
  chore: improve timeout for entering password when running goose ui from source (#5349)
  Fix legacy import (#5343)
  Unify loading goose messages and usechatstream determines chat state (#5306)
  Docs: goose session export and goose session import (#5267)
  Create recipe dir on save (#5337)
  docs: Update Discord link (#5335)
  [recipe workflow]: Fix `Invalid revision range` error  (#5334)
  Add tech-article-explainer recipe (#5333)
  doc: added beta banner for old blog post (#5332)
  ...
wpfleger96 added a commit that referenced this pull request Oct 27, 2025
* main:
  Auto-compact Threshold UI improvements (#5354)
  Filter preserved user messages to be text only. (#5391)
  include sessionId in tool request (#5394)
  feat: add PR Impact Analyzer prompt (#5375)
  docs: add blog post on configuring goose for team environments (#5380)
  migrating back with new chatrecall non underscore name (#5223)
  fixing typo in blog metadata (#5382)
  feat: add new blog entry on adopting Goose in the enterprise (#5381)
  Blog/acp intro oct 2024 (#5379)
  feat: add A/B test framework generator recipe (#5378)
  Doc: (blog) - Deep Dive into goose's Extension System and Model Context Protocol (MCP) (#5291)
  Some system prompt tidying (#5313)
  Fix scheduler jobs dates formatting (#5368)
  Use Instructions as Prompt in Scheduler (#5359)
  feat(snowflake): add support for newer Claude 4.5 and 4 models (#5350)
BlairAllan pushed a commit to BlairAllan/goose that referenced this pull request Nov 29, 2025
Signed-off-by: Shreyansh Singh Gautam <[email protected]>
Signed-off-by: Blair Allan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hacktoberfest Issues awarding points for Hacktoberfest 2025! hacktoberfest-accepted medium Weight label for Hacktoberfest 2025 issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🍳 Advanced Recipe Submission #3

2 participants