ChessPersona adalah aplikasi desktop lokal untuk membuat bot catur yang meniru kecenderungan bermain akun Chess.com tertentu.
Aplikasi mengambil game publik dari Chess.com, menganalisis pola bermain, memakai Stockfish untuk kandidat langkah legal, lalu membuat persona yang bisa kamu lawan langsung di GUI.
Status:
v0.2.0-local-mvp
Platform utama: Windows 10/11
Bahasa: Python 3.12 + PySide6
Target: local desktop app, dijalankan dari VS Code / PowerShell
- Create / Update persona dari username Chess.com.
- Mode Rapid dan Blitz.
- Pipeline otomatis dari GUI:
- download games;
- behavioral analysis;
- move quality analysis dengan Stockfish;
- complete persona build;
- Direct Ranker training;
- release gate / runtime readiness check;
- safe fallback kalau advanced ML belum siap.
- Bot bisa dimainkan dari GUI.
- Evaluation bar.
- Move history.
- Penjelasan keputusan persona.
- Promotion dialog.
- Resign.
- Export PGN.
- Board theme dan piece set.
- Local smoke test runner.
- Stockfish auto-recover jika engine process mati setelah workload berat.
ChessPersona punya beberapa level runtime:
| Status | Arti |
|---|---|
Runtime READY |
Advanced runtime siap dipakai oleh UI. |
needs_more_evidence |
Persona sudah playable, tapi advanced ML belum cukup evidence. UI akan fallback aman. |
Statistical selector |
Mode aman default. Bot tetap bisa dimainkan. |
needs_more_evidence bukan crash. Itu berarti data/evidence belum cukup untuk unlock advanced ML, tetapi persona tetap bisa dimainkan dengan Statistical selector.
| Preset | Target game | Kegunaan |
|---|---|---|
| Quick | 100 game | Test cepat, smoke test, persona awal. |
| Standard | 300 game | Kualitas lebih baik tanpa terlalu berat. |
| Full | 500 game | Profil paling lengkap dari data yang tersedia. |
Quick sering menghasilkan needs_more_evidence. Itu normal.
Disarankan menjalankan project dari disk yang lega, misalnya:
D:\Projects\ChessPersonaData besar akan tersimpan relatif terhadap folder project:
data\datasets
data\personas
data\analysis
data\ml
Kalau project dijalankan dari D:\Projects\ChessPersona, maka data tersebut masuk ke disk D.
- Windows 10/11.
- Python 3.12.
- Git.
- Stockfish executable.
- Koneksi internet saat Create / Update persona.
- Akun Chess.com target harus punya game publik.
Setelah persona dibuat, game bisa dimainkan lokal tanpa koneksi internet.
Masuk ke folder project:
cd D:\Projects\ChessPersonaBuat virtual environment jika belum ada:
py -3.12 -m venv .venvAktifkan virtual environment:
.\.venv\Scripts\Activate.ps1Jika PowerShell menolak aktivasi:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\.venv\Scripts\Activate.ps1Install dependency:
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
if (Test-Path .\requirements-dev.txt) {
python -m pip install -r requirements-dev.txt
}
if (Test-Path .\requirements-ml.txt) {
python -m pip install -r requirements-ml.txt
}Path default:
engines\stockfish\stockfish.exe
Cek:
Test-Path .\engines\stockfish\stockfish.exeOutput yang benar:
True
Kalau Stockfish masih ada di folder lain, copy ke path default:
New-Item -ItemType Directory -Force .\engines\stockfish
Copy-Item C:\Users\user\stockfish\stockfish-windows-x86-64-avx2.exe `
.\engines\stockfish\stockfish.exepython .\app.pyCara pakai GUI:
- Masukkan username Chess.com.
- Pilih Rapid atau Blitz.
- Pilih preset Quick / Standard / Full.
- Klik Create / Update.
- Tunggu pipeline selesai.
- Kalau muncul
needs_more_evidence, itu aman. - Persona akan dimuat dan bot bisa dimainkan.
Sebelum merge, release, atau tag stabil, jalankan:
python .\run_local_smoke_tests.pySetelah semua perubahan sudah committed, bisa pakai mode strict:
python .\run_local_smoke_tests.py --strict-release-checkChecker khusus release candidate:
python .\check_release_candidate.py `
--engine-path engines\stockfish\stockfish.exeRuntime readiness untuk persona tertentu:
python .\check_runtime_readiness.py `
--username jiqy `
--time-class blitz `
--engine-path engines\stockfish\stockfish.exeJangan commit data generated lokal:
data\datasets
data\personas
data\analysis
data\ml
Yang boleh tracked hanya placeholder .gitkeep, jika ada.
Sebelum commit:
git status --short
git diff --cached --name-onlyKalau muncul file di folder data\..., jangan stage file itu.
ChessPersona/
├── app.py
├── run_full_persona_pipeline.py
├── check_runtime_readiness.py
├── check_release_candidate.py
├── run_local_smoke_tests.py
├── assets/
├── data/
│ ├── datasets/
│ ├── personas/
│ ├── analysis/
│ └── ml/
├── engines/
│ └── stockfish/
│ └── stockfish.exe
├── exports/
├── src/
│ ├── api/
│ ├── bot/
│ ├── engine/
│ ├── ml/
│ ├── persona/
│ ├── runtime/
│ └── ui/
└── tests/
Pastikan file ini ada:
engines\stockfish\stockfish.exe
Jalankan aplikasi dari root project, bukan dari folder src.
Versi MVP ini sudah punya Stockfish auto-recover. Kalau masih terjadi:
Get-Process stockfish -ErrorAction SilentlyContinue |
Stop-Process -ForceLalu buka ulang app:
python .\app.pyPipeline menyimpan data dan model di folder data\.... Jalankan project dari disk yang lega, misalnya D.
Cek drive:
Get-PSDrive DKalau hasilnya needs_more_evidence, itu normal untuk Quick atau dataset kecil. Bot tetap playable dengan Statistical selector.
- Fokus Windows lokal.
- Belum ada installer
.exe. - Belum ada cloud deploy.
- Rapid dan Blitz adalah fokus utama.
- Kualitas persona bergantung pada jumlah dan variasi game publik.
- Bot meniru kecenderungan statistik, bukan menyalin pemain secara sempurna.
Target stabil saat ini:
v0.2.0 — Local MVP Stable
Definisi done untuk MVP:
- App bisa dibuka dari PowerShell / VS Code.
- User bisa Create / Update persona.
- Persona bisa dimainkan.
- Runtime fallback aman jika advanced ML belum ready.
- Smoke test lokal hijau.
- Data generated tidak ikut commit.
Lihat CREDITS.md untuk sumber dan atribusi asset.
ChessPersona bukan produk resmi dan tidak berafiliasi dengan Chess.com maupun Stockfish.
Lisensi project belum ditetapkan. Tambahkan file LICENSE sebelum distribusi publik.