-
Notifications
You must be signed in to change notification settings - Fork 44
Add AI adoption tracking automation documentation and example #806
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
Add comprehensive documentation for the AI adoption tracking automation that detects and labels PRs involving 40+ AI tools through rules files, commit co-authors, and PR authors. Includes the full automation manifest with patterns for detection and labeling.
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.
Orca Security Scan Summary
| Status | Check | Issues by priority | |
|---|---|---|---|
| Infrastructure as Code | View in Orca | ||
| SAST | View in Orca | ||
| Secrets | View in Orca | ||
| Vulnerabilities | View in Orca |
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.
✨ PR Review
The PR adds comprehensive AI adoption tracking automation with extensive tool detection patterns. The implementation covers 40+ AI tools with multiple detection methods, but contains some maintainability and accuracy concerns in the automation configuration.
3 issues detected:
🧹 Maintainability - Single line contains 89 boolean conditions making it unreadable and unmaintainable 🛠️
Details: The any_ai_detected configuration expression spans an extremely long single line with dozens of OR conditions, making it very difficult to read, debug, and maintain. This complex boolean logic should be broken down into smaller, more manageable chunks.
File:docs/downloads/automation-library/ai_adoption_tracking.cm (88-89)
🛠️ A suggested code correction is included in the review comments.🐞 Bug - Generic `.rules` pattern may match unintended files causing false positives 🛠️
Details: The Zed rules detection pattern
/(^|.*\/)\.rules$/is too generic and may match files that are not actually Zed configuration files, potentially causing false positive AI adoption detection for unrelated .rules files.
File:docs/downloads/automation-library/ai_adoption_tracking.cm (33-33)
🛠️ A suggested code correction is included in the review comments.🧹 Maintainability - Placeholder tool configuration may cause confusion in production use 🛠️
Details: The customtool entries appear to be placeholder examples rather than a real AI tool. Having placeholder/example tool configurations in production automation could lead to confusion or unintended behavior.
File:docs/downloads/automation-library/ai_adoption_tracking.cm (21-21)
🛠️ A suggested code correction is included in the review comments.
Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Review using Guidelines Learn how
| # General AI detection - true if ANY AI tool/method is detected | ||
| any_ai_detected: {{ has_aider_rules or has_amazonq_rules or has_augmentcode_rules or has_claude_rules or has_cursor_rules or has_customtool_rules or has_firebase_rules or has_gemini_rules or has_github_copilot_rules or has_goose_rules or has_jetbrains_junie_rules or has_kilocode_rules or has_kiro_rules or has_openai_rules or has_openhands_rules or has_warp_rules or has_windsurf_rules or has_zed_rules or has_aider_coauthor or has_aikido_coauthor or has_amazonq_coauthor or has_atlassian_coauthor or has_bito_coauthor or has_claude_coauthor or has_codeant_coauthor or has_codegen_coauthor or has_coderabbit_coauthor or has_codota_coauthor or has_cubic_coauthor or has_cursor_coauthor or has_devin_coauthor or has_ellipsis_coauthor or has_factory_coauthor or has_fine_coauthor or has_gemini_coauthor or has_github_copilot_coauthor or has_gitlab_duo_coauthor or has_gitstream_coauthor or has_google_jules_coauthor or has_graphite_coauthor or has_greptile_coauthor or has_jazzberry_coauthor or has_jetbrains_junie_coauthor or has_korbit_coauthor or has_meticulous_coauthor or has_openai_coauthor or has_opencode_coauthor or has_qodo_coauthor or has_replit_coauthor or has_rovo_coauthor or has_sourcegraph_coauthor or has_sourcery_coauthor or has_sweep_coauthor or has_tabnine_coauthor or has_tusk_coauthor or has_whatthediff_coauthor or has_windsurf_coauthor or is_claude_author or is_coderabbit_author or is_cursor_author or is_devin_author or is_fine_author or is_gemini_author or is_github_copilot_author or is_gitstream_author or is_greptile_author or is_qodo_author }} |
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.
🧹 Maintainability - Extremely Long Expression: Break the any_ai_detected expression into logical groups (rules_detected, coauthor_detected, author_detected) and combine them, or use YAML multiline syntax to improve readability.
| # General AI detection - true if ANY AI tool/method is detected | |
| any_ai_detected: {{ has_aider_rules or has_amazonq_rules or has_augmentcode_rules or has_claude_rules or has_cursor_rules or has_customtool_rules or has_firebase_rules or has_gemini_rules or has_github_copilot_rules or has_goose_rules or has_jetbrains_junie_rules or has_kilocode_rules or has_kiro_rules or has_openai_rules or has_openhands_rules or has_warp_rules or has_windsurf_rules or has_zed_rules or has_aider_coauthor or has_aikido_coauthor or has_amazonq_coauthor or has_atlassian_coauthor or has_bito_coauthor or has_claude_coauthor or has_codeant_coauthor or has_codegen_coauthor or has_coderabbit_coauthor or has_codota_coauthor or has_cubic_coauthor or has_cursor_coauthor or has_devin_coauthor or has_ellipsis_coauthor or has_factory_coauthor or has_fine_coauthor or has_gemini_coauthor or has_github_copilot_coauthor or has_gitlab_duo_coauthor or has_gitstream_coauthor or has_google_jules_coauthor or has_graphite_coauthor or has_greptile_coauthor or has_jazzberry_coauthor or has_jetbrains_junie_coauthor or has_korbit_coauthor or has_meticulous_coauthor or has_openai_coauthor or has_opencode_coauthor or has_qodo_coauthor or has_replit_coauthor or has_rovo_coauthor or has_sourcegraph_coauthor or has_sourcery_coauthor or has_sweep_coauthor or has_tabnine_coauthor or has_tusk_coauthor or has_whatthediff_coauthor or has_windsurf_coauthor or is_claude_author or is_coderabbit_author or is_cursor_author or is_devin_author or is_fine_author or is_gemini_author or is_github_copilot_author or is_gitstream_author or is_greptile_author or is_qodo_author }} | |
| # Group AI detections for better readability | |
| rules_detected: {{ | |
| has_aider_rules or has_amazonq_rules or has_augmentcode_rules or | |
| has_claude_rules or has_cursor_rules or has_customtool_rules or | |
| has_firebase_rules or has_gemini_rules or has_github_copilot_rules or | |
| has_goose_rules or has_jetbrains_junie_rules or has_kilocode_rules or | |
| has_kiro_rules or has_openai_rules or has_openhands_rules or | |
| has_warp_rules or has_windsurf_rules or has_zed_rules | |
| }} | |
| coauthor_detected: {{ | |
| has_aider_coauthor or has_aikido_coauthor or has_amazonq_coauthor or | |
| has_atlassian_coauthor or has_bito_coauthor or has_claude_coauthor or | |
| has_codeant_coauthor or has_codegen_coauthor or has_coderabbit_coauthor or | |
| has_codota_coauthor or has_cubic_coauthor or has_cursor_coauthor or | |
| has_devin_coauthor or has_ellipsis_coauthor or has_factory_coauthor or | |
| has_fine_coauthor or has_gemini_coauthor or has_github_copilot_coauthor or | |
| has_gitlab_duo_coauthor or has_gitstream_coauthor or has_google_jules_coauthor or | |
| has_graphite_coauthor or has_greptile_coauthor or has_jazzberry_coauthor or | |
| has_jetbrains_junie_coauthor or has_korbit_coauthor or has_meticulous_coauthor or | |
| has_openai_coauthor or has_opencode_coauthor or has_qodo_coauthor or | |
| has_replit_coauthor or has_rovo_coauthor or has_sourcegraph_coauthor or | |
| has_sourcery_coauthor or has_sweep_coauthor or has_tabnine_coauthor or | |
| has_tusk_coauthor or has_whatthediff_coauthor or has_windsurf_coauthor | |
| }} | |
| author_detected: {{ | |
| is_claude_author or is_coderabbit_author or is_cursor_author or | |
| is_devin_author or is_fine_author or is_gemini_author or | |
| is_github_copilot_author or is_gitstream_author or is_greptile_author or | |
| is_qodo_author | |
| }} | |
| # General AI detection - true if ANY AI tool/method is detected | |
| any_ai_detected: {{ rules_detected or coauthor_detected or author_detected }} |
Is this review accurate? Use 👍 or 👎 to rate it
If you want to tell us more, use /gs feedback e.g. /gs feedback this review doesn't make sense, I disagree, and it keeps repeating over and over
| has_openhands_rules: {{ files | match(regex=r/^\.openhands\/microagents\/[^\/]+\.md$/) | some }} | ||
| has_warp_rules: {{ files | match(regex=r/(^|.*\/)WARP\.md$/) | some }} | ||
| has_windsurf_rules: {{ files | match(regex=r/(^|.*\/)\.windsurfrules$/) | some }} | ||
| has_zed_rules: {{ files | match(regex=r/(^|.*\/)\.rules$/) | some }} |
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.
🐞 Bug - Overly Broad Pattern: Make the pattern more specific to Zed, such as /.zed/rules or add additional context to ensure it only matches legitimate Zed configuration files.
| has_zed_rules: {{ files | match(regex=r/(^|.*\/)\.rules$/) | some }} | |
| has_zed_rules: {{ files | match(regex=r/\.zed\/.*\.rules$/) | some }} |
Is this review accurate? Use 👍 or 👎 to rate it
If you want to tell us more, use /gs feedback e.g. /gs feedback this review doesn't make sense, I disagree, and it keeps repeating over and over
| has_augmentcode_rules: {{ files | match(regex=r/^\.augment\/rules\/[^\/]+\.md$/) | some }} | ||
| has_claude_rules: {{ files | match(regex=r/(^|.*\/)CLAUDE\.md$/) | some }} | ||
| has_cursor_rules: {{ files | match(regex=r/(^|.*\/)\.cursorrules$|^\.cursor\/rules\/[^\/]+\.md$/) | some }} | ||
| has_customtool_rules: {{ files | match(regex=r/(^|.*\/)\.customtool$|^\.custom\/rules\/[^\/]+\.rules$/) | some }} |
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.
🧹 Maintainability - Placeholder Tool Entry: Remove the customtool entries or clearly document them as examples if they're intentionally included for demonstration purposes.
| has_customtool_rules: {{ files | match(regex=r/(^|.*\/)\.customtool$|^\.custom\/rules\/[^\/]+\.rules$/) | some }} | |
| # Removed placeholder customtool configuration - add actual AI tool detection patterns as needed |
Is this review accurate? Use 👍 or 👎 to rate it
If you want to tell us more, use /gs feedback e.g. /gs feedback this review doesn't make sense, I disagree, and it keeps repeating over and over
| is_fine_author: {{ pr.author | match(regex=r/(^fine-agent|^fine-ai)/i) }} | ||
| is_gemini_author: {{ pr.author | match(regex=r/(^gemini$|^gemini-|gemini-code-assist)/i) }} | ||
| is_github_copilot_author: {{ pr.author | match(regex=r/copilot/i) }} | ||
| is_gitstream_author: {{ pr.author | match(regex=r/gitstream/i) }} |
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 think we don't support /i in the end of regex... please check it
Add comprehensive documentation for the AI adoption tracking automation that detects and labels PRs involving 40+ AI tools through rules files, commit co-authors, and PR authors. Includes the full automation manifest with patterns for detection and labeling.
✨ PR Description
Generated by LinearB AI and added by gitStream.
AI-generated content may contain inaccuracies. Please verify before using.
💡 Tip: You can customize your AI Description using Guidelines Learn how