You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+93-5Lines changed: 93 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# Contributing
2
2
3
-
Welcome to **template-python**! We appreciate your interest in contributing.
3
+
Welcome to **BalatroLLM**! We appreciate your interest in contributing.
4
4
5
-
This document provides guidelines and instructions for contributing to the project. Whether you're fixing bugs, improving documentation, or proposing new features, your contributions are welcome.
5
+
This document provides guidelines and instructions for contributing to the project. Whether you're fixing bugs, improving documentation, proposing new features, or submitting new strategies, your contributions are welcome.
6
6
7
7
## How to Contribute
8
8
@@ -16,15 +16,17 @@ This document provides guidelines and instructions for contributing to the proje
16
16
17
17
5.**Use Conventional Commits**: Follow the conventional commits specification for your commit messages.
18
18
19
+
6.**Submit Strategies**: Community members can contribute new playing strategies by following the strategy submission guidelines below.
20
+
19
21
## Environment Setup
20
22
21
23
This section describes how to set up the **recommended** development environment for this project using [uv](https://docs.astral.sh/uv/).
@@ -57,7 +59,7 @@ The project follows an automated release process using GitHub Actions:
57
59
2.**Release Please PR**: The [Release Please](https://github.com/googleapis/release-please) GitHub Action automatically maintains a release PR that:
58
60
59
61
- Updates the version in `pyproject.toml`
60
-
- Updates the version in `src/template_python/__init__.py`
62
+
- Updates the version in `src/balatrollm/__init__.py`
61
63
- Updates the `CHANGELOG.md` based on conventional commits
62
64
- The PR is continuously updated as new commits are added to the main branch
63
65
@@ -81,3 +83,89 @@ The project follows an automated release process using GitHub Actions:
81
83
- This ensures dependencies are properly locked for the new version
82
84
83
85
This automated process ensures consistent versioning, comprehensive changelogs, reliable package distribution, and up-to-date dependency locks with minimal manual intervention.
86
+
87
+
## Contributing Strategies
88
+
89
+
Community members can contribute new playing strategies to enhance BalatroLLM's gameplay variety. Strategies define how the bot approaches decision-making during different game phases.
90
+
91
+
### Strategy Structure
92
+
93
+
Each strategy must be organized as a directory under `src/balatrollm/strategies/` containing exactly four files:
94
+
95
+
```
96
+
src/balatrollm/strategies/your_strategy_name/
97
+
├── STRATEGY.md.jinja # Strategy-specific guide and approach
98
+
├── GAMESTATE.md.jinja # Game state representation template
99
+
├── MEMORY.md.jinja # Response history tracking template
100
+
└── TOOLS.json # Strategy-specific function definitions
101
+
```
102
+
103
+
### Strategy Naming Requirements
104
+
105
+
Strategy names must follow these rules:
106
+
107
+
-**Lowercase letters and numbers only** (e.g., `aggressive`, `value_based`, `risky2`)
108
+
-**Valid Python identifier** (cannot start with a number)
1.**Study Existing Strategies**: Review `src/balatrollm/strategies/default/` and `src/balatrollm/strategies/aggressive/` to understand the template structure and content expectations.
115
+
116
+
2.**Create Strategy Directory**: Create a new directory following the naming requirements:
0 commit comments