From 9b0833ee281488bf830175493ea3de3e35bc86c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Tue, 27 Oct 2026 15:51:11 -0300 Subject: [PATCH] update coderabbit --- .coderabbit.yml | 68 ++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/.coderabbit.yml b/.coderabbit.yml index cbd2481..6a4abe1 100644 --- a/.coderabbit.yml +++ b/.coderabbit.yml @@ -5,42 +5,52 @@ reviews: path_instructions: - path: "README.md" instructions: | - When reviewing changes to README.md, perform the following checks: + When reviewing changes to README.md, only evaluate list entries/links that are newly added by this pull request (new lines in the diff). Do not re-validate or flag pre-existing entries that the PR did not touch, even if they would fail one of the checks below. - ## 1. Link Validation - For every link in the markdown file (both new and existing), verify they are accessible: - - Only allow http and https URLs; flag any other protocol (ftp, file, mailto, javascript, etc.) - - Resolve the hostname and reject private, loopback, link-local, and other internal addresses (e.g., 127.0.0.1, 10.x.x.x, 192.168.x.x, 169.254.x.x, ::1) - - Follow HTTP redirects and revalidate each redirect target against the same rules - - Perform requests without credentials (no cookies, tokens, or auth headers) - - A link is valid if the final response returns 200 - - Flag broken links: 404, timeout, DNS failure, or any non-200 final status - - Report dead links as issues that need fixing + ## 1. Scope - New Links Only + - Identify only the list entries added by this PR (new `- ` / `* ` lines introducing a link). + - Entries that already existed before the PR, and were not modified, must be ignored even if they are out of order, missing an emoji, or otherwise non-compliant. + - If an existing entry was only repositioned (e.g. as a side effect of inserting a new entry) without any content change, do not flag it, but still use it as context to confirm the resulting order is correct. ## 2. Alphabetical Ordering - Each section/subsection must have its entries in alphabetical order: - - Entries within `#### Assets/Placeholders`, `#### Spritesheet Tools`, etc. should be sorted A-Z by name - - The sort key is the link text (the part inside `[]`) - - Flag entries that are out of alphabetical order + - Each section/subsection (e.g. `#### Assets/Placeholders`, `#### Spritesheet Tools`, `### Books`, etc.) must have its entries sorted A-Z by link text (the text inside `[]`). + - For every newly added entry, verify it was inserted in the correct alphabetical position relative to the other entries (new and pre-existing) already in that section. + - Flag a new entry if it is not in the correct alphabetical position. ## 3. License Emoji Validation - Each list entry must start with one of these valid emojis: - - `:free:` - Free - - `:tada:` - Open Source - - `:moneybag:` - Paid - - `:money_with_wings:` - Partially Free + - Every newly added entry must start with one of these emojis: + - `:free:` - Free + - `:tada:` - Open Source + - `:moneybag:` - Paid + - `:money_with_wings:` - Partially Free + - Exception: new entries added under `### Blogs and Portals`, `### Videos/Podcasts`, `### Game Jams`, and `### Communities` are NOT required to have one of these emojis. + - For all other sections, flag any new entry that: + - Is missing an emoji entirely + - Uses an invalid/different emoji (not one of the four above) + - Uses an inconsistent emoji format (e.g. `🆓` instead of `:free:`) - Flag any entries that: - - Use an invalid emoji (not one of the four above) - - Are missing an emoji entirely - - Use inconsistent emoji format (e.g., `🆓` instead of `:free:`) + ## 4. Link Validation + - Every newly added link must be a valid, well-formed URL using the `https://` scheme only. Flag `http://` links and any other protocol (ftp, file, mailto, javascript, etc.). + - Flag malformed or unreachable (broken/dead) URLs. + - If a newly added link points to a GitHub repository (e.g. `https://github.com//`), look up the repository and flag it if it has fewer than 100 stars. + + ## 5. Game Development Relevance + - Every newly added link must be explicitly about game development (e.g. engines, game-specific tools, game art/audio assets, game tutorials/books, game-dev communities, etc). + - Flag new links to general-purpose tools or resources that are not specifically focused on game development, even if they could incidentally be used while making a game. + + ## 6. Reporting Failures + - If any check above fails for a newly added link, comment directly on that line, tag the PR author, and clearly explain which check(s) failed and what needs to be fixed. + - When any new link fails a check, request changes on the review instead of approving. pre_merge_checks: custom_checks: - - name: "README Validation" + - name: "README New Links Validation" mode: "error" instructions: | - If README.md is changed in this PR, validate the following: - 1. Link Validation: Only allow http/https URLs. Resolve hostnames and reject private, loopback, link-local, and internal addresses (127.0.0.1, 10.x.x.x, 192.168.x.x, 169.254.x.x, ::1). Follow redirects and revalidate each target. Perform requests without credentials. All links must return HTTP 200. Report any broken, invalid, or internal links. - 2. Alphabetical Ordering: Each subsection (e.g., Assets/Placeholders, Spritesheet Tools, Animation) must have entries sorted alphabetically by link text (the text inside []). - 3. License Emoji: Each list entry must start with exactly one of: :free:, :tada:, :moneybag:, :money_with_wings:. No other emojis or missing emojis are allowed. - Pass only if all three conditions are met. Fail if any condition is violated. + If README.md is changed in this PR, validate ONLY the links/entries newly added by this PR. Ignore pre-existing entries that were not changed by the PR, even if they would otherwise fail a check. + + 1. Alphabetical Ordering: Each newly added entry must be inserted in the correct alphabetical position (sorted A-Z by the link text inside `[]`) within its section/subsection. + 2. License Emoji: Each newly added entry must start with exactly one of: :free:, :tada:, :moneybag:, :money_with_wings:. No other emojis or missing emojis are allowed. Exception: entries added under "Blogs and Portals", "Videos/Podcasts", "Game Jams", and "Communities" are exempt from this requirement. + 3. Link Validity: Each newly added link must be a valid, well-formed, reachable URL using https:// only (reject http:// and any other scheme). If the link is a GitHub repository, it must have at least 100 stars. + 4. Game Dev Relevance: Each newly added link must be explicitly about game development. Reject general-purpose tools/sites that have no specific game-development focus. + + Pass only if all four conditions are met for every newly added link. If any condition is violated, fail the check and mention/tag the PR author in the result, explicitly asking them to fix the reported issue(s) before the PR can be merged.