Prompt file imported from akspa0/parp-tools (
.codex/prompts/wow-viewer-cli-gui-surface-plan.md). Copyright stays with the author.
Design the dual-surface tool plan for wow-viewer so the reformed tool suite can expose both CLI commands and GUI panels without duplicating format logic or workflow code.
Read First
gillijimproject_refactor/memory-bank/activeContext.mdgillijimproject_refactor/memory-bank/progress.mdgillijimproject_refactor/src/MdxViewer/memory-bank/activeContext.mdAGENTS.mdgillijimproject_refactor/plans/v0_5_0_wow_viewer_bootstrap_and_migration_draft_2026-03-25.md
Goal
Define how the new tool suite exposes the same shared capability through both CLI and GUI surfaces, using one service layer instead of separate implementations for panels, commands, and one-off executables.
Existing GUI/Interactive Inputs To Account For
MdxViewersidebars, inspectors, exporters, previewers, and conversion panels- asset-catalog and screenshot workflows
- PM4 and WDL utilities
- terrain import/export and related panel-driven workflows
- dataset explorer and supervision or curation workflows
- training-review or launch workflows that need local-only reproducibility without bundled proprietary outputs
Existing CLI/Headless Inputs To Account For
WoWMapConverter.CliAlphaWdtAnalyzer.CliPm4Research.CliWlAnalyzer- any old console-style tools in
parpToolbox,PM4Tool,ADTPrefabTool, andWoWRollback - Python-side dataset or training scripts that should eventually become wow-viewer-owned orchestration or manifest surfaces instead of permanent standalone owners
Non-Negotiable Constraints
- CLI and GUI must call the same first-party shared services.
- Panel code must not own file parsing, conversion, or export logic.
- CLI tools must not become second-class wrappers around hidden GUI behavior.
- Batch/headless workflows must remain possible for converter/export/audit operations.
- Long-running operations should have service boundaries that work in both interactive and non-interactive hosts.
- Bring Your Own Data constraints must hold across both surfaces; the tool should not depend on shipping copyrighted corpora, trained models, or proprietary model outputs.
- Training or inference orchestration should be driven by shared configs and service boundaries, not separate ad-hoc GUI-only or CLI-only launch code.
- Do not assume CUDA-only execution in the long-range design. Backend-specific runners should plug into the same shared orchestration seams.
What The Plan Must Produce
- The shared service boundary for dual-surface tooling.
- The CLI command families.
- The GUI panel families.
- Which tool capabilities should be CLI-only, GUI-only, or dual-surface.
- Progress/reporting/cancellation design across both surfaces.
- The first dual-surface workflow to build.
- The migration risks if surfaces stay duplicated.
- Which training or explorer capabilities should remain local-only and non-distributable.
- Where backend-runner abstraction belongs.
Deliverables
Return all items:
- service-layer breakdown
- CLI command tree
- GUI panel tree
- dual-surface mapping by tool family
- cancellation/progress/reporting design
- first workflow to implement in both surfaces
- duplication risks still remaining
First Output
Start with:
- the tool families that most need dual-surface support
- the shared services they should sit on
- which capabilities should stay CLI-only or GUI-only for now
- the first end-to-end workflow you would implement both ways
