Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions .github/PULL_REQUEST_TEMPLATE/PLUGIN-UPDATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!--
<!--
📌 **Before You Submit: Please Read Carefully**

This template is **only** for submitting a **plugin update** to the store.
This template is **only** for submitting a **plugin update** to the store.
If you're doing anything else (e.g., submitting a plugin), please start over and select the appropriate PR template.

Make sure you have:
Expand All @@ -12,37 +12,37 @@

# REPLACE_WITH_PLUGIN_NAME

<!--
<!--
Briefly describe what changed
If relevant, include screenshots, videos, or comparisons to similar plugins.
If relevant, include screenshots, videos, or comparisons to similar plugins.
-->

REPLACE_WITH_UPDATE_SUMMARY



## Task Checklist

### Developer

- [ ] My plugin complies with the [plugin submission guidelines](https://docs.steambrew.app/developers/submitting-plugins#guidelines)
- [ ] I am the original author or an authorized maintainer of this plugin.
- [ ] I have complied with all license requirements for the libraries used, including providing appropriate notices where necessary.
- [ ] My plugin is fully open source and does not depend on any external paid services, except for widely trusted and well-known platforms. Additionally, neither I nor anyone associated with me profits from any such services.
- [ ] Generative AI was used for most of the plugin's code.

### Plugin Functionality

- [ ] I have tested the plugin on both the **Stable** and **Beta** Steam update channels.

### Backend Configuration

* **Yes/No**: I use a standard Millennium python backend in my plugin.
* **Yes/No**: I use **custom binaries** that or rely on other FOSS projects that aren't written directly using Millennium's python backend.
- [ ] I use a standard Millennium Lua backend in my plugin.
- [ ] I use **custom binaries** that or rely on other FOSS projects that aren't written directly using Millennium's Lua backend.

### Community Contribution

<!--
Link to your feedback on two plugin PRs in a comment on this PR.
This step is optional but strongly encouraged — plugin PRs without testing contributions may be reviewed more slowly.
<!--
Link to your feedback on two plugin PRs in a comment on this PR.
This step is optional but strongly encouraged — plugin PRs without testing contributions may be reviewed more slowly.
-->

- [ ] I have tested and left feedback on **two** other plugin pull requests.
Expand All @@ -52,8 +52,8 @@ REPLACE_WITH_UPDATE_SUMMARY

## Testing Instructions

<!--
DO NOT CHECK THESE YOURSELF.
<!--
DO NOT CHECK THESE YOURSELF.
A third-party tester will check the appropriate box below **after verifying** your plugin.
-->

Expand Down
30 changes: 15 additions & 15 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<!--
<!--
📢 UPDATING AN EXISTING PLUGIN INSTEAD?
Please use the update template:
- Copy the template content from: .github/PULL_REQUEST_TEMPLATE/PLUGIN-UPDATE.md
- Or create the PR using this URL: https://github.com/SteamClientHomebrew/PluginDatabase/compare?expand=1&template=PLUGIN-UPDATE.md
-->
<!--
<!--
📌 **Before You Submit: Please Read Carefully**

This template is **only** for submitting a **new plugin** to the store.
This template is **only** for submitting a **new plugin** to the store.
If you're doing anything else (e.g., updating a plugin), please start over and select the appropriate PR template.

Make sure you have:
Expand All @@ -18,23 +18,23 @@

# REPLACE_WITH_PLUGIN_NAME

<!--
Briefly describe what your plugin does.
If relevant, include screenshots, videos, or comparisons to similar plugins.
<!--
Briefly describe what your plugin does.
If relevant, include screenshots, videos, or comparisons to similar plugins.
If your plugin overlaps with existing ones, explain how it differs and why it adds value.
-->

REPLACE_WITH_SUMMARY



## Task Checklist

### Developer

- [ ] My plugin complies with the [plugin submission guidelines](https://docs.steambrew.app/developers/submitting-plugins#guidelines)
- [ ] I am the original author or an authorized maintainer of this plugin.
- [ ] I have complied with all license requirements for the libraries used, including providing appropriate notices where necessary.
- [ ] My plugin is fully open source and does not depend on any external paid services, except for widely trusted and well-known platforms. Additionally, neither I nor anyone associated with me profits from any such services.
- [ ] Generative AI was used for most of the plugin's code.

### Plugin Functionality

Expand All @@ -43,14 +43,14 @@ REPLACE_WITH_SUMMARY

### Backend Configuration

* **Yes/No**: I use a standard Millennium python backend in my plugin.
* **Yes/No**: I use **custom binaries** that or rely on other FOSS projects that aren't written directly using Millennium's python backend.
- [ ] I use a standard Millennium Lua backend in my plugin.
- [ ] I use **custom binaries** that or rely on other FOSS projects that aren't written directly using Millennium's Lua backend.

### Community Contribution

<!--
Link to your feedback on two plugin PRs in a comment on this PR.
This step is optional but strongly encouraged — plugin PRs without testing contributions may be reviewed more slowly.
<!--
Link to your feedback on two plugin PRs in a comment on this PR.
This step is optional but strongly encouraged — plugin PRs without testing contributions may be reviewed more slowly.
-->

- [ ] I have tested and left feedback on **two** other plugin pull requests.
Expand All @@ -60,8 +60,8 @@ REPLACE_WITH_SUMMARY

## Testing Instructions

<!--
DO NOT CHECK THESE YOURSELF.
<!--
DO NOT CHECK THESE YOURSELF.
A third-party tester will check the appropriate box below **after verifying** your plugin.
-->

Expand Down
22 changes: 9 additions & 13 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,19 @@ Clearly label these as **Breaking Change** in your review.
Plugins must use the component library from `@steambrew/client` and Steam's built-in components. Review settings panels and UI for compliance:

**Settings panels** are defined in `definePlugin()`'s return object via the `content` prop (in the plugin's `index.tsx`):

```tsx
export default definePlugin(() => {
return {
title: "Plugin Name",
icon: <IconsModule.Something />,
content: <SettingsPanel />,
};
return {
title: "Plugin Name",
icon: <IconsModule.Something />,
content: <SettingsPanel />,
};
});
```

**Required component usage:**

- Use `Field` for settings rows (with `label`, `description`, and `bottomSeparator` props).
- Use `Toggle`, `TextField`, `Dropdown`, `Slider` for input controls inside `Field`.
- Use `DialogButton` or `Button` for actions.
Expand All @@ -82,25 +84,19 @@ export default definePlugin(() => {
- Use `Spinner` for loading states.

**Flag these anti-patterns:**

- Raw HTML elements (`<input>`, `<select>`, `<button>`, `<table>`) used where a `@steambrew/client` or Steam component exists.
- Direct DOM manipulation (`document.createElement`, `element.innerHTML`, `element.appendChild`) for UI that could be React components.
- Inline `style` attributes or `<style>` tags for layout/styling that Steam's existing CSS classes handle. Custom styles are acceptable only when Steam provides no equivalent.
- Using `window.SP_REACT.createElement` directly instead of JSX.
- Building settings UI outside of the `definePlugin` `content` pattern without good reason.

**Acceptable exceptions:**

- DOM manipulation for injecting into parts of Steam's UI that aren't exposed via React (e.g., patching existing Steam pages via `Millennium.findElement`).
- Custom CSS for genuinely novel UI that has no Steam equivalent.
- Plugins that don't have user-facing settings don't need a settings panel.

### Backend Language Policy

Python backends are no longer accepted. All plugins must use Lua for their backend (`"backendType": "lua"` in `plugin.json`).

- Reject any plugin with `"backendType": "python"` or that ships `.py` files as part of the plugin backend.
- Python helper scripts used only for development (build scripts, code generation, tooling) are acceptable and should NOT be flagged -- these are not shipped with the plugin.
- If a PR updates an existing plugin that currently uses Python, it must migrate to Lua. Do not approve Python backend additions or modifications.

### General Quality

- Check that the plugin does what its description claims.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# PluginDatabase

[Home Page](https://steambrew.app/) • [Discord](https://steambrew.app/discord) • [Documentation](https://docs.steambrew.app/)
Expand Down Expand Up @@ -30,4 +29,5 @@ Then open a pull request with that commit.
To clone all plugins at their pinned commits after a fresh checkout, run `git submodule update --init`.

[^1]: Submitting A Plugin

[^2]: Updating Your Plugin
Loading