Skip to content

Commit fdbec25

Browse files
authored
Merge branch 'master' into patch-2
2 parents 71499de + 8d59989 commit fdbec25

11 files changed

Lines changed: 1169 additions & 924 deletions

File tree

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
description: Review pending PRs against CONTRIBUTING.md acceptance criteria.
3+
allowed-tools: Bash(gh api:*), Bash(gh pr close:*), Bash(gh pr diff:*), Bash(gh pr edit:*), Bash(gh pr list:*)
4+
---
5+
6+
## Usage
7+
8+
```
9+
/review-pending-prs
10+
```
11+
12+
## Instructions
13+
14+
1. Fetch 10 open PRs with details: `gh pr list --repo vinta/awesome-python --limit 10 --search "-label:\"claude reviewed\"" --json number,title,author,url,body,files,mergeable,mergeStateStatus`
15+
2. Fetch all PR diffs in parallel: `gh pr diff <number> --repo vinta/awesome-python`
16+
3. Run quick rejection checks (no API calls needed):
17+
- Has merge conflicts? (from `mergeable`/`mergeStateStatus`)
18+
- Adds more than one project? (from diff)
19+
- Duplicate entry? (from diff - URL already in README)
20+
- Not a project submission? (from diff - e.g., random files, contributor list)
21+
4. For PRs passing quick checks, fetch repo stats: `gh api repos/<owner>/<repo> --jq '{stars: .stargazers_count, created: .created_at, updated: .pushed_at, language: .language, archived: .archived}'`
22+
5. Review against all criteria in [CONTRIBUTING.md](../../CONTRIBUTING.md)
23+
6. Present summary table with recommendations
24+
7. Ask user:
25+
26+
```
27+
Would you like me to:
28+
29+
1. Close the rejected PRs with comments?
30+
2. Add "claude reviewed" label to the passed PRs?
31+
3. Do all
32+
```
33+
34+
## Quick Rejection Checks
35+
36+
Check these rules first - if any fail, recommend rejection:
37+
38+
- PR has merge conflicts
39+
- Add more than one project per PR
40+
- Duplicate of existing entry
41+
- Placed under an inappropriate category
42+
- Project is archived or abandoned (no commits in 12+ months)
43+
- No documentation or unclear use case
44+
- Less than 100 GitHub stars AND not justified as a hidden gem
45+
46+
## Output Format
47+
48+
Provide a simple review:
49+
50+
1. **Rejection Check** - table with the above rules and PASS/REJECT
51+
2. **Recommendation** - PASS or REJECT
52+
53+
## Close PRs
54+
55+
If user asks to close/reject:
56+
57+
```bash
58+
gh pr close <number> --repo vinta/awesome-python --comment "<brief reason>"
59+
```
60+
61+
## Mark as Passed
62+
63+
```bash
64+
gh pr edit <number> --repo vinta/awesome-python --add-label "claude reviewed"
65+
```
66+
67+
## Extra Instructions (If Provided)
68+
69+
$ARGUMENTS

.claude/settings.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(gh api:*)",
5+
"Bash(gh pr close:*)",
6+
"Bash(gh pr comment:*)",
7+
"Bash(gh pr diff:*)",
8+
"Bash(gh pr edit:*)",
9+
"Bash(gh pr list:*)",
10+
"Bash(gh pr view:*)",
11+
"Bash(gh run list:*)",
12+
"Bash(gh run rerun:*)",
13+
"Bash(gh run view:*)",
14+
"Bash(gh search:*)"
15+
],
16+
"deny": []
17+
}
18+
}

.github/FUNDING.yml

Lines changed: 0 additions & 2 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/add-new-library-to-this-list.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/add-xxx.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
1-
## What is this Python project?
1+
## Checklist
22

3-
Describe features.
3+
- [ ] One link per Pull Request
4+
- [ ] PR title format: `Add project-name`
5+
- [ ] Entry format: `* [project-name](url) - Description ending with period.`
6+
- [ ] Description is concise (no mention of "Python")
47

5-
## What's the difference between this Python project and similar ones?
8+
## Why This Project Is Awesome
69

7-
Enumerate comparisons.
10+
Which criterion does it meet? (pick one)
811

9-
--
12+
- [ ] **Industry Standard** - The go-to tool for a specific use case
13+
- [ ] **Rising Star** - 5,000+ stars in <2 years, significant adoption
14+
- [ ] **Hidden Gem** - Exceptional quality, solves niche problems elegantly
1015

