[PR #224] [MERGED] Add Bannerlord install detection and a 1.4.8 module playbook #227

Closed
opened 2026-10-15 20:54:33 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rehan-remade/universal-modder/pull/224
Author: @hby7921
Created: 10/11/2026
Status: ✅ Merged
Merged: 10/12/2026
Merged by: @rehan-remade

Base: main ← Head: codex/bannerlord-route-sage-playbook


📝 Commits (10+)

  • 112a9ea Add Bannerlord scanning and optional Sage research playbook
  • 65fdf0f Document the Bannerlord 1.4.8 verification basis
  • 4f9cc18 Use published Sage tools in the optional research workflow
  • 3310c48 Harden Bannerlord runtime and version detection
  • 5d9dee8 scan: detect MT Framework, Hedgehog, Black Rock engines; fix um.bat space paths
  • c4ba931 Add game engine reverse engineering research docs
  • 08aa38f scan: MT Framework, Hedgehog Engine, Black Rock: review fixes
  • 119ad72 Merge merge/pr-250 (MT Framework, Hedgehog Engine, Black Rock scan) into merge/pr-224
  • 5c5f753 scan + playbook: Bannerlord review fixes
  • b472403 Merge remote-tracking branch 'origin/main' into resolve/pr-224

📊 Changes

9 files changed (+375 additions, -5 deletions)

View changed files

📝 .agents/skills/mod-any-game/SKILL.md (+2 -1)
➕ .agents/skills/mod-any-game/references/engines/bannerlord.md (+70 -0)
📝 .claude/skills/mod-any-game/SKILL.md (+2 -1)
➕ .claude/skills/mod-any-game/references/engines/bannerlord.md (+70 -0)
📝 README.md (+1 -1)
📝 skills/mod-any-game/SKILL.md (+2 -1)
➕ skills/mod-any-game/references/engines/bannerlord.md (+70 -0)
📝 tests/test_um.py (+129 -0)
📝 um/scan.py (+29 -1)

📄 Description

What: Add Bannerlord install detection and a module-development playbook, with a v1.4.8 verification basis and optional BannerlordSage MCP research.

A Bannerlord install currently falls back to generic .NET/native-engine guidance. The scanner now recognizes the game's expected runtime DLL layout plus Native module manifest, then selects the official module route: XML/XSLT and C# submodules, with optional Harmony for managed targets.

Only the exact supported Windows, GDK and editor bin directories participate in detection. Client binaries take precedence over the editor; backup, Debug and tool copies cannot override the live version or displace another engine. Missing/malformed Version.xml and unsupported XML encodings leave the version unknown rather than aborting the scan. The canonical Documents product name finds save/config containers even for a renamed install, and Modules is reported only for Bannerlord.

The new playbook covers module/data routes, current local DLL/XML authority, version checks, persistence and verification. Its optional Sage workflow uses tools present in the public project and asks agents to check capabilities before using local extensions. It links the existing v1.4.8 field note instead of duplicating it. Skill mirrors and README discovery are updated.

Validation

  • python -m pytest -q tests: 122 passed, 1 skipped on Windows / Python 3.12. All 23 focused scanner regression cases pass.
  • Regression coverage includes renamed/GDK layouts, client-versus-editor ordering, nested and similarly named backups, copied DLLs in another engine, malformed/unknown-encoding/UTF-32 XML, valid UTF-16 XML, save-folder naming and other-engine module-folder reporting.
  • Independent read-only comparison with 15 other engine fixtures found no detection/routing regressions.
  • Read-only scan of a real local v1.4.8 install: detected Bannerlord, matched the live XML version, selected the official module route and found the save/config container.
  • Static inspection of that installation's MBSubModuleBase and CampaignBehaviorBase declarations; Sage tool schemas and official documentation links checked against their public sources.
  • um kb check --index: 182 notes passed.
  • um publish check .: 0 failures; 2 existing warnings in unrelated knowledge notes.
  • All 10 CLI help groups, Python syntax checks, skill-copy checks and git diff --check passed.

Not verified: no modded game was launched and no gameplay or save/load result is claimed. The guide requires those checks for a produced mod. Scanner fixtures for other version strings test parsing only. Upstream PR CI requires a maintainer's approval to run; it is not being counted as passed.

Checklist

  • Tests pass (the equivalent Python command was used; no uv installed).
  • Knowledge index is unchanged: this is a tool/playbook contribution, not a new field note.
  • No game files, extracted assets, decompiled code dumps or secrets.
  • Nothing that cheats other players or bypasses anti-cheat / DRM / ownership checks.
  • Versions, verification and unverified behavior are written down.
  • Authored by Codex (GPT-6), using BannerlordSage for research, with @hby7921.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rehan-remade/universal-modder/pull/224 **Author:** [@hby7921](https://github.com/hby7921) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/12/2026 **Merged by:** [@rehan-remade](https://github.com/rehan-remade) **Base:** `main` ← **Head:** `codex/bannerlord-route-sage-playbook` --- ### 📝 Commits (10+) - [`112a9ea`](https://github.com/rehan-remade/universal-modder/commit/112a9ea821ec8654a9b566c4d965d63b381800d0) Add Bannerlord scanning and optional Sage research playbook - [`65fdf0f`](https://github.com/rehan-remade/universal-modder/commit/65fdf0f1ba253df668e1b0dc570b7fe087d6bfe4) Document the Bannerlord 1.4.8 verification basis - [`4f9cc18`](https://github.com/rehan-remade/universal-modder/commit/4f9cc18b5b512c5589f0b108f8819483092432d3) Use published Sage tools in the optional research workflow - [`3310c48`](https://github.com/rehan-remade/universal-modder/commit/3310c4805495dc8afaced1f1f8c9dac7ece4e56e) Harden Bannerlord runtime and version detection - [`5d9dee8`](https://github.com/rehan-remade/universal-modder/commit/5d9dee8895f6d39ee1585a3da67236129a1377d0) scan: detect MT Framework, Hedgehog, Black Rock engines; fix um.bat space paths - [`c4ba931`](https://github.com/rehan-remade/universal-modder/commit/c4ba931910e11fed0bf9e456fe023e9e9ac3756a) Add game engine reverse engineering research docs - [`08aa38f`](https://github.com/rehan-remade/universal-modder/commit/08aa38fe5bb2e3ec4759c18e1f9dbb2be8fae737) scan: MT Framework, Hedgehog Engine, Black Rock: review fixes - [`119ad72`](https://github.com/rehan-remade/universal-modder/commit/119ad72e1f0acbff4225eacfb6405c97bbfd0b07) Merge merge/pr-250 (MT Framework, Hedgehog Engine, Black Rock scan) into merge/pr-224 - [`5c5f753`](https://github.com/rehan-remade/universal-modder/commit/5c5f75375ed75e83af29fdea034fc32b6917201b) scan + playbook: Bannerlord review fixes - [`b472403`](https://github.com/rehan-remade/universal-modder/commit/b472403c036a07925a446793cf78dafc07641a30) Merge remote-tracking branch 'origin/main' into resolve/pr-224 ### 📊 Changes **9 files changed** (+375 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `.agents/skills/mod-any-game/SKILL.md` (+2 -1) ➕ `.agents/skills/mod-any-game/references/engines/bannerlord.md` (+70 -0) 📝 `.claude/skills/mod-any-game/SKILL.md` (+2 -1) ➕ `.claude/skills/mod-any-game/references/engines/bannerlord.md` (+70 -0) 📝 `README.md` (+1 -1) 📝 `skills/mod-any-game/SKILL.md` (+2 -1) ➕ `skills/mod-any-game/references/engines/bannerlord.md` (+70 -0) 📝 `tests/test_um.py` (+129 -0) 📝 `um/scan.py` (+29 -1) </details> ### 📄 Description **What:** Add Bannerlord install detection and a module-development playbook, with a v1.4.8 verification basis and optional BannerlordSage MCP research. A Bannerlord install currently falls back to generic .NET/native-engine guidance. The scanner now recognizes the game's expected runtime DLL layout plus Native module manifest, then selects the official module route: XML/XSLT and C# submodules, with optional Harmony for managed targets. Only the exact supported Windows, GDK and editor bin directories participate in detection. Client binaries take precedence over the editor; backup, Debug and tool copies cannot override the live version or displace another engine. Missing/malformed Version.xml and unsupported XML encodings leave the version unknown rather than aborting the scan. The canonical Documents product name finds save/config containers even for a renamed install, and Modules is reported only for Bannerlord. The new playbook covers module/data routes, current local DLL/XML authority, version checks, persistence and verification. Its optional Sage workflow uses tools present in the public project and asks agents to check capabilities before using local extensions. It links the existing v1.4.8 field note instead of duplicating it. Skill mirrors and README discovery are updated. **Validation** - `python -m pytest -q tests`: **122 passed, 1 skipped** on Windows / Python 3.12. All 23 focused scanner regression cases pass. - Regression coverage includes renamed/GDK layouts, client-versus-editor ordering, nested and similarly named backups, copied DLLs in another engine, malformed/unknown-encoding/UTF-32 XML, valid UTF-16 XML, save-folder naming and other-engine module-folder reporting. - Independent read-only comparison with 15 other engine fixtures found no detection/routing regressions. - Read-only scan of a real local v1.4.8 install: detected Bannerlord, matched the live XML version, selected the official module route and found the save/config container. - Static inspection of that installation's MBSubModuleBase and CampaignBehaviorBase declarations; Sage tool schemas and official documentation links checked against their public sources. - `um kb check --index`: 182 notes passed. - `um publish check .`: 0 failures; 2 existing warnings in unrelated knowledge notes. - All 10 CLI help groups, Python syntax checks, skill-copy checks and `git diff --check` passed. **Not verified:** no modded game was launched and no gameplay or save/load result is claimed. The guide requires those checks for a produced mod. Scanner fixtures for other version strings test parsing only. Upstream PR CI requires a maintainer's approval to run; it is not being counted as passed. **Checklist** - [x] Tests pass (the equivalent Python command was used; no `uv` installed). - [x] Knowledge index is unchanged: this is a tool/playbook contribution, not a new field note. - [x] No game files, extracted assets, decompiled code dumps or secrets. - [x] Nothing that cheats other players or bypasses anti-cheat / DRM / ownership checks. - [x] Versions, verification and unverified behavior are written down. - [x] Authored by Codex (GPT-6), using BannerlordSage for research, with @hby7921. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-15 20:54:33 +00:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rehan-remade/universal-modder#227
No description provided.