Skip to content

Add accessible Author CLI with full AuthorTool parity - #1

Draft
buu420 wants to merge 12 commits into
RealAmethyst:masterfrom
buu420:full-author-cli
Draft

Add accessible Author CLI with full AuthorTool parity#1
buu420 wants to merge 12 commits into
RealAmethyst:masterfrom
buu420:full-author-cli

Conversation

@buu420

@buu420 buu420 commented Aug 5, 2026

Copy link
Copy Markdown

Summary

  • extract AuthorTool business logic into a shared AccessibilityModManager.Authoring assembly so the graphical tool and command line use the same validation, trust gates, and publishing workflows
  • add amm-author, an accessible, scriptable Windows CLI covering project, author, game, dependency, lifecycle script, package, release, index, GitHub, Patreon, server, and signing workflows
  • add a separately built amm-author-admin variant for signed global-registry maintenance; ordinary builds cannot perform privileged registry mutations
  • add self-contained build scripts, screen-reader-friendly plain-text output, stable JSON output, explicit dry-run/confirmation behavior, secret-safe stdin handling, documentation, and comprehensive parity/workflow tests

Why

Authoring and publishing were available only through the WPF AuthorTool. That made the workflow difficult to use nonvisually and impossible to automate safely. The underlying services were also coupled to the GUI project, so adding a thin CLI alone would have duplicated policy and risked behavior drifting between interfaces.

This change moves the shared behavior into one non-UI authoring layer, then makes both interfaces call that layer. The CLI therefore preserves the same package validation, signing, trust, locking, reconciliation, and publication rules instead of creating a second implementation.

Behavior and compatibility

  • rebased onto current master / manager 1.18.1, preserving the newer catalog-source work
  • no generated executables or release assets are committed
  • the build script only creates local artifacts and SHA-256 files
  • the standard CLI exposes registry status but rejects privileged registry operations; those commands are compiled only into the admin variant
  • --yes confirms an already validated operation; it does not bypass safety or trust checks
  • passphrases are accepted interactively or through explicit stdin options, never as ordinary command-line values
  • human output contains no ANSI control sequences and remains predictable for screen readers and redirected logs
  • JSON output and documented exit codes support automation

Validation

  • dotnet test AccessibilityModManager.slnx -c Release --no-restore
    • 1,212 passed
    • 0 failed
    • 1 skipped (the environment-gated published-binary smoke test)
  • built standard self-contained Windows x64 CLI with installer/build-author-cli.ps1 -SelfContained
  • built admin self-contained Windows x64 CLI with installer/build-author-cli.ps1 -SelfContained -Admin
  • directly exercised both command surfaces and verified both generated SHA-256 files
  • real-world dogfood: used release publish to build, validate, upload, reconcile, save, publish, and live-verify both Blind Soldier 0.1.1 x64 and x86 packages and their catalog entries

Review notes

The commits are intentionally layered: design and plan, shared-service extraction, CLI foundation, command groups, complete publication workflow, admin/signing support, parity hardening, then packaging. The two design documents under docs/superpowers describe command coverage, trust boundaries, and the rollout in detail.

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