← 返回 AI 入口指導檔 (AGENTS)

模組合約

所有權規則

Core/Env

輸入:

輸出:

狀態變更: - 可以初始化外掛名稱空間一次 - 不得改變 SavedVariables

Core/Util

輸入:

輸出:

狀態變更:

Core/Constants

輸入:

輸出:

狀態變更:

Core/EventRouter

輸入:

輸出: - 透過參數化 pcall 錯誤隔離來分派對已註冊模組處理程序的調用,確保一個模組處理程序中的故障不會阻止其他註冊者

狀態變更:

Core/Scheduler

輸入:

輸出:

狀態變更:

Core/SavedVariables

輸入:

狀態變更:

Core/Performance

輸入:

輸出:

狀態變更:

Services/AuraService

輸入:

輸出:

狀態變更:

Managers/AlertManager

輸入:

輸出: -batch/throttled 呼叫包裝在佈局批次控制中的 Renderer.render (Renderer.BeginBatch / Renderer.EndBatch) - 在 UI 隱藏渲染完成後,透過 state.releaseFunc(state) 回收多類型狀態表以回收非活動狀態(Aura、Cooldown、Item、GroundEffect、Totem)

狀態變更:

Services/CooldownService

輸入:

輸出:

狀態變更:

LegacyReference/Services/ShadowHostService(封存參考,不載入)

狀態:

封存原因:

Services/ItemCooldownService

輸入:

輸出:

狀態變更:

Services/SpellInfoService

輸入:

輸出:

狀態變更:

Services/ClassPowerService

輸入:

輸出:

狀態變更:

Services/GroundEffectService

輸入:

輸出:

狀態變更:

Services/TotemService

輸入:

輸出:

狀態變更:

UI/IconPool

輸入:

輸出:

狀態變更:

UI/Renderer

輸入:

輸出:

狀態變更:

UI/Options

輸入:

輸出:

狀態變更:

UI/Slash

輸入:

輸出:

狀態變更: - 可呼叫模組API;不得直接編輯服務內部 - 僅透過「Core/SavedVariables」寫入持久警報配置

Debug/DebugState

輸入:

輸出:

狀態變更:

Debug/PromptExport

輸入:

輸出:

狀態變更:

Debug/FlowTestRunner

輸入:

輸出:

狀態變更:

Debug/FlowTestPanel

輸入:

輸出:

狀態變更:

Tests/FlowValidationHarness

輸入:

輸出:

邊界:

2026-07-26:Native Aura 模組契約

模組 輸入 輸出 禁止
AuraCapabilityService build/API surface backend snapshot 只看 TOC 判定
AuraRuleCompiler 純設定 DB stable runtime plan AuraData/UI
AuraContainerService plan/revision player/target containers 戰鬥結構修改
NativeAuraRenderer AuraButton callback 綁定 Regions Aura 狀態推導
AuraSoundService sound rules registration IDs 讀 AuraData

Native 模式與 AlertManager/一般 Renderer 的契約是「零 Aura state 事件」。

2026-07-27:Tooltip 監控 Popup 模組契約

模組 輸入 輸出 禁止
Services/TooltipMonitorService GameTooltip post-call、MODIFIER_STATE_CHANGED、EAM Popup action 安全 ID 顯示、脫戰五秒 scalar candidate、action 白名單、SavedVariables 公開 API 呼叫、匿名狀態計數 儲存 TooltipData/AuraData/Frame、保留戰鬥候選、讀 UnitAura payload、Hook Blizzard 點擊、模擬右鍵
UI/TooltipMonitorMenu 服務提供的純 scalar candidate 游標旁 EAM 自有視窗、監控類型按鈕、Aura/未解析 Macro 手動 ID 直接寫 EAM_DB、secure action attribute、戰鬥中建立或顯示、保存 Blizzard frame

Tooltip callback 的責任只到「追加文字與更新 candidate」,不可直接開啟 UI;戰鬥中只可追加安全文字,不可更新 candidate。儲存路由固定如下:Spell → spell cooldown;Item → item cooldown;Aura → 使用者選 player/target;Macro → 只提供已安全解析的 spell/item,未解析時由使用者輸入 ID 並選類型。EAM 自有按鈕透過其 OnClick script 提交;只有 addedupdated 由正式 Options.notifyConfigChanged() 統一刷新五個下游,unchanged 不刷新。

