Skip to content

Split CLI and dashboard plugin adapters into focused modules #97

Description

@skylarbpayne

Problem

The CLI and dashboard plugin adapter are too chunky for contributors to reason about quickly:

  • src/hermes_workflows/cli.py mixes parser construction, environment handling, registry/source resolution, and command execution in one large module.
  • dashboard/plugin code mixes route definitions, catalog/source discovery, artifact rendering, redaction, Review Queue actions, and runtime status projection.

This is not blocking launch, but it will slow post-launch maintenance and make small changes riskier than they need to be.

Desired outcome

Split CLI and dashboard/plugin adapter code into small composable modules with obvious ownership.

Suggested CLI shape:

  • cli/parser.py
  • cli/run.py
  • cli/worker.py
  • cli/review.py
  • cli/status.py
  • cli/registry.py

Suggested dashboard/plugin shape:

  • dashboard/routes.py
  • dashboard/catalog.py
  • dashboard/artifacts.py
  • dashboard/review_actions.py
  • dashboard/status_projection.py

Scope / notes

Keep command names and route behavior stable. This is a modularity/refactor issue, not a UI redesign.

Acceptance criteria

  • CLI main() becomes mostly dispatch, with each command configured/handled by a focused module.
  • Dashboard/plugin adapter separates routes from catalog/artifact/review/status helpers.
  • Existing CLI and plugin tests pass.
  • No operator-facing command/route behavior changes unless explicitly documented.
  • Add a short maintainer note explaining where to add new commands/routes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestroadmapPlanned or possible future workuxUser experience or dashboard polish

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions