-
Notifications
You must be signed in to change notification settings - Fork 2.4k
feat: add advanced software project generator initializer recipe (#4767) #4949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add advanced software project generator initializer recipe (#4767) #4949
Conversation
Signed-off-by: Arya Pratap Singh <[email protected]>
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
iandouglas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, looks great! I'd love to see a setting for "include_testing" where we generate some basic unit/integration testing for the frontend and backend, and including that in the CI/CD step as well.
| {% endif %} | ||
|
|
||
| 2. Frontend Setup | ||
| {% if frontend_framework != "none" %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd move this line above "2. Frontend step", same with backend section
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
did this for both
| 2. Frontend Setup | ||
| {% if frontend_framework != "none" %} | ||
| {% if frontend_framework == "react" %} | ||
| Create React app with Vite and TypeScript in the frontend directory. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'd love to see these sections indented for each of the if/else clauses, it won't hurt the YAML layout, and would be easier to read
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tried my best to make it look good - vscode is bad
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my idea here is to indent each section further:
{% if frontend_framework != "none" %}
2. Frontend Setup
{% if frontend_framework == "react" %}
Create React app with Vite and TypeScript in the frontend directory.
...
Create example Welcome component and test.
{% elif frontend_framework == "vue" %}
Create Vue 3 app with TypeScript, Router, and Pinia.
...|
since this recipe is explicitly called "full-stack", we could probably take out the if conditions for the frontend and backend, since a full stack project would have both anyway ... whether it has a dedicated database would be a different case so that could be an 'if' condition for example. thoughts? |
oh yes i thought about that, but maybe sometimes you need a frontend only or a backend only - you might use some other custom counterpart. So its like a subset then. "it can full stack" but maybe sometimes you need a particular thing or so. Hence keeping it optional would be best. Just to make it modular. Rest of the issues I will address and fix by morning, i might need to rebase |
Signed-off-by: Arya Pratap Singh <[email protected]>
|
most likely i think i addressed everything. let me know further. thanks for timely guidance @iandouglas |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
iandouglas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
left a few more comments and thoughts for your feedback
| requirement: required | ||
| description: Name of the project to initialize (alphanumeric and dashes only) | ||
|
|
||
| - key: project_type |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need this as a parameter if we're always trying to build a full-stack project with this recipe? or should we rename the recipe to something like "software project generator" that doesn't necessarily fall into a frontend/backend/fullstack role?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
actually a good idea to rename maybe
| requirement: optional | ||
| default: "." | ||
| description: Base directory where the project should be created | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need any awareness of what kind of system we're developing on? eg, mac vs windows may have different tooling or needs (for example, Windows will handle disk paths differently, one common area I had was building paths like c:\src\react-project where the \r in the path gets interpreted as a carriage return character, breaking other workflows.
maybe this doesn't need to be a parameter, it could just be added in the instructions that say something like "detect what kind of operating system I'm on, and if you detect that I'm on Windows, be careful about disk paths where backslash path separators aren't interpreted as escape characters in strings"
| 2. Frontend Setup | ||
| {% if frontend_framework != "none" %} | ||
| {% if frontend_framework == "react" %} | ||
| Create React app with Vite and TypeScript in the frontend directory. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
my idea here is to indent each section further:
{% if frontend_framework != "none" %}
2. Frontend Setup
{% if frontend_framework == "react" %}
Create React app with Vite and TypeScript in the frontend directory.
...
Create example Welcome component and test.
{% elif frontend_framework == "vue" %}
Create Vue 3 app with TypeScript, Router, and Pinia.
...Signed-off-by: Arya Pratap Singh <[email protected]>
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
added some more things, i think this should not be extended further as it might cross the token limits now. lgtm and actually works. i personally tested on fedora so didnt have any issues |
iandouglas
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just one last change here for the operating system so people don't get stuck on something that LLMs often get tripped up on for file/disk paths
| Run initial tests to ensure everything works. | ||
| Display summary of created project structure and next steps. | ||
|
|
||
| Work through these steps systematically. Use shell commands to create files and directories. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd just add the note here for goose that adds the following:
Detect the operating system that I'm on, and use appropriate disk path separators, being careful to avoid 'escaping' of slash or backslash characters as appropriate for my operating system when interpreting or using string values for filenames.
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
|
great work on the indentation, it's MUCH easier to read through the recipe now. Just one last thing to add to the end and we can get this merged in! Thanks for your contribution!! |
Signed-off-by: Arya Pratap Singh <[email protected]>
thank you for the guidance, you are really a great maintainer. you will surely find me in some other pr at goose. thanks |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
🔍 Recipe Security Scan Results ✅ Status: APPROVED - All recipes passed security scan 📊 Scan Summary:
📋 Individual Recipe Results: 🔗 View detailed scan results in the workflow artifacts. |
|
thanks for your contribution!! we'll get this merged in as soon as the other workflows finish. |
|
i think the workflows have finished. thanks |
|
Amazing work! Thank you for the review @iandouglas, thank you for contributing @ARYPROGRAMMER ! <3 |
|
✅ $10 OpenRouter API key sent to |
…-unification * 'main' of github.com:block/goose: feat: set custom models for lead/worker (#4598) feat: add grok-code-fast-1 support for xAI provider (#4472) Persist dynamic extension config so we can resume recipe sessions w/ extensions (#4331) fix: show PowerShell PATH instructions for Windows users (#4989) feat: add Smart Task Organizer recipe for Hacktoberfest (#4936) Fix extension headers (#5000) feat: add advanced software project generator initializer recipe (#4767) (#4949)
* main: (22 commits) fix: Issue #4540: `goose configure` -> Cursor Agent succeeds (#4942) feat: Add advanced data analysis pipeline recipe (#4990) (#5005) Create / edit recipe form unification and improvements (#4693) feat: add Code Review Mentor recipe with Developer and Memory extensions (#4992) (#5014) feat: set custom models for lead/worker (#4598) feat: add grok-code-fast-1 support for xAI provider (#4472) Persist dynamic extension config so we can resume recipe sessions w/ extensions (#4331) fix: show PowerShell PATH instructions for Windows users (#4989) feat: add Smart Task Organizer recipe for Hacktoberfest (#4936) Fix extension headers (#5000) feat: add advanced software project generator initializer recipe (#4767) (#4949) Removed unused libs (#4932) Platform extensions sketch (#4868) Add reply to the routes (#4963) feat(cli): add GOOSE_DEBUG environment variable support (#4825) docs: Change community page sections (#4984) docs: remove temporary Hacktoberfest issue templates (#4982) Create multi-channel researcher prompt (#4947) docs: Add Community Content section to Community Page (#4964) Allow empty API Key when registering custom provider (#4977) ...
* main: (130 commits) Add new subcommand for opening recipes in desktop app (block#4970) Update system.md with softer subagent language (block#5023) docs: add new goose tip (block#4941) Fix nix flake double copy (block#4976) Upgrade electron for macOS Tahoe compatibility (block#5015) fix: check server is ready so that we can decode the recipe deeplink (block#5021) fix: backwards compatible parsing recipe file (block#5020) chore: Used common function to list recipes in local machine (block#4974) fix: Issue block#4540: `goose configure` -> Cursor Agent succeeds (block#4942) feat: Add advanced data analysis pipeline recipe (block#4990) (block#5005) Create / edit recipe form unification and improvements (block#4693) feat: add Code Review Mentor recipe with Developer and Memory extensions (block#4992) (block#5014) feat: set custom models for lead/worker (block#4598) feat: add grok-code-fast-1 support for xAI provider (block#4472) Persist dynamic extension config so we can resume recipe sessions w/ extensions (block#4331) fix: show PowerShell PATH instructions for Windows users (block#4989) feat: add Smart Task Organizer recipe for Hacktoberfest (block#4936) Fix extension headers (block#5000) feat: add advanced software project generator initializer recipe (block#4767) (block#4949) Removed unused libs (block#4932) ...
…ck#4767) (block#4949) Signed-off-by: Arya Pratap Singh <[email protected]> Signed-off-by: Itz-Agasta <[email protected]>
Summary
Advanced recipe for automated full-stack project initialization supporting multiple framework combinations (React/Vue/Svelte/Next.js + Node.js/Python/Go/Rust), database integrations (PostgreSQL/MongoDB/MySQL/SQLite), Docker, CI/CD, and production-ready configurations with comprehensive testing and documentation.
Key Features:
Type of Change
Testing
used command:
Manual Testing:
Related Issues
Fixes #4767
Screenshots/Demos (for UX changes)
Before: N/A - New recipe submission
After: N/A - New recipe submission
Email: [email protected]