-
Notifications
You must be signed in to change notification settings - Fork 2.3k
technical debt tracker recipe #5451
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
Conversation
Signed-off-by: Better-Boy <[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. |
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.
Pull Request Overview
This PR adds a comprehensive technical debt tracking system consisting of a main recipe and five sub-recipes. The system enables automated analysis of code repositories to identify and prioritize various forms of technical debt.
- Introduces a main
technical-debt-tracker.yamlrecipe that orchestrates five specialized analysis sub-recipes - Creates five sub-recipes for analyzing complexity, test coverage, documentation, dependencies, and code duplication
- Provides parameterized configuration with sensible defaults for complexity thresholds, test coverage requirements, and dependency age limits
Reviewed Changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| technical-debt-tracker.yaml | Main orchestrating recipe that coordinates five sub-recipes to produce a consolidated technical debt report with prioritized recommendations |
| complexity-analysis.yaml | Sub-recipe analyzing cyclomatic complexity, function length, nesting depth, and class size to identify overly complex code |
| test-coverage-analysis.yaml | Sub-recipe identifying untested code paths and suggesting missing test cases for critical functionality |
| documentation-analysis.yaml | Sub-recipe checking for missing or inadequate documentation in README, API docs, and inline comments |
| dependency-analysis.yaml | Sub-recipe auditing dependencies for outdated versions, security vulnerabilities, and maintenance issues |
| duplication-detection.yaml | Sub-recipe finding duplicated code blocks and suggesting refactoring strategies |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
documentation/src/pages/recipes/data/recipes/technical-debt-tracker.yaml
Outdated
Show resolved
Hide resolved
| path: "./sub-recipes/complexity-analysis.yaml" | ||
| values: | ||
| complexity_threshold: "{{ complexity_threshold }}" | ||
|
|
||
| - name: "test_coverage_analyzer" | ||
| path: "./sub-recipes/test-coverage-analysis.yaml" | ||
| values: | ||
| min_coverage: "{{ min_test_coverage }}" | ||
|
|
||
| - name: "documentation_analyzer" | ||
| path: "./sub-recipes/documentation-analysis.yaml" | ||
| values: | ||
| check_readme: "true" | ||
| check_api_docs: "true" | ||
|
|
||
| - name: "dependency_analyzer" | ||
| path: "./sub-recipes/dependency-analysis.yaml" | ||
| values: | ||
| max_age_days: "{{ max_dependency_age_days }}" | ||
| check_vulnerabilities: "true" | ||
|
|
||
| - name: "duplication_detector" | ||
| path: "./sub-recipes/duplication-detection.yaml" |
Copilot
AI
Oct 29, 2025
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.
The sub-recipe paths use ./sub-recipes/ but the actual directory is named subrecipes (without hyphen) as shown in the file structure. This will cause recipe lookup failures at runtime. Update all paths to use ./subrecipes/ instead.
| path: "./sub-recipes/complexity-analysis.yaml" | |
| values: | |
| complexity_threshold: "{{ complexity_threshold }}" | |
| - name: "test_coverage_analyzer" | |
| path: "./sub-recipes/test-coverage-analysis.yaml" | |
| values: | |
| min_coverage: "{{ min_test_coverage }}" | |
| - name: "documentation_analyzer" | |
| path: "./sub-recipes/documentation-analysis.yaml" | |
| values: | |
| check_readme: "true" | |
| check_api_docs: "true" | |
| - name: "dependency_analyzer" | |
| path: "./sub-recipes/dependency-analysis.yaml" | |
| values: | |
| max_age_days: "{{ max_dependency_age_days }}" | |
| check_vulnerabilities: "true" | |
| - name: "duplication_detector" | |
| path: "./sub-recipes/duplication-detection.yaml" | |
| path: "./subrecipes/complexity-analysis.yaml" | |
| values: | |
| complexity_threshold: "{{ complexity_threshold }}" | |
| - name: "test_coverage_analyzer" | |
| path: "./subrecipes/test-coverage-analysis.yaml" | |
| values: | |
| min_coverage: "{{ min_test_coverage }}" | |
| - name: "documentation_analyzer" | |
| path: "./subrecipes/documentation-analysis.yaml" | |
| values: | |
| check_readme: "true" | |
| check_api_docs: "true" | |
| - name: "dependency_analyzer" | |
| path: "./subrecipes/dependency-analysis.yaml" | |
| values: | |
| max_age_days: "{{ max_dependency_age_days }}" | |
| check_vulnerabilities: "true" | |
| - name: "duplication_detector" | |
| path: "./subrecipes/duplication-detection.yaml" |
documentation/src/pages/recipes/data/recipes/technical-debt-tracker.yaml
Outdated
Show resolved
Hide resolved
| path: "./sub-recipes/complexity-analysis.yaml" | ||
| values: | ||
| complexity_threshold: "{{ complexity_threshold }}" | ||
|
|
||
| - name: "test_coverage_analyzer" | ||
| path: "./sub-recipes/test-coverage-analysis.yaml" | ||
| values: | ||
| min_coverage: "{{ min_test_coverage }}" | ||
|
|
||
| - name: "documentation_analyzer" | ||
| path: "./sub-recipes/documentation-analysis.yaml" | ||
| values: | ||
| check_readme: "true" | ||
| check_api_docs: "true" | ||
|
|
||
| - name: "dependency_analyzer" | ||
| path: "./sub-recipes/dependency-analysis.yaml" | ||
| values: | ||
| max_age_days: "{{ max_dependency_age_days }}" | ||
| check_vulnerabilities: "true" | ||
|
|
||
| - name: "duplication_detector" | ||
| path: "./sub-recipes/duplication-detection.yaml" |
Copilot
AI
Oct 29, 2025
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.
The sub-recipe paths use ./sub-recipes/ but the actual directory is named subrecipes (without hyphen) as shown in the file structure. This will cause recipe lookup failures at runtime. Update all paths to use ./subrecipes/ instead.
| path: "./sub-recipes/complexity-analysis.yaml" | |
| values: | |
| complexity_threshold: "{{ complexity_threshold }}" | |
| - name: "test_coverage_analyzer" | |
| path: "./sub-recipes/test-coverage-analysis.yaml" | |
| values: | |
| min_coverage: "{{ min_test_coverage }}" | |
| - name: "documentation_analyzer" | |
| path: "./sub-recipes/documentation-analysis.yaml" | |
| values: | |
| check_readme: "true" | |
| check_api_docs: "true" | |
| - name: "dependency_analyzer" | |
| path: "./sub-recipes/dependency-analysis.yaml" | |
| values: | |
| max_age_days: "{{ max_dependency_age_days }}" | |
| check_vulnerabilities: "true" | |
| - name: "duplication_detector" | |
| path: "./sub-recipes/duplication-detection.yaml" | |
| path: "./subrecipes/complexity-analysis.yaml" | |
| values: | |
| complexity_threshold: "{{ complexity_threshold }}" | |
| - name: "test_coverage_analyzer" | |
| path: "./subrecipes/test-coverage-analysis.yaml" | |
| values: | |
| min_coverage: "{{ min_test_coverage }}" | |
| - name: "documentation_analyzer" | |
| path: "./subrecipes/documentation-analysis.yaml" | |
| values: | |
| check_readme: "true" | |
| check_api_docs: "true" | |
| - name: "dependency_analyzer" | |
| path: "./subrecipes/dependency-analysis.yaml" | |
| values: | |
| max_age_days: "{{ max_dependency_age_days }}" | |
| check_vulnerabilities: "true" | |
| - name: "duplication_detector" | |
| path: "./subrecipes/duplication-detection.yaml" |
| path: "./sub-recipes/complexity-analysis.yaml" | ||
| values: | ||
| complexity_threshold: "{{ complexity_threshold }}" | ||
|
|
||
| - name: "test_coverage_analyzer" | ||
| path: "./sub-recipes/test-coverage-analysis.yaml" | ||
| values: | ||
| min_coverage: "{{ min_test_coverage }}" | ||
|
|
||
| - name: "documentation_analyzer" | ||
| path: "./sub-recipes/documentation-analysis.yaml" | ||
| values: | ||
| check_readme: "true" | ||
| check_api_docs: "true" | ||
|
|
||
| - name: "dependency_analyzer" | ||
| path: "./sub-recipes/dependency-analysis.yaml" | ||
| values: | ||
| max_age_days: "{{ max_dependency_age_days }}" | ||
| check_vulnerabilities: "true" | ||
|
|
||
| - name: "duplication_detector" | ||
| path: "./sub-recipes/duplication-detection.yaml" |
Copilot
AI
Oct 29, 2025
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.
The sub-recipe paths use ./sub-recipes/ but the actual directory is named subrecipes (without hyphen) as shown in the file structure. This will cause recipe lookup failures at runtime. Update all paths to use ./subrecipes/ instead.
| path: "./sub-recipes/complexity-analysis.yaml" | |
| values: | |
| complexity_threshold: "{{ complexity_threshold }}" | |
| - name: "test_coverage_analyzer" | |
| path: "./sub-recipes/test-coverage-analysis.yaml" | |
| values: | |
| min_coverage: "{{ min_test_coverage }}" | |
| - name: "documentation_analyzer" | |
| path: "./sub-recipes/documentation-analysis.yaml" | |
| values: | |
| check_readme: "true" | |
| check_api_docs: "true" | |
| - name: "dependency_analyzer" | |
| path: "./sub-recipes/dependency-analysis.yaml" | |
| values: | |
| max_age_days: "{{ max_dependency_age_days }}" | |
| check_vulnerabilities: "true" | |
| - name: "duplication_detector" | |
| path: "./sub-recipes/duplication-detection.yaml" | |
| path: "./subrecipes/complexity-analysis.yaml" | |
| values: | |
| complexity_threshold: "{{ complexity_threshold }}" | |
| - name: "test_coverage_analyzer" | |
| path: "./subrecipes/test-coverage-analysis.yaml" | |
| values: | |
| min_coverage: "{{ min_test_coverage }}" | |
| - name: "documentation_analyzer" | |
| path: "./subrecipes/documentation-analysis.yaml" | |
| values: | |
| check_readme: "true" | |
| check_api_docs: "true" | |
| - name: "dependency_analyzer" | |
| path: "./subrecipes/dependency-analysis.yaml" | |
| values: | |
| max_age_days: "{{ max_dependency_age_days }}" | |
| check_vulnerabilities: "true" | |
| - name: "duplication_detector" | |
| path: "./subrecipes/duplication-detection.yaml" |
documentation/src/pages/recipes/data/recipes/subrecipes/complexity-analysis.yaml
Outdated
Show resolved
Hide resolved
documentation/src/pages/recipes/data/recipes/subrecipes/test-coverage-analysis.yaml
Outdated
Show resolved
Hide resolved
documentation/src/pages/recipes/data/recipes/subrecipes/documentation-analysis.yaml
Outdated
Show resolved
Hide resolved
documentation/src/pages/recipes/data/recipes/subrecipes/dependency-analysis.yaml
Outdated
Show resolved
Hide resolved
documentation/src/pages/recipes/data/recipes/subrecipes/duplication-detection.yaml
Outdated
Show resolved
Hide resolved
|
Tagging teammates to help review since it otherwise looks good! @blackgirlbytes @EbonyLouis |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
6 similar comments
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
✅ Recipe Validation Passed Your recipe(s) are valid and ready for review! 🔍 Next Steps:
Thanks for contributing to the goose Recipe Cookbook! 🎉 |
|
✅ 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. |
…acker.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
…acker.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
…xity-analysis.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
…ation-detection.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
…ency-analysis.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
…ntation-analysis.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
…overage-analysis.yaml Co-authored-by: Copilot <[email protected]> Signed-off-by: Better-Boy <[email protected]>
efc5e23 to
10d1dbf
Compare
|
✅ 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. |
taniandjerry
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.
Thank you for addressing the feedback! This looks good, thank you so much for contributing ❤️
* 'main' of github.com:block/goose: (81 commits) nextcamp - fix session resume when navigating back to chat in sidebar (#5370) feat/fix: set optional config params, and don't overwrite unset secrets (#5325) Stringly typed config (#5463) Fix: Compaction client <-> server sync (#5481) docs: recipe activity parameter substitution (#5462) only run fork on branch PRs (#5461) docs: video on goose with apify mcp (#5472) Clear windows and fix build failure (#5452) Add menu option for setting window always on top (#5429) Delete environment variable (#5479) chore: upgrade rmcp to 0.8.3 (#5458) docs: add "Building Custom Tools and Extensions for Goose" (#5469) Doc (Blog): Managing goose Configurations Across Multiple Projects (#5467) apify doc fix (#5460) Stream token usage on every agent message (#5342) rpm install in /opt/Goose to avoid conflicts with chrome-sandbox (#5421) Don't disable extensions after they fail to activate in new chat session (#5464) Add OTLP logs layer (#5386) openapi to locust load test generator recipe (#5447) technical debt tracker recipe (#5451) ... # Conflicts: # ui/desktop/src/components/ChatInput.tsx
Signed-off-by: Better-Boy <[email protected]> Co-authored-by: Copilot <[email protected]> Signed-off-by: fbalicchia <[email protected]>
Signed-off-by: Better-Boy <[email protected]> Co-authored-by: Copilot <[email protected]> Signed-off-by: Blair Allan <[email protected]>
Fixes #4709