Skip to content

Conversation

@ARYPROGRAMMER
Copy link
Contributor

Summary

Intermediate recipe that analyzes test coverage gaps and generates actionable recommendations on where to add tests for maximum impact. Identifies critical untested code paths, high-complexity functions with low coverage, and provides specific test case suggestions with examples.

Key Features:

  • 2 Extensions Used: Developer (test execution, code analysis), Memory (baseline tracking)
  • 4 Customizable Parameters: target_path, coverage_tool, min_coverage, exclude_patterns
  • Multi-Framework Support: Auto-detects Jest, Pytest, Go test, Cargo, and more
  • Smart Prioritization: Ranks testing needs by criticality, complexity, and recent changes
  • 4 Priority Levels: Critical, High, Medium, Low - based on coverage, complexity, and business impact
  • Actionable Output: Specific test case recommendations with examples and edge cases
  • Lightweight Memory: Stores only summary metrics (coverage %, date, top 3 files) for progress tracking
  • 9-Step Workflow: Memory Check → Detect Framework → Run Coverage → Analyze Gaps → Prioritize → Generate Suggestions → Create Report → Store Metrics → Present Findings
  • Markdown Report: Comprehensive test-coverage-report.md with coverage tables, gap analysis, and improvement tracking

Type of Change

  • Feature
  • Bug fix
  • Refactor / Code quality
  • Performance improvement
  • Documentation
  • Tests
  • Security fix
  • Build / Release
  • Other

Testing

Primary test command:

goose run --recipe documentation/src/pages/recipes/data/recipes/test-coverage-analyzer.yaml --params target_path=./test-coverage-sample --params coverage_tool=jest --params min_coverage=80

Additional Test command:

# Analyze specific directory with custom threshold
goose run --recipe documentation/src/pages/recipes/data/recipes/test-coverage-analyzer.yaml --params target_path=./crates/goose --params min_coverage=70 --params coverage_tool=auto

# Analyze entire project with custom exclusions
goose run --recipe documentation/src/pages/recipes/data/recipes/test-coverage-analyzer.yaml --params target_path=. --params exclude_patterns=test,spec,mock,dist,build

Screenshots

demo (2)
demo (3)
demo (1)

Manual Testing Completed:
✅ Validated YAML structure and syntax (passed)
✅ Confirmed all required fields present (version, title, description, instructions, prompt, activities)
✅ Verified 2 extensions properly configured (developer, memory)
✅ Confirmed parameter substitution in prompt works correctly
✅ Validated Jinja2 templating with min_coverage and exclude_patterns variables
✅ Verified memory extension stores only lightweight summary data (3 values: coverage %, date, critical files)
✅ Tested multi-framework detection with Jest
✅ Confirmed prioritization workflow: Critical (0% coverage on utils.js) → High (calculator.js functions)
✅ Verified markdown report generation
✅ Tested with sample project achieving 9.75% coverage and identifying gaps correctly

Related Issues

Fixes #5119

Email: [email protected]

@ARYPROGRAMMER ARYPROGRAMMER requested a review from a team as a code owner October 11, 2025 04:34
@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: 1

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

🔗 View detailed scan results in the workflow artifacts.

@ARYPROGRAMMER
Copy link
Contributor Author

can someone review this as well as my other prs. seems pretty non complicated and simple. thanks

@blackgirlbytes blackgirlbytes added hacktoberfest Issues awarding points for Hacktoberfest 2025! medium Weight label for Hacktoberfest 2025 issues labels Oct 13, 2025
Copy link
Contributor

@iandouglas iandouglas left a comment

Choose a reason for hiding this comment

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

This recipe is a neat idea, but I feel that the testing suites that devs use are already going to have full HTML-based summaries that are clickable to see areas of code coverage, etc.. While this would give a good summary, I don't feel it's a viable tool for most devs. I think it would be far fewer tokens used to summarize an existing coverage report than to go run tests AND analyze the code as well. Maybe we could change this to tell goose to run the tests with coverage, and summarize that report instead?

Also, I don't see a good use case here for the memory extension, I think that should be removed.

- Change: +/- Y%
```

8. **Store Summary Metrics in Memory**
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see a purpose to storing this in a memory, per my other PR review for daily standups, it would be better if you directed goose to read the previous summary of notes than to keep these stats in a growing list of goose memories that will clutter up other LLM interactions with unnecessary context.

@taniandjerry
Copy link
Contributor

can someone review this as well as my other prs. seems pretty non complicated and simple. thanks

Thank you for your patience in waiting for review. The team was away for the extended weekend in the states and are back reviewing today!

Wanted to let you know the team is reviewing your PRs today. However, please note my comment here that you've gone against the rules and self-assigned yourself 5 recipe submission issues at once, when the rules do state within each issue to only assign yourself one at a time, like you mentioned to another community member here.

@ARYPROGRAMMER
Copy link
Contributor Author

can someone review this as well as my other prs. seems pretty non complicated and simple. thanks

Thank you for your patience in waiting for review. The team was away for the extended weekend in the states and are back reviewing today!

Wanted to let you know the team is reviewing your PRs today. However, please note my comment here that you've gone against the rules and self-assigned yourself 5 recipe submission issues at once, when the rules do state within each issue to only assign yourself one at a time, like you mentioned to another community member here.

that is one of my concerns and i thought that maybe someone will either unassign me or keep some of my prs at draft. I am willing to close any of my prs as requested by the team. @taniandjerry

let me know further

Signed-off-by: Arya Pratap Singh <[email protected]>
@ARYPROGRAMMER
Copy link
Contributor Author

This recipe is a neat idea, but I feel that the testing suites that devs use are already going to have full HTML-based summaries that are clickable to see areas of code coverage, etc.. While this would give a good summary, I don't feel it's a viable tool for most devs. I think it would be far fewer tokens used to summarize an existing coverage report than to go run tests AND analyze the code as well. Maybe we could change this to tell goose to run the tests with coverage, and summarize that report instead?

Also, I don't see a good use case here for the memory extension, I think that should be removed.

Thanks for the feedback, @iandouglas, I've completely refactored the recipe to address your concerns:

Changes made:

  • Refocused on report summarization - Runs tests with coverage and summarizes the HTML/JSON reports rather than manually analyzing code
  • Removed manual complexity analysis - All analysis comes from the coverage report data
  • Minimal memory usage - Memory now stores ONLY the overall coverage percentage (< 50 characters total: "Project coverage: 82%")
  • Points users to HTML reports - Acknowledges test frameworks generate comprehensive HTML coverage reports for detailed line-by-line views

The memory extension now serves a single, lightweight purpose: track simple improvement ("Coverage improved from 75% to 82%") without polluting context with detailed data. I think now this gives more reason for the devs to use it

Is this approach acceptable?

@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: 1

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

🔗 View detailed scan results in the workflow artifacts.

@taniandjerry taniandjerry removed the medium Weight label for Hacktoberfest 2025 issues label Oct 14, 2025
@taniandjerry
Copy link
Contributor

Closing some recipe submissions from @ARYPROGRAMMER and accepting their best recipes in single PR here #5125 ! Thank you so much for your contributions.

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!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🍳 Intermediate Recipe Submission #5

4 participants