Skip to content

feat(recipe): Community Recipe Contribution Mechanism #25

@tsaijamey

Description

@tsaijamey

Summary

Design and implement an "open development" mechanism that allows community developers to contribute recipes for other users.

Motivation

Similar to Claude Code's plugin ecosystem, frago can benefit from community contributions:

  • Browser automation scenarios are diverse
  • Community recipes expand frago's use cases
  • Attracts contributors and builds ecosystem

Proposed Design

Workflow

Developer ──PR──▶ frago repo (community-recipes/) ◀──pull── User
  1. Developers submit recipes via PR to community-recipes/ directory
  2. Maintainers review and merge PRs
  3. Users install recipes via frago recipe install community:<name>

Repository Structure

frago/
├── src/                          # Core code
├── community-recipes/            # Community contributions (open for PR)
│   ├── README.md
│   ├── CONTRIBUTING.md           # Contribution guidelines
│   └── recipes/
│       └── <recipe_name>/
│           ├── recipe.md
│           ├── recipe.py
│           └── examples/
└── .github/
    └── workflows/
        └── recipe-validation.yml # PR auto-validation

Source Priority

SOURCE_PRIORITY = ['User', 'Community', 'Official']
# User recipes override Community, Community overrides Official

New CLI Commands

# Install from community
frago recipe install community:<name>

# Install from git URL
frago recipe install https://github.com/user/my-recipe

# Search community recipes
frago recipe search --source community

# List installed sources
frago recipe list --source community

CI Validation

  • Auto-validate recipe.md format
  • Check script syntax
  • Verify required fields

Tasks

  • Create community-recipes/ directory structure
  • Write CONTRIBUTING.md guidelines
  • Extend RecipeRegistry to support Community source
  • Implement frago recipe install command
  • Add GitHub Actions for PR validation
  • Update documentation

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions