From 46e3440a11bd134fc62ea56129ed366e80253810 Mon Sep 17 00:00:00 2001 From: jessebot Date: Mon, 13 Apr 2026 17:34:21 +0200 Subject: [PATCH] Add style guide (#179) # Major changes - adds a specific style guide to point to and iterate on - closes #139 - markdown tables will now have special tags (using badges) to be used in the evidence column, instead of the aforementioned "severities" concept" - you can read the discussion in this PR as to why we decided against a severity column. - closes #146 - markdown tables will have a "Last Untainted Version/Commit ID" column - closes #113 - markdown tables would drop the notes section (in favor of the above columns and below point) - markdown table now have "alternative" as last column instead of second. - makes official docs on how to make an alternatives section for a given category - updaetes python libraries as the first category to get an overhaul to the new style guide ## Minor Changes - fix some grammar stuff (capitalization, periods, weird wording) - move GoToSocial into the correct alphabetical order in the bottom alternatives links section Co-authored-by: @axaloteDev Co-authored-by: @tjk Co-authored-by: @PeculiarDemon Co-authored-by: @cloudymax Co-authored-by: @micdan5 Co-authored-by: @Pixelo789 Reviewed-on: https://codeberg.org/small-hack/open-slopware/pulls/179 Reviewed-by: Max Co-authored-by: jessebot Co-committed-by: jessebot --- CONTRIBUTING.md | 55 +++++++----- README.md | 117 ++++++++++++++++++++++--- STYLE.md | 77 ++++++++++++++++ badges/ai-code-reviews-purple.svg | 19 ++++ badges/ai-functionality-yellow.svg | 19 ++++ badges/ai-sponsored-blue.svg | 19 ++++ badges/permissive-ai-policy-orange.svg | 19 ++++ badges/request-for-help.svg | 19 ++++ badges/vibecoded.svg | 19 ++++ 9 files changed, 329 insertions(+), 34 deletions(-) create mode 100644 STYLE.md create mode 100644 badges/ai-code-reviews-purple.svg create mode 100644 badges/ai-functionality-yellow.svg create mode 100644 badges/ai-sponsored-blue.svg create mode 100644 badges/permissive-ai-policy-orange.svg create mode 100644 badges/request-for-help.svg create mode 100644 badges/vibecoded.svg diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2399dca..fe3c2a1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,44 +1,57 @@ -## Contributing Pull Requests +# Contributing Pull Requests -To contribute to this list, file a pull request adding it to the appropriate category, along with any known alternatives. The pull request must include links to evidence (see [Evidence section](#evidence-can-be)). Title the pull request "Add ``" or such. +To contribute to this list, file a pull request adding it to the appropriate category, along with any known alternatives. The pull request must include links to evidence (see [Criteria](#criteria)). -> [!WARNING] +Title the pull request one of the following: + +- Add `` +- Add `` as an Alternative for `` +- Add `` as an Alternative for `` +- Update `` +- Remove `` + +> [!important] > Please do your best to *research alternatives* to the slopware before submitting a PR. It's important to elevate projects that aren't drinking the slop <3 **Please make sure to only submit a PR for 1 section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs.** -### Criteria +Other tips for keeping the repo tidy and making sure we don't duplicate efforts: -The criteria for being included in this repository are any of: +- Search for the software name in the Issues *and* Pull Requests of this repo. (Great minds think alike ❤️) + - If the software is already reported in an open Issue, but not as a PR, open your PR linking to the open issue with the following description, so the related issue gets automatically closed if the PR gets merged: + ```markdown + - Closes #123 + ``` +- If the software is already reported in an open issue and as an open PR leave a comment in the PR with the new or updated evidence(s). -1. One or more core/prominent developers openly use LLMs *in any level of supportive capacity* to develop this software specifically. -2. The software itself integrates genAI features of any kind, internally or externally. -3. The software actively uses it's README or website real estate to advertise AI. +## Criteria -#### Evidence can be +The criteria for being included in this repository are any of following tags. You can click each one to jump to the definition and acceptable evidence: -- social media posts by a core/prominent developer/maintainer advertising AI/LLM usage -- commit history with exact links to the commits -- direct links to an LLM friendly `AGENTS.md` or `CLAUDE.md` (sometimes these are in place to poison LLMs though, so please check the contents first) -- links to pro-AI policy on a software's website or in their repos -- link to release advertising AI usage either to build the software or as a feature of the software -- link to a blog post advertising AI -- section of a README where AI is advertised (even if the software itself doesn't appear to be infected with slop) +- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) +- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) +- [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) +- [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) +- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) -Please do not submit GitHub screenshots of "A user you have blocked has previously contributed to this repository". Please instead link directly to the commit hash(s) where this has taken place. +Alternatives should not contain any slop as defined by our tagging system above. -Screenshots are allowed but must be a last resort for something that cannot be linked. We're prefer archive links in all other instances. +### Style guide -### Removal +When submitting new software to this list, please check out the [style guide](./STYLE.md) to ensure you are conforming to our community agreed upon standards. + +## Removal Any project here may be removed as long as the following become true, *even if prior LLM-authored code remains*: 1. The project establishes a "No genAI" policy, where the core developers commit to no longer using LLMs for developing that project in particular and no longer accepting obvious LLM-authored contributions, and state the policy prominently in their repo. 2. Any genAI functionality of the project itself is removed in its entirety. "Kill switches" are insufficient. -## Issues +When submitting a project for removal, please include a link to the evidence that they have created a "No genAI" policy. You can also submit PRs to update if a project stops using something like AI code reviews, but keeps a permissive AI policy. Updates are always welcome. -Issues are meant primarily for discussing if something should be added or questions regarding clarification. An issue that says "Add x software" will be treated as a call to community action and labeled with `ready-for-pr` provided it meets the above criteria. This is not a problem, but does not necessarily mean the core maintainers of this repo will create that PR for you, however it does mean you or someone else in the community is clear to go ahead and submit a PR for that software. This is maintained in the community's free time, so please understand that there will sometimes be a delay in when a PR is generated for you. +# Issues + +Issues are meant primarily for discussing if something should be added or questions regarding clarification. An issue that says "Add x software" will be treated as a call to community action and labeled with `ready-for-pr`, provided it meets the above criteria. This is not a problem, but does not necessarily mean the core maintainers of this repo will create that PR for you. However it does mean you or someone else in the community is clear to go ahead and submit a PR for that software. This is maintained in the community's free time, so please understand that there will sometimes be a delay when a PR is created for you. Please make sure to only submit an Issue for 1 piece of software or section at a time, otherwise it is more difficult to coordinate between multiple Issues and PRs. diff --git a/README.md b/README.md index 0c328b1..79764bf 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,12 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). * [Definitions](#definitions) + * [Vibecoded](#vibecoded) + * [AI Functionality](#ai-functionality) + * [Permissive AI Policy](#permissive-ai-policy) + * [AI Code Reviews](#ai-code-reviews) + * [AI Sponsored](#ai-sponsored) + * [Request for Help](#request-for-help) * [Sibling Repos](#sibling-repos) * [Tainted Software](#tainted-software) * [Browsers](#browsers) @@ -76,12 +82,85 @@ To Contribute, checkout our [`CONTRIBUTING.md`](./CONTRIBUTING.md). ## Definitions -| Term | Definition | -|------------|---------------------------------------------------------------------------------------------------------------------------------------| -| LLM | Large Language Model, a language model trained on vast amounts of text (often entire websites without the website owner's permission) | -| slop | Anything generated by AI, typically code, books, articles, or images. | -| sloperator | A person who uses AI prompts to generate anything, typically code or images. | -| slopshop | Company, Organization, or Group of sloperators working together to use AI to generate content. | +| Term | Definition | +|-----------|---------------------------------------------------------------------------------------------------------------------------------------| +| LLM | Large Language Model, a language model trained on vast amounts of text (often entire websites without the website owner's permission) | +| slop | Anything generated by AI, typically code, books, articles, or images. | +| slopshop | Company, Organization, or Group of sloperators working together to use AI to generate content. | + + +Below are special definitions that are used for tagging purposes. + +### Vibecoded + +![Vibecoded](./badges/vibecoded.svg) + +Asking an AI to write software for you (often without human review). Per [Wikipedia](https://en.wikipedia.org/wiki/Vibe_coding): + +> In computer programming, vibe coding is a software development practice assisted by artificial intelligence (AI) such as by chatbots (programs that simulate conversation) or AI agents such as Codex or Claude Code. The software developer describes a project or task in a prompt to a large language model (LLM), which generates source code automatically. Vibe coding may involve accepting AI-generated code without reviewing the output thoroughly, instead relying on results and follow-up prompts to guide changes. + +The term was coined by [Andrej Karpathy](https://en.wikipedia.org/wiki/Andrej_Karpathy) (co-founder of [OpenAI](https://openai.com/)) in February 2025. + +A **Vibecoder** is a person who uses AI prompts to generate anything, typically code or images. It would therefore be appropriate to call Andrej Karpathy a vibecoder. + +Evidence can be: + +- core maintainers' blog or social media post about vibecoding +- link to readme, website, or documentation stating the project is vibecoded +- link to AI policy, developer docs, or CONTRIBUTING doc that *requires* LLM usage + +### AI Functionality + +![AI Functionality](./badges/ai-functionality-yellow.svg) + +This would include the ability to enable or disable an AI feature, such as an AI assistant or AI summary feature. This would also cover the case when a project depends on an AI program or library, such as an LLM SDK. + +Evidence can be: + +- a link to the docs explaining the AI Functionality +- a blog post advertising the AI Functionality +- a link to the default branch in a repo that shows where the AI Functionality is implemented + +### Permissive AI Policy + +![Permissive AI policy](./badges/permissive-ai-policy-orange.svg) + +A policy that permits the use of AI/LLMs in any capacity. + +Evidence can be: + +- an explicit AI policy (e.g. `AI_POLICY.md`) in the repo or something in the project's contributing guidelines or in their website's documentation. +- an LLM friendly `AGENTS.md`, `CLAUDE.md`, or other such LLM instruction files or folders. + +### AI Code Reviews + +![AI Code Reviews](./badges/ai-code-reviews-purple.svg) + +An AI agent/bot is used to review pull requests, which makes slop acceptance more probable and maintainability more difficult, especially when human reviews are scarce. + +Evidence can be: + +- a link to an AI code review requested by a maintainer. +- an AI code review CI workflow. +- a PR where an AI code review seems to be automatically created by some sort of third party app + +### AI Sponsored + +![AI sponsored](./badges/ai-sponsored-blue.svg) + +The project is sponsored directly by an AI company. + +Evidence can be: + +- Blog post disclosing AI funding +- link to website that lists AI companies in sponsors list +- README that says "Sponsored by " + +### Request for Help + +![Request for Help](./badges/request-for-help.svg) + +This means someone is asking for help with research. They would like it if you found the last known good version of a project or suggestions on alternatives for people to use. You can submit a pull request to add this info. # Sibling Repos @@ -93,6 +172,9 @@ This is a section for repos that are similar to this one either because they are # Tainted Software +> [!Warning] +> We've recently added a "Last Untainted Version or Commit ID" section to our below tables. This is meant for tech savvy individuals to be able to fork the project and continue maintaining it without the use of AI. Choosing to install an older version of software could expose you to to security risks over time. Only do this if you are able to accept such risks. + ## Browsers ### Desktop Browsers @@ -302,11 +384,11 @@ This is a section for repos that are similar to this one either because they are Note that Python is itself tainted; see [the Programming Languages section](#programming-languages). -| Name | Alternative(s) | Evidence | Notes | -|---|---|---|---| -| [Chardet](https://github.com/chardet/chardet) | An older version | [Core developer used Claude to launder LGPL-licensed code to Expat/MIT license](https://github.com/chardet/chardet/issues/327) | | -| [Requests](https://github.com/psf/requests) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | Contains [commits from Claude](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a) | | -| [Textual](https://github.com/Textualize/textual) | [v7.5.0](https://github.com/Textualize/textual/releases/tag/v7.5.0) is the last version before AI is allowed, [pytermgui](https://github.com/bczsalba/pytermgui) | [AI policy explicitly accepts AI generated code](https://github.com/Textualize/textual/blob/main/AI_POLICY.md) | | +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [Chardet](https://github.com/chardet/chardet) | [`6.0.0.post1`](https://github.com/chardet/chardet/releases/tag/6.0.0.post1) | [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) ([1](https://github.com/chardet/chardet/issues/327), [2](https://github.com/chardet/chardet/commit/5038f52057e0cc84f622fb2a0546393c43a84a15)) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | +| [Requests](https://github.com/psf/requests) | [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/psf/requests/commit/b2a1d33f571518ca9a6148e7da787cc5827f897a)) | [`urllib.request` in Python Standard Library](https://docs.python.org/3/library/urllib.request.html) | +| [Textual](https://github.com/Textualize/textual) | [`v7.5.0`](https://github.com/Textualize/textual/releases/tag/v7.5.0) | [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) ([1](https://github.com/batrachianai/toad/commits?author=willmcgugan))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) ([1](https://github.com/Textualize/textual/blob/main/AI_POLICY.md)) | [pytermgui](https://github.com/bczsalba/pytermgui) | ### Rust @@ -642,7 +724,8 @@ The down-stream effects for consumers is that near all electronic devices which This repository is licensed under the Creative Commons Attribution Share Alike 4.0 International license. Please see [LICENSE.txt](LICENSE.txt) for more information. - + + [Alacritty]: https://alacritty.org/ [Alacritty fork with sixel]: https://github.com/ayosec/alacritty [`console`]: https://github.com/console-rs/console @@ -657,6 +740,7 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [foot]: https://codeberg.org/dnkl/foot [Garage]: https://garagehq.deuxfleurs.fr/ [GNOME Terminal]: https://gitlab.gnome.org/GNOME/gnome-terminal +[GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial [`iocraft`]: https://github.com/ccbrown/iocraft [IronFox]: https://gitlab.com/ironfox-oss/IronFox [LibreOffice]: https://www.libreoffice.org/download/download-libreoffice/ @@ -672,4 +756,11 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [xfce4-terminal]: https://gitlab.xfce.org/apps/xfce4-terminal [XTerm]: https://xterm.dev/ [Zen]: https://github.com/zen-browser/desktop -[GoToSocial]: https://codeberg.org/superseriousbusiness/gotosocial + + +[Vibecoded]: https://codeberg.org/small-hack/open-slopware#vibecoded +[AI Functionality]: https://codeberg.org/small-hack/open-slopware#ai-functionality +[Permissive AI policy]: https://codeberg.org/small-hack/open-slopware#permissive-ai-policy +[AI Code Reviews]: https://codeberg.org/small-hack/open-slopware#ai-code-reviews +[Sponsored by AI]: https://codeberg.org/small-hack/open-slopware#sponsored-by-ai +[Request For Help]: https://codeberg.org/small-hack/open-slopware#request-for-help diff --git a/STYLE.md b/STYLE.md new file mode 100644 index 0000000..42688ab --- /dev/null +++ b/STYLE.md @@ -0,0 +1,77 @@ +# Style Guide + +This is a guide for how to structure the markdown tables and headings of the main README.md of this repo. + +* [Tainted Software](#tainted-software) + * [Category](#category) + * [Alternatives](#category-alternatives) + +# Tainted Software + +Be sure to put things in the correct category and always update the above TOC (table of contents), so people can easily find your entries. The alternatives heading for each category is only necessary if all items in the category share the same alternatives. More on that below. + +## Category + +Make sure to format your table like below: + +| Name | Last Untainted Version or Commit ID | Tags and Evidence | Alternative(s) | +|---|:---:|---|---| +| [formallyCoolSoftware](https://linktocoolsoftware.com) | [`v2.0.0`](linktolastgoodversion.com/v2.0.0) *or* [`ab12345`](linktolastgoodcommitid.com/commit/ab12345) | ![Vibecoded](./badges/vibecoded.svg) ([1](http://linktocoolsoftware.com/branch/main/AGENTS.md))
![AI Sponsored](./badges/ai-sponsored-blue.svg) ([1](http://linktocoolsoftware.com/branch/main/README.md))| [coolSlopFreeProject] | + +**Evidence column**: should contain one or more of the following tags (followed by *up to 3* numbered evidence links in parentheses): + +- [![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) +- [![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) +- [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) +- [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) +- [![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) + +**Don't know what the alternative or last known good version is?** Use this badge in its place: + +- [![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) + +Here are all the badges for easy copying and pasting: + +```markdown +[![Vibecoded](./badges/vibecoded.svg)](https://codeberg.org/small-hack/open-slopware#vibecoded) +``` + +```markdown +[![AI Functionality](./badges/ai-functionality-yellow.svg)](https://codeberg.org/small-hack/open-slopware#ai-functionality) +``` + +```markdown +[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](https://codeberg.org/small-hack/open-slopware#permissive-ai-policy) +``` + +```markdown +[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](https://codeberg.org/small-hack/open-slopware#ai-code-reviews) +``` + +```markdown +[![AI sponsored](./badges/ai-sponsored-blue.svg)](https://codeberg.org/small-hack/open-slopware#sponsored-by-ai) +``` + +```markdown +[![Request for Help](./badges/request-for-help.svg)](https://codeberg.org/small-hack/open-slopware#request-for-help) +``` + +> [!important] +> +> If a project has multiple tags, please be sure to add a break (`
`) in between each one, so that the column extends vertically rather than horizontally. This keeps the table visually consistent and easier to read at a glance. + +Please do not submit GitHub screenshots of "A user you have blocked has previously contributed to this repository". Please instead link directly to the commit hash(es) where this has taken place. + +Screenshots are allowed but must be a last resort for something that cannot be linked. We'd prefer archive links in all other instances. + +The above "Alternative(s)" column is for software that has a 1:1 parity or is a very similar alternative specific to the piece of software at hand. If the category or section is filled with the same alternative list (for instance, how it is in the [terminal emulators](https://codeberg.org/small-hack/open-slopware#terminal-emulators) section), you can remove the alternatives column. Instead, you can add a note below the table with all the alternatives, like this: + +> [!NOTE] +> ### Category Alternatives +> If there are a lot of alternatives for a section, include the alternatives in a note like this. +> * [alternativeSoftware]: This can be a short description and [link to anti-AI policies](somelink.link). +> * [coolSlopFreeProject]: This can be a short description and [link to anti-AI policies](somelink.link). + + +[alternativeSoftware]: https://verygoodnotslopware.com "alternative software" +[coolSlopFreeProject]: https://verygoodnotslopware2.com "another alternative software" diff --git a/badges/ai-code-reviews-purple.svg b/badges/ai-code-reviews-purple.svg new file mode 100644 index 0000000..409c1dc --- /dev/null +++ b/badges/ai-code-reviews-purple.svg @@ -0,0 +1,19 @@ + + AI Code Reviews + + + + + + + + + + + + + + + AI Code Reviews + + diff --git a/badges/ai-functionality-yellow.svg b/badges/ai-functionality-yellow.svg new file mode 100644 index 0000000..5da33d5 --- /dev/null +++ b/badges/ai-functionality-yellow.svg @@ -0,0 +1,19 @@ + + AI Functionality + + + + + + + + + + + + + + + AI Functionality + + diff --git a/badges/ai-sponsored-blue.svg b/badges/ai-sponsored-blue.svg new file mode 100644 index 0000000..762e1fc --- /dev/null +++ b/badges/ai-sponsored-blue.svg @@ -0,0 +1,19 @@ + + AI Sponsored + + + + + + + + + + + + + + + AI Sponsored + + diff --git a/badges/permissive-ai-policy-orange.svg b/badges/permissive-ai-policy-orange.svg new file mode 100644 index 0000000..c5bb774 --- /dev/null +++ b/badges/permissive-ai-policy-orange.svg @@ -0,0 +1,19 @@ + + Permissive AI Policy + + + + + + + + + + + + + + + Permissive AI Policy + + diff --git a/badges/request-for-help.svg b/badges/request-for-help.svg new file mode 100644 index 0000000..02e517e --- /dev/null +++ b/badges/request-for-help.svg @@ -0,0 +1,19 @@ + + Request For Help + + + + + + + + + + + + + + + Request For Help + + diff --git a/badges/vibecoded.svg b/badges/vibecoded.svg new file mode 100644 index 0000000..b1aebb7 --- /dev/null +++ b/badges/vibecoded.svg @@ -0,0 +1,19 @@ + + Vibecoded + + + + + + + + + + + + + + + Vibecoded + +