File size: 1,440 Bytes
f24976f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | """Five Stones β conceptual grouping over the FSM specialists.
Riprap's FSM runs ~20 atomic specialist actions; the Stones layer is a
thin re-grouping that gives the trace UI, the briefing prompt, and the
project's public framing five legible roles instead of 20 atomic
function calls.
Each Stone module exposes the same shape:
NAME β display name (e.g. "Cornerstone")
TAGLINE β single phrase used as a section header
DESCRIPTION β one-sentence description for the README / trace UI
SOURCES β list of FSM state keys this Stone aggregates from
collect(state) β pull this Stone's documents out of the state dict
Order is meaningful:
1. Cornerstone β the hazard reader (static record)
2. Keystone β the asset register (exposure)
3. Touchstone β the live observer (current sensors + EO)
4. Lodestone β the projector (forecast)
5. Capstone β the synthesiser (Granite 4.1 + Mellea)
The first four are *data-Stones*; the Capstone IS the reconciler.
"""
from __future__ import annotations
from app.stones import capstone, cornerstone, keystone, lodestone, touchstone
# Iteration order for the briefing prompt and trace UI.
DATA_STONES = [cornerstone, keystone, touchstone, lodestone]
ALL_STONES = DATA_STONES + [capstone]
__all__ = [
"ALL_STONES",
"DATA_STONES",
"capstone",
"cornerstone",
"keystone",
"lodestone",
"touchstone",
]
|