docs(flows): DoD obligatorio con user-facing surface + abrir issues 0100-0103 (taxonomia, frontmatter migration, dev_console, work dashboard)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
---
|
||||
name: framework
|
||||
version: 1.0.0
|
||||
lang: cpp
|
||||
description: "Core C++ ImGui app shell: fn::run_app, AppConfig, GLFW + OpenGL + ImGui + ImPlot bootstrap, theming (Mantine dark + indigo), settings/about/menubar/layouts UI, Tabler icons, logging, viewports & AltSnap-safe sizemove, local_files dir, embedded layout storage."
|
||||
members:
|
||||
- tokens_cpp_core
|
||||
- icon_font_cpp_core
|
||||
- app_settings_cpp_core
|
||||
- app_about_cpp_core
|
||||
- fps_overlay_cpp_core
|
||||
- panel_menu_cpp_core
|
||||
- layouts_menu_cpp_core
|
||||
- app_menubar_cpp_core
|
||||
- logger_cpp_core
|
||||
- log_window_cpp_core
|
||||
- gl_loader_cpp_gfx
|
||||
- layout_storage_cpp_core
|
||||
- selectable_text_cpp_core
|
||||
tags: [framework, imgui, cpp, core]
|
||||
dir_path: cpp/framework
|
||||
---
|
||||
|
||||
## Documentation
|
||||
|
||||
Foundational C++ ImGui app shell shared by every desktop app in the registry. Apps opt-in transparently — every C++ app already links `fn_framework` via the `add_imgui_app` macro. The framework provides:
|
||||
|
||||
- `fn::run_app(cfg, render_fn)`: GLFW + OpenGL3 + ImGui + ImPlot setup, multi-viewport, docking, AltSnap-safe sizemove, icon attach, layouts persistence, log window, settings window, about window, menubar.
|
||||
- `fn::local_path(name)`: scoped writable path under `<exe_dir>/local_files/`.
|
||||
- Design tokens (Mantine dark + indigo accent).
|
||||
- Tabler icons (TI_* macros).
|
||||
- `fn::framework_version()` / `fn::framework_description()` (post 1.0.0).
|
||||
|
||||
Apps NEVER list these members in their own `uses_functions` — they come transitively via `fn_framework`. Audited via [[cpp_apps]] rule.
|
||||
|
||||
### Version policy
|
||||
|
||||
Semver. Major = breaking ABI/API of public `fn::run_app` or `AppConfig`. Minor = additive (new optional config field, new helper). Patch = bugfix.
|
||||
|
||||
### Boundaries
|
||||
|
||||
Framework does NOT include modules like `data_table`. Apps that want tables opt-in via `uses_modules: [data_table_cpp]` and `target_link_libraries(<app> PRIVATE fn_module_data_table)`. The framework is intentionally small.
|
||||
|
||||
## Capability growth log
|
||||
|
||||
- v1.0.0 (2026-05-16) — Initial framing as a versioned module. Members above are the bundled units of `fn_framework` static lib. Pre-1.0.0 history lives in git.
|
||||
|
||||
## Notes
|
||||
|
||||
- Static lib target: `fn_framework` (defined in `cpp/CMakeLists.txt`).
|
||||
- Generated header `cpp/framework/version_generated.h` (gitignored) exposes `FN_FRAMEWORK_VERSION` constant.
|
||||
- About panel of every app reads `fn::framework_version()` at runtime.
|
||||
Reference in New Issue
Block a user