Skip to content

Commit 244ba8b

Browse files
jeremyederclaude
andauthored
chore: Consolidate GitHub analysis scripts and update gitignore (#140)
* chore: merge GitHub analysis scripts and update gitignore Consolidated analyze_github_org.py and analyze_github_org_rest.py into a single script with automatic fallback from GraphQL to REST API. Added supporting utility scripts for filtering and querying cached data. Updated .gitignore to exclude generated cache files and temporary repo lists. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: add CodeRabbit configuration for high signal-to-noise reviews Configure CodeRabbit with aggressive noise reduction: - Disable checks already handled locally (black, ruff, isort) - Set confidence threshold to 0.75 (only comment when certain) - Focus on security, bugs, breaking changes, performance - Ignore style preferences and trivial suggestions - Path-specific instructions for different code areas - Teach CodeRabbit about AgentReady patterns and conventions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 954099e commit 244ba8b

File tree

5 files changed

+1131
-0
lines changed

5 files changed

+1131
-0
lines changed

.coderabbit.yaml

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
# CodeRabbit Configuration for AgentReady
2+
# Goal: Extremely high signal-to-noise ratio for AI code reviews
3+
# Last Updated: 2025-11-25
4+
5+
# Language and tone settings
6+
language: en-US
7+
early_access: false
8+
enable_free_tier: true
9+
10+
# Review behavior - optimized for signal
11+
reviews:
12+
# Use "chill" profile to reduce noise
13+
profile: "chill"
14+
15+
# Request changes only for critical issues
16+
request_changes_workflow: true
17+
18+
# High-level overview without verbose walkthrough
19+
high_level_summary: true
20+
high_level_summary_placeholder: "<!-- CODERABBIT SUMMARY -->"
21+
22+
# Disable poem (pure noise)
23+
poem: false
24+
25+
# Collapse walkthrough to reduce visual clutter
26+
collapse_walkthrough: true
27+
28+
# Review status at top of PR for quick scanning
29+
review_status: true
30+
31+
# Auto-review configuration
32+
auto_review:
33+
enabled: true
34+
drafts: false # Don't waste cycles on WIP
35+
base_branches:
36+
- main
37+
38+
# Tools configuration - only high-signal checks
39+
tools:
40+
# Linting tools (we already run these locally, skip duplicates)
41+
ruff:
42+
enabled: false # We run ruff locally before push
43+
black:
44+
enabled: false # We run black locally before push
45+
isort:
46+
enabled: false # We run isort locally before push
47+
48+
# GitHub Actions analysis (useful for CI/CD changes)
49+
actionlint:
50+
enabled: true
51+
52+
# Shellcheck for bash scripts
53+
shellcheck:
54+
enabled: true
55+
56+
# Markdownlint (we run locally but good backup)
57+
markdownlint:
58+
enabled: true
59+
60+
# Gitleaks for secret detection (high signal)
61+
gitleaks:
62+
enabled: true
63+
64+
# Biome (JavaScript/TypeScript - not applicable but harmless)
65+
biome:
66+
enabled: false
67+
68+
# Hadolint for Dockerfiles (future use)
69+
hadolint:
70+
enabled: true
71+
72+
# What to focus on (HIGH SIGNAL ONLY)
73+
focus:
74+
- security_vulnerabilities # Critical: SQL injection, XSS, etc.
75+
- bug_risks # High: Logic errors, race conditions
76+
- error_handling # High: Uncaught exceptions, poor error messages
77+
- breaking_changes # High: API compatibility
78+
- performance_issues # Medium: Only significant issues (O(n²) → O(n))
79+
- test_coverage_gaps # Medium: Missing critical test cases
80+
- documentation_gaps # Low: Only for public APIs and complex logic
81+
82+
# What to ignore (NOISE REDUCTION)
83+
ignore:
84+
- style_preferences # Handled by black/isort/ruff locally
85+
- naming_conventions # Handled by ruff locally
86+
- line_length # We explicitly don't enforce this
87+
- minor_refactoring_suggestions # Only suggest if major impact
88+
- subjective_improvements # "This could be cleaner" noise
89+
- trivial_optimizations # Micro-optimizations with no real impact
90+
91+
# Severity thresholds - only comment on important issues
92+
severity_threshold: "medium" # Skip "low" severity comments
93+
94+
# Path-based rules
95+
path_instructions:
96+
# Core library code - highest scrutiny
97+
- path: "src/agentready/assessors/**"
98+
instructions: |
99+
- Verify BaseAssessor pattern compliance
100+
- Check for proper error handling (return skipped/error, don't crash)
101+
- Ensure proportional scoring using calculate_proportional_score()
102+
- Validate attribute_id matches research report
103+
- Check for graceful degradation when tools missing
104+
105+
- path: "src/agentready/models/**"
106+
instructions: |
107+
- Check for breaking changes to data models
108+
- Verify backwards compatibility
109+
- Ensure schema version bumps when needed
110+
111+
- path: "src/agentready/services/**"
112+
instructions: |
113+
- Check for proper error handling
114+
- Verify performance implications (file I/O, subprocess calls)
115+
- Look for security issues (path traversal, command injection)
116+
117+
# Tests - focus on coverage and correctness
118+
- path: "tests/**"
119+
instructions: |
120+
- Verify test actually tests the intended behavior
121+
- Check for missing edge cases
122+
- Flag overly brittle tests (mocking too much)
123+
- Skip style comments entirely
124+
125+
# CLI - focus on UX and error messages
126+
- path: "src/agentready/cli/**"
127+
instructions: |
128+
- Check for clear error messages
129+
- Verify help text is accurate
130+
- Look for missing error handling for user input
131+
132+
# GitHub workflows - focus on security and correctness
133+
- path: ".github/workflows/**"
134+
instructions: |
135+
- Check for secret exposure risks
136+
- Verify proper permissions (least privilege)
137+
- Flag outdated action versions (security)
138+
139+
# Documentation - only flag critical issues
140+
- path: "**/*.md"
141+
instructions: |
142+
- Only comment on factual errors or broken links
143+
- Skip formatting/style suggestions
144+
- Flag outdated information (version mismatches, wrong commands)
145+
146+
# Scripts - focus on security and robustness
147+
- path: "scripts/**"
148+
instructions: |
149+
- Check for command injection vulnerabilities
150+
- Verify error handling for subprocess calls
151+
- Flag missing input validation
152+
153+
# Path filters - completely skip reviewing these
154+
path_filters:
155+
# Build artifacts and caches
156+
- "!**/*.pyc"
157+
- "!**/__pycache__/**"
158+
- "!.venv/**"
159+
- "!venv/**"
160+
- "!htmlcov/**"
161+
- "!.pytest_cache/**"
162+
- "!.ruff_cache/**"
163+
- "!*.egg-info/**"
164+
- "!build/**"
165+
- "!dist/**"
166+
167+
# Generated reports and data
168+
- "!.agentready/**"
169+
- "!.cache/**"
170+
- "!*.log"
171+
- "!*.tmp"
172+
173+
# Lock files (dependency updates are separate concern)
174+
- "!uv.lock"
175+
- "!poetry.lock"
176+
- "!package-lock.json"
177+
178+
# Example outputs (reference only, not production code)
179+
- "!examples/**/*.json"
180+
- "!examples/**/*.html"
181+
- "!examples/**/*.md"
182+
183+
# Custom instructions - AgentReady-specific context
184+
chat:
185+
auto_reply: true
186+
187+
# Knowledge base - teach CodeRabbit about AgentReady patterns
188+
knowledge_base:
189+
- |
190+
AgentReady is a tool that assesses repositories against 25 agent-ready best practices.
191+
The research report (agent-ready-codebase-attributes.md) defines these attributes.
192+
All assessors must inherit from BaseAssessor and implement attribute_id property and assess() method.
193+
194+
- |
195+
We intentionally don't enforce line length limits (E501 ignored in ruff).
196+
We use black for formatting with default settings.
197+
We prefer explicit over clever, simple over complex.
198+
199+
- |
200+
Error handling philosophy: Assessors should return Finding.create_skipped() when tools are missing,
201+
not crash. Fail gracefully and provide actionable remediation guidance.
202+
203+
- |
204+
This project follows conventional commits (feat:, fix:, chore:, docs:, test:, refactor:).
205+
All commits should be squashed before merge.
206+
All commits must be signed with git signature.
207+
208+
- |
209+
Testing philosophy: We aim for >80% coverage on new code.
210+
Tests should focus on behavior, not implementation details.
211+
Mock external dependencies, but don't over-mock internal functions.
212+
213+
- |
214+
Documentation: CLAUDE.md is the source of truth for development.
215+
README.md is user-facing. Keep them in sync.
216+
All new features must update CLAUDE.md before merging.
217+
218+
# Review thresholds - only create review comments for actionable items
219+
review:
220+
# Minimum confidence to comment (0.0 - 1.0)
221+
# Higher = fewer but more accurate comments
222+
confidence_threshold: 0.75
223+
224+
# Require at least this many similar patterns before suggesting refactoring
225+
pattern_threshold: 3
226+
227+
# Only suggest performance improvements if >10% impact
228+
performance_improvement_threshold: 0.10
229+
230+
# Tone and style - professional and concise
231+
tone_instructions: |
232+
- Be direct and concise - no fluff or pleasantries
233+
- Focus on "why" not just "what" (explain the impact)
234+
- Provide specific examples and code suggestions
235+
- Link to documentation when relevant
236+
- Don't repeat what the developer already knows
237+
- Skip comments on anything already handled by automated tools
238+
- Use "Consider" for suggestions, "This will" for bugs/issues
239+
- No emoji, no enthusiasm, just facts
240+
- If you're not 75%+ confident, don't comment

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@ coverage.xml
5252
*.log
5353
*.tmp
5454
.plans/
55+
.cache/
56+
57+
# Repository lists (generated/temporary)
58+
repos.txt
59+
*-repos.txt
60+
test-repos.txt
61+
opendatahub-repos.txt
5562

5663
# Build artifacts
5764
*.whl

0 commit comments

Comments
 (0)