Files
linux-game-manager/.codex/skills/linux-game-manager-dev/SKILL.md

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

  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.