These rules guide automated or human contributors working on this repository.
Keep them aligned with the goals in README.md.
- Use C++ for all production code.
- Use Qt6 Widgets or QML for the UI.
- Preserve cross-platform support (Windows, macOS, Linux).
- Maintain a documented CLI interface for all key actions.
- Keep Meson + Ninja as the build system.
- Ensure the app can load/preview common formats:
- Images: pcx, wal, png, tga, jpg
- Audio: wav, ogg
- Video: cin, roq
- Text/config: cfg and similar plain-text formats
- Prefer modular, extensible loaders to add new formats.
- Prefer modern C++ (C++20) and portable libraries.
- Avoid OS-specific APIs unless guarded and justified.
- Keep the UI responsive with async loading for large archives.
- Update docs and help text whenever behavior changes.
- Update
docs/DEPENDENCIES.mdwhen adding or changing libraries. - Keep
VERSIONand GitHub release assets in sync with the updater rules. - Follow
.editorconfigfor formatting (tabs for C++, spaces for config files).
- Do not introduce alternate UI frameworks.
- Do not remove or deprecate the CLI without a replacement plan.
- Do not hardcode platform-only paths or assumptions.