Agents Builders

Testing phase timestamps

Shipped
testing-phase-timestamps

Created

Jul 08, 06:33

Started

Jul 08, 07:25

Completed

Jul 08, 13:37

DevOps handoff

Type

Feature

Shape

ui+db

Worktree Slug

testing-phase-timestamps

Repositories

mcritchie-studio

Release Slug

Branch

feat/testing-phase-timestamps

QA URL

Production URL

observability telemetry devops

Acceptance Criteria

  • Registry of five task-owned testing phases
  • full-suite-check emits cert start/finish TaskEvents
  • bin/task stamps approval_approved_at on acceptance
  • Phase windows derive from durable TaskEvents
  • TaskTestingPhase materialized projection, recomputed idempotently
  • Per-phase durations on timeline and aggregate view
  • Backfill existing tasks from historical events

Expected Test Plan

  • [unit] phase-window rollup from TaskEvents, approval, CI
  • [component] timeline renders per-phase duration chips
  • [integration] cert events + approval + CI to projection
  • [e2e] aggregate per-phase latency view loads

Checks Run

  • [unit] TestingPhases projection (build/refresh/cached_or_built) + approval_approved_at stamp + TaskIntelligence#testing_phase_speed_series
  • [component] task-show 'Testing phases' card renders per-phase durations; /intelligence testing-phase-speed chart container present
  • [integration] real write paths (transitions, cert checkpoints, approval stamps) round-trip through the persisted projection
  • [e2e] Playwright happy path: task page phase card + /intelligence 'Testing phase speed' chart canvas
  • [full-suite@ef0aa4d5b3941e92c77e15e53f02f18e8ada4ea1] bin/rails db:test:prepare test test:system green
  • [rubocop@ef0aa4d5b3941e92c77e15e53f02f18e8ada4ea1] bin/rubocop clean
  • [post-deploy] bin/rails tasks:backfill_testing_phases on mcritchie-studio-qa → ok (2026-07-08T13:11:26Z)
  • [post-deploy] bin/rails tasks:backfill_testing_phases on mcritchie-studio → ok (2026-07-08T13:35:43Z)

Agent Context

Observability layer for TESTING latency - the measure-first foundation before any pipeline reimagining. Endorsed with hardening (all folded in). PHASE SET (the five, TASK-OWNED, individual through reviewed; anchor every window on DURABLE events, never the session-bound token capture which taints under subagent fan-out): 1. Build - building transition to first cert start (implementation + directional testing; explicitly ABSORBS the build/implementation span so it is not left unnamed - often the fattest bar). 2. Local Certification - cert start to cert finish (full-suite-check + dor-check). NEEDS NEW STAMPS: no durable event exists today, so full-suite-check must emit a cert-started and a cert-finished TaskEvent (it already knows both moments). This is the fat bar we most want to see; without the stamp the dashboard has a hole exactly where the pain is. 3. CI - PR opened to all required GitHub checks green (derive from GitHub checks API timestamps). 4. Review - submitted to reviewed (derive from TaskEvents). 5. Operator Acceptance - approval_requested_at to approval_approved_at. NEEDS approval_approved_at: the requested timestamp exists but the approved one likely does not, so bin/task must stamp approval_approved_at on the approval transition. RULE: derive where the event exists (Build, CI, Review); add the two minimal durable stamps where it does not (cert start/finish TaskEvent; approval_approved_at). Not a stamping burden - the tool that owns each transition emits one line. PERSISTENCE (decision 1): model TaskTestingPhase on the existing Release::DurationCache pattern - a MATERIALIZED read-model projection recomputed idempotently from TaskEvents/approval/CI, never hand-maintained (drift-proof, backfillable, dashboard-queryable). Single-task timeline may derive-on-read; the aggregate view needs the materialized table. Anchor windows on durable TaskEvents, not token capture. MVP (decision 2): the five task-owned phases only. RELEASE-OWNED phases (QA, Production) are OUT of MVP and are RELEASE grain, not per-task - do NOT smear a shared release window onto each member task (double-counts). They land as a fast-follow, stamped on the Release, inherited by membership. SUCCESS SIGNAL: when Local Certification surfaces as the fat bar in the aggregate view, that is the data-backed mandate to move it to CI. DEFERRED (NOT this task; a data-driven follow-on program the phase data will justify): retire the local full-suite from the submitted gate and make CI-green authoritative (ci-scope-capture already ingests CI verdicts as gradeable evidence); shard the CI suite; impact-based test selection; ephemeral QA environments. Coordination: a separate tiny task caps full-suite-check parallel workers - reconcile the bin/full-suite-check diff. Rides the same telemetry substrate as the usage-accuracy epic (PR #455 shipped Phase 1; Phases 2-3 pending) but is independent and higher-leverage for this process pain.

Testing phases

durable timing

How long this task spent in each testing phase — Build → Local Certification → CI → Review → Operator Acceptance.

Build

38 minutes

Completed

Local Certification

about 5 hours

Completed

CI

Missing

Review

about 5 hours

Completed

Operator Acceptance

about 5 hours so far

In progress

Stage Timeline

Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. means the agent didn't report that metric.

Sizing Avi · PO LARGE Dev LARGE Actual LARGE
  1. Created Designed
    C Chikorita
    Chikorita
    Model
    Duration
    Tokens
    Cost
    Completed Jul 08, 06:33 · about 12 hours ago
    api
  2. Designed Building
    C Chikorita
    Chikorita
    Model
    claude-opus-4-8
    Duration
    about 1 hour
    Tokens
    107,885,940
    Cost
    ~$68.73
    Started Jul 08, 06:33
    Completed Jul 08, 07:25 · about 11 hours ago
    cli
  3. Building Submitted
    B Bayleef
    Bayleef
    Model
    claude-opus-4-8
    Duration
    about 1 hour
    Tokens
    121,813,518
    Cost
    ~$88.93
    Started Jul 08, 07:25
    Completed Jul 08, 08:17 · about 10 hours ago
    cli
  4. Submitted Reviewed Review Activity
    S Shannon
    Shannon primary
    C Carl
    Carl light
    Model
    claude-opus-4-8
    Duration
    about 5 hours
    Tokens
    27,810,215
    Cost
    ~$27.29
    Started Jul 08, 08:17
    Completed Jul 08, 13:00 · about 5 hours ago
    cli
  5. Evolve
    B Bayleef
    Bayleef
    M Meganium
    Meganium
    triggered by
    S Shannon
    Shannon
    Model
    Duration
    about 5 hours
    Tokens
    Cost
    Started Jul 08, 08:17
    Completed Jul 08, 13:00 · about 5 hours ago
  6. Reviewed Assembled
    S Steffon
    Steffon
    Model
    claude-opus-4-8
    Duration
    12 minutes
    Tokens
    4,912,676
    Cost
    ~$3.53
    Started Jul 08, 13:00
    Completed Jul 08, 13:13 · about 5 hours ago
  7. Assembled Shipped
    A Avi
    Avi
    Model
    claude-opus-4-8
    Duration
    25 minutes
    Tokens
    6,718,386
    Cost
    ~$4.50
    Started Jul 08, 13:13
    Completed Jul 08, 13:37 · about 5 hours ago

Conversation

QA review feedback, agent handoffs, and follow-up notes for this task.

No task feedback has been recorded yet.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

LARGE

Dev

LARGE

Actual

LARGE