2.2 KiB
2.2 KiB
AGENTS.md
Guidance for coding agents working in this repo.
Project Shape
- This repo manages Beat Saber plugins for BSManager instances.
- Default instance roots are:
/home/pleb/Windows/Users/pleb/BSManager/BSInstances/home/pleb/.local/share/BSManager/BSInstances
- A local BSManager source checkout may be available at
/home/pleb/src/Zagrios/bs-manager. Use it as a read-only reference when investigating launch behavior, inherited Steam arguments, instance layout, or Proton environment details unless the user explicitly asks for BSManager code changes. - Prefer repo-local state with
--state-dir .statefor planned installs unless the task explicitly targets the user's live default state.
Workflow Rules
- Run commands from the repo root with
PYTHONPATH=src. - For human-style inspection, prefer the menu with repo-local state:
PYTHONPATH=src python -m plugin_helper --state-dir .state menu. - When targeting the local Linux BSManager install rather than the Windows
mirror, pass
--instances-root /home/pleb/.local/share/BSManager/BSInstancesor choose that path explicitly in the menu. - Use the helper commands instead of manually copying plugin files into an instance.
- Treat BSIPA as a bootstrap phase:
bootstrapinstalls the locked BSIPA archive and records generated files.- ordinary plugin plans should depend on healthy bootstrap state.
- Be careful with duplicate instance names across Windows and local roots. Use
the menu or pass
--instances-rootexplicitly when targeting one install.
Validation
- Run
PYTHONPATH=src python -m unittest discover -s testsafter code changes. - Run
PYTHONPATH=src python -m compileall -q src testsfor syntax/import checks. - For live game validation, follow
docs/SMOKETEST.mdand tear down Beat Saber processes afterward.
Launch Notes
- BSManager may inherit Beat Saber launch arguments configured in Steam.
- Do not assume a black screen is a plugin failure until checking
Logs/_latest.log, UnityPlayer.log, and the live process command line. - Duplicate launch args such as
--no-yeet fpfc --no-yeet fpfccan trigger a fatal command-line parse error after BSIPA/plugin loading succeeds.