規則配置
第一版式樣草案 · Markdown 來源:09-規則配置.mdGitHub 版本尚未推送;目前以本機手冊為準
最後更新: 2026-06-14
說明: 以下是伺服器端 config 的規格草案,不代表設定或相應功能已實作。現行 A-40-C General Settings UI 的具體項目為 Learning Duration 與 Point Rewards;本文件保留相關規則數值。A-40-A/A-40-B 是歸檔 config 識別,不是有效 UI,也不據此賦予後台權限。設定變更的生效方式(重啟或其他方式)待技術方案確認,不推定已有 config reload API。
1. 學生默認密碼
帳號初始化細節僅供具備倉庫權限的協作者查閱,公開手冊不包含此部分。
生日欄位候選校驗: 個別建立與 CSV 導入以
YYYY-MM-DD接收生日,日期須為有效 Gregorian calendar 日期且不得晚於建立當天;以 Date-only 保存,不做時區換日。台灣市場及 6–12 歲是待確認建議;若採用該年齡建議,超出範圍可記錄 Audit Warning,不直接阻斷。此為規格候選,未確認前不據此推定生日密碼規則;班級導入 A-23 不包含生日欄位。
2. Mastery 計算係數
⚠️ 考慮到學生可能難以達標,Mastery 計算的分母部分乘以一個係數以降低難度。
| 參數 | 預設值 | 說明 |
|---|---|---|
mastery_denominator_coefficient | 0.9 | Mastery % 公式中的分母係數 |
Mastery 計算公式:
Mastery % = (各 Box 數量 × 認知權重) / (已開放 Sessions 的 Word/Phrase/Sentence 學習項目總數 × mastery_denominator_coefficient) × 100%Mastery 上限嚴格限制為 100%。係數 0.9 使分母變小,Mastery 數值更容易提升。
數學示例:
- 已開放 50 個 Word/Phrase/Sentence 學習項目,加權得分為 36
- 分母 = 50 × 0.9 = 45
- Mastery = 36 / 45 × 100% = 80%(而非 36/50 = 72%)
3. Discovery Hub 題目抽取規則(伺服器端 config;歷史識別 A-40-A)
| 設定項 | 說明 | 類型 |
|---|---|---|
| DH Listening Box Distribution | 各 Box (B0-B7) 英語聽力題目抽取配比 | JSON per Level |
| DH Reading Box Distribution | 各 Box (B0-B7) 英語閱讀題目抽取配比 | JSON per Level |
| DH Special Box Threshold | 錯誤次數門檻,觸發 Special Box 優先抽題;候選值 2,計次窗口及與 10-盒子系統.md「4 題中錯 2 題」條件的對應待確認 | integer(候選值 2;待確認) |
| DH Box Priority | 盒子抽題優先級順序 | Array (固定: Special > B0 > B1-6) |
4. Speak Studio 口說規則(伺服器端 config;歷史識別 A-40-B)
| 設定項 | 說明 | 類型 |
|---|---|---|
| SS Speaking Box Distribution | 各 Box 英語口說題型分佈 (S1/S2/S3) | JSON per Level |
| SS Voice Scoring Threshold | 兒童英語語音評分及格線;正式值待 PoC | float (0-1) |
| SS Special Logic Threshold | 口說強化門檻(錯 n 題即進入 Special);原值 2 僅為候選值,須與 10-盒子系統.md 的連錯門檻、Try Again 次數及熔斷條件一併對齊 | integer(候選值 2;待確認) |
語音供應商尚未選定;本欄僅保留原有參數型別與範圍,不指定正式及格值。須以兒童英語樣本 PoC 驗證後確認。
5. 萊特納盒子系統(Leitner System)
| 設定項 | 說明 | 類型 |
|---|---|---|
| Leitner Cooldown Intervals | 各 Box 冷卻時間 | JSON per Box |
| Leitner Cognitive Weights | 各 Box 認知權重係數 | JSON per Box |
認知階段定義:
- ⚪ Not Started: Box 0
- 🌱 Emerging: Box 1, 2
- 🌿 Developing: Box 3, 4
- 🌳 Proficient: Box 5, 6
- 🏆 Mastered: Box 7
6. Category/Level 結構(伺服器端 config)
| 設定項 | 說明 | 類型 |
|---|---|---|
| Category/Level Structure | 英語課程 Category/Level/Session 結構;實際分類、級別及 Session 數量待確認,不固定為 EK/ES/NH 或每級 16 節 | JSON |
| Session Sort Logic | 可配置的 Session 排序與依賴規則;實際課綱待確認 | JSON |
| English Mock Exam Category Structure | 英文模擬檢定分類;分類與題庫待確認,可配置,不宣稱官方認證 | JSON |
| Point Rewards Config | A-40-C General Settings UI 中的 Point Rewards;DH/SS/TR 每題 EXP,預設 DH:10、SS:10、TR:10 | JSON;三模組均為答對 1 題 10 EXP。每次 Attempt 依當次答對的非例題數發放,重考可重複獲得。Exam Score 仍由題目 points 獨立計算;Trophy 獎盃只發一次 |
7. Alert 閾值配置
以下閾值用於 T-01 Teacher Dashboard、T-21 Individual Student Detail、A-01 Admin Dashboard、A-03 Admin Message Center 的 Alert 觸發邏輯。
| 設定項 | 預設值 | 說明 | 關聯畫面 |
|---|---|---|---|
alert_1_active_rate_threshold | 60% | Active Rate 低於此值觸發 Alert 1(⚠️ Warning) | T-01, A-01 |
alert_2_inactive_threshold | 30% | 完全未活躍學生比例高於此值觸發 Alert 2(🔴 Critical,覆蓋 Alert 1) | T-01, A-01 |
alert_3_mastery_threshold | 30% | Session Mastery 低於此值觸發 Alert 3(🔴 Critical)。若低於 15%,升級為「緊急」並推送給 Admin | T-01, A-03 |
alert_4_trophy_fail_threshold | 50% | Trophy Fail Rate 超過此值觸發 Alert 4(🔴 Critical) | T-01 |
alert_5_consecutive_inactive_days | 14 | 學生連續兩週沒有任何練習紀錄時觸發 Alert 5,通知負責老師與所屬學校 Admin;T-10-A 的 Skip 日期不計入此連續期間 | T-01, T-03, T-21, A-03 |
active_rate_window_days | 7 | Active Rate 計算窗口(天數) | T-01, A-01 |
alert_zone_active_rate_threshold | 50% | Zone 級別 Active Rate 警告線(Admin Dashboard) | A-01 |
alert_class_active_rate_threshold | 40% | Class 級別 Active Rate 警告線(Admin Dashboard) | A-01 |
alert_dau_drop_threshold | 30% | DAU 較昨日下滑超過此值觸發 A-03 Academic DAU Drop 訊息 | A-03 |
alert_error_spike_threshold | 40% | 全區平均 Error Rate 超過此值觸發 A-03 Academic Error Spike 訊息 | A-03 |
alert_import_failure_notify | true | 批量導入失敗時是否觸發 A-03 Import 訊息 | A-03 |
alert_security_retention_days | 90 | A-03 Security 訊息保留天數(不可批量清除) | A-03 |
Alert 層級關係
Alert 1 (⚠️ Warning): Active Rate < 60%
↓ 若完全未活躍 > 30% 則升級為
Alert 2 (🔴 Critical): 覆蓋 Alert 1,優先級最高
Alert 3 (🔴 Critical): Session Mastery < 30%(獨立觸發,不與 Alert 1/2 互斥)
↓ 若 Mastery < 15% 升級為「緊急」並推送至 Admin
Alert 4 (🔴 Critical): Trophy Fail Rate > 50%(獨立觸發)
Alert 5 (🔴 Critical): 連續兩週沒有練習 — 學生級(獨立觸發,通知負責老師與所屬學校 Admin;T-10-A Skip 日期不計入)
A-03 Academic:
DAU Drop: 較昨日下滑 > 30%
Error Spike: 全區平均 Error Rate > 40%8. Mode 機制配置
Mode 控制學生的複習範圍。每個 Mode 定義兩個參數:
prev_session(從當前 Session 往前回溯幾個 Session)和box_cap(只取 Box ≤ N 的英語學習項目)。詳細機制見 10-盒子系統.md。
json
{
"mode_1": {
"prev_session": 2,
"box_cap": 2,
"description": "起步:最近 2 個 Session,淺層盒子(Box 0-2)"
},
"mode_2": {
"prev_session": 5,
"box_cap": 3,
"description": "擴展到 5 個 Session + 更深盒子(Box 0-3)"
},
"mode_3": {
"prev_session": 8,
"box_cap": 4,
"description": "8 個 Session,Box 0-4"
},
"mode_4": {
"prev_session": 11,
"box_cap": 5,
"description": "11 個 Session,Box 0-5"
},
"mode_5": {
"prev_session": 16,
"box_cap": 7,
"description": "回溯範圍 16 個 Session,全 Box 範圍(Box 0-7)"
},
"mode_6": {
"prev_session": "all",
"box_cap": 7,
"description": "終極模式:回溯全部 Session(受限於 T-21 Session Start 邊界)"
}
}Mode 5 的
prev_session = 16是既有回溯參數,不代表每個課程 Level 固定有 16 個 Session。各 Mode 數值保留為算法設定;實際課程結構另待確認。
邊界規則
| 規則 | 說明 |
|---|---|
| Session Start 邊界 | 回溯範圍不得低於 T-21 Individual Student Detail 設定的 Session Start |
| 截斷不降級 | 若實際可用 Session 少於 prev_session,截斷至可用數,Mode 不降級 |
| 按學生獨立 | 每個學生維護自己的 Mode 狀態,不與他人連動 |
9. Active 行為定義
Active 的定義統一用於 T-01 Teacher Dashboard、T-21 Individual Student Detail、A-01 Admin Dashboard 的 Active Rate 計算。
| 設定項 | 預設值 | 說明 |
|---|---|---|
active_definition_days_per_week | 2 | 一周內至少使用 App 的天數 |
active_definition_min_sessions | 1 | 每次使用至少完成 1 次練習(DH 或 SS) |
active_rate_window | 7 days | Active Rate 計算窗口 |
inactive_no_usage_days | 7 | 連續未使用天數即視為 inactive |
inactive_no_usage_days = 7僅用於 Active/Inactive 判定與既有活躍度提示,不等同於 Alert 5 的 14 天通知門檻。Alert 5 的連續期間需依 T-10-A 排期排除Skip日期。
Active 判定邏輯
學生在過去 7 天內:
- 至少有 2 天打開 App
- 且每次至少完成 1 次練習(DH 或 SS)
→ 判定為 Active
否則 → 判定為 Inactive相關畫面
| 畫面 | 使用場景 |
|---|---|
| T-01 Teacher Dashboard | 班級 Active Rate KPI、Alert 1/2 |
| T-21 Individual Student Detail | 個別學生 Active 狀態 |
| A-01 Admin Dashboard | Zone/School/Class 各級 Active Rate |
| A-03 Admin Message Center | 觸發低 Active Rate 相關訊息 |
關聯文檔:
- Alert 閾值與觸發邏輯 → 03-App畫面-教師.md(T-01)、04-App畫面-管理員.md(A-01, A-03)
- Mode 機制詳情 → 10-盒子系統.md
- Active 定義 → 10-盒子系統.md(學生 Active 定義)
- 角色權限(誰能修改配置) → 06-角色與權限定義.md
10. Zuzu 收集系統配置
本節標題與
zuzu_*/elalitte為沿用的伺服器端 config 識別;APlus 產品用語為 Animal Friends/Diamond。以下原參數及數值保留作規格基線,不代表收集、抽卡或漫畫功能已實作;是否納入首版待確認。
Daily Mission
| 設定項 | 預設值 | 說明 |
|---|---|---|
daily_mission_rounds | 3 | 每日任務需完成回合數 |
daily_mission_min_questions | 10 | 每回合最少題數 |
daily_mission_min_accuracy | 0.70 | 每回合最低正確率 |
daily_mission_elalitte_reward | 1 | 每日任務達成後獲得 Diamond 數量(沿用舊 config key) |
Weekly Mission
| 設定項 | 預設值 | 說明 |
|---|---|---|
weekly_mission_exp_target | 840 | 每週任務 EXP 目標值 |
weekly_mission_elalitte_reward | 3 | 每週任務達成後獲得 Diamond 數量(沿用舊 config key) |
抽卡(Gacha)
| 設定項 | 預設值 | 說明 |
|---|---|---|
gacha_discount_price | 5 | 前 N 次抽卡優惠價(Diamond) |
gacha_full_price | 10 | 標準抽卡價格(Diamond) |
gacha_discount_count | 3 | 優惠次數上限(前 N 次半價) |
Zuzu 收集 & 漫畫
| 設定項 | 預設值 | 說明 |
|---|---|---|
zuzu_total_count | 40 | Animal Friends 收集項目總數(沿用舊 config key) |
comic_trigger_milestones | [1, 10, 20, 30, 40] | 觸發漫畫的收集里程碑 |
comic_page_min | 3 | 每次漫畫最少頁數 |
comic_page_max | 5 | 每次漫畫最多頁數 |
關聯畫面: S-07 Mission、S-08 Animal Friends、S-10 Home(Diamond)。詳細收集規則見 02-App畫面-學生.md;該文檔不在本次修改範圍。
11. 第二階段參數(接送與虛擬銀行)
以下是伺服器端設定草案,不代表已實作。變動寫入日誌,從下一個週期生效。畫面入口見 A-101、A-102、A-103;規則說明見 接送與點名規則 與 虛擬銀行規則。
| 參數 | 預設 | 說明 |
|---|---|---|
bank_fx_update_time | 每天 10:00(台北時間) | 抓取臺灣銀行牌告匯率 |
bank_fx_quote_unit | 依幣別 | 每種幣別的固定報價單位 |
bank_salary_frequency | 雙週 | 單週、雙週或每月 |
bank_salary_exp_ratio | 1 EXP = 10 Q幣 | 待觀察 |
bank_debt_interest_rate_weekly | 10% | 單利,每週一 00:00 計息 |
bank_debt_interest_cap | 本金的 50% | 累計利息上限 |
bank_living_costs | 保險 50、水電雜費 30、基礎房租 200 | 每月 |
bank_deposit_plans | 1 個月 1.5%、3 個月 5%、6 個月 12% | 定存方案 |
bank_deposit_penalty | 本金的 5% | 提前解約,且不計利息 |
bank_cooldown_seconds | 3 | 外匯交易與定存解約的冷靜視窗 |
bank_contact_book_reward | 10 Q幣 | 聯絡簿簽名獎勵 |
bank_audit_ratio_high、bank_audit_ratio_low | 1.5、0.5 | 老師發放稽核燈號 |
bank_audit_list_size | 5 | 最高與最低名單人數 |
pickup_duplicate_scan_seconds | 30 | 同一學生重複掃描鎖定 |
pickup_checked_out_cleanup_minutes | 30 | 離校後從監控牆移除 |
pickup_binding_attempts | 15 分鐘 6 次,封鎖 15 分鐘 | 家長綁定比對限制 |
pickup_invite_valid_days | 7 | 邀請碼有效天數 |