Files

82 lines
4.1 KiB
Markdown

---
name: linux-game-manager-dev
description: 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
1. If the task adds/removes/changes a game, read `references/game-extension.md`.
2. If the task changes orchestration/CLI/config behavior, read `references/core-map.md`.
3. If the task changes behavior and you are updating this skill, read `references/skill-maintenance.md`.
4. Run `python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.py` before and after major game-catalog changes.
## Core Workflow
1. Inspect relevant behavior and identify affected surfaces (`.install`, `.launch`, `.update`, `linux-game-manager.sh`, `speech`, docs).
2. Implement with existing patterns and helper functions instead of inventing new flows.
3. 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`
4. Validate catalog consistency:
- `python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.py`
5. If bash files were edited:
- Verify `shellcheck` is 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.
6. If functionality changed, refresh this skill using `references/skill-maintenance.md`.
## Non-Negotiable Rules
1. Keep installer and launcher base filenames identical:
- `.install/<Game Name>.sh`
- `.launch/<Game Name>.game`
2. Ensure launcher scripts include a concrete `installPath`-based path so removal can locate game data.
3. Define `run_update()` in any `.update/<Game>.sh` script.
4. 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-say` dependencies.
5. Keep new script variables camelCase, function names snake_case, class names PascalCase.
6. For ambiguous "disable game" requests, default to disabling installer visibility only and preserve launcher playability unless the user explicitly requests complete disable.
## Required Validation
1. Run catalog audit:
- `python3 .codex/skills/linux-game-manager-dev/scripts/audit_game_catalog.py`
2. 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`
3. Run shellcheck on every edited bash script and fix all issues.
- If shellcheck is unavailable, prompt the user to install it before continuing.
4. 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/`, or `speech/`
- `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.