Skip to content

Add Vortex extension design doc (Unit 4, design only) - #4

Merged
TheValiantOne merged 1 commit into
mainfrom
chore/vortex-extension-design-doc
Aug 7, 2026
Merged

Add Vortex extension design doc (Unit 4, design only)#4
TheValiantOne merged 1 commit into
mainfrom
chore/vortex-extension-design-doc

Conversation

@TheValiantOne

Copy link
Copy Markdown
Owner

Summary

  • Adds docs/vortex-extension-design.md: a design document for a future Vortex (Nexus Mods mod manager) extension that would drive WitcherScriptMerger's existing CLI (merge) and MCP (scan_conflicts, merge_conflicts, get_status, list_merges) interfaces from Vortex's TypeScript/Node extension runtime.
  • This is a design-only deliverable, per this unit's scope in a larger, multi-unit re-architecture plan (DiffPlex/dependency replacement, headless-first CLI/MCP hardening, Linux support, test project, etc., tracked as separate units). No TypeScript/Node code, no Vortex extension scaffolding, and no changes to the .NET solution are included or intended in this PR.
  • Covers: tech stack (TypeScript/Node, separate package/repo from this .NET solution), install/setup flow (including dependency on two other, not-yet-landed units of this same batch — a self-contained single-file publish and a headless-only build), an invocation-model recommendation (CLI merge as the lower-risk default, MCP as a v2 enhancement for conflict preview/history/status), a data-model mapping between Vortex's mod/load-order state and WSM's ModsDirectory/mods.settings/MergedModName, proposed UX surface, and a list of open questions for the repo owner to resolve before real implementation starts.

Why

Vortex already has mature, built-in support for managing Witcher 3 mod installation and load order, and its own (separate, older) integration with a different Script Merger fork. A first-class Vortex extension for this repo's WSM — with its newer CLI/MCP headless interfaces — needs a written plan before anyone starts writing TypeScript against it, per the repo owner's explicit direction for this unit.

How I verified it

This is a documentation change, so there's no build/test in the traditional sense. What I did:

  • Read CLAUDE.md in full and grounded every claim about WSM's own CLI/MCP behavior against it plus the actual source (Program.cs's RunCli/RunMcp, Mcp/WsmMcpTools.cs, Paths.cs, AppSettings.cs) rather than paraphrasing from memory — e.g. the CLI's exact exit-code semantics (0/1/2) came from reading Program.cs directly, not from CLAUDE.md's prose.
  • Fetched and read Vortex's actual, current game-witcher3 extension source directly (gh api repos/Nexus-Mods/vortex-games/contents/game-witcher3/index.js) to document real prior art instead of guessing: it already auto-downloads a different WSM fork (IDCs/WitcherScriptMerger), already rewrites WitcherScriptMerger.exe.config's GameDirectory/VanillaScriptsDirectory/ModsDirectory via setMergerConfig(), already parses MergeInventory.xml, and expects a locked mod0000_-prefixed merged-mod folder — all called out and reconciled with this design rather than treated as if this were greenfield.
  • Ran the code-review skill against the diff. It independently re-fetched the Vortex source and caught several factual errors in my first draft (most importantly: I'd initially claimed Vortex's existing tool-launch was a proven headless-invocation precedent — it's actually a GUI launch with an empty argument list, which I verified myself against the source and then corrected, along with several other findings: an internal contradiction between the CLI's exit-code semantics and a UX bullet, an overstated table row, and an unexamined Proton-vs-native-Linux-build assumption). All findings were verified against source before being incorporated.
  • Confirmed dotnet build WitcherScriptMerger.sln still succeeds (doc-only change, but checked per this repo's process).
  • Scanned the diff for machine-specific absolute paths before committing — none found.

AI assistance disclosure

This PR was produced by Claude Code (Claude Sonnet 5), per this repo's AI-assisted-development disclosure policy in CONTRIBUTING.md. Includes independent fact-checking against both this repo's source and Vortex's third-party source, and a self-correction pass after the code-review skill caught inaccuracies in an earlier draft (detailed above).

https://claude.ai/code/session_01GXAuGMLB44T5Zv5o5ZzKah

Design document for a future Vortex (Nexus Mods) extension that would
drive WSM's existing CLI (`merge`) and MCP (`scan_conflicts`,
`merge_conflicts`, `get_status`, `list_merges`) interfaces from Vortex's
TypeScript/Node extension runtime, instead of only through direct
invocation. Covers tech stack, install/setup, invocation model
(CLI-first recommended, MCP as a v2 enhancement), data model mapping
between Vortex's mod/load-order state and WSM's mods directory/
mods.settings, proposed UX, and open questions for the repo owner.

No code changes - this unit is explicitly design-only per this batch's
plan; TypeScript/Vortex implementation is deferred to a later batch.
Grounded directly against this repo's CLAUDE.md and against Vortex's
actual, current game-witcher3 extension source (fetched via `gh api`)
to document real prior art - including its GUI-only tool invocation,
its existing WitcherScriptMerger.exe.config rewriting, and its
MergeInventory.xml/Collection-import behavior - rather than assuming
or inventing capabilities on either side.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GXAuGMLB44T5Zv5o5ZzKah
@TheValiantOne
TheValiantOne merged commit 17eb0c9 into main Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant