Skip to content

plan-backlog: guided, project-maturity-aware mode (from user feedback) #72

Description

@atamanvega

Motivation — user feedback

From an early user (Santi) trying plan-backlog on a real Android app — working well overall.

In short: plan-backlog produces a good plan, but does too much in one shot — it absorbs the product-discovery/definition that should be the PO's, and hands every decision to the agent. It should elaborate progressively (zoom-out → zoom-in) with alternatives and decision points at each level; how much depth is right depends on maturity.

Two sharp observations about plan-backlog specifically:

  • It felt overwhelming — too much at once (a full backlog in a single shot). (Fair to note: that may not be the intended usage.)
  • It produced a good plan, but absorbed part of the product discovery that should be the PO's definition work. It should move in steps from zoom-out to zoom-in (high-level → detailed), offering alternatives at each level, rather than handing every decision to the agent. The agent should facilitate discovery, not replace the PO's judgement.

The two things this identifies

  1. It absorbs product discovery. plan-backlog's "discovery-first" today means discovering the tracker's conventions (issue types, hierarchy) — not product discovery (exploring the problem, scope, options). So it jumps straight to a full solution and eats the definition work that's the PO's job.
  2. It's one-shot / all-decisions-to-the-agent. One big draft + a single end gate = all-or-nothing. The ask is progressive elaboration with decisions along the way.

Design — guided mode, decided per invocation

Guided (progressive) mode — zoom-out → zoom-in, alternatives at each level

  1. Framing (zoom-out): restate the goal, map the problem space, and help define the project/feature — offer 2–4 framing alternatives (e.g. MVP vs full, different ways to slice it) → PO chooses.
  2. Epics/themes: for the chosen framing, propose epics with alternatives → PO adjusts.
  3. Stories: per epic, user stories + acceptance criteria, offering scoping alternatives → PO refines.
  4. Assemble → approve → create (today's gate + creation).

3 levels; each step offers options (2–4, as needed) and asks for a decision instead of emitting a full backlog at once.

Mode: guided by default, decided per invocation (settled)

  • Default = guided. --quick is an explicit opt-in for the one-shot draft. Even on mature projects, still do a light framing check — don't assume framing is unneeded.
  • Decided per invocation, never persisted. There are two maturities: the project's and the feature's — a mature project can still have a brand-new feature — so a persisted mode would be wrong. Judge each run.
  • Maturity signals (discovery-first, never imposed): repo docs (an empty repo vs. one with a defined stack + conventions), and how much useful context the brief carries. Ask once only when ambiguous.

Guardrails preserved in both modes: approval gate, no fabrication, adapters for Jira/Linear/GitHub/Azure.

Decisions (settled with early feedback)

  • Zoom levels: 3 (framing → epics → stories); framing must help define, not just structure.
  • Alternatives per step: variable, 2–4.
  • Maturity signals: repo docs + brief context.
  • Default mode: guided; --quick opts into the one-shot draft; keep a framing check even for mature projects.
  • Mode persistence: per invocation only — project maturity ≠ feature maturity.

Out-of-scope spin-offs

Design settled with early feedback — ready to carve a v1 of the guided mode. Thanks @santielizondo!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions