Research spike: WolvenKit as a QuickBMS/wcc_lite replacement - #3
Merged
Conversation
Researches whether WolvenKit.Modkit/WolvenKit-7 could replace QuickBMS + wcc_lite for .bundle unpack/repack. Finding: WolvenKit.Modkit targets Cyberpunk 2077 (wrong engine/format entirely); WolvenKit-7 (the actual Witcher 3 tool) has an unimplemented metadata.store writer (confirmed via its own GitHub issue #33 and a literal TODO stub in current source) and its own pack pipeline still shells out to the same closed-source wcc.exe WSM already depends on. Recommends staying parked on QuickBMS/wcc_lite (option c) rather than relicensing WSM or adding a new external dependency for no net capability gain. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GXAuGMLB44T5Zv5o5ZzKah
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is Wave 0 / Unit 3 of the ongoing re-architecture effort: a research spike, not an implementation change. Deliverable is a single new doc,
docs/decisions/bundle-format-replacement-spike.md.WolvenKit.Modkit(NuGet, GPL-3.0) could replace QuickBMS (.bundleunpack) + wcc_lite (.bundlerepack +metadata.storeregeneration), both currently invoked as external processes with no license file in their local distribution.WolvenKit.Modkittargets Cyberpunk 2077 / REDengine 4 (.archiveformat) — the wrong game/format entirely. The actual Witcher-3-targeted tool is a separate repo,WolvenKit/WolvenKit-7.WolvenKit-7does contain a pure-C#.bundle/metadata.storereader (WolvenKit.Bundles), but it's not published as a NuGet package, targetsnet481, and is coupled to WinForms/WCF — not a drop-in dependency.WolvenKit-7'smetadata.storewriter is unimplemented — confirmed both via its own tracking issue (WolvenKit/WolvenKit#33, "Metadata.store parser," opened 2017, closed 2022 with the- [ ] Writerchecklist item never checked) and by reading the current source:Metadata_Store.Writeis a literal//TODO: Code this when everything is figured out.stub, and every serializer throwsNotImplementedException().WolvenKit-7's own GUI pack pipeline still shells out to the same closed-sourcewcc.exeWSM already depends on.No code changes — doc-only. Per the unit's scope, no implementation was attempted even though parts of the read path looked feasible; that's explicitly out of scope here.
How this was researched/verified
WitcherScriptMerger/Tools/QuickBms.cs,WitcherScriptMerger/Tools/WccLite.cs,CLAUDE.md's "External tool dependencies," and the rootLICENSEdirectly.witcher3.bms(the QuickBMS plugin WSM's configured tooling ships) directly for.bundleformat comments — reachable in this environment; the doc says so explicitly and doesn't block on that reachability for future readers.WolvenKit.Modkit's andWolvenKit.RED3.CR2W's NuGet Gallery pages for descriptions/dependencies/license/owner.gh api/gh issue viewto pull real repo metadata (license, push dates, star/issue counts) forWolvenKit/WolvenKit-7, the full body/checklist/comments of issue #33, and the literal current source ofWolvenKit.Bundles/Metadata_Store.cs,Bundle.cs,WolvenKit.Bundles.csproj,WolvenKit.Common/Model/Wcc/wcc_task.cs,WolvenKit.App/Model/WccHelper.cs, andWolvenKit.Console/Options.cs— pinned at commitc3c1c2028177de37c97a2706412b499a5c04cbf4(noted in the doc's Sources section for future re-verification).LICENSE(none found) to support the license-compatibility analysis.code-reviewskill against the diff; it fact-checked citations against live sources and flagged two real issues (a self-contradictory description of the license grep methodology, and an incomplete framing of option (a) that didn't account for WSM being a fork with pre-fork copyright — relicensing may need consent beyond current maintainers). Both fixed before this PR.dotnet build WitcherScriptMerger.slnsucceeds (doc-only change, included as a sanity check per the unit's process).Full citation list with URLs is in the doc's own "Sources consulted" section.
AI assistance disclosure
This PR was researched and written by a Claude Code agent (Sonnet 5), per this repo's
CONTRIBUTING.mdAI-assisted-development policy. All factual claims are attributed to a URL or a specific file/commit read directly rather than asserted from model knowledge.Test plan
dotnet build WitcherScriptMerger.slnsucceedsgh api/gh issue viewcall)G:\SteamLibrary\...) left in the diffcode-reviewskill run against the diff; findings addressedhttps://claude.ai/code/session_01GXAuGMLB44T5Zv5o5ZzKah