Goal: turn the tree from a browse tool into an audit tool for ~80 projects.
Scope: filtering/rollups (#1), fixture-repo noise suppression (#2), explicit always-run flagging (#3). All three are filesystem-only — no network/API dependency, so this phase ships without needing #4's server-access design.
Out of scope: anything requiring live Woodpecker API data (that's v0.3).
Exit criteria: pipetree --filter and a summary/rollup mode both exist; a fleet-wide scan of ~/projects no longer surfaces the woodpecker mirror's own test fixtures by default; every when-less step/pipeline is visibly flagged in tree and JSON output.
v0.3 — CI health
Goal: add the layer pipetree structurally lacks — is a pipeline actually broken, redundant, or stale, not just what it declares.
Scope: live run status/history from the Woodpecker API (#4), then cross-pipeline structural analysis — shared images, unreachable steps, orphaned files (#5). #5 depends on the JSON shape having been exercised by both #1 (v0.2) and #4, so it's sequenced second within this phase.
Out of scope: exposing any of this outside the CLI (that's v0.4's MCP wrapper).
Exit criteria: a scan can show last status/last-run-age per pipeline; a separate report surfaces shared step images, unreachable steps, and orphaned .woodpecker/*.yaml files across the fleet.