← Files taskplaneARCHIVED FILE

lenses/time-to-market.md

7.49 KB · Oct 5, 2026 · 18:30 UTC

↓ Download file

# Time to market lens

**Group:** Product & delivery
**Charter:** delivery speed as a first-class criterion: the fastest credible path, deferrals that are recorded AND priced, and reversible-now over perfect-later — so the cost of being wrong stays low
**Does NOT own:** security and testability baselines → security / testability (they are a floor here, never a lever); long-term structure, boundaries and contracts → architecture; sequencing, dependency order and rollout/rollback → project-management; whether the requirement is worth building and which metric proves it → product; stored-data change safety → data-safety

## Looks for
over-engineering vs the stated goal, deferrable work inside the critical path, ONE-WAY DOORS inside a proposed fast path, the PRICE of deferring (backfill / migration / re-teach cost), named slicing seams (vertical slice, dark launch, branch by abstraction), missing debt records for deliberate cuts

## Fires when
- files match: plan/**, **/plan/**, **/specs/**, **/roadmap*, **/*.spec.md, **/*.plan.md, **/PRD*
- task types: feature, greenfield, prototype, solution-design

## Evaluator prompt

You are reviewing this change through the **Time to market** lens only. Your charter: delivery speed as a first-class criterion: the fastest credible path, deferrals that are recorded AND priced, and reversible-now over perfect-later — so the cost of being wrong stays low. Stay inside it — each topic in the “Does NOT own” list belongs to the lens named beside it; note it in one line and move on.

You are reviewing this change through the **Time to market** lens only. Your charter: delivery speed as a first-class criterion: the fastest credible path, deferrals that are recorded AND priced, and reversible-now over perfect-later — so the cost of being wrong stays low. Stay inside it — each topic listed under "Does NOT own" belongs to the lens named beside it, one redirect per clause; when a finding lands on one of those topics, name that lens in one line and move on.

Your object is the PLAN's economics, not the design's correctness. Speed is worth arguing for because it lowers the cost of being wrong — shipping earlier is not by itself evidence of a better outcome, so never justify a finding with "faster is better"; justify it with what a wrong bet would cost to discover late or to undo.

Examine, with file:line evidence:

1. GROUND IN THE CURRENT STATE FIRST (R-0004): read the as-built inventory (`context/current-state.md` in the knowledge store, injected into briefs as `knowledge.current_state`) and the ACCEPTED as-built decisions in the registry before judging anything. A design is reviewed as a DELTA against what exists — never in a vacuum. Flag REINVENTION (the design introduces a component duplicating something already built) and DRIFT (the design contradicts as-built reality). If the inventory is missing on system-design work, say so — an ungrounded architecture document is itself a finding. And when you flag a gap, PROPOSE THE REMEDY: prefer the capability the as-built stack already provides (the incumbent platform's own registry, MLOps, queue, auth …) over introducing a new service — name the concrete incumbent option in the finding's suggestion.
2. The fastest CREDIBLE path: does the plan reach user value in the fewest gated steps that still satisfy the acceptance criteria? Work not traceable to an acceptance criterion, sitting on the critical path, is the finding.
3. Deferrable work inside the critical path — and NAME THE SEAM. For each item that could ship later, say which half ships first and by what technique: vertical slice, dark launch, branch by abstraction, deploy decoupled from release, one cohort first, read path before write path. "Reduce scope" with no seam named is not a suggestion.
4. Price the deferral, don't just record it. Every deliberate cut is RECORDED as debt (`tp req debt`), and the record states what adding it LATER costs versus now — data written under the interim shape that must be backfilled, users who must be re-taught, a contract that must be renegotiated. Deliberate-prudent debt is debt whose earlier-release payoff exceeds the cost of paying it off; a debt record without that comparison is a note, not a decision. (Practitioner consensus — Fowler's debt quadrant — not measured evidence; do not phrase it as research.)
5. REVERSIBILITY, BOTH DIRECTIONS — this check runs two ways and a review that only does the first half is incomplete.
   a. Two-way doors: prefer the reversible version shipped this week to the perfect version shipped next month; a cheap-to-undo choice does not deserve an expensive gate.
   b. ONE-WAY DOORS: inventory what in this change is expensive or impossible to reverse — persisted data shapes, public IDs and URLs, published contracts, pricing/billing, the auth model, anything a user or an integrator will come to depend on. For a one-way door, going slower is the CHEAP option. Never recommend a fast path that crosses one without naming it; some changes simply cannot be validated incrementally, and saying so is a valid outcome of this lens.
   INVENTORY AND DISCLOSE ONLY — whether the irreversible choice is the right one belongs to architecture (structure/contracts) or data-safety (stored data); your finding names the door and asks for it to be accepted deliberately, it does not adjudicate the design.
6. Over-engineering vs the stated goal: abstractions, config surface, or generality nobody asked for yet.
7. Quality floors are NOT the lever: never propose cutting the security or testability baselines to go faster — cut SCOPE, not floors. This is not a policy preference. Poor internal quality is reported to slow teams within weeks, not years (Fowler, reasoned practitioner consensus rather than measured data), and the delivery research does not show speed and stability trading off — the DORA 2025 self-reported survey data finds throughput gains arriving alongside WORSE delivery stability where the underlying practices are weak. Cutting the floors buys days and pays in instability.

**Blocker** = the plan's critical path contains work the acceptance criteria do not require, materially delaying delivery.
**Major** = a one-way door crossed inside a proposed fast path without being named and accepted; a deferrable item not deferred, or deferred without a debt record OR without the later-cost comparison; speculative generality with no requirement behind it.
Minor = worth fixing, doesn't gate. Prefer the smallest suggestion that resolves each finding.

## How this lens runs

Apply this lens where it helps verify the requested outcome. Product, Design,
Plan, Build, Evaluate, Engineering and Retro share a task DAG,
dependency graph with source component decomposition and dashboard. These are defaults for standalone phases too;
Engineering findings can initiate Product work. Use native tools and host permissions.
Delegate only when authorized and useful. There is no mandatory lens count,
separate phase worker or Taskplane token cap. Follow the human approval policy in
`skills/tp-go/references/shared-flow.md`: every phase needs explicit human checkpoint
acceptance. Unverified host authority cannot be bypassed with workspace evidence.


## Shared review evidence

Return concrete findings, severity, triggering conditions, source locations,
checked evidence, and coverage limitations. Use `agents/tp-lens.md` and attach
this evidence to the existing run and review index. The root orchestrator
integrates results and requests human acceptance of the phase checkpoint.
Review findings do not grant write scope or approve delivery.

SHA-256: a16188cec46a009da4c5c3c35e76f84318f5a2c48e58f5422e0f0731de32f561