4.1 KiB
4.1 KiB
name, description
| name | description |
|---|---|
| linux-game-manager-dev | Develop and maintain Linux Game Manager in this repository. Use when adding or removing games, editing `.install`/`.launch`/`.update` scripts, changing `linux-game-manager.sh` installer/launcher/removal/update/CLI behavior, validating accessibility-sensitive flows, or refreshing project-local skill docs after functionality changes. |
Linux Game Manager Development
Use this skill to make safe, consistent changes to Linux Game Manager and keep the skill accurate as the codebase evolves.
Fast Routing
- If the task adds/removes/changes a game, read
references/game-extension.md. - If the task changes orchestration/CLI/config behavior, read
references/core-map.md. - If the task changes behavior and you are updating this skill, read
references/skill-maintenance.md. - Run
python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.pybefore and after major game-catalog changes.
Core Workflow
- Inspect relevant behavior and identify affected surfaces (
.install,.launch,.update,linux-game-manager.sh,speech, docs). - Implement with existing patterns and helper functions instead of inventing new flows.
- Validate runtime behavior with CLI/manual checks:
./linux-game-manager.sh -i./linux-game-manager.sh -r./linux-game-manager.sh -u./linux-game-manager.sh -t
- Validate catalog consistency:
python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.py
- If bash files were edited:
- Verify
shellcheckis installed. - If missing, stop and prompt the user to install it (see
references/tooling-prereqs.md). - Run shellcheck on edited files and fix all reported errors.
- Verify
- If functionality changed, refresh this skill using
references/skill-maintenance.md.
Non-Negotiable Rules
- Keep installer and launcher base filenames identical:
.install/<Game Name>.sh.launch/<Game Name>.game
- Ensure launcher scripts include a concrete
installPath-based path so removal can locate game data. - Define
run_update()in any.update/<Game>.shscript. - Preserve accessibility-first interaction:
- Keep dialog/yad wrapper usage (
ui_*helpers) consistent. - Do not introduce keyboard traps.
- For GUI applications, do not add new
speech-dispatcher/spd-saydependencies.
- Keep dialog/yad wrapper usage (
- Keep new script variables camelCase, function names snake_case, class names PascalCase.
- For ambiguous "disable game" requests, default to disabling installer visibility only and preserve launcher playability unless the user explicitly requests complete disable.
Required Validation
- Run catalog audit:
python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.py
- Run manual command checks relevant to change scope:
- install flow:
./linux-game-manager.sh -i - launcher flow:
./linux-game-manager.sh - removal flow:
./linux-game-manager.sh -r - update flow:
./linux-game-manager.sh -u
- install flow:
- Run shellcheck on every edited bash script and fix all issues.
- If shellcheck is unavailable, prompt the user to install it before continuing.
- Validate this skill structure after edits:
python3 /home/storm/.codex/skills/.system/skill-creator/scripts/quick_validate.py .codex/skills/linux-game-manager-dev
Mandatory Skill Maintenance
Treat this skill as stale immediately after any change to:
linux-game-manager.sh- Any file in
.install/,.launch/,.update/, orspeech/ README.md- Any change to game lifecycle expectations (install path rules, update hooks, CLI options, helper function contracts)
When stale, perform the full refresh workflow in references/skill-maintenance.md before completing the task.
References
references/core-map.md: Architecture and extension map.references/game-extension.md: Exact workflow for adding/removing/extending games.references/skill-maintenance.md: Critical instructions to keep this skill accurate after code changes.references/tooling-prereqs.md: Required tools and shellcheck installation prompts by distro.
Scripts
scripts/audit_game_catalog.py: Reports installer/launcher/update consistency and disabled entries.