← Back to AI Entrance (AGENTS)

模組合約

所有權規則

Core/Env

輸入:

輸出:

狀態變更: - 可以初始化外掛名稱空間一次 - 不得改變 SavedVariables

Core/Util

輸入:

輸出:

狀態變更:

Core/Constants

輸入:

輸出:

狀態變更:

Core/EventRouter

輸入:

輸出: - 透過參數化 pcall 錯誤隔離來分派對已註冊模組處理程序的調用,確保一個模組處理程序中的故障不會阻止其他註冊者

狀態變更:

Core/Scheduler

輸入:

輸出:

狀態變更:

Core/SavedVariables

輸入:

狀態變更:

Core/Performance

輸入:

輸出:

狀態變更:

Services/AuraService

輸入:

輸出:

狀態變更:

Managers/AlertManager

輸入:

輸出: -batch/throttled 呼叫包裝在佈局批次控制中的 Renderer.render (Renderer.BeginBatch / Renderer.EndBatch) - 在 UI 隱藏渲染完成後,透過 state.releaseFunc(state) 回收多類型狀態表以回收非活動狀態(Aura、Cooldown、Item、GroundEffect、Totem)

狀態變更:

Services/CooldownService

輸入:

輸出:

狀態變更:

LegacyReference/Services/ShadowHostService(封存參考,不載入)

狀態:

封存原因:

Services/ItemCooldownService

輸入:

輸出:

狀態變更:

Services/SpellInfoService

輸入:

輸出:

狀態變更:

Services/ClassPowerService

輸入:

輸出:

狀態變更:

Services/GroundEffectService

輸入:

輸出:

狀態變更:

Services/TotemService

輸入:

輸出:

狀態變更:

UI/IconPool

輸入:

輸出:

狀態變更:

UI/Renderer

輸入:

輸出:

狀態變更:

UI/Options

輸入:

輸出:

狀態變更:

UI/Slash

輸入:

輸出:

狀態變更: - 可呼叫模組API;不得直接編輯服務內部 - 僅透過「Core/SavedVariables」寫入持久警報配置

Debug/DebugState

輸入:

輸出:

狀態變更:

Debug/PromptExport

輸入:

輸出:

狀態變更:

Debug/FlowTestRunner

輸入:

輸出:

狀態變更:

Debug/FlowTestPanel

輸入:

輸出:

狀態變更:

Tests/FlowValidationHarness

輸入:

輸出:

邊界:

2026-07-26:Native Aura 模組契約

模組 輸入 輸出 禁止
AuraCapabilityService build/API surface backend snapshot 只看 TOC 判定
AuraRuleCompiler 純設定 DB stable runtime plan AuraData/UI
AuraContainerService plan/revision player/target containers 戰鬥結構修改
NativeAuraRenderer AuraButton callback 綁定 Regions Aura 狀態推導
AuraSoundService sound rules registration IDs 讀 AuraData

Native 模式與 AlertManager/一般 Renderer 的契約是「零 Aura state 事件」。

2026-07-27:Tooltip 監控 Popup 模組契約

模組 輸入 輸出 禁止
Services/TooltipMonitorService GameTooltip post-call、MODIFIER_STATE_CHANGED、EAM Popup action 安全 ID 顯示、脫戰五秒 scalar candidate、action 白名單、SavedVariables 公開 API 呼叫、匿名狀態計數 儲存 TooltipData/AuraData/Frame、保留戰鬥候選、讀 UnitAura payload、Hook Blizzard 點擊、模擬右鍵
UI/TooltipMonitorMenu 服務提供的純 scalar candidate 游標旁 EAM 自有視窗、監控類型按鈕、Aura/未解析 Macro 手動 ID 直接寫 EAM_DB、secure action attribute、戰鬥中建立或顯示、保存 Blizzard frame

Tooltip callback 的責任只到「追加文字與更新 candidate」,不可直接開啟 UI;戰鬥中只可追加安全文字,不可更新 candidate。儲存路由固定如下:Spell → spell cooldown;Item → item cooldown;Aura → 使用者選 player/target;Macro → 只提供已安全解析的 spell/item,未解析時由使用者輸入 ID 並選類型。EAM 自有按鈕透過其 OnClick script 提交;只有 addedupdated 由正式 Options.notifyConfigChanged() 統一刷新五個下游,unchanged 不刷新。