11-
Anyone who agrees with this pull request could submit an *Approve* review to it.
16+
Explain:
17+
18+
## How It Differs
19+
20+
If similar entries exist, what makes this one unique?
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Claude PR Review
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, ready_for_review, reopened, labeled]
6+
paths:
7+
- "README.md"
8+
9+
jobs:
10+
claude-pr-review:
11+
if: |
12+
github.event.label.name == 'claude review' ||
13+
github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' ||
14+
github.event.pull_request.author_association == 'FIRST_TIMER' ||
15+
github.event.pull_request.author_association == 'NONE'
16+
17+
runs-on: ubuntu-latest
18+
19+
permissions:
20+
contents: read # Cannot merge PR
21+
pull-requests: write
22+
issues: read
23+
actions: read # Required for Claude to read CI results on PRs
24+
id-token: write # Required for Claude GitHub app to function
25+
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
with:
30+
fetch-depth: 1
31+
32+
- name: Run Claude Code Review
33+
id: claude-review
34+
uses: anthropics/claude-code-action@v1
35+
with:
36+
# See https://github.com/anthropics/claude-code-action/blob/main/docs/usage.md
37+
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
38+
plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
39+
plugins: "code-review@claude-code-plugins"
40+
prompt: |
41+
Review this PR against the acceptance criteria in CONTRIBUTING.md.
42+
Check for automatic rejection reasons (abandoned, duplicates, spam).
43+
44+
IMPORTANT: Only read README.md and CONTRIBUTING.md. Do not read or access any other files.
45+
46+
/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}
47+
48+
After your review, output your final decision on the LAST line in this exact format:
49+
DECISION: REJECT or DECISION: PASS
50+
51+
- name: Close PR if rejected
52+
if: "contains(steps.claude-review.outputs.response, 'DECISION: REJECT')"
53+
env:
54+
GH_TOKEN: ${{ github.token }}
55+
run: |
56+
gh pr close ${{ github.event.pull_request.number }} \
57+
--repo ${{ github.repository }} \
58+
--comment "This PR has been automatically closed based on the review. Please address the feedback and re-open the PR."

.travis.yml

Lines changed: 0 additions & 18 deletions
This file was deleted.

CLAUDE.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# CLAUDE.md
2+
3+
## Repository Overview
4+
5+
This is the awesome-python repository - a curated list of Python frameworks, libraries, software and resources. The repository serves as a comprehensive directory about Python ecosystem.
6+
7+
## PR Review Guidelines
8+
9+
**For all PR review tasks, refer to [CONTRIBUTING.md](CONTRIBUTING.md)** which contains:
10+
11+
- Acceptance criteria (Industry Standard, Rising Star, Hidden Gem)
12+
- Quality requirements
13+
- Automatic rejection criteria
14+
- Entry format reference
15+
- PR description template
16+
17+
## Architecture & Structure
18+
19+
The repository follows a single-file architecture:
20+
21+
- **README.md**: All content in hierarchical structure (categories, subcategories, entries)
22+
- **CONTRIBUTING.md**: Submission guidelines and review criteria
23+
- **sort.py**: Script to enforce alphabetical ordering
24+
25+
Entry format: `* [project-name](url) - Concise description ending with period.`
26+
27+
## Key Considerations
28+
29+
- This is a curated list, not a code project
30+
- Quality over quantity - only "awesome" projects
31+
- Alphabetical ordering within categories is mandatory
32+
- README.md is the source of truth for all content

CONTRIBUTING.md

Lines changed: 124 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,126 @@
11
# Contributing
22

