From d4fa269f0433d04fd024c627be7bda454f5572ac Mon Sep 17 00:00:00 2001 From: Egutierrez Date: Tue, 19 May 2026 00:31:32 +0200 Subject: [PATCH] chore: auto-commit (2 archivos) - app.md - appicon.ico Co-Authored-By: Claude Opus 4.7 (1M context) --- app.md | 11 +++++++++++ appicon.ico | Bin 9038 -> 10923 bytes 2 files changed, 11 insertions(+) diff --git a/app.md b/app.md index 0307afc..25bde6c 100644 --- a/app.md +++ b/app.md @@ -2,6 +2,7 @@ name: runtime_test lang: cpp domain: gamedev +version: 0.1.0 description: "Exerciser end-to-end del runtime nucleo gamedev (issue 0072b). Inicializa sokol_gfx + audio (miniaudio) + input unificado + sprite_batch + camera 2D + game loop. Modo `--self-test` corre 60 frames y sale exit 0; sin args entra modo interactivo (3 sprites en gradient)." tags: [imgui, sdl3, sokol, gamedev, smoke, runtime] uses_functions: @@ -75,3 +76,13 @@ Pulsa Esc o Back (gamepad) para salir. - NO carga assets de disco. Crea textura 2x2 blanca en GPU para alimentar `sprite_batch`. Asi el self-test es asset-free. - Audio init es no-fatal: si no hay device, registra error y sigue. Permite correr en CI / WSL sin audio. - Sin ImGui en este test (a diferencia de `engine_smoke`). Reduce binary size y aisla la validacion del runtime puro. + + +## Capability growth log + +Una linea por bump SemVer. Bump-type segun `.claude/commands/version.md`: +- `major`: breaking observable (CLI args, schema BBDD propia, formato wire). +- `minor`: feature aditiva (nuevo panel, endpoint, opcion). +- `patch`: bugfix sin cambio observable. + +- v0.1.0 (2026-05-18) — baseline. diff --git a/appicon.ico b/appicon.ico index 40106c59f5a0896bc115680ee7b79e2ee879e471..82e9fe3dc38907c602f997cc301b46d4d9b76256 100644 GIT binary patch literal 10923 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