Area Development Handbook

這份文件是 merc-fju-3.0 新 AREA / AREA rebuild 工作流的正式人類可讀入口,用來整理 spec-first 區域開發的骨架、權責分工、固定交付節奏與最低驗證要求。

它的目標不是取代 repo 內既有規則來源,而是把分散在 AGENTS.mdplans/area/rebuild_plan.md、skill reference 與現行 docs 的共通流程收斂成一份可回讀的 handbook。

Scope

這份 handbook 適用於下列工作:

不適用或只作補充索引的範圍:

Source Of Truth Order

若不同文件之間看起來有重疊,預設依下列順序判定:

  1. AGENTS.md
    • repo 級規則、area rebuild 約束、驗證範圍與環境慣例
  2. plans/0001-world-map-area-rebuild.md
    • 全局 area rebuild 流程、delivery gate、固定 prompt、roadmap
  3. area/rebuild_plan.md
    • 日常追蹤狀態、next actionable area、當前 delivery_gate
  4. plans/area/NNNN-area-slug.md
    • 單區題材、world links、保留房號與驗證意圖
  5. area/<area>/map.md
    • 單區人類可讀 spec;其中嵌入的 mapmd-json 是 machine-readable canonical graph
  6. runtime 與 loader 事實來源
    • area/directory.lst
    • area/<area>/index
    • area/<area>/roo/*
    • src/load.c
    • src/act_move.c
  7. 補充說明與 reference
    • ref/Readme.md
    • docs/current-game/*
    • docs/3yWebsite/*

補充規則:

Structured Source Layer

在既有 spec-first area workflow 上,repo 現在另外補了一層 structured source -> exporter -> legacy runtime files

判讀規則:

Mob Authoring Guardrails

只要 area 工作有碰到 mob/*.mob,請同時記得 legacy 文件與 current loader 的雙層規則:

Workflow Layers

AREA 開發 pipeline 固定拆成七層:

  1. World Graph
    • area/world_map.mdref/Readme.md 決定世界位置、母城掛接與題材缺口
  2. Area Queue
    • area/rebuild_plan.md 決定目前要做哪一區
  3. Area Plan
    • plans/area/NNNN-area-slug.md 固定單區邊界、外部連線、題材與驗證目標
  4. Area Spec
    • area/<area>/map.md 描述 narrative spec 與 mapmd-json
  5. Projection + Implementation
    • 用 generator 投影 .roo,再補 index / mob / obj / res / shp / boundary rooms
  6. Runtime Validation
    • 用 build、smoke test、log/*debug/* 驗證 area 可載入
  7. Commit / Merge Gate
    • 只有 delivery_gate 允許時,才可 commit、結束當前 milestone 或進下一區

File Roles

各層主要檔案職責如下:

Fixed Prompt And Queue Discipline

長期接續 area rebuild 使用固定主 prompt:

繼續實作下一個待建 area

執行規則:

  1. 先讀 area/rebuild_plan.md
  2. 若有 in_progress,優先續做該區
  3. 否則選第一個沒有 blocker 的 todo
  4. 再讀對應的 plans/area/NNNN-*.md
  5. 若需要世界層背景,再讀 area/world_map.mdref/Readme.md

語意規則:

Single Unit Of Work

預設工作單位是「一輪任務只處理一個 area milestone」。

這代表:

Area Plan Contract

每個 plans/area/NNNN-area-slug.md 至少應固定回答:

設計上的最低要求:

Area Spec Contract

每個 area/<area>/map.md 至少應包含:

mapmd-json 的角色:

VNUM And Boundary Rules

在正式拆出 docs/area-vnum-policy.mddocs/area-external-exit-policy.md 前,這份 handbook 先固定最低共識:

Delivery Gates

每個 area milestone 都要受 delivery_gate 控制:

判讀規則:

Validation Levels

依任務範圍分層驗證:

Spec / Plan / Tracker Only

最低驗證:

python3 tools/mapmd_validate.py area/<area>/map.md

或直接使用 generator:

python .agents/skills/merc-area-builder/scripts/generate_roo_from_map_md.py area/<area>/map.md --validate-only

通常不需要為了純 spec / planning 變更硬跑 build。

Structured Source / Exporter Work

若這輪是在調整 structured authoring source,最低驗證應包含對應 exporter 的 --check

python -X utf8 scripts/export_structured_skills.py --check
python -X utf8 scripts/export_area_content.py <area_slug> --check

若同時有更新 current-game skill registry,追加:

python -X utf8 scripts/build_current_game_skill_registry.py
python -X utf8 scripts/generate_current_game_skills_pages.py

原則上先通過 diff / check gate,再決定是否用 --write 回寫 runtime artifact。

Loadable Runtime Area Work

最低檢查:

常用 build:

make -C src clean && make -C src merc

若是在 Linux / Codex Cloud:

make -C src -f Makefile.lin merc

Smoke Test Discipline

做 area smoke test 前後,至少遵守:

  1. 建立 log player mail debug vote 目錄
  2. 清空或 baseline 本輪 debug/*
  3. 先確認本輪要看的 log 範圍
  4. 若使用 timeout,優先給 4560
  5. 必須看到明確成功訊號,例如 三國歪傳之降龍伏虎開始正常運作
  6. 成功後仍要回看 log/*debug/* 是否有本輪新 area 相關 warning / error

當一個新 AREA 從 plan 走到真正可載入時,建議固定照下面順序:

  1. 完成 plans/area/NNNN-*.md
  2. 完成 area/<area>/map.md
  3. 先跑 --validate-only
  4. 產生第一批 .roo
  5. index
  6. 補最小 mob / obj / res / shp
  7. 補 external exit 與既有 boundary room patch
  8. 掛入 area/directory.lst
  9. 做 build 與 smoke test
  10. 檢查 log/*debug/*
  11. 更新 delivery_gate
  12. 回寫 tracker、單區 plan 與必要 docs

Required Closeout Updates

每輪 area 工作收尾時,至少檢查:

Reference Entry Points

依用途選讀:

Companion Docs

這份 handbook 是 Stage 1 的入口文件;目前已搭配下列 companion docs:

若 companion docs 和全局流程看起來有差異,仍以 AGENTS.mdplans/0001-world-map-area-rebuild.mdarea/rebuild_plan.md 為準,再回頭修 docs。

Current Tooling

目前 repo 內已可直接使用的 area workflow tooling 包含: