Skip to content

Commit 5deead1

Browse files
docs: add CLAUDE.md, GEMINI.md, AGENTS.md, and update CONTRIBUTING.md (#36)
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
1 parent f4a9b3e commit 5deead1

5 files changed

Lines changed: 134 additions & 9 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CLAUDE.md

CLAUDE.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is an "awesome list" repository that curates and ranks open-source Python HTML generation projects. It uses the [best-of-generator](https://github.com/best-of-lists/best-of-generator) to automatically generate a ranked README from project metadata.
8+
9+
**Key insight**: This is NOT a code project. It's a metadata/content management repository where the README.md is auto-generated from `projects.yaml`.
10+
11+
## Architecture
12+
13+
```
14+
projects.yaml → Source of truth for all project metadata
15+
16+
best-of-update-action → GitHub Action that fetches metrics and generates README
17+
18+
README.md → Auto-generated ranked list (never edit directly)
19+
```
20+
21+
**Template files:**
22+
23+
- `config/header.md` - README header template (supports variables: `{project_count}`, `{stars_count}`, `{category_count}`)
24+
- `config/footer.md` - README footer template
25+
26+
## Working with This Repository
27+
28+
### Adding/Updating Projects
29+
30+
Edit `projects.yaml` only. Never modify README.md directly.
31+
32+
**Required project properties:**
33+
34+
- `name` - Unique project name
35+
- `github_id` - Format: `owner/repo` (e.g., `pelme/htpy`)
36+
37+
**Optional properties:**
38+
39+
- `category` - One of: `html-generation`, `html-form-generation`, `related-projects`, `miscellaneous`
40+
- `labels` - List of labels
41+
- `pypi_id`, `conda_id`, `npm_id`, `dockerhub_id`, `maven_id` - Package manager IDs
42+
43+
**Example entry:**
44+
45+
```yaml
46+
- name: htpy
47+
github_id: pelme/htpy
48+
category: "html-generation"
49+
```
50+
51+
### Automated Updates
52+
53+
The GitHub workflow (`update-best-of-list.yml`) runs weekly:
54+
55+
1. Creates an `update/YYYY.MM.DD` branch
56+
2. Fetches GitHub metrics and package manager data
57+
3. Regenerates README.md with updated rankings
58+
4. Creates a PR and draft release
59+
60+
Manual trigger: Run workflow from GitHub Actions with optional version input.
61+
62+
### Contribution Conventions
63+
64+
See `CONTRIBUTING.md` for full details. Key points:
65+
66+
- **One project per PR/issue**
67+
- **Branch naming**: `feat/<github_id>` for projects, `docs/<description>` for docs
68+
- **PR title**: `` Add `project:<github_id>` `` (use backtick-wrapped identifiers)
69+
- **PR title with category**: `` Add `project:<github_id>` and `category:<id>` ``
70+
- **Docs PR title**: `docs: <description>`
71+
- **PR body**: Fill in `.github/PULL_REQUEST_TEMPLATE.md` — check the change type box, add a project link with description, check both checklist items
72+
- **Commits**: Squash-merged using the PR title, so branch commit messages don't matter
73+
74+
## Files You Should Know
75+
76+
| File | Purpose |
77+
| ------------------- | -------------------------------------------- |
78+
| `projects.yaml` | All project metadata - the only file to edit |
79+
| `config/header.md` | README header template |
80+
| `config/footer.md` | README footer template |
81+
| `latest-changes.md` | Auto-generated trending projects summary |
82+
| `history/` | Historical snapshots of each update |

CONTRIBUTING.md

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<!-- markdownlint-disable MD024 -->
2+
23
# Contribution Guidelines
34

45
Thanks for your interest in contributing to our project. This page will give you a quick overview of how things are organized and, most importantly, how to get involved. Everyone is welcome to contribute, and we value everybody's contribution.
@@ -10,7 +11,8 @@ Thanks for your interest in contributing to our project. This page will give you
1011
3. [Improve metadata collection](#improve-metadata-collection)
1112
4. [Improve markdown generation](#improve-markdown-generation)
1213
5. [Create your own best-of list](#improve-markdown-generation)
13-
6. [Code of conduct](#code-of-conduct)
14+
6. [Conventions](#conventions)
15+
7. [Code of conduct](#code-of-conduct)
1416

1517
## Add a project
1618

@@ -23,14 +25,14 @@ Before opening an issue or pull request, please ensure that you adhere to the fo
2325

2426
- Please make sure that the project was not already added or suggested to this best-of list. You can ensure this by searching the projects.yaml, the Readme, and the issue list.
2527
- Add the project to the `projects.yaml` and never to the `README.md` file directly. Use the yaml format and the properties documented in the [project properties](#project-properties) section below to add a new project, for example:
26-
```yaml
27-
- name: Tensorflow
28-
github_id: tensorflow/tensorflow
29-
pypi_id: tensorflow
30-
conda_id: tensorflow
31-
labels: ["tensorflow"]
32-
category: ml-frameworks
33-
```
28+
```yaml
29+
- name: Tensorflow
30+
github_id: tensorflow/tensorflow
31+
pypi_id: tensorflow
32+
conda_id: tensorflow
33+
labels: ["tensorflow"]
34+
category: ml-frameworks
35+
```
3436
- Please create an individual issue or pull request for each project.
3537
- Please use the following title format for the issue or pull request: `Add project: project-name`.
3638
- If a project doesn't fit into any of the pre-existing categories, it should go under the `Others` category by not assigning any category. You can also suggest a new category via the add or update category template on the [issue page](https://github.com/hasansezertasan/awesome-python-html/issues/new/choose).
@@ -113,6 +115,41 @@ If you like to contribute to or share suggestions regarding the markdown generat
113115

114116
If you want to create your own best-of list, we strongly recommend to follow [this guide](https://github.com/best-of-lists/best-of/blob/main/create-best-of-list.md). With this guide, it will only take about 3 minutes to get you started. It is already set-up to automatically run the best-of generator via our Github Action and includes other useful template files.
115117

118+
## Conventions
119+
120+
### Branch naming
121+
122+
| Change type | Format | Example |
123+
| ---------------------- | -------------------------- | ------------------------ |
124+
| Add a project | `feat/<github_id>` | `feat/pelme/htpy` |
125+
| Add project + category | `feat/<github_id>` | `feat/Knio/dominate` |
126+
| Documentation | `docs/<short-description>` | `docs/add-claude-md` |
127+
| Update a project | `update/<project-name>` | `update/htpy` |
128+
129+
### PR title
130+
131+
| Change type | Format | Example |
132+
| ---------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------- |
133+
| Add a project | `` Add `project:<github_id>` `` | `` Add `project:pelme/htpy` `` |
134+
| Add project + category | `` Add `project:<github_id>` and `category:<category-id>` `` | `` Add `project:Knio/dominate` and `category:html-generation` `` |
135+
| Documentation | `docs: <description>` | `docs: add CLAUDE.md for Claude Code guidance` |
136+
| Update a project | `Update project: <name>` | `Update project: htpy` |
137+
138+
### PR body
139+
140+
Fill in the [pull request template](./.github/PULL_REQUEST_TEMPLATE.md):
141+
142+
1. **What kind of change** — Check the appropriate box(es) with `[x]`.
143+
2. **Description** — Link to the project's GitHub page with a short description, e.g.:
144+
```
145+
[A modern Python library for generating HTML in a functional way.](https://github.com/pelme/htpy)
146+
```
147+
3. **Checklist** — Check both boxes after verifying.
148+
149+
### Commit messages
150+
151+
This repository uses squash merges, so the final commit message matches the PR title. No special commit message format is needed in your branch.
152+
116153
## Code of Conduct
117154

118155
All members of the project community must abide by the [Contributor Covenant, version 2.0](./.github/CODE_OF_CONDUCT.md). Only by respecting each other we can develop a productive, collaborative community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer.

GEMINI.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CLAUDE.md

projects.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,10 @@ projects:
339339
category: "related-projects"
340340
group_id: "knio/dominate"
341341
labels:
342+
- name: "python-hiccup"
343+
github_id: "DavidVujic/python-hiccup"
344+
category: "html-generation"
345+
labels:
342346
- name: "Why Kotlin Is The Best Language (to use with htmx) - YouTube"
343347
homepage: "https://www.youtube.com/watch?v=zJNkIJCQohU"
344348
resource: True

0 commit comments

Comments
 (0)