3-
Your contributions are always welcome!
4-
5-
## Guidelines
6-
7-
* Add one link per Pull Request.
8-
* Make sure the PR title is in the format of `Add project-name`.
9-
* Write down the reason why the library is awesome.
10-
* Add the link: `* [project-name](http://example.com/) - A short description ends with a period.`
11-
* Keep descriptions concise and **short**.
12-
* Add a section if needed.
13-
* Add the section description.
14-
* Add the section title to Table of Contents.
15-
* Search previous Pull Requests or Issues before making a new one, as yours may be a duplicate.
16-
* Don't mention `Python` in the description as it's implied.
17-
* Check your spelling and grammar.
18-
* Remove any trailing whitespace.
19-
20-
Just a gentle reminder: **Try not to submit your own project. Instead, wait for someone finds it useful and submits it for you.**
3+
## Quick Checklist
4+
5+
Before submitting a PR, verify:
6+
7+
- [ ] One link per Pull Request
8+
- [ ] PR title format: `Add project-name`
9+
- [ ] Entry format: `* [project-name](url) - A short description ending with a period.`
10+
- [ ] Description is concise (one sentence)
11+
- [ ] Placed in the appropriate category/subcategory
12+
- [ ] No trailing whitespace
13+
- [ ] Spelling and grammar checked
14+
15+
## Acceptance Criteria
16+
17+
Your submission must meet **ONE** of the following criteria:
18+
19+
### 1. Industry Standard
20+
21+
- The go-to tool that almost everyone uses for a specific use case
22+
- Examples: Requests, Flask, Pandas, NumPy
23+
- Limit: 1-3 tools per category
24+
25+
### 2. Rising Star
26+
27+
- Rapid growth: 5,000+ GitHub stars in less than 2 years
28+
- Significant community buzz and adoption
29+
- Solving problems in new or better ways
30+
- Examples: FastAPI, Ruff, uv
31+
32+
### 3. Hidden Gem
33+
34+
- Exceptional quality despite fewer stars (may have <500 stars)
35+
- Solves niche problems elegantly
36+
- Strong recommendation from experienced developers
37+
- Must include compelling justification in PR description
38+
39+
## Quality Requirements
40+
41+
All submissions must satisfy **ALL** of these:
42+
43+
1. **Python-first**: Primarily written in Python (>50% of codebase)
44+
2. **Active**: Commits within the last 12 months
45+
3. **Stable**: Production-ready, not alpha/beta/experimental
46+
4. **Documented**: Clear README with examples and use cases
47+
5. **Unique**: Adds distinct value, not "yet another X"
48+
49+
## Entry Format Reference
50+
51+
### Standard Entry
52+
53+
```markdown
54+
- [project-name](https://github.com/owner/repo) - Description ending with period.
55+
```
56+
57+
### Standard Library Module
58+
59+
```markdown
60+
- [module](https://docs.python.org/3/library/module.html) - (Python standard library) Description.
61+
```
62+
63+
### Fork of Another Project
64+
65+
```markdown
66+
- [new-name](https://github.com/owner/new-name) - Description ([original-name](original-url) fork).
67+
```
68+
69+
### Entry with Related Awesome List
70+
71+
```markdown
72+
- [project](https://github.com/owner/project) - Description.
73+
- [awesome-project](https://github.com/someone/awesome-project)
74+
```
75+
76+
### Subcategory Format
77+
78+
```markdown
79+
- Subcategory Name
80+
- [project](url) - Description.
81+
```
82+
83+
## Adding a New Section
84+
85+
If adding a new category:
86+
87+
1. Add section description in italics: `*Libraries for doing X.*`
88+
2. Add the section title to the Table of Contents
89+
3. Keep sections in alphabetical order
90+
91+
## PR Description Template
92+
93+
Please include the following in your PR description:
94+
95+
```
96+
## Why This Project Is Awesome
97+
98+
[Explain which criterion it meets: Industry Standard / Rising Star / Hidden Gem]
99+
100+
## How It Differs
101+
102+
[If similar entries exist, explain what makes this one unique]
103+
```
104+
105+
## Review Process
106+
107+
PRs are reviewed by automated tools and maintainers:
108+
109+
1. **Format Check**: Entry follows the correct format
110+
2. **Category Check**: Placed in the appropriate category/subcategory
111+
3. **Duplicate Check**: Not already listed or previously rejected
112+
4. **Activity Check**: Project shows recent activity
113+
5. **Quality Check**: Meets acceptance criteria
114+
115+
Search previous Pull Requests and Issues before submitting, as yours may be a duplicate.
116+
117+
## Automatic Rejection
118+
119+
PRs will be **closed** if:
120+
121+
- Add more than one project per PR
122+
- Duplicate of existing entry
123+
- Placed under an inappropriate category
124+
- Project is archived or abandoned (no commits in 12+ months)
125+
- No documentation or unclear use case
126+
- Less than 100 GitHub stars AND not justified as a hidden gem

0 commit comments

Comments
 (0)