Files
browser/plugins/AGENTS.md
T

28 lines
2.1 KiB
Markdown

# AGENTS.md for plugins
This file applies to `plugins/`.
## Plugin Boundary
Plugins are game management plugins. Do not model unrelated billing, cloud sales, host provider behavior, or independent plugin backend services here.
Game-specific lifecycle behavior belongs here, not in platform services or the generic run executor. A plugin must own its install, update, pre-start checks, start command construction, stop behavior, status checks, executable paths, dependency commands, default launch flags, and game-specific app IDs.
When a game needs automatic setup, express it through plugin manifests, action specs, templates, or scripts. For example, the SCUM plugin should own the SteamCMD install/update flow, including stopping the server before update, running `steamcmd +force_install_dir ... +login anonymous +app_update 3792580 validate +quit`, and starting `SCUMServer.exe` with plugin-declared `port` and `MaxPlayers` plus the plugin default `-log`.
Start scripts may perform plugin-owned environment checks before launch. If required files, directories, SteamCMD, or server binaries are missing, the plugin script should create/install/update them and then start the service in the same lifecycle path, instead of requiring new platform/frontend deployment states.
Do not rely on run or platform hardcoding a specific game path, Steam app ID, command line, or startup flag to make a plugin work. If a new capability is needed, declare the generic capability the plugin needs and keep the game-specific policy in the plugin.
## Structure Rules
Manifests, schemas, SDK contracts, example plugins, and test fixtures must live in dedicated directories. Do not bury action schemas or bridge types inside UI page code.
## Security Rules
Plugins must never receive raw AI provider keys, run credentials, raw host paths, or direct storage endpoints. Use platform-mediated bridge calls for jobs, logs, files, artifacts, and AI.
## Local Development
Local plugin development should exercise real platform-run flows through dev registration instead of bypassing platform authorization.