docs: add standard module documentation
Initial README following the project's module documentation structure: Abstract paragraph, Badges as bold key:value list, Topology section with auto-generated mermaid graph, Controls describing player input, Demonstrates listing the Sporel features showcased, References at the end. Install pre-commit hook via Sporel --install-hooks=.; topology is auto-managed by Sporel --lint --fix. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
13
.githooks/pre-commit
Normal file
13
.githooks/pre-commit
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
# Sporel API-Doc-Convention pre-commit hook.
|
||||
SPOREL_EXE="${SPOREL_EXE:-$(command -v Sporel.exe 2>/dev/null || command -v sporel 2>/dev/null)}"
|
||||
if [ -z "$SPOREL_EXE" ]; then
|
||||
echo "INFO: Sporel.exe not on PATH. Skipping lint." >&2
|
||||
exit 0
|
||||
fi
|
||||
"$SPOREL_EXE" --lint="$(pwd)" --fix
|
||||
RC=$?
|
||||
if git diff --cached --name-only | grep -qx 'README.md'; then
|
||||
git add README.md
|
||||
fi
|
||||
exit $RC
|
||||
41
README.md
Normal file
41
README.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# lib-sporel.launcher
|
||||
|
||||
Module-discovery and module-switch entry. Lists available modules from the configured modules-dir and launches the selected one via `engine.switch_module`. Typical entry point: `--module=lib-sporel.launcher` boots into a chooser screen rather than directly into a game.
|
||||
|
||||
**Version:** 0.1.0
|
||||
**Module-ID:** lib-sporel.launcher
|
||||
**Requires:** lib-core.input v>=0.4.0
|
||||
**Tags:** launcher, menu, system, navigation
|
||||
|
||||
## Topology
|
||||
|
||||
<!-- topology:start (auto-generated; do not edit) -->
|
||||
```mermaid
|
||||
graph LR
|
||||
this["lib-sporel.launcher"]
|
||||
lib_core_input["lib-core.input"]
|
||||
this --> lib_core_input
|
||||
engine["engine.*"]
|
||||
this --> engine
|
||||
```
|
||||
<!-- topology:end -->
|
||||
|
||||
## Controls
|
||||
|
||||
- **Mouse-Left**: Click a module-button to launch it; click confirm/cancel in the quit-modal.
|
||||
- **Enter**: Confirm quit when the modal is open.
|
||||
- **Escape**: Open the quit-modal from the chooser; cancel the modal when open.
|
||||
|
||||
## Demonstrates
|
||||
|
||||
- `engine.module.list` discovery of installed modules from the modules-dir.
|
||||
- `engine.switch_module` runtime swap from the launcher to the selected module.
|
||||
- Simple text + rect rendering via `engine.render` for the chooser UI.
|
||||
- Input-action binding through `lib-core.input` (`ui_click`, `ui_back`, `ui_confirm`).
|
||||
- Modal-state FSM (chooser <-> quit-modal) factored into a sibling `fsm.lua` loaded via `engine.module.dir_of`.
|
||||
|
||||
## References
|
||||
|
||||
- meta/docs/architecture/module-lifecycle.md
|
||||
- meta/docs/architecture/host-app.md
|
||||
- meta/docs/superpowers/specs/2026-05-14-launcher-design.md
|
||||
3
scripts/install-hooks.sh
Normal file
3
scripts/install-hooks.sh
Normal file
@@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
git config core.hooksPath .githooks
|
||||
echo "Hooks activated."
|
||||
Reference in New Issue
Block a user