chrisbanes / chrisbanes/ensemble

Add a read-only workflow execution preview

Open
#593 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement ready-for-agent
Dominant language
Rust
Stars
11
Forks
0
Avg merge
23h 12m
Merged PRs (30d)
84

Description

Summary

Add a public read-only preview that shows how Ensemble would interpret and order work for a configured tracker without claiming an issue or starting execution.

This is the shadow-mode evidence needed before #517 gives Ensemble mutation authority over an existing production Project. ensemble run --once is a bounded executor, not a dry run.

Contract

  • Add an ensemble preview command that uses the normal configuration-directory resolution and validation path.
  • Resolve the configured tracker, Project fields, priority options, ownership policy, workflow-selection rules, lanes, and blocker support through the same production interfaces used by execution.
  • Perform a complete fresh tracker read and apply the same normalization, eligibility, workflow selection, and deterministic ordering logic used immediately before claim acquisition.
  • Emit versioned JSON containing:
    • the configuration identity needed to compare two observations;
    • every selected issue's stable identity, normalized state, priority, tracker position, labels, and blockers;
    • selected workflow, Pipeline, lane, rule precedence, and ordering reason;
    • recoverable ownership or delivery identity already known to Ensemble;
    • open durable operator-attention items relevant to the configured tracker;
    • excluded or blocked items when their omission would otherwise make the preview misleading.
  • Fail closed without emitting a successful preview when the tracker read, pagination, Project field resolution, blocker snapshot, ownership evidence, or selected configuration is incomplete or ambiguous.
  • Do not claim or assign an issue, mutate tracker state, create a Workspace, launch an agent, publish a comment, push a branch, create or update a pull request, merge, queue, close, or clean up anything.

Acceptance criteria

  • Preview and execution share the same normalization, selection, and ordering implementation rather than maintaining parallel policy logic.
  • A tracker spy proves that the command invokes no mutating adapter operation.
  • Tests cover configured priority ordering, Project position, native blockers and descendants, workflow and lane precedence, ineligible and malformed items, existing recoverable ownership, open operator attention, complete pagination, and unknown or partial remote state.
  • Repeated previews over unchanged tracker state produce the same ordered semantic result apart from explicitly volatile observation metadata.
  • The command exits nonzero on incomplete or ambiguous evidence and never converts a partial read into an empty queue.
  • The JSON output is documented well enough to compare an Ensemble observation with another executor before cutover.
  • The GitHub Project reference guide uses preview as the first external-project rollout step.

Architectural constraint

  • Preview is a generic observation of configured runtime policy. It must not add Planning, Ready, triage, epic, or github_project_drain concepts to the core model.
  • The command grants no mutation authority and must not reserve scheduler or agent capacity.

Out of scope

  • Simulating agent output, tracker mutations, delivery repair, or merge results.
  • Reserving work for a later run.
  • Replacing the production proof in #517.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the command entry point for ensemble run --once, the normal configuration and tracker-resolution path, and the shared normalization, workflow-selection, and ordering logic. Review the tracker adapter and existing test structure, then use a tracker spy to verify that preview performs no mutation. Done means complete versioned JSON, fail-closed handling for incomplete evidence, documented output, and the listed preview and rollout tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.