Status
as-built
Conceptual layer
③ Analytics (seven-job chain jobs 1–5; as-built engines map mainly to SPC/residuals-class detectors)
Repo layer
L3 intelligence-core
Source
architecture section 3.6.3, section 2.2 engines/ · engines/registry.py (HOT_PATH_ENGINES) · scheduler.py (MD/PF/TOD and adaptive packs)

Shipping a module ≠ shipping a FindingAs-built L3 detector output admitted to L4 (finding.json 1.2.0). Many detectors stay dark until an enable flag or PROOF_RUN=1 plus required tags on L2.

How engines turn on#

MechanismBehavior
Hot money defaultsMD exceedance default on; PF/TOD with config; tradeoff tagging default on
ENABLE_* flagExplicit opt-in for adaptive / CNC / equipment packs
PROOF_RUN=1Allows adaptive candidates when required tags exist (proof / demo)
Warm emitWarm residuals reach outbox only with ENABLE_WARM_EMIT or Proof Run
Shadow MLTimesFM / TabPFN / LGBM MD — cold/shadow only; not production L4

Money path (scheduler)#

IdFlagDefaultDetects
mdENABLE_MD_EXCEEDANCEyesIncomer MD / demand-charge exposure
todTOD config; tradeoff via ENABLE_TRADEOFF_ENGINEyes (with config)Time-of-day surcharge exposure
pfENABLE_PF_LEADING / Proof RunnoPower-factor slab / penalty risk
tradeoffENABLE_TRADEOFF_ENGINEyesTags tradeoffs for L4 language (not free ₹ invent)
md_lgbmENABLE_LGBM_MDnoMD LGBM shadow — not production L4

Registry hot engines (HOT_PATH_ENGINES)#

IdFlagDefaultDetects
idle_loadENABLE_IDLE_LOADnoNon-productive idle load
compressor_sp_driftENABLE_COMPRESSORnoCompressor specific-power drift
idle_cnc_spindleENABLE_CNCnoSpindle idle while machine idle
cnc_aux_on_idleENABLE_CNCnoAux power on while CNC idle
cnc_state_energy_splitENABLE_CNCnoEnergy by machine state
cnc_alarm_dwellENABLE_CNCnoTime spent in alarm
cnc_sec_per_part_driftENABLE_CNCnoSEC / part drift
cnc_spindle_load_signatureENABLE_CNCnoSpindle load signature anomaly
unattended_long_stopENABLE_CNCnoLong unattended stop
abandoned_estopENABLE_CNCnoAbandoned e-stop
alarm_hygieneENABLE_CNCnoAlarm hygiene / noise
parasitic_baseloadENABLE_CNCnoParasitic baseload on CNC context

CNC fleet loop: list_assets → each cnc_machine when ENABLE_CNC or Proof Run. Soft ERP joins (SEC-by-SKU, export-due idle) live beside these engines.

Adaptive / ops packs (scheduler flags)#

Id / packFlagDefaultDetects
hall_emptyENABLE_HALL_EMPTYnoHall empty / lighting-HVAC waste
source_mixENABLE_SOURCE_MIXnoSource mix / WHR-style
furnaceENABLE_IDLE_FURNACEnoFurnace idle / setback-class
secENABLE_SECnoSpecific energy / part
enpiENABLE_ENPInoEnPI-style efficiency
compressor_opsENABLE_COMPRESSOR_OPSnoCompressor ops pack
hvac_opsENABLE_HVAC_OPSnoHVAC ops pack
finishing_flowENABLE_FINISHING_FLOWnoFinishing flow waste
Equipment health (e.g. trip_cascade_risk)ENABLE_EQUIPMENT_HEALTHnoTrip / duty / feeder-class health

Warm / cold machinery (not standalone L4 detectors)#

ModuleRole
anomaly_ewma · cusum_h · residual_emitWarm unexplained draw
baseline_towpCold baseline of record
TimesFM / TabPFN shadowsCold advisory only

Challenger and registry: challenger/ (TabPFN-v2, TimesFM stub, LightGBM; PROMOTION_ALLOWED = False), registry/, gates/, certification/ — single owner D9; EV promotion paths merge into L3 (AutoPromoteForbidden).

Agentic detector ids (direction / experimental)#

stamped_l3_core.agentic.detectors names families such as aux_on_idle, blocked_starved, material_gated_idle. Treat as direction unless a Finding path is wired through dual-lane like the registry engines above.

Twin modules and twin-record engines (direction)#

Twin modules (stamped_l3_core/twin/assets/: induction heater, flow, heat-treatment furnace, quench, ageing; genealogy/: billets, parts, baskets) run in stamped-l3-twin and are not registry engines. Scheduled twin-record engine families (procedure not followed, model drift, repeated part risk, heat-treatment basket risk) read twin records from L2 and emit ordinary Findings behind ENABLE_* flags. See 05-twin-and-fast-loop.md section 3.

Product framing note#

As-built Findings still stamp value_domain as energy_efficiency | equipment_health. Product framing is four outcomes under Stamped_Master_Document.md; do not pretend the wire field was migrated. Direction: EvidenceLayer contract for detector output (direction; as built: Finding finding.json 1.2.0) with value_vector (section 5.2).

Next: 03-rulepacks-and-evals.md.

Page history: last 4 changes
  1. 2026-10-07 docs(technical): rewrite l3/ to the architecture 4a28bbd
  2. 2026-10-03 docs(l3): twin runtime, twin-record engines, packs and replay as direction 28255e9
  3. 2026-09-27 docs(architecture): align identity with the four-outcome master document 1663dd2
  4. 2026-09-27 docs(l3): document detection runtime and engines 0a02a37

Diagram

100%

Search the architecture