Agents Builders
Apps

Designed

3
Turf model page adoption
D Drowzee
S turf-model-page-adoption 🐊
Jul 8 7:39a 7:39a
Comment
Fast-follow of mcritchie adoption (PR #456). Engine 0.12 draws the routes/controller/view into turf automatically; turf just registers its models + adds a link. turf already passed consumer CI vs 0.12 (green on engine PR #12), so the bump is safe (~> 0.11 already permits 0.12). OPEN DECISIONS for the builder: (1) which models to register — recommend Entry, Contest, Game, Player, PaypalPurchase (high-value inspectable records); (2) where the Model link lives (turf has no /deployments/all — pick an admin surface). Apply the same to_prepare registration + as_json column filter for any wallet/payment models with sensitive fields.
Guard worktree port test
D Drowzee
S guard-worktree-port-test 🪎
Jul 8 3:46a 3:46a
Comment
Surfaced by studio-engine PR #12 consumer CI. test/lib/agent_worktree_test.rb :: test_mcritchie_config_reserves_3020 loads bin/agent-worktree in a subprocess and dies 'repo missing: .../mcritchie-studio' when the sibling checkout is not at the expected path (e.g. the engine's consumer-CI env) -> subprocess prints nothing -> flunk. Fix: skip (or stub the repo-path resolution for) that config assertion when the mcritchie-studio checkout is absent, so it never false-reds an unrelated engine consumer-CI run. Integration tier N/A (test-only guard) -> [integration-bypass] at build. Pre-existing; not introduced by the model-page work.
Rolio dormancy shutdown
R Rattata
S rolio-dormancy-shutdown 📇 🪎
Jul 4 3:07a 3:07a

Building

1
Heartbeat Span Polish
J Jigglypuff
<1m
J Jigglypuff
33m
A Avi
heartbeat-span-polish 🪎
Jul 4 8:03p 11:22p
Comment 13 notes
Blocker checked: PR #379 is still draft, but GitHub reports it mergeable/clean with passing CI. PR #386 is open/non-draft and overlaps the heartbeat row files; local merge-tree shows real conflicts in heartbeat controller/table/grade partials. #386 does not fully supersede #379 because #379 also carries action-grade clear/drawer behavior and grade-cell sidebar targets. Recommended sequence: keep #379 blocked as dependency, let #386 land first, then rebase/dedupe #379 against release, mark ready, and resubmit.

Submitted

docs 2
Testing phase timestamps
C Chikorita
51m
C Chikorita
52m
B Bayleef
L testing-phase-timestamps 🪎
WAITING APPROVAL
REVIEW STARTED
Jul 8 6:33a 8:18a
Model page protocol
D Drowzee
1h
D Drowzee
19m
D Drowzee
S model-page-protocol 🪎
Jul 8 1:50a 7:38a
QA Feedback 3 notes
Parked on a dependency, NOT a review/code block: studio-engine 0.12 must merge (engine PR #12) + gem push before this can submit. Adoption is BUILT + verified — integration (7) + e2e green, live on :3011 via local engine 0.12. Cleared the stale 'waiting approval' badge (the app-local demo was already approved ~3h ago; we pivoted to engine-first). Resumes automatically on publish: revert Gemfile override -> bundle update studio-engine -> commit -> full-suite-check + dor-check -> PR into release -> submitted.

Archived

497
Cap full-suite-check parallel workers
C Chikorita
9m
C Chikorita
C Chikorita
S cap-full-suite-check-parallel-workers 🪎
Jul 8 6:33a 12:09p
Comment 2 notes
RECOMMEND ARCHIVE (abandon) — premise inverted during Task B build. The local test suite is single-process BY DESIGN: test_helper sets worker_count=1 unless CI or PARALLEL_WORKERS is present. The pg fork-safety SIGSEGV this task aimed to "cap" is actually CAUSED by forcing PARALLEL_WORKERS>1 locally — so a guardrail that caps workers is unnecessary, and the crash it targets cannot occur under the default single-process path. Verified: Task B's projection suite + full CI-faithful cert run serially with no crash. No code guardrail needed. Suggest archiving unless we later add an opt-in parallel local mode, in which case a cap belongs there.
Order Session Filter Recency
L Larvitar
<1m
L Larvitar
2h
P Pupitar
7m
S order-session-filter-recency 🪎
Jul 7 7:58p 6:32a
Handoff 3 notes
Avi review approved (2/2 merge-ready) — ready for Steffon's qa-release sweep. PRIMARY shannon (deep) + LIGHT jasper (light) both approve; CI green on #449 (test/lint/scan_ruby/scan_js). DoR gate genuinely met: head e3dacce0 tree c827cb2ad4b0 == recorded cert tree (dor-check STALE was the known tree-hash false positive). Inclusive union sort verified untouched (activity-only sessions kept, regression-tested); theme parity via --hb-muted; 3-tier coverage. One non-blocking nit both caught: compact_time_ago renders '0m ago' for the 45-59s window (just-now cutoff 45s vs 60s minute floor) — cosmetic, fold into a follow-up push if convenient, not a gate.
Standardize LLM Logging
G Gligar
<1m
G Gligar
12m
G Gligar
25m
standardize-llm-logging 🪎
Jul 7 1:33p 6:32a
Handoff 7 notes
pr-review moved standardize-llm-logging to reviewed after carl + alex reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers; PR satisfies LLM logging acceptance and is ready for Avi to advance. - alex: merge-ready - Light review found no blockers; Codex/Claude capture, installer wiring, docs, CI, and merge safety look ready.
Approval Ready Tasks
S Scyther
<1m
S Scyther
6m
S Scyther
17m
M approval-ready-tasks 🪎
Jul 7 5:34a 6:32a
Handoff 13 notes
pr-review moved approval-ready-tasks to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - No blockers found; approval wait metadata, sorting, pulse, Local Demo action, and handoff docs match acceptance. - carl: merge-ready - Carl light review found no blockers; approval wait state, board ranking, Local Demo action, and handoff docs align with acceptance.
Split Pokedex Cards
T Tangela
1m
T Tangela
17m
T Tangela
2h
split-pokedex-cards 🪎
Jul 7 3:07a 6:32a
Handoff 4 notes
pr-review moved split-pokedex-cards to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Shannon primary review found no blockers; PR #442 satisfies the three-card Pokedex acceptance criteria with green merge gates and no same-file overlap. - carl: merge-ready - Carl light read found no blockers; Pokedex now has Stats, Newest Pokemon, and Newest Shiny cards, with latest shiny derived from the canonical session mascot path.
Refine Crew Hover
N Nidoran♀
2m
N Nidorina
23m
N Nidorina
8m
S refine-crew-hover 🪎
Jul 7 3:01a 6:32a
Comment 12 notes
Scout report: merge-ready - No code blockers; acceptance verified on b7f6144f, but PR #443 was merged to release and task advanced to assembled during this primary review. Reporter: shannon Outcome: merge-ready Findings: - Blockers: none. Non-blocker/process: bin/dor-check now refuses only because the PR is MERGED, not open; no same-file overlap found among open release PRs. Questions: - none Checks: - [ci] GitHub CI current head b7f6144f: scan_ruby, scan_js, lint, test all success; [component] Homebrew Ruby targeted tests: 20 runs, 132 assertions, 0 failures; [manual] localhost:3021/deployments 200 and Playwright hover probe top +16px, under +0px.
Condense Release Tasks
S Snorlax
9m
S Snorlax
17m
S Snorlax
30m
condense-release-tasks 🪎
Jul 7 2:59a 6:32a
Handoff 13 notes
pr-review moved condense-release-tasks to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - No blockers found. Current-release card condenses to two highlighted task links with fixed fade slots, cost badges, and repo-count remainder chips; DoR, CI, targeted Rails tests, and Tailwind build are green. - jasper: merge-ready - Light UI second read found the condensed current-release member summary aligned with acceptance; GitHub CI is green at PR head and merge/file-overlap safety is clean.
Team Totals UI
C Corsola
1m
C Corsola
9m
C Corsola
1h
team-totals-ui 🐊
Jul 7 2:48a 6:32a
Handoff 9 notes
Resolved review feedback: PR #172 is ready for review, no longer draft; latest scout reports are merge-ready with no blockers; DOR and GitHub CI remain green on 2590bfc.
Fix Review Activity Attribution
H Hoppip
12m
L Lugia
22m
L Lugia
26m
fix-review-activity-attribution 🪎
Jul 7 2:39a 🐛 6:32a
Handoff 5 notes
pr-review (delta re-review) APPROVED. Carl (primary) MERGE-READY: traced 5 lenses on commit db03b31f — no over-blanking on sequential same-lane (clear-before-seed), fresh concurrent lane clobbers nothing (lane_open_activity nil + present? no-op), backward-compat on legacy bare-totals entries, blast radius contained (.open-activity action marker + hook untouched), regression valid; 52 runs 0F. Shannon (light) RESOLVED: her same-session-fanout blocker killed — blank flows through measured_usage? gate to em-dash render (_activity_row.html.erb:72-74), no view change needed; 108 runs 0F. FOLLOW-UP (non-blocking, pre-existing, future ticket): finish clears the single action-attribution marker unconditionally, so the first of two concurrent lanes ending orphans in-gap actions to 'Unlabeled' — lane-blind ACTION marker, out of scope for this usage fix. Advancing to reviewed.
Polish Shiny Badge
D Diglett
26m
D Diglett
20m
D Diglett
39m
S shiny-badge-polish 🪎
Jul 7 2:10a 🐛 6:32a
Handoff 3 notes
pr-review moved shiny-badge-polish to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Merge-ready: badge polish matches acceptance; DOR, cert, CI, focused Rails, and E2E checks are green. - jasper: merge-ready - Light review found no blockers; shiny badge polish matches acceptance and keeps sprite behavior intact.
Stagger Shipped Updates
M Mankey
16m
P Primeape
12m
P Primeape
1h
stagger-shipped-updates 🪎
Jul 6 11:31p 6:32a
Handoff 10 notes
pr-review moved stagger-shipped-updates to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary review found no blockers; acceptance matches release-first ship, one-second task cadence, and Last Release glow/fade. - carl: merge-ready - No blockers in Carl backend light review; release-first ship, one-second member cadence, and Last Release glow match acceptance.
Shiny Status Indicators
D Diglett
<1m
D Diglett
58m
D Diglett
57m
shiny-status-indicators 🪎
Jul 6 11:26p 6:32a
Handoff 3 notes
Avi review approved; ready for Steffon's qa-release sweep.
Improve Crew Hover
N Nidoran♀
<1m
N Nidoran♀
47m
N Nidorina
1h
S deployment-crew-hover 🪎
Jul 6 11:22p 6:32a
Handoff 4 notes
Avi review approved; ready for Steffon's qa-release sweep.
Release Stage Countdown
K Krabby
5m
K Krabby
22m
K Krabby
33m
release-stage-countdown 🪎
Jul 6 9:09p 6:32a
Handoff 13 notes
pr-review moved release-stage-countdown to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - No blockers found; countdown acceptance is covered and gates are green. - shannon: merge-ready - Shannon light read found the countdown UI matches acceptance with no blockers.
NFL Team Totals
C Corsola
1m
C Corsola
41m
C Corsola
nfl-team-totals 🪎
Jul 7 1:50a 5:41a
Handoff 5 notes
Closing as superseded: the accepted implementation lives in Turf Monster PR #172, which merged the 2026 NFL expected team totals seed, cache, UI, Link Hub entry, and slate-board wiring in the owning app. Draft McRitchie Studio PR #440 was closed instead of reworked.
Build Pokemon Pokedex
T Tangela
<1m
T Tangela
16m
T Tangela
18m
build-pokemon-pokedex 🪎
Jul 6 9:21p 5:30a
Handoff 3 notes
Avi review approved; ready for Steffon's qa-release sweep.
Pin chromedriver to chrome
L Lugia
6m
L Lugia
43m
L Lugia
<1m
S pin-chromedriver-to-chrome 🪎
Jul 6 8:55p 🐛 5:30a
Handoff 2 notes
Reviewed: CI-config-only change, correct root-cause fix (independent chrome/driver 'stable' resolution → skew; now Selenium Manager fetches the matched driver, shadowing driver evicted). Proof is the PR's own green test:system 8/0 on run 28825092905. dor-check MET (backend, unit+integration). Approving.
Result distillation policy
L Lugia
3m
L Lugia
3m
L Lugia
1m
S result-distillation-policy 🪎
Jul 6 8:55p 📚 5:30a
Handoff 6 notes
Rework addressed Carl+Jasper's coupled-pair finding: added --finding to all command examples (aligns with #431's verb) + scoped the paging line to tool-results/ spill files. dor-check green (docs-exempt), CI green. Advancing to reviewed.
Activity action timestamp rendering
L Lugia
10m
L Lugia
26m
L Lugia
9m
M activity-action-timestamp-rendering 🪎
Jul 6 8:55p 5:30a
Handoff
Reviewed: implements the specified layout (elapsed timer / completed_at second-precision, created at…-completed at… action span, OK floated right); no migration (columns already timestamp(6), completed derived); ui+db all four tiers green (unit/component/integration/e2e), full suite 3004/0, CI green, cert binds at head. Also fixed a pre-existing-red alex_heartbeat e2e spec. Approving; operator will eyeball the visual at QA before ship.
Suppress tool-result paging reads
L Lugia
4m
L Lugia
10m
L Lugia
17m
S suppress-tool-result-paging-reads 🪎
Jul 6 8:55p 5:30a
Handoff 3 notes
Avi review approved; ready for Steffon's qa-release sweep.
Harden review lane roles
L Lugia
1m
L Lugia
18m
L Lugia
17m
M harden-review-lane-roles 🪎
Jul 6 8:55p 5:30a
Handoff 2 notes
Reviewed: bin/pr-review change (delegate_action_label + role_responsibility) properly full-suite certified [full-suite@13c748f3 incl test:system] + unit(12)/integration(10)/rubocop, CI green, cert binds at head. NIT (non-blocking, future hygiene): the [full-suite-bypass] checks_run line is a redundant leftover — its 'no runtime surface' justification is false since bin/pr-review is Ruby; safe to drop it, real full-suite cert dominates. Approving.
Flexible activity column width
T Tyrogue
<1m
T Tyrogue
16m
T Tyrogue
1h
S flexible-activity-column-width 🪎
Jul 6 6:57p 5:30a
Handoff 3 notes
Avi review approved; ready for Steffon's qa-release sweep.
Blocked card crew layout
D Doduo
<1m
D Doduo
29m
D Doduo
37m
S blocked-card-crew-layout 🪎
Jul 6 4:55p 5:30a
Handoff 3 notes
Avi review approved; ready for Steffon's qa-release sweep.
Label non-bash capture actions
L Lugia
2m
L Lugia
7m
L Lugia
S label-non-bash-capture-actions 🪎
Jul 6 3:37p 10:06p
Handoff 4 notes
Re-certified at head 699a00ed: fingerprint 60a96b80 IS head's tree hash (the cert was never stale -- a tree-hash-read-as-a-stale-commit false positive). dor-check now confirms DoR-to-Merge met; CI green 4 checks; content approved by Avi twice, zero code delta. Advancing to reviewed.
Avi supervisor review hierarchy
L Lugia
7m
L Lugia
36m
L Lugia
M avi-supervisor-review-hierarchy 🪎
Jul 6 3:34p 🐛 10:06p
Handoff 2 notes
Fresh CI GREEN at head 0f9159d6 after de-flaking the review_events e2e (scoped the Docs-link click by href + wait for the menu to open). Re-certified at head. The stale-cert was a false positive (fingerprint = head's tree). dor-check: DoR-to-Merge met, CI green 4 checks. Content approved by Alex (all 4 acceptance criteria met). Advancing to reviewed.
Feed order and page size
T Tyrogue
<1m
T Tyrogue
12m
T Tyrogue
9m
S live-action-insert-at-top 🪎
Jul 6 2:28p 🐛 10:06p
Handoff
Avi review approved; ready for Steffon's qa-release sweep. Three approvals (Avi primary + Carl backend light + Shannon UI light), no blockers. Bug fix correct: deliver_action_created switched broadcast_append_to(aa-activity tbody, bottom insert = the bug) to broadcast_after_to(aa-mobile-detail-#id, a stable anchor sitting directly before the first action row), so each newest live action lands at position 0 (newest-first) with no off-by-one; page-load and broadcast paths share the same order(occurred_at desc, seq desc, id desc), so a reload after a live insert doesn't reshuffle. ACTIVITIES_PER_PAGE 10->25 (criterion 3). UI traps clear: streamed ACTION_ROW is a bare <tr class=aa-subrow> (no <turbo-frame>-in-<tbody> hoist), dual-render-path matched, id=aa-mobile-detail-#id unique per activity and present in DOM on desktop (display:none) and mobile. Bug-required regression coverage is genuine and would have failed pre-fix: [service] activities_broadcaster_test asserts action=='after' + target + assert_nil on any 'append'; [e2e] Playwright asserts newerIdx<olderIdx; [integration] pager renders 25 tbodies + page-2 href (10 shipped before). DoR fingerprint-fresh at PR tree (b99bf9f == 62caf53^{tree}); CI green (4).
Submitted Mascot Glow
A Aerodactyl
<1m
A Aerodactyl
19m
A Aerodactyl
7m
submitted-mascot-glow 🪎
Jul 6 2:18p 10:06p
Handoff 2 notes
Avi review approved; ready for Steffon's qa-release sweep. Two approvals (Avi primary + Shannon UI light), no blockers. All 4 acceptance criteria met: submitted cards use mascot signature color (green #22c55e fallback when no mascot), sparse rows recover seed type colors via Pokemon#type_keys (memoized loader, narrow rescue, no regression for populated rows), and glow magnitude escalates submitted<reviewed<assembled (opacity 0.62/0.78/0.9, border-mix 42/52/58; reviewed drops the 118px assembled-only shadow). UI traps clear: no rgba(var(--*-rgb)) — colors flow via var(--x,#hex)+color-mix; no grid mb-* change; dark-mode parity holds (readable edge is alpha-only type color, only the animated shimmer stops mix with white). Also fixes a prior inconsistency where reviewed's shadow was cyan but its gradient was yellow/blue. DoR fingerprint-fresh at PR tree (a79aa78 == 3128faf^{tree}); CI green (4).
Pokemon evolution order flake
L Lugia
2h
L Lugia
8m
L Lugia
13m
S pokemon-evolution-order-flake 🪎
Jul 6 2:05p 🐛 10:06p
Handoff 2 notes
Manager review approved: IN-clause order fix (index_by + filter_map preserves next_slugs order); red-green regression proof (branches seeded reversed, deterministic across 3 seeds); confirmed only order-dependent IN fan-out in the model; CI green 4 checks; dor-check DoR-to-Merge met.
Restore comment hover marquee
C Cubone
<1m
C Cubone
1h
C Cubone
1h
S restore-comment-hover-marquee 🪎
Jul 6 1:46p 10:06p
Handoff
Avi review approved; ready for Steffon's qa-release sweep.
Test telemetry from CI
L Lugia
5h
L Lugia
26m
L Lugia
31m
S test-telemetry-from-ci 🪎
Jul 6 7:45a 10:06p
Handoff
Avi review approved; ready for Steffon's qa-release sweep. Two approvals (Avi primary + Carl backend light), no blockers: all 4 acceptance criteria met, idempotency airtight (partial unique index + find-first + RecordNotUnique rescue ordered before StandardError; idempotency_key is the only unique index on agent_actions so the rescue can't mis-fire), emit is best-effort/non-fatal/session-gated, and the no-ci.yml/no-CI-secret scope claim holds. DoR fingerprint-fresh at PR tree (7494c34 == d342414^{tree}); CI green (4). Non-blocking advisory for deploy: the idempotency unique index builds non-concurrently (no disable_ddl_transaction! + algorithm: :concurrently), a brief write lock on agent_actions during migration — acceptable since telemetry writes are best-effort, but worth watching at ship.
Test telemetry local and CI
L Lugia
6m
L Lugia
14m
L Lugia
7m
M test-telemetry-local-and-ci 🪎
Jul 6 7:29a 10:06p
Handoff
Avi review approved: A3 local-cert telemetry faithfully mirrors bin/release.rb run_test_scope — triple-gated best-effort emit (session gate + action-verb marker no-op + swallowed errors), lane result captured before/independent of the discarded emit so it can never corrupt a cert. bin/release.rb untouched, no migration, CI green; CI-telemetry correctly deferred to test-telemetry-from-ci.
Keep mascot off deploy cards
P Pidgey
<1m
P Pidgey
32m
P Pidgeotto
1h
S keep-mascot-off-deploy-cards 🪎
Jul 6 4:50a 10:06p
Handoff 3 notes
Shannon UI review approved: companion removed cleanly at the single source (event_stage_agents) so both the board card and /tasks/:id timeline fix together; deploy tail returns actor/owner alone (never blank via STAGE_OWNER), no dangling refs to the dropped MASCOT_COMPANION_STAGES/deploy_mascot_companion, and a non-evolving-mascot regression is guarded at unit + component tiers. Build reveal + Evolve reel intact; CI green.
Randomized Glow Motion
A Aerodactyl
<1m
A Aerodactyl
41m
A Aerodactyl
1h
randomized-glow-motion 🪎
Jul 6 4:41a 10:06p
Handoff 6 notes
Resolved recert blocker: refreshed checks_run with current-head f887e67b full-suite/RuboCop cert and DoR is green.
Pokemon Assembled Glow
A Aerodactyl
<1m
A Aerodactyl
41m
A Aerodactyl
1h
pokemon-assembled-glow 🪎
Jul 6 4:09a 10:06p
Handoff 7 notes
Resolved recert blocker: current PR #415 head 95a41b10 has fresh full-suite/RuboCop cert f887e67b and DoR is green.
Border Glow Primitive
A Aerodactyl
<1m
A Aerodactyl
41m
A Aerodactyl
1h
S border-glow-primitive 🪎
Jul 6 3:43a 10:06p
Handoff 7 notes
Resolved recert blocker: ran bin/full-suite-check on current PR #415 head, recorded f887e67b cert, and DoR is green.
Deployment Border Variants
A Aerodactyl
22m
A Aerodactyl
41m
A Aerodactyl
1h
S deployment-border-variants 🪎
Jul 6 2:58a 10:06p
Handoff 9 notes
Resolved recert blocker: current PR #415 head 95a41b10 has fresh full-suite/RuboCop cert f887e67b and DoR is green.
Deployment Rainbow Border
A Aerodactyl
<1m
A Aerodactyl
41m
A Aerodactyl
1h
S deployment-rainbow-border 🪎
Jul 6 2:36a 10:06p
Handoff 8 notes
Shannon UI review approved for the 5-task #415 bundle: clean refactor to a reusable .studio-border-glow primitive (::before ring + ::after halo, all CSS-var driven) with per-card seeded motion offsets, mascot-typed assembled colors, and fixed yellow/blue + green stage variants. All 5 acceptances met, reduced-motion fully disables animation, blocked cards correctly opt out, no rgba/var or ERB-comment gotchas, no dangling refs (LiveBoardFx keys off data-* not classes), CI green.
Grade test scope runs
L Lugia
1m
L Lugia
42m
L Lugia
7m
M grade-test-scope-runs 🪎
Jul 6 6:18a 3:43p
Handoff
Avi review approved: Option B verified — verdict emits tagged kind=test_scope/event_slug/result_slug/duration_ms (blank-dropped so START stays plain), all 4 fields are existing agent_actions columns (NO migration), band query scoped+limited with meta derived at render (no N+1), confirm rides ActionGrade for_action XOR (no new FK). CI green (4 checks). Ready for qa-release.
Summon devops acts as subagents
L Lugia
4m
L Lugia
9m
L Lugia
23m
S summon-devops-acts-as-subagents 🪎
Jul 6 5:03a 3:43p
Handoff
Avi review approved; ready for Steffon's qa-release sweep.
Filter refresh without reload
T Tyrogue
<1m
T Tyrogue
14m
T Tyrogue
32m
S filter-refresh-without-reload 🪎
Jul 6 2:21a 3:43p
Handoff 3 notes
pr-review moved filter-refresh-without-reload to reviewed after shannon + alex reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - No blockers found; the Turbo frame keeps filter and pager navigation in-frame while Alpine state preserves the open sidebar. - alex: merge-ready - Light UI review found the turbo-frame filter refresh scoped and merge-ready; PR #413 is mergeable with green CI and no same-file open-PR overlap.
Fix boundary close broadcast
S Swinub
2h
S Swinub
9m
S Swinub
35m
S fix-boundary-close-broadcast 🪎
Jul 6 2:17a 🐛 3:43p
Handoff 2 notes
Avi review APPROVED (Carl primary + Jasper light); PR #418 broadcast fix ready for Steffon's qa-release sweep. Fix is correct: closed_prior_ids captured via lane.pluck(:id) BEFORE update_all (still .open), re-broadcast post-commit via where(id:).find_each on fresh rows carrying stamped closed_at/outcome — a faithful after_update_commit mirror; safe_broadcast preserved and now outside the txn. Both acceptance items met; 3 regression tests lock the bug (boundary broadcast + stamped-close-state + no-spurious-bare-open). CI green on head e0565916. NOTE for QA: recorded checks_run full-suite@caae3575/rubocop@caae3575 cert SHAs are STALE (pre-fix tree, not in branch lineage) — CI-green-on-head covers the actual guarantee, but the local cert SHA bookkeeping is inaccurate.
Test scope telemetry registry
L Lugia
22m
L Lugia
<1m
L Lugia
M test-scope-telemetry-registry 🪎
Jul 6 2:11a 3:43p
Handoff 6 notes
Approved to reviewed (deploy owner, operator-assigned lane). Re-block was a DUPLICATE of already-resolved feedback: verified on PR head 0d125c74 both findings fixed — (1) gem_release_check registered (registry:234) + wrapped via run_test_scope (release.rb:751), abort-before-publish intact; (2) qa_smoke completed deferred to AFTER the blocking run_post_deploy(:qa) (release.rb:1514-1520). GitHub CI green (4 checks); full suite 2941/0. Taking to production via full-cycle.
Live activities via websockets
T Tyrogue
<1m
T Tyrogue
43m
T Tyrogue
5m
M live-activities-via-websockets 🪎
Jul 6 1:19a 3:43p
Handoff 3 notes
Avi pr-review verdicts landed after operator merge (PR #412 merged to release by amcritchie 02:08:45Z, task assembled mid-wave). Primary carl: request-changes — open_activity! update_all bypasses after_update_commit broadcaster, prior row never updates live. Light shannon: merge-ready, no blockers. Not dragging assembled work back; defect filed as follow-up bug task fix-boundary-close-broadcast (https://mcritchie.studio/tasks/fix-boundary-close-broadcast). Rides current release as-is.
Fix pipeline smoke selector
L Lugia
<1m
L Lugia
11m
L Lugia
15m
S fix-pipeline-smoke-selector 🪎
Jul 6 1:10a 🐛 3:43p
Handoff
Avi review approved (shannon primary + alex light); ready for Steffon's qa-release sweep.
Harden prod smoke seal
L Lugia
<1m
L Lugia
12m
L Lugia
9m
S harden-prod-smoke-seal 🪎
Jul 6 1:09a 🐛 3:43p
Handoff
Avi review approved (carl primary + jasper light); ready for Steffon's qa-release sweep.
Narrate PR reviewer activities
L Lugia
7m
L Lugia
11m
L Lugia
11m
S narrate-pr-reviewer-activities 🪎
Jul 6 1:00a 🐛 3:43p
Handoff
Avi review approved (carl primary + alex light); ready for Steffon's qa-release sweep.
Deploy spans self-report actions
T Togepi
18m
T Togepi
16m
T Togepi
1h
M deploy-spans-self-report-actions 🪎
Jul 5 10:33p 3:43p
Handoff
Avi review approved (carl primary + jasper light); ready for Steffon's qa-release sweep. Non-fatal guarantee verified at both layers (release.rb agent_activity swallows + system never raises + bounded 2s/5s AgentApi timeouts; CLI run/post rescue StandardError + exit 0). action verb is read-only on the open-activity marker so it cannot clobber/auto-close the parent span; role-span gated; dry-run + no-span no-ops. DoR full-suite STALE is a false-positive: cert tree 021e885a == PR head e0fdcc5724^{tree} (identical), GitHub CI test green at head.
Fix Live-on-QA stamp timing
T Togepi
<1m
T Togepi
23m
T Togepi
1h
S fix-live-on-qa-stamp-timing 🪎
Jul 5 10:33p 🐛 3:43p
Handoff
Avi review APPROVED (carl primary + alex light). Stamp folded into qa_green!'s Release.transaction — atomic with the reviewed→assembled member flip; step-7 record_qa_url is URL-only (no stage-advancing event). Both qa_deployed routes (deploy_qa:completed + qa_smoke:completed) now only reachable via qa_green!, after the flip. Not-green run stays at qa_deploying. Regression test pins the ordering. dor-check green (full-suite+rubocop@72673e5==HEAD tree, GitHub CI 4/4). Ready for Steffon qa-release sweep.
Agents activities page redesign
T Tyrogue
18m
T Tyrogue
14m
T Tyrogue
1h
L agents-activities-page-redesign 🪎
Jul 5 9:41p 3:43p
Handoff
Avi review APPROVED (shannon primary UI + carl light backend) → reviewed; ready for Steffon qa-release sweep. All 7 acceptance bullets met on HEAD 7c677a36. Backend PASS (Carl): collection route beats :slug member (assert_routing green), newest-first ordering enforced in the query at BOTH levels (activities + grouped actions), multi-select ?sessions= parse is safe/parameterized (empty=all), action-grade intent=clear mirrors the shipped activity clear (idempotent, grader-guarded, rescue_and_log), heartbeat regression clean (6 methods MOVED verbatim into ActivityFeed concern, no shadowing; only heartbeat_controller.rb/heartbeat_helper.rb/routes.rb touched — no heartbeat views/routes changed). UI PASS: strong primitive reuse (heartbeat_agent_cell +size param, components/overflow_fade, key_method_chip), Alpine clean (double-quoted x-data, x-show owns display, no <template x-if>, action-row inherits parent open via stacked scope, @click.stop on grade cells, filter uses @click backdrop not @click.outside), table-layout:fixed kills the expand column-jump, mobile .aa-collapsible hides cost/details/grades behind the row-tap reveal. NOTE (non-blocking): bin/dor-check reads STALE because the local full-suite cert tree (3524feeb) predates patches 3-5; GitHub CI test job (full rails test + test:system, superset of local full-suite which skips the system lane) is GREEN on the exact HEAD 7c677a36, which supersedes the stale local fingerprint — builder may re-stamp the cert but the sweep re-verifies on QA. Optional test top-ups Carl flagged: intent=clear invalid-grader 422, idempotent clear (no grade), and the sessions[]= array-param filter form (only comma form tested). Minor UI polish for a later pass: drill-down/mobile-detail rows lack x-cloak so all rows briefly render expanded pre-Alpine-hydrate (transient FOUC); session_filter_options runs unscoped GROUP BY on every load (fine at ops scale).
Filter activities by session
P Porygon
<1m
P Porygon
21m
P Porygon
11m
S filter-activities-by-session 🪎
Jul 5 8:31p 1:45a
Handoff
Avi review approved (Shannon primary + Alex light): all 4 acceptance criteria met — session picker added to All Activities toolbar, default unfiltered (params[:session_id].presence), for_session scope filters, and BOTH pager links thread session_id (test-locked). Reuses the #show picker idiom (session_options/for_session already in release), no N+1, no new CSS, no Alpine gotchas, terminology current, CI green. Ready for Steffon's qa-release sweep.
Weight three-stage mascot draws
E Exeggcute
<1m
E Exeggcute
19m
E Exeggcute
13m
S weight-three-stage-mascot-draws 🪎
Jul 5 7:51p 1:45a
Handoff 4 notes
Avi re-review APPROVED (Carl primary + Shannon light): resubmit resolved the #403 count-coupling block — rebased onto post-#403 release (129-base), pokemon_test.rb asserts base 129 (L276/334), three-stage 24 unchanged (L191), weighted bag DERIVED as deck.count+24=153 (L195, decoupled from base count so no future re-coupling). No stale 131/155. CI green, ReviewEventsTest flake gone. Ready for Steffon's qa-release sweep.
Reclassify Togepi and Tyrogue
T Togetic
<1m
T Togetic
16m
T Togetic
19m
S reclassify-togepi-and-tyrogue 🪎
Jul 5 7:51p 1:45a
Handoff
Avi review approved (Carl primary + Jasper light): all 5 acceptance criteria met, 131->129 deck arithmetic reconfirmed on both branches (Togepi net-0, Tyrogue net-2 via Hitmon collapse), pokemon:fetch NOT_BABY override durable across re-fetch, self-based-baby guard preserved, no N+1, CI green. COUPLING w/ #402 weight-three-stage-mascot-draws (blocked for rework): three-stage count stays 24. SWEEP ORDER: merge #403 FIRST (lands clean on 129, zero edits); #402 reconciles 131->129 / 155->153 after. Ready for Steffon's qa-release sweep.
Restore card title marquee
C Chikorita
<1m
C Chikorita
21m
B Bayleef
10m
S restore-card-title-marquee 🪎
Jul 5 7:44p 🐛 1:45a
Handoff
Avi review approved (Shannon primary + Alex light): single-line overflow-fade marquee restored, activity-preview two-line clamp preserved and re-guarded by tests, data-test hook intact, CI green on head 32d37f76. Ready for Steffon's qa-release sweep.
Reviewed Mist Animations
T Totodile
2m
C Croconaw
12m
C Croconaw
11m
S reviewed-mist-animations 🪎
Jul 5 5:09a 1:45a
Handoff 6 notes
Avi re-review APPROVED (Shannon primary + Alex light): merge-conflict block resolved — rebased 0-behind release (merge-base==release tip 10b87f79). deployments_broadcaster.rb byte-identical to release (Turbo Stream contract unchanged, acceptance #4). _board.html.erb resolved with a surgical useLiveExit guard gating BOTH the local pre-animate and the dropzone DOM move (won't fight the Turbo remove); release fallback intact, no lost hunk/markers, dual render paths coherent. CI green. Ready for Steffon's qa-release sweep.
Fix pipeline smoke assertions
S Scyther
S Scyther
S Scyther
S fix-pipeline-smoke-assertions 🪎
Jul 5 9:05p 🐛 9:52p
Gate dor-check on GitHub CI
S Spinarak
<1m
S Spinarak
22m
A Ariados
18m
S gate-dor-check-on-github-ci 🪎
Jul 5 1:04p 9:35p
Handoff 7 notes
pr-review moved gate-dor-check-on-github-ci to reviewed after carl + jasper reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review: CI merge gate satisfies the task; PR #399 is open, green, clean against release, and ready for Avi/Steffon flow. - jasper: merge-ready - Light review found no blockers; PR #399 is open, clean against release, and dor-check now gates merge on real GitHub CI while leaving build gate untouched.
Submitted Blocked Glow
T Totodile
19m
F Feraligatr
6m
F Feraligatr
10m
submitted-blocked-glow 🪎
Jul 5 6:24a 9:35p
Handoff 6 notes
pr-review moved submitted-blocked-glow to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Merge-ready: rework closes the live broadcast dual-type gradient gap, acceptance criteria are covered, and CI plus focused local checks are green. - jasper: merge-ready - Light review: acceptance matched, no blockers; CI and focused local checks green, PR mergeable into release.
Contest Payout Polish
G Graveler
<1m
G Graveler
11m
G Graveler
contest-payout-polish 🐊
Jun 27 9:08p 8:28p
QA Feedback
QA review found a merge blocker. The Studio DoR gate reports stale full-suite and rubocop evidence: checks_run is certified at 7b56895 while Turf Monster PR #170 is at cda5d41. Focused local tests passed (6 runs, 31 assertions) and GitHub CI is green, but the task still needs fresh fingerprint-bound full-suite evidence or an explicit bypass before review can approve. My attempted re-certification ran the Studio primary suite, not the Turf Monster worktree, and exited red in an unrelated Studio test, so no valid evidence was recorded.
Blocked Mascot Evolution
S Shuckle
<1m
S Shuckle
20m
S Shuckle
11m
M blocked-mascot-evolution 🪎
Jul 5 6:33a 7:17p
Handoff 3 notes
pr-review moved blocked-mascot-evolution to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers; CI, DoR, focused Rails tests, Playwright, and merge safety are green. PR remains GitHub draft for Avi to undraft before merge. - shannon: merge-ready - Light review found no blockers; acceptance, CI, DoR, focused Rails checks, and Playwright are green. PR remains draft for Avi to confirm or undraft before final action.
Trim Timer Seconds
S Swinub
10m
P Piloswine
5h
P Piloswine
29m
trim-timer-seconds 🪎
Jul 5 4:24a 7:17p
Handoff 23 notes
pr-review moved trim-timer-seconds to reviewed after shannon + alex reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary UI review found PR #393 acceptance-aligned and merge-ready: hourly release timers drop seconds, subhour timers keep minute/second precision, CI and local focused checks are green. - alex: merge-ready - Light review found no blockers; PR #393 satisfies hourly/subhour timer acceptance and is merge-ready for Avi.
Standardize agent taxonomy
W Wobbuffet
5h
W Wobbuffet
11m
W Wobbuffet
18m
standardize-agent-taxonomy 🪎
MIG
Jul 5 4:03a 7:17p
Handoff 16 notes
pr-review moved standardize-agent-taxonomy to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary review found no blockers: taxonomy rename is wired through models, API aliases, heartbeat UI, docs, and migration compatibility; latest GitHub CI and local focused checks are green. - carl: merge-ready - Light review found taxonomy rename compatibility intact; CI and focused local checks are green.
Confetti Behind Cards
T Totodile
1m
T Totodile
19m
C Croconaw
17m
S confetti-behind-card-pop 🪎
Jul 5 4:20a 3:00p
Handoff 3 notes
pr-review moved confetti-behind-card-pop to reviewed after shannon + alex reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Merge-ready: acceptance criteria met; focused Rails, DoR, CI, and browser Generate layering checks are green. - alex: merge-ready - Light review found no blockers: acceptance matches the diff, CI/DoR are green, focused Rails tests and browser layering probe passed, and merge simulations with overlapping PR #389 are clean.
Guard Avi Ship Gate
C Celebi
12m
C Celebi
<1m
C Celebi
26m
guard-avi-ship-gate 🪎
Jul 5 4:15a 3:00p
Handoff 7 notes
pr-review moved guard-avi-ship-gate to reviewed after carl + alex reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review: current head fixes the prior Heroku exit propagation blocker; production-deploy SOP now guards Release.current assembled + qa_deployed_at before confirming/start or ship, with checks/CI/merge safety green. - alex: merge-ready - Light review: production-deploy SOP gates Avi confirming and ship behind assembled plus qa_deployed_at with Heroku --exit-code propagation; focused docs/static checks and CI are green.
Surface third evolution moment
S Spinarak
1m
S Spinarak
32m
A Ariados
19m
M surface-third-evolution-moment 🪎
Jul 5 2:50a 3:00p
Handoff 10 notes
pr-review moved surface-third-evolution-moment to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - PR #391 at b4440ddf matches the third-evolution acceptance criteria after the skipped-submit regression fix; CI, DoR, focused local tests, and merge safety are green. - jasper: merge-ready - No blockers. Current head b4440ddf resolves the skipped-submit false-positive, matches the third-evolution timeline/board acceptance criteria, and is green on focused local tests plus latest GitHub CI.
Deterministic session action capture
M Mareep
8m
M Mareep
27m
A Ampharos
28m
M deterministic-session-action-capture 🪎
Jul 5 2:33a 🐛 3:00p
Handoff 6 notes
pr-review moved deterministic-session-action-capture to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review: acceptance met; deterministic open-span marker pins actions; cd-prefixed work is captured; tests/CI green; merge clean. - shannon: merge-ready - Light review found no blockers; PR #390 meets deterministic capture acceptance and is merge-ready.
Archive Task Animations
C Chikorita
<1m
C Chikorita
27m
B Bayleef
19m
archive-task-animations 🪎
Jul 5 2:28a 🐛 3:00p
Handoff 2 notes
Avi review approved; ready for Steffon's qa-release sweep.
Release tracker started-ago labels
S Smeargle
1m
S Smeargle
41m
S Smeargle
54m
S release-tracker-started-ago-labels 🪎
Jul 5 1:37a 3:00p
Handoff
Avi review approved; ready for Steffon's qa-release sweep.
Inline Span Badges
P Pikachu
27m
P Pikachu
<1m
P Pikachu
1h
inline-span-badges 🪎
Jul 4 9:48p 6:06a
Handoff 9 notes
pr-review moved inline-span-badges to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary review found PR #386 meets the inline span badge acceptance criteria; CI, DoR, focused tests, and browser row-height verification are green. Recommend merge-ready. - jasper: merge-ready - Light review found no blockers; PR meets inline span metadata and clear-grade stability scope with CI, targeted tests, DoR, local render, and current release merge safety green.
Pokemon Roster Shiny Evolutions
N Nidorina
<1m
N Nidorina
13m
N Nidorina
S pokemon-roster-shiny-evolutions 🪎
Jul 4 9:44p 2:21a
Handoff 10 notes
Avi approved (conductor decision, operator-confirmed): batch the evolution epic. #384 rides Steffon's next qa-release sweep with base #383 and sibling #385, ordered #383->#384->#385. Shared base commit da12ec64 is an identical SHA (git dedups on merge); #384's files (pokemon_controller, pokemon/index.html.erb) are disjoint from #385's. Ready for the sweep.
Completed stage ago time
K Kakuna
<1m
K Kakuna
14m
K Kakuna
8m
S completed-stage-ago-time 🪎
Jul 4 8:58p 2:21a
Handoff 3 notes
pr-review moved completed-stage-ago-time to reviewed after shannon + alex reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary UI review found PR 381 meets the completed-stage ago-time acceptance criteria and is clean to merge after green CI. - alex: merge-ready - Light review found no blockers: acceptance, diff, tests, CI, and merge safety all pass for PR #381.
Task Mascot Evolution Gates
N Nidorina
1h
N Nidorina
40m
N Nidorina
L task-mascot-evolution-gates 🪎
Jul 4 8:42p 2:21a
Handoff 9 notes
Avi approved (conductor decision, operator-confirmed): batch the evolution epic. #385 rides Steffon's next qa-release sweep with base #383 and sibling #384, ordered #383->#384->#385. Shared base commit da12ec64 is an identical SHA (git dedups on merge); #385's files (task.rb, stage_agents_helper.rb, mascot tests) are disjoint from #384's. Ready for the sweep.
Base Level Spawn Pool
N Nidorina
35m
N Nidorina
25m
N Nidorina
1h
M base-level-spawn-pool 🪎
Jul 4 8:42p 2:21a
Handoff 3 notes
pr-review moved base-level-spawn-pool to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers; PR #383 satisfies base-form spawn pool acceptance and is ready for Avi to advance. - shannon: merge-ready - Light review found no blockers; base spawn pool meets the data/spawn contract, declares bin/rails pokemon:seed for deploy backfill, and should merge before stacked follow-on PRs #384/#385.
Add Johto Pokemon Roster
N Nidorina
<1m
N Nidorina
33m
N Nidorina
11m
M add-johto-pokemon-roster 🪎
Jul 4 8:42p 2:21a
Handoff 3 notes
pr-review moved add-johto-pokemon-roster to reviewed after carl + jasper reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Carl primary review: PR 382 meets Johto roster acceptance; CI, DoR, focused tests, JSON integrity, and S3 asset checks are green. - jasper: merge-ready - Light review: Johto roster data, S3 art, Gen 1 deck guard, roster rendering, DoR, CI, and mergeability all check out.
Remove Deployment Copy Buttons
P Primeape
<1m
P Primeape
12m
P Primeape
27m
S remove-deployment-copy-buttons 🪎
Jul 4 8:33p 🐛 2:21a
Handoff 3 notes
pr-review moved remove-deployment-copy-buttons to reviewed after shannon + alex reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - No code blockers. Deployment kickoff copy chips are absent, board actions remain present, spacing is aligned, and checks are green; PR is still draft for the supervisor to clear before merge. - alex: merge-ready - Light review found no blockers: /deployments board kickoff copy chips are removed, task action buttons remain present, spacing is consistent, DoR and CI are green.
Compact Heartbeat Commands
P Pikachu
9m
P Pikachu
8m
P Pikachu
31m
compact-heartbeat-commands 🪎
Jul 4 8:10p 2:21a
Handoff 3 notes
pr-review moved compact-heartbeat-commands to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary UI review: PR #378 meets compact/reveal/recompact/order/hidden-label acceptance and is merge-ready. - jasper: merge-ready - Light review found no blockers; compact Heartbeats behavior, merge safety, DoR, and CI are green.
Rename review supervisor script
G Golem
11m
G Golem
21m
G Golem
18m
S rename-review-supervisor-script 🪎
Jul 4 7:09p 2:21a
Handoff 3 notes
Avi Heartbeat moved rename-review-supervisor-script to reviewed after carl + alex reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers: rename/shim/docs/tests meet acceptance, CI and local checks are green, and merge-tree overlap checks are clean. - alex: merge-ready - Light review finds no blockers; recommend merge-ready for PR #377.
Update release CLI copy
G Golem
2h
G Golem
8m
G Golem
59m
S update-release-cli-copy 🪎
Jul 4 3:34p 2:21a
Handoff 3 notes
Avi Heartbeat moved update-release-cli-copy to reviewed after carl + jasper reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found PR #375 merge-ready: release status copy names deploy-with-task, retired launcher wording is absent from bin output, focused checks and CI are green, and merge safety is clean. - jasper: merge-ready - Light review found PR #375 merge-ready: release status copy now names deploy-with-task, the retired Deploy with Task phrase is absent from bin/app CLI copy, focused tests and CI are green, and merge safety is clean.
Sweep remaining doc stragglers
F Fearow
9h
F Fearow
13m
F Fearow
8m
S sweep-remaining-doc-stragglers 🪎
Jul 4 8:34a 2:21a
Comment 3 notes
Review (Shannon PRIMARY + Jasper LIGHT): all-clear. One non-blocking follow-up from the light's empirical check: the new REVIEW_DOCS comment says mission.md's framing 'can't drift back', but a literal revert to pre-#367 mission.md passes the scan (old phrasing 'runs the merge' / 'Two approvals merge the PR into release' matches none of the three regexes). Tripwire is real for fresh one-hand 'reviews+merges' phrasings (injection fails correctly, zero false-positive exposure). Future sweep: soften that comment or add a positive pin for system/mission.md (assert_match /review-only/i + /sweep/i).
Release stage timestamp handoff
S Seaking
2m
S Seaking
4h
S Seaking
1h
release-stage-timestamp-handoff 🪎
Jul 4 7:57a 2:21a
Handoff 7 notes
Avi Heartbeat moved release-stage-timestamp-handoff to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers: stage timestamp model/API/UI/docs meet the handoff acceptance, CI and DoR are green at the PR tree, and focused release/helper/API/dev-board tests pass locally. - shannon: merge-ready - Light review found no blockers; release stage timestamps, API stamping, tracker handoff gap, and SOP guidance match acceptance.
Shiny pokemon mascot avatars
M Machop
<1m
M Machop
2h
M Machop
1h
shiny-pokemon-mascot-avatars 🪎
Jul 4 7:39a 2:21a
Handoff 13 notes
Avi Heartbeat moved shiny-pokemon-mascot-avatars to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary review found PR 370 meets shiny mascot acceptance; CI and fresh targeted checks are green; merge-ready for Avi. - carl: merge-ready - Light review found the shiny mascot PR meets acceptance; DoR, CI, focused tests, local smoke, and S3 asset checks are green.
Rewrite retired launcher spec
G Golem
28m
G Golem
19m
G Golem
34m
M rewrite-retired-launcher-spec 🪎
Jul 4 2:19p 8:46p
Handoff 5 notes
Avi Heartbeat moved rewrite-retired-launcher-spec to reviewed after shannon + jasper reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - No blockers found. Acceptance criteria are covered: deploy-with-task is registered and rendered, act SOPs stand alone, and devops-cycle-design now keeps architecture while linking registered SOPs. - jasper: merge-ready - Light review found acceptance covered: deploy-with-task is registered/rendered, SOP mechanics are inline, devops-cycle-design is architecture-only, and CI/DoR/component checks are green.
Sweep retired SOP names
G Golem
<1m
G Golem
8m
G Golem
1h
S sweep-retired-sop-names 🪎
Jul 4 2:15p 8:46p
Handoff 9 notes
Avi Heartbeat moved sweep-retired-sop-names to reviewed after shannon + alex reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - No blockers found; acceptance, DoR, local component test, GitHub CI, and merge-safety checks are green. PR #373 is now non-draft and mergeable, so Shannon recommends merge-ready. - alex: merge-ready - Light review found no blockers; PR #373 matches acceptance, CI/component checks are green, and merge safety is clean.
SOP Invocation Standard
G Graveler
<1m
G Graveler
6m
G Graveler
7m
S pr-review-launcher-routing 🪎
Jul 4 1:22p 📚 8:46p
Handoff
Avi expedited review approved: scoped to AGENTS/CLAUDE SOP standard docs plus static review-lane test; GitHub CI green and DoR clean. Ready for Steffon's qa-release sweep.
Fix pr-review card captions
F Fearow
10m
F Fearow
10m
F Fearow
1m
S fix-pr-review-card-captions 🪎
Jul 4 7:55a 🐛 8:46p
Handoff 3 notes
Rebuilt on origin/release (2fe19bb8): dropped Avi title + pr-review-slow fixes release already carries, kept pr-review caption fix + REVIEW_DOCS index.md/claude.md additions; pins retargeted (refute-merge tooltip kept, review-only title pin dropped, act renames adopted); failing-first 2F/0E then green; full suite 2702 runs + rubocop certified at 013e04e9; PR #368 MERGEABLE.
Name install agent docs owner
F Fearow
10m
F Fearow
14m
F Fearow
2m
S name-install-agent-docs-owner 🪎
Jul 4 7:55a 8:46p
Handoff 4 notes
Rework landed: rebased onto origin/release (f660e2bc), SKILL.md resolved as deletion + sentence relocated to agents/avi/sops/production-deploy.md, sync phrase re-applied to new atoms row, Run Deployment paragraph re-landed after anchor, qa-release vocabulary + heartbeats cite nit fixed, tripwire extended to successor SOP. Re-certified 4c09c2b084f6; PR #369 MERGEABLE.
Sweep mission doc wording
F Fearow
16m
F Fearow
13m
F Fearow
3m
S sweep-mission-doc-wording 🪎
Jul 4 7:39a 8:46p
Comment 5 notes
DELTA review (Shannon, PRIMARY) of resubmit f1b2cf3a: ALL-CLEAR, moved to reviewed. Content review of 2a1a2c2c stands. Verified: (1) conflict resolution kept both intents — new diff vs release touches ONLY the ->shipped row in §1.2 (HEAD's renamed SWEEP/QA rows adopted verbatim), shipped-row rewrite carries qa-release; (2) §1.4 GUARD + Run Deployment hunks byte-identical to the reviewed version, refusal quote still verbatim vs Release::CleanCheck#dirty_message (clean_check.rb:77 — clean_check.rb/bin/release.rb/bin/conductor untouched by #364, so the both-states board query verification stands); (3) act renames hit all-and-only live-framed uses — head grep for qa-deploy/archive-completed returns ONLY alias/history sites (steffon HEARTBEAT.md:64-65 alias map, sops legacy notes, index.md:302/:304 alias table, heartbeats.md:290/:300 legacy notes); (4) scope expansion (devops-cycle-design.md:440, index.md:34/:140, claude.md:48) ACCEPTED — same vocabulary lane, one-word renames in the builder's own #365 adapter passages, release still said qa-deploy at each site so no collision, alias registrations intact; (5) cert fresh — head tree e77b1a10 == fingerprint, single commit on 2fe19bb8, nothing after. Prior follow-ups (activity-761) still stand except heartbeats.md cheat-sheet — re-check it post-#364 restructure when filing the follow-up task.
Refresh adapter sweep wording
F Fearow
21m
F Fearow
2h
F Fearow
13m
S refresh-adapter-sweep-wording 🪎
Jul 4 4:31a 8:46p
Handoff
PR #365 into release: adapter sources (index.md + claude.md) rewritten to review-only + sweep contract; retired chips swept from avi/role.md + devops-cycle-design §1.4 intro. Doc tripwires + full suite green (2682 runs, 0 failures), dor-check pass. Root AGENTS.md/CLAUDE.md sync is post-merge via bin/install-agent-docs. mission.md:70-81 straggler flagged for follow-up.
Register QA test commands
F Fearow
41m
F Fearow
2h
F Fearow
12m
S register-qa-test-commands 🪎
Jul 4 4:11a 8:46p
Comment 2 notes
Carl review (PRIMARY, review-one) — ALL-CLEAR, moving to reviewed. Non-blocking follow-ups: (1) ship-seam parity pin asymmetry — repos_test pins qa_test_cmd flag-style parse parity at the registry, but no equivalent registry-level pin for ship's test_cmd values (Shellwords eats backslashes silently; current values 'bin/rails test' x2 verified safe + semantics documented in YAML header — nit, ~3-line test in a follow-up). (2) Jasper light: run_cli doc comment 'MUST include --dry-run' (release_cli_test.rb:147-149) now stale — new tests correctly pass --yes with stubbed/hermetic sh. (3) Release::Repos.qa_test_cmd has no runtime consumer yet (CLI reads via app_meta_for) — consistent API surface, fine. Cert verified cryptographically: PR head tree == bffb51c2 fingerprint.
Fix duplicate sticky headers
L Lickitung
1m
L Lickitung
16m
L Lickitung
20m
S fix-duplicate-sticky-headers 🪎
Jul 4 3:10a 🐛 8:46p
Comment 2 notes
Operator visually accepted the fix on the local preview (66-span scroll test, no duplicate header).
Document heartbeat session launch
F Flareon
<1m
F Flareon
11m
F Flareon
S document-heartbeat-session-launch 🪎
Jul 4 3:03a 8:46p
Comment 6 notes
Re-review by original blockers (alex primary, shannon light): both prior findings confirmed resolved; merged.
Tidy two review nits
A Arbok
7m
A Arbok
24m
A Arbok
23m
S tidy-two-review-nits 🪎
Jul 4 2:56a 8:46p
Block-mining insight lever
A Arbok
15m
R Rapidash
20m
R Rapidash
7h
L block-mining-insight-lever 🪎
Jul 4 2:56a 8:46p
Handoff 9 notes
Avi Heartbeat moved block-mining-insight-lever to reviewed after alex + shannon reported merge-ready. Left for Steffon QA. Reports: - alex: merge-ready - Primary review found no blockers; PR #356 meets the block-mining acceptance criteria and is ready for Avi to advance. - shannon: merge-ready - No blockers found after post-resolution review; PR #356 is ready for Avi to advance.
Wire bank to session bridge
A Arbok
8m
A Arbok
17m
A Arbok
23m
M wire-bank-to-session-bridge 🪎
Jul 4 2:56a 8:46p
Add key-method and summary
S Snorlax
<1m
S Snorlax
32m
S Snorlax
24m
add-key-method-and-summary 🪎
Jul 4 2:48a 8:46p
Drop qa-readonly cleared block spec
S Snorlax
<1m
S Snorlax
5m
S Snorlax
1h
drop-qa-readonly-cleared-block-spec 🪎
Jul 4 1:50a 🐛 8:46p
Rename propagate insights act
S Snorlax
<1m
S Snorlax
9m
S Snorlax
1h
rename-propagate-insights-act 🪎
Jul 4 1:37a 8:46p
Extract shared agent API client
C Caterpie
46m
F Fearow
26m
F Fearow
31m
S extract-shared-agent-api-client 🪎
Jul 4 1:33a 💎 8:46p
Comment 5 notes
PRIMARY review (Carl) — ALL-CLEAR, post-merge straggler review vs origin/release. (1) Divergences intact: timeouts 2/5 (atomic-event), 2/4 (session-insights), 1/2 (capture-hook), pinned by agent_api_test; 401 invalidation only in atomic-event + capture-hook, session-insights deliberately never invalidates; :get/:post superset changed no call site. (2) Secret/token handling byte-equivalent: same token.json cache path + 300s margin, same ENV -> op read -> repo .env order, no secret printed; bin/lib REPO_ROOT anchor resolves identically to old bin/ anchor incl worktree branch. (3) Drive-bys scope-clean: session-insights exec-bit restore matches documented 100755 contract (atomic-capture-hook.md:259); dropped requires verified truly unused on release (no Digest/URI/Net::HTTP left). (4) Sequencing confirmed: extraction 57458640 built on top of 12e9d23a/58bbd667/9b98b37e/6481f708; agent_api.rb unchanged since; PR 357 later edits preserved the divergences. (5) All four lib test files green against an origin/release export: 96 runs/372 asserts/0 failures; three existing test files untouched; checks_run covers library dor_tiers [unit,integration] + full-suite/rubocop certs. LIGHT review (Alex, docs seat) — ALL-CLEAR: atomic-capture-hook.md describes behavior not implementation, every claim still holds; wider doc grep clean; optional nice-to-have (non-blocking): one line naming bin/lib/agent_api.rb + test/lib/agent_api_test.rb as the shared auth layer. No conductor action needed.
Add task merged field
C Caterpie
<1m
C Caterpie
13m
C Caterpie
3h
S add-task-merged-field 🪎
Jul 3 9:28p 8:46p
Move release assembly to Steffon
C Caterpie
4h
F Fearow
31m
F Fearow
5m
XL move-release-assembly-to-steffon 🪎
Jul 3 9:28p 8:46p
Handoff 5 notes
activity-729 delta addressed: --task loud-fail, conditional Avi handoff, add no-downgrade guard for merged:main stragglers, steffon role.md sweep contract, CleanCheck copy, Merge Review->Pre-QA Gate + merge summary nits; 6 new tests, re-certified green
Cleared block re-review state
A Arbok
<1m
A Arbok
19m
A Arbok
9m
S cleared-block-re-review-state 🪎
Jul 3 8:37p 7:34a
Reorder heartbeat act order
C Caterpie
<1m
C Caterpie
8m
C Caterpie
55m
S reorder-heartbeat-act-order 🪎
Jul 3 8:02p 7:34a
Distillation pipeline three-column page
A Arbok
20m
A Arbok
29m
A Arbok
42m
L distillation-pipeline-three-column-page 🪎
Jul 3 3:15p 7:34a
Handoff 4 notes
Rebased onto current release tip 90ed0ab — resolved the #346 auth conflict (took the public class-wide skip_before_action; dropped the obsolete READ_ACTIONS split). Re-certified all 4 ui+db tiers green (ff8fe2d), dor-check met. 0-behind, clean-mergeable. Ready for re-review.
Make grading actions public
A Arbok
<1m
A Arbok
14m
A Arbok
48m
S make-grading-actions-public 🪎
Jul 3 3:09p 7:34a
Generate insights doc from bank
A Arbok
47m
A Arbok
1h
A Arbok
3h
M generate-insights-doc-from-bank 🪎
Jul 3 1:46p 7:34a
Handoff 5 notes
Re-certified at current head (bb842f78822f) — stale-cert resolved; no code change beyond the approved tense/count fix.
Agent span grading endpoint
A Arbok
47m
A Arbok
10m
A Arbok
53m
M agent-span-grading-endpoint 🪎
Jul 3 1:29p 7:34a
Handoff 6 notes
Re-certified on current release tip 90ed0ab: full-suite 2579/0 + rubocop green (c1d7105), dor-check met. Pure stale-cert — code unchanged since QA approval. Rebased 0-behind, clean-mergeable. Ready for re-review.
Feed banked insights forward
A Arbok
<1m
A Arbok
10m
A Arbok
52m
M feed-banked-insights-forward 🪎
Jul 3 12:41p 7:34a
Scope span invariant per agent
A Arbok
<1m
A Arbok
10m
A Arbok
1h
S scope-span-invariant-per-agent 🪎
Jul 3 12:27p 🐛 7:34a
Correct stale ship spec header
A Arbok
<1m
A Arbok
1m
A Arbok
1h
S correct-stale-ship-spec-header 🪎
Jul 3 12:13p 7:34a
Root merge gates at worktree
A Arbok
<1m
A Arbok
13m
A Arbok
1h
S root-merge-gates-at-worktree 🪎
Jul 3 11:52a 🐛 7:34a
DevOps card 2x2 grid
S Seel
<1m
S Seel
1h
S Seel
42m
S devops-card-2x2-grid 🪎
Jul 3 11:47a 7:34a
Redact secrets from capture hook
A Arbok
34m
A Arbok
50m
A Arbok
3h
S redact-secrets-from-capture-hook 🪎
Jul 3 11:38a 🐛 7:34a
Handoff 4 notes
Re-certified at current head (722c19cee701) — stale-cert resolved, no code change beyond the approved JSON-secret fix.
Secure learning-loop grade endpoints
A Arbok
<1m
A Arbok
17m
A Arbok
8h
S secure-learning-loop-grade-endpoints 🪎
Jul 3 5:13a 🐛 7:34a
Reconcile heartbeat card comments
C Caterpie
<1m
C Caterpie
12m
C Caterpie
3m
S reconcile-heartbeat-card-comments 🪎
Jul 3 5:02a 3:23a
Heartbeat attribution and launchers
C Caterpie
7m
C Caterpie
1h
C Caterpie
M heartbeat-attribution-and-launchers 🪎
Jul 3 2:28a 3:23a
Handoff 2 notes
QA (criterion #6) resolved. The paired tracker+launchers 'Release Pipeline card' in the original #6 was rejected by the operator mid-build in favor of the standalone launchers-only Heartbeats card (tracker stays in Next Release) — criterion #6 has been updated to that shipped/approved design. The three stale comments that still described the rejected pairing (_release_tracker.html.erb header, _board.html.erb heartbeats row, tasks_controller_test.rb) are now fixed and shipped to prod via PR #336 (reconcile-heartbeat-card-comments, main 0fc28b6). Code + comments + criterion #6 + docs (heartbeats.md, devops-cycle-design.md) now all agree: a launchers-only Heartbeats card, no tracker pairing. The single-use _release_tracker extraction is kept and its comment now states it is single-use.
Agent page heartbeat section
C Caterpie
<1m
C Caterpie
31m
C Caterpie
4m
S agent-page-heartbeat-section 🪎
Jul 2 10:43p 3:23a
Consolidate heartbeats add archive
C Caterpie
3m
C Caterpie
27m
C Caterpie
<1m
M consolidate-heartbeats-add-archive 🪎
Jul 2 9:59p 3:23a
Heartbeat launcher two-row grid
C Caterpie
<1m
C Caterpie
23m
C Caterpie
23m
S heartbeat-launcher-two-row-grid 🪎
Jul 2 8:26p 3:23a
Release card heartbeat launchers
C Caterpie
<1m
C Caterpie
22m
C Caterpie
<1m
S release-card-heartbeat-launchers 🪎
Jul 2 7:33p 3:23a
Composable deploy launcher set
C Caterpie
1m
C Caterpie
18m
C Caterpie
1m
M composable-deploy-launcher-set 🪎
Jul 2 4:53p 3:23a
Stage-change status badge
C Caterpie
2m
C Caterpie
36m
C Caterpie
1m
S stage-change-status-badge 🪎
Jul 2 4:52p 3:23a
Compact agent name stack
C Caterpie
1m
C Caterpie
1h
C Caterpie
1m
S compact-agent-name-stack 🪎
Jul 2 5:45a 3:23a
Capture and deploy attribution
C Caterpie
1m
C Caterpie
28m
C Caterpie
2m
M capture-and-deploy-attribution 🪎
Jul 1 8:49p 3:23a
Heartbeat table polish batch
C Caterpie
1m
C Caterpie
35m
C Caterpie
1m
M heartbeat-table-polish-batch 🪎
Jul 1 8:49p 3:23a
Shorten deploy tracker label
M Metapod
8m
M Metapod
<1m
M Metapod
8m
S shorten-deploy-tracker-label 🪎
Jul 1 7:54p 3:23a
Avi sizes designed tasks
C Caterpie
1m
C Caterpie
17m
C Caterpie
1m
M avi-sizes-designed-tasks 🪎
Jul 1 6:34p 3:23a
Agent column stacked display
C Caterpie
1m
C Caterpie
17m
C Caterpie
7m
S agent-column-stacked-display 🪎
Jul 1 6:34p 3:23a
Modular PR review SOP
C Caterpie
1m
C Caterpie
4m
C Caterpie
<1m
S modular-pr-review-sop 🪎
Jul 1 6:14p 📚 3:23a
Agent attribution on events
C Caterpie
1m
C Caterpie
17m
C Caterpie
1m
M agent-attribution-on-events 🪎
Jul 1 6:14p 3:23a
Fade shared-turn token duplicates
C Caterpie
<1m
C Caterpie
16m
C Caterpie
<1m
S fade-shared-turn-token-duplicates 🪎
Jul 1 4:52p 3:23a
Fresh tokens accurate cost
C Caterpie
5m
C Caterpie
15m
C Caterpie
<1m
S fresh-tokens-accurate-cost 🪎
Jul 1 4:04p 3:23a
Pretty JSON wider drawer
C Caterpie
1m
C Caterpie
14m
C Caterpie
1m
S pretty-json-wider-drawer 🪎
Jul 1 3:02p 3:23a
Capture action tokens and cost
C Caterpie
1m
C Caterpie
25m
C Caterpie
1m
M capture-action-tokens-and-cost-2 🪎
Jul 1 3:02p 3:23a
Require leading orient span
C Caterpie
<1m
C Caterpie
1m
C Caterpie
<1m
S require-leading-orient-span 🪎
Jul 1 12:38p 📚 3:23a
Polish heartbeat span table
C Caterpie
1m
C Caterpie
29m
C Caterpie
1h
M polish-heartbeat-span-table 🪎
Jul 1 6:31a 3:23a
Grade narrated trajectory spans
C Caterpie
1m
C Caterpie
13m
C Caterpie
3m
M grade-narrated-trajectory-spans 🪎
Jul 1 6:11a 3:23a
Natural agent narration adoption
C Caterpie
1m
C Caterpie
2m
C Caterpie
1m
S natural-agent-narration-adoption 🪎
Jul 1 6:02a 📚 3:23a
Event outcomes and session end
C Caterpie
4m
C Caterpie
18m
C Caterpie
3m
M event-outcomes-and-session-end 🪎
Jul 1 6:02a 3:23a
Consolidate deployments card header
S Seadra
<1m
S Seadra
11m
S Seadra
16h
consolidate-deployments-card-header 🪎
Jul 1 5:24a 3:23a
Agent event narration behavior
C Caterpie
1m
C Caterpie
2m
C Caterpie
1m
S agent-event-narration-behavior 🪎
Jul 1 3:05a 📚 3:23a
Event grouped heartbeat view
C Caterpie
8m
C Caterpie
22m
C Caterpie
1m
M event-grouped-heartbeat-view 🪎
Jul 1 3:05a 3:23a
Narrated trajectory events
C Caterpie
4m
C Caterpie
19m
C Caterpie
1m
M narrated-trajectory-events 🪎
Jul 1 2:37a 3:23a
Session picker Pokemon labels
M Magneton
<1m
M Magneton
19m
M Magneton
21h
S session-picker-pokemon-labels 🪎
Jul 1 12:20a 3:23a
Tool call capture hook
C Caterpie
6m
C Caterpie
12m
C Caterpie
2m
M tool-call-capture-hook 🪎
Jun 30 9:40p 3:23a
Atomic capture API endpoint
C Caterpie
3m
C Caterpie
8m
C Caterpie
1m
S atomic-capture-api-endpoint 🪎
Jun 30 9:40p 3:23a
Heartbeat feedback and bank
C Caterpie
9m
C Caterpie
26m
C Caterpie
3m
M heartbeat-feedback-and-bank 🪎
Jun 30 8:50p 3:23a
Agent marker test isolation
C Caterpie
3m
C Caterpie
4m
C Caterpie
1m
S agent-marker-test-isolation 🪎
Jun 30 8:19p 3:23a
Action grade and insights
C Caterpie
3m
C Caterpie
15m
C Caterpie
<1m
M action-grade-and-insights 🪎
Jun 30 8:19p 3:23a
Heartbeat trajectory view
C Caterpie
7m
C Caterpie
18m
C Caterpie
2m
M heartbeat-trajectory-view 🪎
Jun 30 8:19p 3:23a
Handoff
Read-only trajectory view shipped at /alex/heartbeat (HeartbeatController#show), route repointed off the launcher placeholder. Grouped by stage (null->Session) as the real-data analog of the six phases; tooltips reveal full Stage/Model/Actor names. Verified dark+light+mobile. Full suite 2166/0/0, rubocop clean, e2e 3 passed, dor-check merge-gate green. Demo data via rake atomic:demo_seed (local-only). NOTE: schema.rb intentionally unchanged — shared dev DB had a parallel T4 action_grades migration that is NOT on this branch; reverted to keep the PR migration-free.
Session entry launcher
C Caterpie
3m
C Caterpie
29m
C Caterpie
3m
S session-entry-launcher 🪎
Jun 30 7:38p 3:23a
Atomic action capture
C Caterpie
5m
C Caterpie
29m
C Caterpie
2m
M atomic-action-capture 🪎
Jun 30 7:38p 3:23a
Fast Avi Heartbeat
S Spearow
<1m
S Spearow
23m
S Spearow
2h
fast-avi-heartbeat 🪎
Jun 29 6:58p 3:23a
Comment 6 notes
Scout report: merge-ready - Review-lane automation remains review-only; fast mode is capped and DoR confirms backend coverage after CLI repair. Reporter: steffon Outcome: merge-ready Findings: - none Questions: - none Checks: - Regression covers Codex global flag order before exec. - PR #293 is non-draft, clean to release, and remote CI green.
Review Followup Guard
G Golduck
10m
G Golduck
<1m
G Golduck
1h
S review-followup-guard 🪎
Jun 29 5:35p 3:23a
Handoff 9 notes
Resolved: concern was process-only (PR #290 draft + stale full-suite/RuboCop evidence for head). Both reviewers confirmed code-level blockers fixed (alex: merge-ready, no blockers). The PR has since been marked ready and merged to main, so the draft/stale-evidence conditions no longer apply.
Deployment Grid Timers
V Victreebel
1m
V Victreebel
7m
V Victreebel
1h
deployment-grid-timers 🪎
Jun 29 5:07p 3:23a
Handoff 6 notes
Resolved: release_tracker_duration_bounds now falls back to release.created_at for assembling BEFORE falling back to completed_at (application_helper.rb:213, commit c87c432), so a conductor-emitted completed-only assemble_release event renders a real duration, not 0s. Regression: 'release_tracker_steps does not collapse completed-only assemble events to zero seconds' (application_helper_test.rb). Green on main.
Release History Pagination
V Victreebel
2m
V Victreebel
24m
V Victreebel
10m
release-history-pagination 🪎
Jun 29 4:30p 3:23a
Handoff 3 notes
Avi Heartbeat moved release-history-pagination to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary review found no blockers; acceptance, pagination, timestamp preservation, CI, DoR, and merge safety verified. - carl: merge-ready - Light review found no blockers; acceptance coverage, DoR, CI, and targeted local Rails checks are green.
Codex Update Guard
S Spearow
1m
S Spearow
16m
S Spearow
1h
codex-update-guard 🪎
Jun 29 4:26p 3:23a
Handoff 3 notes
Avi Heartbeat moved codex-update-guard to reviewed after carl + alex reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers; acceptance, CI, DoR, mascot hook inspection, and rollback guard are merge-ready. - alex: merge-ready - Light review found no blockers. PR meets the backend Codex update guard acceptance, CI is green, and the focused command suite passes locally with the required Ruby path.
PR Handoff Autofill
H Hitmonchan
1h
H Hitmonchan
45m
H Hitmonchan
3h
pr-handoff-autofill 🪎
Jun 29 4:12p 3:23a
Comment 9 notes
Scout report: merge-ready - Diff matches PR handoff task; generated body now uses task acceptance and checks_run with fallback text. Reporter: carl Outcome: merge-ready Findings: - none Questions: - none Checks: - GitHub CI passed lint, scan_js, scan_ruby, and test on PR #291. - Local focused test and full-suite/rubocop evidence are recorded on the task.
Feedback Resolution State
H Hitmonchan
1h
H Hitmonchan
6h
H Hitmonchan
2h
feedback-resolution-state 🪎
Jun 29 4:12p 3:23a
Handoff 7 notes
Resolved: unresolved-feedback state IS wired into the DevOps decision path — bin/devops-cycle returns request-changes when task.unresolved_feedback is present (bin/devops-cycle:550-552), derived from qa_feedback minus resolving handoffs. Regression: 'conductor decisions preserve unresolved feedback after later handoff' (devops_cycle_command_test.rb:283). PR #282 merge-sequencing conflict moot post-merge. Green on main.
E2E Test DB Isolation
W Wigglytuff
3m
W Wigglytuff
21m
W Wigglytuff
5h
S e2e-test-db-isolation 🪎
Jun 29 4:06p 🐛 3:23a
Comment 10 notes
Scout report: merge-ready - Full-suite-check now resets the Rails test database before certifying the suite and aborts if reset fails. Reporter: carl Outcome: merge-ready Findings: - none Questions: - none Checks: - Regression covers reset-before-test order and reset failure abort. - GitHub CI passed lint, scan_js, scan_ruby, and test on PR #285.
Codex Ruby Path Fix
W Wigglytuff
5h
W Wigglytuff
12m
W Wigglytuff
2h
S codex-ruby-path-fix 🪎
Jun 29 4:06p 🐛 3:23a
Handoff 8 notes
Resolved: install-agent-docs zprofile block PREPENDS Homebrew Ruby preserving existing PATH via ${PATH:+:$PATH} and dedupes (bin/install-agent-docs:243-253) — git/sed no longer disappear, and Homebrew Ruby resolves before system Ruby. Test: 'installer must not replace Codex PATH and break normal Bash tool lookup' (install_agent_skills_test.rb:293). PR #287 overlap moot post-merge.
Review Process Hub
G Golduck
10m
G Golduck
15m
G Golduck
21m
S review-process-hub 🪎
Jun 29 3:54p 3:23a
Handoff 3 notes
Avi Heartbeat moved review-process-hub to reviewed after shannon + carl reported merge-ready. Left for Steffon QA. Reports: - shannon: merge-ready - Primary review found no blockers; review hub acceptance, CI, DoR, local focused tests, and merge safety are green. - carl: merge-ready - Light review found no blockers; acceptance, docs, CI, DoR, local navigation, and merge safety are clean.
Review Comment Taxonomy
H Hitmonchan
<1m
H Hitmonchan
5h
H Hitmonchan
2h
review-comment-taxonomy 🪎
Jun 29 3:38p 3:23a
Handoff 7 notes
Resolved: bin/session-preflight now includes 'clarification' in TASK_CONVERSATION_TYPES (bin/session-preflight:31) and the live-task fallback surfaces clarification activities. Regression coverage: test_live_task_show_falls_back_to_clarification_activity (session_preflight_test.rb) + Activity taxonomy tests. Green on main.
Stage Sort Freshness
W Wigglytuff
<1m
W Wigglytuff
22m
W Wigglytuff
13m
S stage-sort-freshness 🪎
Jun 29 1:06p 🐛 3:23a
Comment 3 notes
Session note: this Codex shell resolved /usr/bin/ruby first; Rails/test commands needed PATH=/opt/homebrew/opt/ruby@3.3/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/pkg/env/global/bin:/Library/Apple/usr/bin:/opt/homebrew/bin:/Users/alex/.codex/packages/standalone/releases/0.142.3-aarch64-apple-darwin/codex-path:/Users/alex/.codex/tmp/arg0/codex-arg0wT5kdu:/Users/alex/.local/share/mise/installs/node/20/bin:/Users/alex/.cargo/bin:/opt/homebrew/lib/ruby/gems/3.3.0/bin:/opt/homebrew/opt/ruby@3.3/bin:/Users/alex/.local/bin:/Users/alex/.local/share/solana/install/active_release/bin to use Ruby 3.3.11 and Bundler 2.5.23.
Default Blocker Actor
E Exeggutor
<1m
E Exeggutor
17m
E Exeggutor
7m
default-blocker-actor 🪎
Jun 29 12:39p 🐛 3:23a
Handoff
Investigation: PR #271 shipped, but no-agent bin/task block calls still had no named actor when the session marker/task had no persona. This patch stops persisting raw session ids, defaults submitted rework blocks to Avi, and stamps the resolved blocker on qa_feedback. Existing 019f... TaskEvents need separate backfill if historical cards should change.
Avi Heartbeat Workflow
P Poliwrath
5m
P Poliwrath
6m
P Poliwrath
3m
M avi-heartbeat-workflow 🪎
Jun 29 6:27a 3:23a
Handoff 5 notes
Resolved: submitted_sort_time prefers submitted_at with a created_at fallback (bin/avi-heartbeat:200-203), so the newest-SUBMITTED PR is claimed first. Regression: test_prefers_latest_submitted_at_over_task_creation_time selects an older-created/later-submitted task first. Green on main.
Review Event Timeline
G Golduck
<1m
G Golduck
38m
G Golduck
5h
review-event-timeline 🪎
Jun 29 6:20a 3:23a
Evolutionary Subagent Mascots
V Victreebel
59m
H Hitmonchan
6h
H Hitmonchan
2h
evolutionary-subagent-mascots 🪎
Jun 29 5:28a 3:23a
Comment 15 notes
Scout report: merge-ready - Documentation/session handoff behavior is covered; no remaining docs or CLI blocker after fresh DoR check. Reporter: alex Outcome: merge-ready Findings: - none Questions: - none Checks: - Local DoR passes on the current head, clearing the stale-evidence concern from the earlier dry-run report. - Task acceptance and tests cover branching, single-member, and exhausted evolution trees.
Release Duration Dashboard
V Victreebel
1h
V Victreebel
59m
V Victreebel
6m
release-duration-dashboard 🪎
Jun 29 5:16a 3:23a
QA Feedback
PR #275 is not ready for release: it is still a draft and GitHub CI's test job failed at test/system/task_timeline_mascot_history_test.rb:41. Fix TaskTimelineMascotHistoryTest#test_task_timeline_preserves_historical_mascots_after_a_rework_handoff (expected two visible Grimer timeline crew members, found one), rerun CI green, undraft the PR, and resubmit.
Studio Theme Polish
V Victreebel
3m
S Sandslash
23m
S Sandslash
36m
studio-theme-polish 🪎
Jun 29 5:16a 3:23a
Building Sort Refresh
C Cubone
<1m
C Cubone
21m
C Cubone
1h
building-sort-refresh 🪎
Jun 29 4:01a 🐛 3:23a
Comment
Scout report: conductor-review - No code blockers found; PR remains a GitHub draft. Reporter: avi-scout Outcome: conductor-review Findings: - Building column now renders active building work before still-blocked cards without duplicating the blocked column. - Draft state must be cleared before this can enter merge-ready review. Questions: - none Checks: - Reviewed PR diff, task metadata, GitHub checks, and focused model/controller tests.
Archive Ledger Cleanup
S Slowpoke
<1m
S Slowpoke
8m
S Slowpoke
28m
archive-ledger-cleanup 🪎
Jun 29 3:54a 3:23a
Event Driven Lifecycle APIs
V Victreebel
12m
V Victreebel
15m
V Victreebel
16m
event-driven-lifecycle-apis 🪎
Jun 28 10:09p 3:23a
QA Feedback
PR #270 now conflicts with origin/release after PR #269 merged first. Please rebase feat/event-driven-lifecycle-apis onto current origin/release, resolve the shared bin/release and docs/agents/system/devops-cycle-design.md conflicts, rerun the lifecycle API focused checks plus full-suite/rubocop evidence, force-push with lease, and resubmit for QA.
Blocked Agent Persistence
E Exeggutor
6h
E Exeggutor
18m
E Exeggutor
1h
blocked-agent-persistence 🪎
Jun 28 5:15p 🐛 3:23a
Comment 5 notes
Scout report: conductor-review - No code blockers found; PR remains a GitHub draft. Reporter: avi-scout Outcome: conductor-review Findings: - Block actor resolution now prefers explicit agent, session persona, task persona, then session id. - Draft state must be cleared before this can enter merge-ready review. Questions: - none Checks: - Reviewed PR diff, task metadata, GitHub checks, and focused CLI regression tests.
World Cup Knockout Matches
I Ivysaur
36m
I Ivysaur
9m
I Ivysaur
5h
world-cup-knockout-matches 🐊
Jun 27 10:16p 3:23a
Handoff 14 notes
Blocker rework complete for PR 171. Task https://mcritchie.studio/tasks/world-cup-knockout-matches; PR https://github.com/amcritchie/turf-monster/pull/171; branch feat/world-cup-knockout-matches at 005d6eab00c895eb552964bf1cc7f0e3f59c8f20; local http://localhost:3103. Fix: WorldCup2026KnockoutSeed now assigns scheduled status only for newly-created games, preserving existing completed status and scores across repeated wc:seed_knockout runs. Regression added for completed Match 73 remaining completed after reseed. Evidence: focused Rails 72 runs/290 assertions green; wc:seed_knockout proof completed Match 73 preserved RSA 0-CAN 1; local knockout Playwright green; full-suite/rubocop certified at f35e42d256914f8481c80a14b7e6ec196a782dc9; GitHub CI run 28353300868 all green. Post-deploy command remains bin/rails wc:seed_knockout.
AI Search Cache
K Kangaskhan
<1m
K Kangaskhan
15m
K Kangaskhan
7m
ai-search-cache 📇
Jun 29 6:51p 2:54a
Handoff 3 notes
Avi Heartbeat moved ai-search-cache to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers; PR #19 meets the cache acceptance criteria and is clean to merge into release. - shannon: merge-ready - Light review found no blockers; PR meets the demo-cache acceptance criteria and is safe for Avi to advance after Carl agrees.
Render Codex Runs
K Kangaskhan
6m
K Kangaskhan
5m
K Kangaskhan
5h
seed-demo-caches 📇
Jun 29 8:22p 2:54a
Comment 6 notes
Scout report: merge-ready - Backend cache and contact persistence paths are ready to merge. Reporter: carl Outcome: merge-ready Findings: - DemoIdentityResults writes deterministic Codex run payloads using only first/last name plus supplied notes. - LinkedInCandidateResolver prefers Codex demo run payloads while preserving IdentityDemoCache fallback behavior. Questions: - none Checks: - Verified PR #21 is non-draft, base release, mergeState CLEAN, head b009ae9598474b01cb0d5747f99fb1aeb152d3ae. - DoR passed with explicit satellite full-suite bypass after fresh Rolio test, system, and RuboCop runs.
LinkedIn Identity Gate
K Kangaskhan
3m
K Kangaskhan
15m
K Kangaskhan
1h
M linkedin-identity-gate 📇
Jun 29 6:35a 2:54a
Handoff 5 notes
Targeted conductor review moved linkedin-identity-gate to reviewed for the next release train. Prior blocker resolved: stale PR #18 wiring now points at open PR #20, feat/rolio-demo head 0f78ba6. Evidence: PR #20 CLEAN/MERGEABLE to release; GitHub CI green; qa-intake avi-ready after local worktree binding; focused tests passed with 79 runs, 385 assertions; full Rolio suite passed with 283 runs, 1174 assertions; RuboCop inspected 121 files with no offenses. DoR passed with an explicit full-suite-bypass only for the known cross-repo fingerprint mismatch: evidence was recorded against Rolio tree 549a08adc3fc while Studio dor-check fingerprints the Studio root. Left for Steffon/release assembly.
Rolio demo polish rehearsal
H Haunter
6h
H Haunter
49m
H Haunter
1h
S rolio-demo-polish-rehearsal 📇
Jun 26 6:30p 2:54a
Comment 8 notes
Scout report: conductor-review - No code blockers found; PR remains a GitHub draft. Reporter: avi-scout Outcome: conductor-review Findings: - Hotwire Native path rules merge as expected and cover event and notes routes. - Post-deploy command is narrow; draft state must be cleared before merge-ready review. Questions: - none Checks: - Reviewed PR diff, routes, task metadata, latest CI run, and focused configuration tests.
Phone OTP authentication
F Flareon
F Flareon
F Flareon
rolio-phone-otp-auth 📇
Jun 22 8:41p 2:54a
Sign in with Apple
F Flareon
F Flareon
F Flareon
rolio-apple-auth 📇
Jun 22 8:41p 2:54a
Upgrade SQLite to Postgres
F Flareon
F Flareon
F Flareon
rolio-postgres-upgrade 📇
Jun 22 8:41p 2:54a
Public contacts REST API
F Flareon
F Flareon
F Flareon
rolio-public-api 📇
Jun 22 8:41p 2:54a
Device contacts import
F Flareon
F Flareon
F Flareon
rolio-device-contacts 📇
Jun 22 8:41p 2:54a
Advance ships on deploy
S Seel
1m
S Seel
S Seel
S advance-ships-on-deploy 🪎
Jul 3 12:25p 1:34p
Release timing squares row
N Nidorina
<1m
N Nidorina
N Nidorina
S release-timing-squares-row 🪎
Jul 1 5:35a 4:55a
Heartbeat global event feed
S Sandshrew
<1m
S Sandshrew
15m
S Sandshrew
43m
S heartbeat-global-event-feed 🪎
Jul 1 4:48p 9:45p
Capture action tokens and cost
D Dragonair
1m
D Dragonair
D Dragonair
M capture-action-tokens-and-cost 🪎
Jul 1 2:49p 2:55p
Release times square row
D Diglett
<1m
D Diglett
13m
D Diglett
S release-times-square-row 🪎
Jul 1 5:39a 6:03a
Heartbeat Codex Arguments
D Dugtrio
D Dugtrio
D Dugtrio
heartbeat-codex-arguments 🪎
Jun 29 8:09p 🐛 10:00p
Comment
Superseded in-place for DevOps flow: the Codex argument-order repair was folded into fast-avi-heartbeat PR #293 at commit 78ef965 with a regression test.
Fix Mascot Hook Primitive
O Oddish
<1m
O Oddish
24m
O Oddish
fix-heartbeat-reviewer-launch 🪎
Jun 29 3:59p 🐛 4:27p
Comment
Operator abandoned this direction; PR #283 closed and task archived instead of proceeding through Avi QA.
Polish Rolio Card Copy
R Raticate
<1m
R Raticate
14m
R Raticate
5h
polish-rolio-card-copy 🪎
Jun 28 10:20p 5:17a
Release Runtime Merge Polish
S Slowpoke
<1m
S Slowpoke
19m
S Slowpoke
5h
M release-runtime-merge-polish 🪎
Jun 28 10:19p 5:17a
Handoff
PR https://github.com/amcritchie/mcritchie-studio/pull/269 is ready for review. It keeps the public bin/release command as a pinned-Ruby launcher around bin/release.rb, and makes bin/release merge collapse duplicate PR URLs so shared-PR task batches check/merge each PR once while adopting every task slug. Local full suite + RuboCop passed at 8a8ee81c29efa320b1d8f1bd76667ae7b5e2f641; GitHub CI passed lint, scan_js, scan_ruby, and test.
Agent Runtime Modularization
D Dragonair
1m
D Dragonair
27m
D Dragonair
3h
agent-runtime-modularization 🪎
Jun 28 5:14p 5:17a
Tasks Button Deployments
R Rattata
<1m
R Rattata
10m
R Rattata
1h
tasks-button-deployments 🪎
Jun 28 2:23p 5:17a
Rolio Release Servers
G Goldeen
32m
S Slowpoke
13m
S Slowpoke
18h
rolio-release-servers 📇
Jun 27 8:54p 5:17a
Comment 5 notes
QA prepare exposed that Rolio one-off Heroku dynos start with an empty SQLite filesystem, so demo:personas:refresh_avatars cannot run alone. Validated bin/rails db:migrate db:seed demo:personas:refresh_avatars on rolio-qa; updating post_deploy_cmd to that durable same-dyno command before rerunning prepare.
Suite Consistency Cleanup
R Raticate
11h
R Raticate
14m
R Raticate
1h
suite-consistency-cleanup 🪎 ⛓️ 🐊 💎 🏛️
Jun 27 8:10p 5:17a
Handoff 5 notes
Reworked primary blocker: merged current origin/release 0b1d1f7 into Studio PR #258, resolved conflicts in task card/docs/prod smoke files, regenerated root agent docs, reran full-suite-check (2012 runs, 9296 assertions, RuboCop clean), reran install-agent-docs check, dor-check, session-preflight, and confirmed GitHub reports PR #258 CLEAN/MERGEABLE with all checks green. Task evidence also records Turf Vault #5 as docs-only/no configured CI.
Rolio enrich review polish
D Dewgong
<1m
D Dewgong
1h
D Dewgong
M rolio-enrich-polish2 📇
Jun 27 12:20a 5:17a
Comment
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio enrich tags and split
D Dewgong
<1m
D Dewgong
1h
D Dewgong
M rolio-enrich-tags 📇
Jun 27 12:01a 5:17a
Comment
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio merge enrich socials
D Dewgong
<1m
D Dewgong
1h
D Dewgong
M rolio-merge-enrich-socials 📇
Jun 26 11:09p 5:17a
Comment 5 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio admin Prompts page
D Dewgong
1m
D Dewgong
1h
D Dewgong
S rolio-prompts 📇
Jun 26 10:21p 5:17a
Comment 5 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio Add Notes page
G Grimer
4m
G Grimer
1h
G Grimer
S rolio-add-notes 📇
Jun 26 10:09p 5:17a
Comment 6 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio admin AI results
D Dewgong
2m
D Dewgong
1h
D Dewgong
S rolio-admin-ai-results 📇
Jun 26 8:04p 5:17a
Comment 6 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio event outreach arm
D Dewgong
3h
D Dewgong
1h
D Dewgong
L rolio-event-outreach-arm 📇
Jun 26 6:30p 5:17a
Comment 5 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio enrich notes cadence
D Dewgong
13m
D Dewgong
1h
D Dewgong
L rolio-enrich-notes-cadence 📇
Jun 26 6:30p 5:17a
Comment 6 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Rolio demo seed cache
D Dewgong
1m
D Dewgong
1h
D Dewgong
M rolio-demo-seed-cache 📇
Jun 26 6:29p 5:17a
Comment 6 notes
QA approved PR #16 at head 23b9fbb. Local bin/rails test passed (239 runs, 952 assertions, 0 failures), latest GitHub Actions CI run 28274558968 passed, PR is CLEAN, and main base is intentional for standalone Rolio. PR body was updated to include rolio-enrich-polish2.
Restore NFL Slates
V Venonat
<1m
V Venonat
V Venonat
restore-nfl-slates 🐊
Jun 28 2:04a 🐛 2:56p
Handoff
Production-only data backfill complete. Ran scoped NFL seed on turf-monster-mainnet; no code diff or PR. Verified nfl_slates=17, nfl_teams=32, nfl_games=256, nfl_matchups=512, contest_slate_options=20, /up=200.
Live Codex Mascots
D Dragonair
1m
D Dragonair
2h
D Dragonair
10m
live-codex-mascots 🪎
Jun 27 11:51p 2:56p
Quiet Codex Mascots
D Dragonair
<1m
D Dragonair
10m
D Dragonair
13m
quiet-codex-mascots 🪎
Jun 27 10:27p 🐛 2:56p
Comment
Review passed: Carl primary and Shannon light approved PR #262 after DoR evidence was restored and verified from the feature worktree.
Rolio Deployment Integration
S Slowpoke
<1m
S Slowpoke
27m
S Slowpoke
4h
rolio-deployment-integration 🪎 📇
Jun 27 10:11p 2:56p
Handoff 2 notes
PR https://github.com/amcritchie/mcritchie-studio/pull/261 is ready for review. GitHub CI passed on 8af7e9245da37a2f359a7f96e30dc111ef8d3f7b: lint, scan_ruby, scan_js, and test. The release/docs integration keeps Rolio on Heroku URLs without custom domains; Rolio PR #16 remains the first feature PR targeting its new release branch.
Task Card Overflow
S Sandshrew
<1m
S Sandshrew
23m
S Sandshrew
4h
task-card-overflow 🪎
Jun 27 10:09p 🐛 2:56p
Release Tracker Pulse
M Mr. Mime
<1m
M Mr. Mime
24m
M Mr. Mime
4h
release-tracker-pulse 🪎
Jun 27 8:58p 2:56p
Handoff 2 notes
Mr. McRitchie confirmed the visual result looks good; PR is ready for Avi review after clearing draft-state blocker.
Codex Startup Mascots
D Dragonair
2m
D Dragonair
5m
D Dragonair
23m
codex-startup-mascots 🪎
Jun 27 8:15p 🐛 2:56p
Comment 4 notes
Review approved: Carl primary and Alex light approved PR #257. Residual risk: user-level fallback may require Codex hook trust; managed /etc requirements remains the policy-trusted automatic path.
Autonomous Release SOP
G Growlithe
<1m
G Growlithe
33m
G Growlithe
4h
M autonomous-release-sop 🪎
Jun 27 3:37p 2:56p
Comment
QA approved PR #256 at e1f0e1c. PR checks green; session-preflight passed after installing active docs; focused checks passed: conductor 16/94, release CLI 84/362, Rails focused suite 124/714. No production ship performed.
Review Timer Signal
L Lickitung
1h
L Lickitung
13m
L Lickitung
20m
review-timer-signal 🪎
Jun 27 1:04a 🐛 2:56p
Comment 2 notes
QA approved PR #254 at 169b0ef. Focused suite passed: 186 runs, 736 assertions, 0 failures; CI run 28280429097 green. Marked PR ready from draft. No merge performed.
Preserve Mascot History
G Grimer
<1m
G Grimer
16m
G Grimer
13m
S preserve-mascot-history 🪎
Jun 26 11:56p 🐛 2:56p
Handoff
PR #252 preserves build-lane mascot history by snapshotting mascot identity on TaskEvent metadata and rendering event snapshots before falling back to the current task mascot. Local stack: http://localhost:3002, demo route: /tasks/mascot-handoff-demo after sign-in. Checks: DoR green; full bin/rails test 1975 runs / 9066 assertions; bin/rubocop clean.
Primary owns review lane
M Machoke
1h
M Machoke
5m
M Machoke
24m
L primary-owns-review-lane 🪎
Jun 26 10:38p 2:56p
Comment 2 notes
QA approved PR #255 at c36e948. Preflight passed; active qa-release skill installs are synced; focused docs/SOP suite passed: 118 runs, 725 assertions, 0 failures; CI run 28280356139 green. No merge performed.
Docs reference SOP vocabulary
S docs-reference-sop-vocabulary 🪎
Jun 26 10:28p 2:56p
Reviewer roles primary light
M Machoke
7m
M Machoke
5m
M Machoke
17m
M reviewer-roles-primary-light 🪎
Jun 26 10:28p 2:56p
QA Feedback
PR #251 now conflicts with release after PRs #252 and #253 merged. Rebase feat/reviewer-roles-primary-light on origin/release, resolve conflicts in stage agent/task timeline/docs test files, rerun the required checks, then resubmit for release merge.
DevOps SOP infographic
M Machoke
<1m
M Machoke
2h
M Machoke
12m
M devops-sop-infographic 🪎
Jun 26 8:53p 2:56p
Comment
Senior review -> APPROVED (2/2). Reviewers: Carl (backend/safety heavy) + Alex (SOP-accuracy light), both high confidence. 120 tests / 691 assertions green; all 6 acceptance met. SAFETY CONFIRMED: dev deploy toolbar is Rails.env.local?-gated (403 in prod, tested) and every mutation scoped to the dev_fixture marker -- never touches a real Release/board. Overlap with #249 (already in RC) on _release_summary.html.erb is CLEAN (#250 restyles bottom tracker dots; #249 header seal badge byte-identical). Infographic faithfully represents the documented model (owners/gates/one-operator-gate/pulses/stage names match sections 1.2/1.4; the 2 real divergences honestly flagged with a warning). Follow-ups (non-blocking): (1) MAJOR clarity (Alex) -- scannable tile labels reuse across lanes mislabel distinct gates: 'Visual' appears nowhere in the model; 'QA Acceptance' mislabels Avi's frozen-SHA e2e gate; 'PR Review'/'Merge Review' reused. One-file YAML rename recommended (expand panels accurate, so non-blocking but undercuts an understanding artifact). (2) docs not cross-referenced though the YAML header claims they are -- add a section-1.4 pointer. (3) designed/blocked/archived stages absent -- add a 'happy path' caption. (4) minor: stale comment tasks_controller.rb:43; hardcoded legend order. -> reviewed.
Production smoke seal agent
M Machoke
6m
M Machoke
55m
M Machoke
1h
L production-smoke-seal-agent 🪎
Jun 26 8:28p 2:56p
Comment
Senior review -> APPROVED (2/2). Reviewers: Carl (backend/migration heavy) + Alex (release-semantics/docs light), both high confidence. Confirmed the EXISTING SHIP FLOW IS SAFE: seal is a post-/up-gate step 5c, read-only against prod, strictly NON-BLOCKING (no new abort/rollback path; board write rescued); migration purely additive (jsonb, schema matches, no backfill); 149 focused tests green. Follow-ups (non-blocking): (1) minor bin/release line ~1474 -- the bin/prod-smoke spawn (Open3) sits OUTSIDE the degrade-to-warn rescue; a narrow env failure (non-exec / wrong CWD) could propagate between deploy and ship!/notes, leaving a release stuck assembled with no notes -- wrap the sh call; (2) medium: docs devops-cycle-design section 1.4 Run Deployment prose not updated for the new seal/badge step (AGENTS.md docs-in-same-pass); add ~2 sentences; (3) low: devops_test_suites.yml production_url comment overstates its role (host actually resolves from release_repos smoke_url). -> reviewed.
Center timeline card layout
B Butterfree
6m
B Butterfree
6m
B Butterfree
1h
S center-timeline-card-layout 🪎
Jun 26 8:18p 2:56p
Comment 4 notes
Senior re-review -> APPROVED (2/2). Reviewers: Shannon (UI heavy) + Carl (model/tests light), both high confidence. Re-review after the pulse/ticking-duration commits: all 230 tests green; all 9 acceptance criteria met (incl. pill removed, live ticker, pulsing bg, hides arrow/next, active-stage verb form). Live ticker verified as a correct Alpine x-data factory; Nokogiri-static assertions respected. Non-blocking follow-ups: (1) this PR orphaned the components/elapsed_label_script include at _consolidated_timeline.html.erb:58 -> now injects an unused window.elapsedLabel global; drop line 58 (keep it on _board.html.erb:43); (2) stale header doc lines 19-21 contradict the new code; update in same pass; (3) nits: motion-safe:animate-pulse, and a percent sign inside an ERB comment body. -> reviewed.
Add Google Auth
D Ditto
2m
D Ditto
D Ditto
add-google-auth 📇
Jun 27 10:39p 10:53p
Comment
Canceled at Mr. McRitchie's request: Google auth is no longer needed. No PR opened; local Rolio worktree and uncommitted changes were discarded.
Fix live timeline stage badge
B Butterfree
38m
B Butterfree
9m
B Butterfree
S fix-live-timeline-stage-badge 🪎
Jun 26 7:19p 🐛 11:28p
Save Codex Stage Usage
P Primeape
<1m
P Primeape
23m
P Primeape
46m
save-codex-stage-usage 🪎
Jun 26 7:05p 🐛 11:28p
Handoff
PR #246 is ready for Avi QA. Implemented provider-aware Codex stage usage capture, updated task-board docs, and verified with targeted unit/integration checks plus full-suite/rubocop at 8264e3a0f73a. Local stack is http://localhost:3002 (/up 200).
Managed Codex Mascot
W Weezing
<1m
W Weezing
22m
W Weezing
18m
managed-codex-mascot 🪎
Jun 26 6:40p 11:28p
Handoff
PR #245 moves Codex mascot startup to managed requirements, prunes user-level Codex mascot hooks, and stages ~/.codex/mcritchie-requirements.toml when /etc/codex/requirements.toml needs admin rights. DoR green after rebase: full-suite/rubocop evidence 64183d75c1ee. Remaining local enablement requires admin install of /etc/codex/requirements.toml.
Add Session Preflight
P Pidgeotto
24m
P Pidgeotto
22m
P Pidgeotto
34m
add-session-preflight 🪎
Jun 26 5:46p 11:28p
Comment 3 notes
Senior review → APPROVED (2/2). Reviewers: Steffon (devops/tooling) + Carl (rails/tests), both high confidence. Tests green: command suite (7 tests/92 assertions) + controller show/latest (4/16) + 30 focused all pass. Acceptance: all 6 met — latest-feedback now sourced from real latest_activity serializer with /api/v1/activities fallback (prior HEAVY block resolved); branch-drift, PR/checks, overlap, docs-drift, stale-terms, test-tiers all covered by deterministic command tests. Non-blocking follow-ups (do NOT gate ship): (1) overlap_report issues one gh-pr-view per candidate across up to 30 PRs serially — cap merged depth or drop merged sweep; (2) latest_activity_json orders by created_at only — add id tiebreaker for guaranteed determinism; (3) dead task.dig('devops','task_url') falls through harmlessly.
Codex Mascot Kickoff
W Weezing
<1m
W Weezing
17m
W Weezing
5m
codex-mascot-kickoff 🪎
Jun 26 5:30p 11:28p
Blocked Websocket Refresh
C Cloyster
5m
C Cloyster
26m
C Cloyster
10m
S blocked-websocket-refresh 🪎
Jun 26 5:30p 🐛 11:28p
Handoff 3 notes
Final follow-up after manual watch: removed temporary console logs, fixed same-payload remove/prepend animation race, preserved blocked card crew markers, added visible-card e2e regression. Full-suite/rubocop fingerprint d95c680ea8a6; PR #243 updated.
Release Progress Labels
V Vileplume
1m
V Vileplume
6m
V Vileplume
1h
release-progress-labels 🪎
Jun 26 5:27p 11:28p
Handoff 2 notes
Revision applied: removed checkmark emoji from completed Next Release tracker labels while keeping past-tense labels and the active pulse. PR #241 now ends at be99795. Verified focused helper/controller/broadcaster tests, targeted RuboCop, Playwright no-emoji smoke, full-suite-check, and DoR.
Release Task Stack Row
B Bulbasaur
39m
B Bulbasaur
15m
B Bulbasaur
12m
release-task-stack-row 🪎
Jun 26 5:04p 11:28p
QA Feedback
Heavy (Shannon, deep UI): BLOCK on 2 blockers + a dark-mode fix — the overlap TECHNIQUE is sound (relative + per-pill z-index inside isolate, -ml-20, hover:z-50 lift, graceful 1-pill fallback, no LiveBoardFx/x-show/mb-* regression). (1) SCOPE/REGRESSION: the stacking lives in the SHARED app/views/tasks/_release_summary.html.erb and is applied UNCONDITIONALLY, so it also restructures the Next Release / CURRENT card — but acceptance was 'the LAST release section' only. The current card flips from readable flex-wrap multi-line pills to a single overlapping flex-nowrap overflow-hidden row that HIDES titles — an unrequested downgrade right where the operator curates the in-progress release. FIX: gate the stacked classes on variant==:last (i.e. !current); leave the current card's wrapping pills alone. (2) MISSING [visual] TIER: test plan lists '[visual] Playwright desktop/mobile /deployments stacked-row check' but the diff adds ZERO Playwright changes; the lone component test only asserts class/style STRINGS (.flex-nowrap, -ml-20, z-index, the shadow literal) — it cannot verify the overlap actually renders, each pill's left edge stays exposed, or mobile/dark-light. Extend e2e/deployments_live.spec.js — on the /deployments board this is the tier that catches the regression. (3) DARK-MODE PARITY (fix): the separation cue box-shadow -10px 0 14px -12px rgba(0,0,0,0.95) is hardcoded near-black — reads in light mode, near-invisible against bg-inset in dark; use a theme-aware token/ring or a stronger left border so the stack separation reads in both themes. MINOR (non-blocking): reveal = pill_width-80px staggers (narrow ~32px vs wide ~160px); many tasks on a narrow card clip the rightmost pills with no '+N more' affordance. Light (Jasper): APPROVE on correctness (members loaded once = no N+1, nil-safe, 0/1/many edge cases handled, component test asserts real overlap structure) — and independently flagged the same shared-partial scope leak. PR is a draft; CI green. Re-stamp checks after rework.
Stylish dynamic splash background
P Porygon
<1m
P Porygon
23m
P Porygon
3h
splash-dynamic-bg 📇
Jun 26 2:13p 11:28p
Comment 4 notes
Closed out via rolio's own (non-pipeline) path: rolio is not a bin/release member (not in release_repos.yml; no bin/deploy/heroku remote here), so it could not ride rel-20260626-6d5d0e. Approved PR #15 merged into rolio main (2026-06-26T21:34Z). App deploy, if any, happens in rolio's own environment.
Docs Gate Cleanup
P Pidgeotto
2h
P Pidgeotto
10m
P Pidgeotto
26m
docs-gate-cleanup 🪎
Jun 26 6:24a 11:28p
QA Feedback 5 notes
APPROVED ON THE MERITS (Carl heavy + Alex light, both green) — all 4 stale-doc items are fixed (comms.md, routes-and-controllers.md, mack/role.md, feature_shapes.yml:8). This is a MERGE-SEQUENCING REBASE, not a quality block. Sibling PR #235 (release-autonomy-cleanup) is landing THIS release and now owns the operator-gated ship rewrite in both docs/agents/skills/qa-release/SKILL.md (your edit is byte-identical → no-op) and docs/agents/system/devops-cycle-design.md §1.3+§1.4 — backed by the REAL config/release_builder.yml + Release::BuilderPolicy that #235 ships. Your devops-cycle-design.md edits to the same §1.3 'RC assembly autonomy' paragraph + §1.4 (chip line, auto-ship callout, --yes bullets, step 6) now CONFLICT, and your 'Until it is backed by a checked-in config/release_builder.yml, treat this section as canonical' framing is stale (the config now exists). REBASE RECIPE: rebase feat/docs-gate-cleanup onto origin/release (post-#235); in devops-cycle-design.md TAKE release's (=#235's) config-backed §1.3/§1.4 paragraphs and re-apply ONLY your unique 'Claude->agent session' rename + any non-overlapping vocab; drop the 'until a config lands' paragraph (the old 'prepare silently no-ops' line is also superseded by #235's 'prepare aborts without confirmation in a non-interactive shell'). SKILL.md needs no action. Keep all your other ~33-file vocab fixes. Re-stamp checks + re-submit; it merges clean next run.
Release Progress Tracker
M Magikarp
4h
M Magikarp
6m
M Magikarp
36m
S release-progress-tracker 🪎
Jun 26 8:01a 6:43p
Handoff 2 notes
Addressed QA blocker: light-mode active tracker contrast now uses text-amber-700 dark:text-amber-200; aria-current renders as literal step; reopened releases no longer over-advance from sticky assembled_at. Re-ran focused helper/component tests, deployment card tests, Playwright light-mode pass, full-suite-check, and dor-check. PR #238 pushed at 5fdfad2 and marked ready for review.
Blocked Task Websocket
G Geodude
<1m
G Geodude
20m
G Geodude
13m
blocked-task-websocket 🪎
Jun 26 7:41a 🐛 6:43p
Handoff
Fixed blocked-task live updates by broadcasting stage transitions as remove+prepend so missing cards are inserted into the Building dropzone. Added unit and Playwright coverage for building-to-blocked websocket insertion. PR: https://github.com/amcritchie/mcritchie-studio/pull/237 Local: http://localhost:3019 Checks: unit/component/integration/e2e, full Rails suite, rubocop, dor-check.
Worktree Hygiene Cleanup
P Pidgeotto
<1m
P Pidgeotto
46m
P Pidgeotto
23m
worktree-hygiene-cleanup 🪎
Jun 26 7:36a 6:43p
Task Card Comment Layout
E Exeggcute
<1m
E Exeggcute
2m
E Exeggcute
21m
task-card-comment-layout 🪎
Jun 26 7:31a 6:43p
Comment 2 notes
Lesson learned: do not move a task to submitted while the GitHub PR is still draft or CI is pending. For future handoffs, wait for CI green, run gh pr ready <pr>, then submit/resubmit the task for QA.
Release Autonomy Cleanup
P Pidgeotto
5h
P Pidgeotto
25m
P Pidgeotto
17m
release-autonomy-cleanup 🪎
Jun 26 7:09a 6:43p
QA Feedback 2 notes
Heavy (Carl): APPROVE — Release::BuilderPolicy is fail-closed + advisory-only; the §1.4 rewrite (auto-ship → operator-gated stop-before-prod) is correct and well-tested. Light (Alex/docs): BLOCK on a coupling that undermines acceptance #4 'QA release gate remains operator controlled'. This PR rewrites devops-cycle-design.md §1.4 to operator-gated, but the qa-release launcher docs/agents/skills/qa-release/SKILL.md still proclaims 'AUTO-SHIPPING to prod with no human gate' + 'pass --yes on ship'. That SKILL.md flip is owned by sibling PR #232 (docs-gate-cleanup), which is ALSO blocked this round — so merging #235 alone leaves the launcher (auto-ship) contradicting its own SOP (operator-gated), in the dangerous direction. FIX: either fold the SKILL.md frontmatter + the auto-ship callout + the '--yes on ship' reminder into THIS PR so it is self-consistent, or co-land with #232 in one release. MINOR (non-blocking, Carl): the reworked --yes bullet block still says 'prepare silently no-ops without --yes' — confirm() now aborts loudly on a non-TTY shell; correct that stale line while you're in that block. CI green; re-stamp checks after rework.
Shared Wrap Skill
R Rhyhorn
<1m
R Rhyhorn
1m
R Rhyhorn
6m
S shared-wrap-skill 🪎
Jun 26 7:09a 6:43p
QA Feedback
PR #234 is still marked draft, so it cannot enter QA review or the release train. Mark the PR ready for review, confirm CI is green at the final head SHA, and resubmit.
Fix off-board auth modal
P Poliwhirl
<1m
P Poliwhirl
18m
P Poliwhirl
14m
S fix-off-board-auth-modal 🐊
Jun 26 6:55a 🐛 6:43p
Codex Session Mascots
A Arcanine
<1m
A Arcanine
20m
A Arcanine
25m
codex-session-mascots 🪎
Jun 26 6:42a 6:43p
Task Slug Row
R Rhyhorn
<1m
R Rhyhorn
12m
R Rhyhorn
16m
S task-slug-row 🪎
Jun 26 6:15a 6:43p
Cross LLM Audit
P Pidgeotto
20m
P Pidgeotto
35m
P Pidgeotto
38m
cross-llm-docs-audit 🪎
Jun 26 6:09a 6:43p
QA Feedback 4 notes
PR #230 still does not meet the send-back. Update the audit artifact with current read-only verification from the PR worktree at 9218233: Ruby 3.3 bin/agent-worktree doctor now reports 44 issues, and bin/agent-worktree cleanup lists 9 cleanup candidates, excluding cap-session-concurrency. Also fix F2-F4 and residual risk to distinguish tracked source docs from installed/generated state: current installed /Users/alex/projects/AGENTS.md already uses submitted, fixes the worktrees path, and says root CLAUDE.md is required; current installed qa-release stops at the production ship gate. Those stale facts belong to the audit branch tracked sources, not the installed root docs/skills.
Seed usage baseline at create
J Jolteon
<1m
J Jolteon
7m
J Jolteon
33m
S seed-usage-baseline-at-create 🪎
Jun 26 6:01a 🐛 6:43p
Close handoff label gap
J Jolteon
<1m
J Jolteon
4m
J Jolteon
12m
S close-handoff-label-gap 🪎
Jun 26 5:50a 🐛 6:43p
Skip self-claim on create
E Eevee
1h
E Eevee
22m
E Eevee
24m
S skip-self-claim-on-create 🪎
Jun 26 5:46a 6:43p
Handoff 2 notes
Rework done (Steffon block). Killed the user-visible false intent: build_step_columns now ticks the green crew-live counter ONLY for an active 'building' claim, never a 'designed'/unowned card (in_progress_work + crew_clusters aligned to the same rule). A designed card still wears its mascot (identity), just no live ticker. Regression: [integration] /deployments designed=no crew-live, building=1 ticker; [unit] build_step_columns + in_progress_work. Rebased CLEAN onto origin/release (resolved bin/statusline conflict vs the new agent_session_id Codex helper, keeping both is_desk + sid). Full suite + rubocop certified at 9bfeee97e6bb; dor-check green.
Auto-record deploy lane intents
E Eevee
5h
E Eevee
18m
E Eevee
16m
S auto-record-deploy-lane-intents 🪎
Jun 26 5:32a 6:43p
QA Feedback 2 notes
Heavy (Jasper): BLOCK — feature is functionally complete and idempotency/supersession/board-render are all correct and well-tested, BUT the two new intent writes are FATAL, not best-effort. bin/release prepare (step 1b ~line 803) and ship (step 2c ~line 1443) call conductor('...record_deploy_intents!...') with no rescue; conductor() (bin/release:304-317) abort!s on any non-zero heroku-run exit. So a transient prod-board failure (the documented essential-PG 'too many connections' incidents, 2026-06-25) on a COSMETIC crew-ticker write would abort a production deploy — exactly what the cited precedents avoid: bin/reviewer-select records its intent best-effort (rescue→warn, lines 325-326) and post_release_notes swallows failure. FIX (small): wrap each new conductor(...) call to warn-and-continue (local rescue SystemExit/StandardError), or add a best_effort: option to conductor(); in ship, rescue LOCALLY so it does not trip the outer partial-ship handler (bin/release:1495). Light (Shannon): APPROVE (board-render side). CI green at head 970daa5. Also the checks_run cites task_intent_test for the qa: marker but that behavior is actually covered by the conductor + helper tests — fix the tag. Re-stamp checks after rework.
Cap session parallel concurrency
P Pidgeot
6m
P Pidgeot
31m
P Pidgeot
19m
cap-session-concurrency 🪎
Jun 26 5:29a 📚 6:43p
Handoff 4 notes
Re-submit (rebased). The prior 'SOP §1.4 still uncapped' blocks were against an 11-behind branch — now rebased clean onto current origin/release (0 behind). The ≤5-concurrent/waves cap is in devops-cycle-design.md §1.4 step 2 (L403 header + L408 'Cap the fan-out at 5 concurrent agents') AND the parallel-review block (L476 'Honor the ≤5-concurrent cap'), plus index.md + the qa-release skill. Plan label kept essential-0: heroku pg:info reports essential-0 live (7/20 conns), not essential-1 — 20-conn ceiling identical so the cap stands.
Refine account USDC button
M Meowth
<1m
M Meowth
3m
M Meowth
23m
refine-account-usdc-button 🐊
Jun 26 4:46a 6:43p
Prune cached commit observations
M Marowak
17m
M Marowak
14m
M Marowak
13m
S prune-cached-commit-observations 🪎
Jun 26 4:41a 6:43p
Handoff 2 notes
Addressed Carl's heavy BLOCK: observation ROWS are read by the AI Builder dashboard (observed_through_date -> boundary_week_partial? -> representative week), not just the write-only raw_payload column. Day-granular observed_through can't come from the week-granular caches (in-progress week looks complete -> the exact bug), so added a durable GithubObservationWindow watermark advanced by the batch runner BEFORE pruning; the dashboard prefers live observations and falls back to the watermark (identical while rows exist, preserved once pruned). Diagnostics + rollups re-sourced from caches; backtest sample degrades to empty (documented). New tests: watermark-advances-before-delete (unit) + dashboard-keeps-boundary-exclusion-after-prune (controller). Schema-only migration (github_observation_windows), post_deploy_cmd=none. Clean rebase onto origin/release; full-suite + rubocop green at 396447e1. PR #223 force-pushed.
Show sizing in timeline
R Rhydon
11m
R Rhydon
1h
R Rhydon
9m
timeline-sizing-strip 🪎
Jun 26 4:32a 6:43p
Auto-commit release retro artifacts
P Pidgeot
14m
P Pidgeot
9m
P Pidgeot
25m
autocommit-release-artifacts 🪎
Jun 26 4:24a 6:43p
Commit backlogged release retros
P Pidgeot
<1m
P Pidgeot
1m
P Pidgeot
6m
commit-backlogged-retros 🪎
Jun 26 4:21a 📚 6:43p
Live animate release deploy
K Kingler
<1m
K Kingler
1h
K Kingler
4m
live-animate-release-deploy 🪎
Jun 26 3:04a 6:43p
Buy USDC account buttons
M Meowth
<1m
M Meowth
18m
M Meowth
1h
buy-usdc-account-buttons 🐊
Jun 26 2:58a 6:43p
Cache primary type on Pokemon
P Pidgeot
<1m
P Pidgeot
12m
P Pidgeot
17m
cache-pokemon-primary-type 🪎
Jun 26 2:31a 6:43p
Release notes header refactor
V Voltorb
<1m
V Voltorb
8m
V Voltorb
27m
release-notes-header-refactor 🪎
Jun 26 2:25a 6:43p
Fix wrap verify and scope
S Snorlax
<1m
S Snorlax
1m
S Snorlax
1h
fix-wrap-verify-and-scope 🪎
Jun 26 1:52a 📚 6:43p
Build task intelligence dashboard
R Rhydon
30m
R Rhydon
19m
R Rhydon
1h
task-intelligence-dashboard 🪎
Jun 25 8:47p 6:43p
Handoff 2 notes
Fixed Jasper's block: biggest_estimate_misses guarded before arithmetic (filter_map skips nil dev/actual) + unit & integration regression tests; /intelligence now 200 on an actual_size-without-dev_size task. Clean rebase onto origin/release; full-suite + rubocop green at 52a732d0d608. PR #214 marked ready for re-review.
Refresh Pokemon avatar images
V Voltorb
2m
V Voltorb
27m
V Voltorb
1h
refresh-pokemon-avatar-images 🪎
Jun 25 11:42p 3:17a
Release notes embed cards
V Voltorb
11m
V Voltorb
21m
V Voltorb
1h
release-notes-embed-cards 🪎
Jun 25 11:31p 3:17a
Assembled column deploy crew
W Weepinbell
<1m
W Weepinbell
19m
W Weepinbell
assembled-column-deploy-crew 🪎
Jun 25 9:32p 3:17a
Comment 3 notes
Merge conflict resolved. A parallel conductor session merged #207/#209/#211/#212/#213 into origin/release while this review batch ran; #210 then conflicted ONLY on the shared e2e/seed.rb fixture (vs #212's release-card seed). Merge-forwarded origin/release into the branch, resolved e2e/seed.rb keeping BOTH demo seeds (deploy-crew-task + release-mascot Pokemon/Release) with a single superset puts; ruby -c clean, pushed 2ef555b (CI re-running). Feature code (helper/avatars/tests) untouched by the merge. Restoring to reviewed (was carl-heavy + jasper-light APPROVED). NOTE: an active RC rel-20260625-c1a9ad (5 mcr + 1 turf) is assembled by the other conductor WITHOUT #210 — merging #210 now would reopen it; hold for coordination.
Harden timeline usage capture
R Rhydon
12m
R Rhydon
12m
R Rhydon
2h
usage-capture-hardening 🪎
Jun 25 8:46p 3:17a
Handoff 3 notes
Clean rebase onto origin/release (3561760); resolved conflicts vs #212 release-mascot-and-timer (current.rb — kept BOTH conductor_session_id attr + with_task_event_usage; release.rb/conductor.rb/bin/release auto-merged: stamp_session_mascot + usage threading coexist) and #209 avi-task-sizing (task.rb autoderive_actual_size + bin/task --dev-size/sizing flags auto-merged with usage seeding). No leftover conflict markers; mascot/timing + sizing + usage capture all intact. Approvals (shannon heavy + jasper light) stand; PR #208 force-pushed, now MERGEABLE. Full-suite + rubocop green at 1bf571c532f8.
Sharpen wrap close ceremony
S Snorlax
<1m
S Snorlax
2m
S Snorlax
27m
sharpen-wrap-close-ceremony 🪎
Jun 25 10:11p 📚 1:51a
QA release conductor skill
P Pidgeot
<1m
P Pidgeot
22m
P Pidgeot
11m
qa-release-skill 🪎
Jun 25 10:06p 📚 1:51a
Release mascot and timer
K Kingler
<1m
K Kingler
28m
K Kingler
21m
release-mascot-and-timer 🪎
Jun 25 9:51p 3:04a
Fix geo-blocked USDC funding
M Meowth
<1m
M Meowth
12m
M Meowth
42m
fix-geo-blocked-usdc-funding 🐊
Jun 25 9:45p 🐛 1:51a
Wire Avi task sizing
R Rhydon
29m
R Rhydon
25m
R Rhydon
21m
avi-task-sizing 🪎
Jun 25 8:47p 1:51a
Comment
Review pair APPROVED: jasper (heavy) + alex (light). Sizing logic correct vs all 5 acceptance bullets — ACTUAL_SIZE_THRESHOLDS small->xl exclusive bounds + INFINITY catch-all; measured_tokens_total sums COALESCE(tokens_in+tokens_out); after_update :autoderive_actual_size is shipped-only, blank-only (never clobbers manual /sizing), update_column (no re-entrancy), rescue->ErrorLog (can't unwind a ship); validations + client/server defense-in-depth. Docs land in canonical index.md/claude.md. CI green. HELD DRAFT (jasper ready-to-undraft=NO): hard dependency — must merge AFTER #208 (usage-capture-hardening), then re-rebase bin/task + task.rb + re-confirm CI before undraft. Non-blocking nits: measured_tokens_total comment says 'tokens_total' (sums in+out); docs forward-ref a not-yet-built 'sizing intelligence dashboard' (real consumer is /sizing) — reword on next touch.
Redesign stage timeline cards
R Rhydon
9m
R Rhydon
3m
R Rhydon
22m
timeline-card-redesign 🪎
Jun 25 8:46p 1:51a
Handoff 2 notes
Rework addressed (Shannon heavy block): light-mode contrast on the live in-progress state. The data-test=timeline-live Duration ticker is now a bounded theme-aware pill (bg-green-500/15 border border-green-400/50 text-green-700 dark:text-green-200) and the in-progress pill text uses text-green-700 dark:text-green-200 — visible on the white light-mode surface. Added a component regression guard. Full-suite + rubocop green at 02580fe73678. PR #207 updated; ready for re-review.
Conductor cycle driver
W Weepinbell
5m
W Weepinbell
10m
W Weepinbell
3m
conductor-cycle-driver 🪎
Jun 25 8:44p 11:00p
Comment
Review pair APPROVED: carl (heavy) + jasper (light). Gates airtight — survey/plan read-only (never shell bin/release, proven by empty RELEASE_CALL_LOG assertions), plan --reviewers uses reviewer-select --no-record (non-mutating), merge/qa dry-by-default (--run to execute), ship hard-refuses (exit 2). Stage-scan enumerates by --stage (not the capped flat list). Thin orchestrator (no board API reimpl; rolio correctly excluded via release_repos.yml); complements qa-intake. Tests: 15/92 green, full suite 1717 runs, rubocop clean, CI all green. Non-blocking: active_candidate derives RC name from assembled members' release_slug (no cheap Release.current endpoint) — script is honest about it + defers QA/ship to operator.
Pin session mascot statusline
O Omanyte
<1m
O Omanyte
30m
O Omanyte
8m
pin-session-mascot-statusline 🪎
Jun 25 8:41p 🐛 5:39a
Comment
Review pair APPROVED + READY-TO-UNDRAFT (both): carl (heavy) + jasper (light). All 3 acceptance bullets verified in code+tests — (a) marker_mascot_attrs resolves persona->disk->response->board so the pinned session mascot wins over a moved/stray task mascot (incl. a fully-attributed stray); (b) bin/statusline default tint 213->250 + no-emoji branch renders clean name, never the pink wrench/dot; (c) app/feature/stage still update (write_feature_marker untouched for those). Persona-override + fresh-session-adopt preserved+tested. CI green (1703 runs). Non-blocking follow-up: bin/statusline:113 tint() docstring still references the now-removed dot glyph — one-line cleanup. Un-drafted.
Seed 54 not idempotent
N Nidoran♀
20h
N Nidoran♀
11m
N Nidoran♀
11m
seed-54-not-idempotent 🪎
Jun 24 7:40a 🐛 9:16p
Worktree DB name overflow
N Nidoran♀
9m
N Nidoran♀
6m
N Nidoran♀
2m
worktree-db-name-overflow 🪎
Jun 24 7:40a 🐛 9:16p
QA Feedback 2 notes
QA verdict: BLOCK (CI red). Core fix in bin/agent-worktree is CORRECT — verified the boundary math: the longest minted identifier (the _development_ name) lands at exactly 63 (never 64) for both mcritchie-studio and the shorter turf-monster prefix (max_len = 63 - prefix.length); fitting slugs pass through byte-for-byte (no churn); long slugs get a deterministic 8-hex SHA256 suffix; distinct long slugs sharing a 25-char prefix do NOT collide; dev/test share an identical base so db:test:prepare resolves. The 3 unit tests PASSED on CI. The block is ONE broken test, not the fix. DEFECT: the new [integration] 'db:test:prepare provisions a findable long-slug test DB' (test/commands/agent_worktree_test.rb ~L531-553) hardcodes credential-less connection strings — DATABASE_URL/TEST_DATABASE_URL = 'postgresql://localhost/<db>' and bare psql/dropdb with psql_env={PATH only}. On CI Postgres requires a password (CI sets DATABASE_URL=***localhost:5432), so the subprocess dies with 'fe_sendauth: no password supplied' BEFORE exercising the fix → 1 failure / 1565 runs (run 28146111302). It passes locally on trust-auth PG, which masked the gap. FIX: derive host/port/user/password from the CI-provided ENV['DATABASE_URL'] (URI.parse, swap only the database-name path segment) for both the db:test:prepare child env AND the trailing psql/dropdb (pass PGHOST/PGPORT/PGUSER/PGPASSWORD or a full conninfo) — or skip when ENV['DATABASE_URL'] is blank, but prefer deriving so the regression actually runs on CI. Re-run until the test job is green. Also update the stale claim — PR body + devops.checks_run say '[suite] ... 31 runs green' / 'CI green', but CI is red; correct that on resubmit. No rebase needed: branch is 0 behind origin/release with a clean merge-tree. PR left as DRAFT.
Live deployments board updates
O Oddish
27m
O Oddish
9m
O Oddish
9m
deployments-live-updates 🪎
Jun 24 5:39p 9:16p
Handoff 3 notes
Addressed Shannon's heavy/UI BLOCK (all 3 points): (1) renamed refreshCounts→updateCounts at both applyLiveUpdate call sites — count badges + empty-states now update per broadcast; (2) wrapped applyLiveUpdate body in try/catch (warn, never throw) per the cable-must-never-break-the-board rule; (3) e2e hardened — new stage-change test asserts the card FLIPs columns AND the Reviewed count badge increments (direct regression guard), and the intent test now fails on any uncaught pageerror/console error. Both would fail against the old code. Full suite 1452/0, rubocop clean, e2e green. Pushed aff4692 to PR #171. Backend half was already approved; this was UI-client only.
Hide deployments Tasks button
D Dugtrio
<1m
D Dugtrio
5m
D Dugtrio
19m
hide-deployments-tasks-button 🪎
Jun 24 5:46p 9:16p
Release pipeline hardening
D Drowzee
<1m
D Drowzee
30m
D Drowzee
12m
release-pipeline-hardening 🪎
Jun 24 5:56p 9:16p
Comment
Post-merge review sign-off (cascade finished after the parallel conductor merged this): carl[heavy] APPROVE (ensure-adopt half-state guard proven red-before-fix via source mutation; preflight catches wrong-branch AND dirty-tree; overlap planner degrades gracefully), jasper[light] APPROVE. Non-blocking fast-follow: ship preflight is too strict on UNTRACKED files — git status --porcelain counts ?? entries, so the untracked retro-rel-*.md on the primary checkout would abort the NEXT ship even though --ff-only is safe with non-colliding untracked files. Exclude untracked (or downgrade untracked-only to a warning; keep tracked-modified + wrong-branch as hard aborts); fix-text should say 'stash -u'/'git clean'.
Dor-check post-deploy gate
D Drowzee
<1m
D Drowzee
14m
D Drowzee
18m
dor-check-post-deploy-gate 🪎
Jun 24 5:56p 9:16p
Comment
Post-merge review sign-off (cascade finished after the parallel conductor had already merged this onto rel-20260624-6f6638): carl[heavy] APPROVE (full regex probe — BARE_SEED_TASK has no hole; lookbehind/lookahead kill mydb:seed/db:seed_fund), shannon[light] APPROVE. Non-blocking follow-ups: (1) exempt-kind + zero-diff task hits exit 0 before the gate — move the post_deploy check ABOVE the exempt early-exit to close it; (2) db:setup/db:reset/db:prepare also seed but are out of this task's scope.
Reviewer-select builder exclusion
D Drowzee
<1m
D Drowzee
44m
D Drowzee
7m
reviewer-select-exclude 🪎
Jun 24 5:56p 9:16p
Comment
Review cascade (my session): steffon[heavy] APPROVE — built_by precedence correct (actor-soul>keep-existing>agent_slug, UUIDs rejected), busy exclusion sound (--busy + --busy-auto rescues SystemExit+StandardError), starve guard mathematically correct (never below MIN_CANDIDATES), seed reproducibility byte-for-byte (excluded_busy folds in only when non-empty). alex[light] APPROVE — docs accurate, no stale --builder-by-hand wording. 2/2 APPROVE, CI green, MERGEABLE. READY TO MERGE — no re-review needed. HELD per operator: parallel conductor (rel-20260624-6f6638) owns the merge/deploy lane.
Mascot status line polish
E Eevee
9m
E Eevee
9m
E Eevee
9m
mascot-color-sticky 🪎
Jun 24 6:00p 9:16p
Show mascot on designed cards
O Oddish
<1m
O Oddish
7m
O Oddish
16m
show-mascot-designed-cards 🪎
Jun 24 6:05p 🐛 9:16p
Harden test loop and seed
N Nidoran♂
<1m
N Nidoran♂
8m
N Nidoran♂
9m
harden-test-loop-and-seed 🪎
Jun 24 6:11p 9:16p
Rolio Hotwire Native shell
R Rhyhorn
<1m
R Rhyhorn
7h
R Rhyhorn
3h
rolio-hotwire-native-shell 📇
Jun 24 6:24p 9:16p
Comment 7 notes
Reconciled assembled->shipped. 'Deployed' = PR #10 merged to rolio main (f662c91). v1 is a simulator-only iOS Hotwire Native shell against localhost:3020 — no hosted/App Store distribution yet (gated on Apple Developer signing + a hosted rolio URL, a future deliberate milestone). Code is live on main; this flip is truth-in-labeling.
Repin error_highlight for Ruby 3.3
R Rhyhorn
1m
R Rhyhorn
14m
R Rhyhorn
2h
repin-error_highlight-for-ruby-3-3 📇
Jun 24 6:56p 🐛 9:16p
Handoff 2 notes
Reworked + RESUBMITTING. Carl was right: my 0.7.1 bump was the wrong direction. Real cause = default-gem activation conflict (3.3.11 ships error_highlight 0.6.0). Fixing the bundle unmasked 2 more pre-existing CI blockers; all 3 fixed (drop error_highlight dep + drop brakeman --ensure-latest + ignore weak EOLRails advisory). PROOF = branch CI ALL 4 jobs green, run 28124182061 (clean CI, not polluted local). Rails-EOL upgrade tracked as a follow-up.
Slim board card meta
M Marowak
<1m
M Marowak
7m
M Marowak
2h
slim-board-card-meta 🪎
Jun 24 7:27p 9:16p
Eager session mascot
L Lickitung
<1m
L Lickitung
10m
L Lickitung
2h
eager-session-mascot 🪎
Jun 24 7:37p 9:16p
Fix prod board broadcast
V Victreebel
<1m
V Victreebel
6m
V Victreebel
<1m
fix-prod-board-broadcast 🪎
Jun 24 7:58p 🐛 9:16p
Comment 2 notes
PARKED per operator. Prod-breaking 500s already fixed by 0cbcb14 (v114). The redis-gem half was merged (#175) + QA-verified, but QA revealed prod has NO Redis (single web dyno, no addon/REDIS_URL) so adapter:redis can't connect (Redis::CannotConnectError, now fail-safe). Reverted off release via #177 — release tree == prod again. Superseded by choose-deployments-cable-backend.
Studio cable Redis primitive
G Golem
<1m
G Golem
10m
G Golem
2h
studio-cable-redis 💎
Jun 24 8:02p 💎 9:16p
Handoff
Hardening (commit bf9cb62, same PR #9, no version bump): Studio::Cable.safe_broadcast now wraps its OWN error-logging in a rescue — ErrorLog.capture! writes to the DB and can itself raise (e.g. ActiveRecord::NoDatabaseError when the DB is down), which would have escaped the guard and defeated the never-raise guarantee. Added the regression test (guard-for-the-guard): returns nil, never raises, even when the error path itself raises. Full engine suite still green (11 files, 0 failures; cable test 4 runs). Engine has no rubocop config — gate is bin/release-check (ruby -c + suite); syntax clean.
Deployments board Turbo Streams
G Golem
6m
G Golem
20m
G Golem
2h
deployments-turbo-streams 🪎
Jun 24 8:13p 9:16p
QA Feedback 2 notes
Both reviewers: code APPROVED. Sole blocker = producer-first dependency — Gemfile ~> 0.10 vs locked 0.9.0, engine 0.10.0 unpublished → CI/frozen build red. Clears when studio-engine#9 merges + publishes, then bundle update studio-engine finalizes the lock. Non-blocking nits to fix in that same pass: stale e2e/seed comments (DeploymentsChannel/ActionCable/FLIP) + PR body overstates the e2e rewrite + says Studio::Broadcastable where impl uses Studio::Cable.safe_broadcast. Holding at submitted.
Fix stale session-resume e2e
G Golem
<1m
G Golem
4m
G Golem
1h
fix-session-resume-e2e 🪎
Jun 24 8:16p 🐛 9:16p
Reserve foreign worktree ports
G Golem
<1m
G Golem
7m
G Golem
1h
reserve-foreign-ports 🪎
Jun 24 8:20p 9:16p
Live websocket smoke test
G Golem
G Golem
<1m
G Golem
1m
live-websocket-smoke-test 🪎
Jun 25 1:04a 9:16p
Dev fake task buttons
M Mew
<1m
M Mew
2h
M Mew
1h
dev-fake-task-buttons 🪎
Jun 25 1:42a 9:16p
Comment
Avi APPROVE: triple-gated to Rails.env.local? (routes not drawn in prod + ensure_local! + view gate), move/delete scoped to metadata.dev_fixture so real tasks safe, auth-skip acceptable for local-only tool, tests green (5/13). Safe to ship.
Bigger crew avatar hover
G Gyarados
<1m
G Gyarados
1h
G Gyarados
16m
bigger-crew-avatar-hover 🪎
Jun 25 2:38a 9:16p
Standardize status line identity
R Rapidash
<1m
R Rapidash
50m
R Rapidash
1h
standardize-status-line-identity 🪎
Jun 25 3:39a 9:16p
Upgrade rolio to Rails 8.1
N Nidoran♀
1h
N Nidoran♀
8m
N Nidoran♀
5m
rolio-rails-8-1-upgrade 📇
Jun 25 4:03a 9:16p
Comment 2 notes
Reconciled assembled->shipped. 'Deployed' = PR #12 (Rails 8.1) merged to rolio main; rolio is standalone (not in the conductor pipeline / no hosted target), so merged-to-main is its terminal state. This upgrade is the 8.1 floor the hotwire shell rebased onto.
Widen engine Rails to 8.1
N Nidoran♀
1h
N Nidoran♀
10m
N Nidoran♀
8m
studio-engine-rails-8-1 💎
Jun 25 4:03a 💎 9:16p
Upgrade mcritchie-studio to Rails 8.1
N Nidoran♀
10h
N Nidoran♀
18m
N Nidoran♀
48m
mcritchie-studio-rails-8-1 🪎
Jun 25 4:03a 9:16p
Upgrade turf-monster to Rails 8.1
N Nidoran♀
10h
N Nidoran♀
15m
N Nidoran♀
50m
turf-monster-rails-8-1 🐊
Jun 25 4:03a 9:16p
Dedupe card fade mask
N Nidorino
<1m
N Nidorino
5m
N Nidorino
24m
dedupe-card-fade-mask 🪎
Jun 25 5:29a 9:16p
Auto-restore primary checkout
Z Zapdos
9m
Z Zapdos
11m
Z Zapdos
6h
auto-restore-primary-checkout 🪎
Jun 25 5:39a 9:16p
Guard release unreviewed merges
Z Zapdos
10m
Z Zapdos
11m
Z Zapdos
6h
guard-release-unreviewed-merges 🪎
Jun 25 5:39a 9:16p
Enforce full suite gate
M Magmar
7m
M Magmar
1h
M Magmar
9m
enforce-full-suite-gate 🪎
Jun 25 5:39a 9:16p
QA Feedback
REQUEST_CHANGES (Carl heavy + Jasper light). BLOCKERS: (1) [major] FullSuiteGate.fingerprint (bin/lib/full_suite_gate.rb:351) uses 'git stash create' tree-hash which EXCLUDES untracked files — empirically reproduced: certify pre-commit then commit yields a different fp at HEAD so valid evidence reads STALE -> false REFUSE for the common add-a-file change; and breaking an untracked file after certify does NOT change fp so staleness check fails to fire. Fix: hash untracked-but-not-ignored content via temp index (GIT_INDEX_FILE=tmp git add -A && git write-tree). (2) Tests (dor_check_test e2e stable/stale + full_suite_check_test) only MODIFY a tracked file — add a NEW-FILE case proving fp stability across commit AND staleness after an untracked edit. (3) Acceptance 'pre-commit hook mirrors the full-suite gate' NOT met — no hook is installed/added, only documented as wireable; install it or descope the criterion. NON-BLOCKING also worth fixing: [minor] bin/dor-check:463 honors ambient DOR_CHECK_SUITE_EVIDENCE on the prod merge path injecting an unrecorded 'ok' (gate the seam vs the loud recorded [full-suite-bypass]); [nit] carl/role.md:31 + soul.md:36 still claim a hook 'enforces' — reconcile.
Stabilize worktree port test
N Nidoran♀
1m
N Nidoran♀
10m
N Nidoran♀
5m
stabilize-worktree-port-test 🪎
Jun 25 5:40a 🐛 9:16p
Ship pipeline robustness fixes
N Ninetales
22m
N Ninetales
8m
N Ninetales
2m
ship-pipeline-robustness-fixes 🪎
Jun 25 5:49a 🐛 9:16p
QA Feedback
Conductor CI-gate BLOCK (code APPROVED by Carl heavy + Jasper light; tests green locally 68/56/38 — but CI test job is RED). test_prepare_reaches_assemble_with_a_paren_post_deploy_cmd (release_cli_test.rb) runs in non-dry --yes mode and hits Dir.exist?(repo_path('turf-monster')) (~bin/release:692), so it false-fails on any checkout without sibling repos — i.e. CI (run 28150491553 test job failed). Same CI-portability class as the worktree-db #181 bug. FIX: make the test CI-portable — stub Dir.exist?/repo_path (or assert assemble-reach via --dry-run like the other prepare tests), confirm the CI 'test' job goes GREEN before resubmit. The 3 fixes themselves (base64 conductor_payload, preflight allowlist, dor-check suggestion) are correct + shippable once the test is portable. Minor: checks_run says dor_check_test 60 runs (actual 56); consider a one-line comment on the intentional double-base64 retro nesting.
Reviewer-select record by default
N Ninetales
1m
N Ninetales
10m
N Ninetales
6h
reviewer-select-record-by-default 🪎
Jun 25 5:49a 9:16p
Conductor refetch queue rule
N Ninetales
1m
N Ninetales
2m
N Ninetales
8m
conductor-refetch-queue-rule 🪎
Jun 25 5:49a 📚 9:16p
Harden release_cli subprocess capture
N Nidoran♀
6h
N Nidoran♀
12m
N Nidoran♀
57m
harden-release-cli-subprocess-capture 🪎
Jun 25 5:54a 🐛 9:16p
Animate live board events
M Mew
<1m
M Mew
1h
M Mew
9m
animate-live-board-events 🪎
Jun 25 12:48p 9:16p
Comment
Shannon APPROVE: event classification correct for all broadcaster streams (create/move/delete/replace); no leaks/strand (Promise.race + 1200ms sweeps); after_destroy_commit guarded + correct card-#{slug} target; off-board remove is a no-op; footguns clean (strict-locals optional default, IIFE single-install). Non-blocking note: manual drag fired a CREATE burst — FIXED (window.__lbfxDragging guard on Sortable onStart/onEnd). Behavior operator-visual-accepted.
Fix release gem-version read
N Ninetales
<1m
N Ninetales
1h
N Ninetales
2h
fix-release-gem-version-read 🪎
Jun 25 2:48p 🐛 9:16p
Comment
Review pair APPROVED: carl (heavy) + shannon (light). gem_version_from_ref reads the gem version at the frozen release SHA (git show <ref>:<version_file>); both publish-decision sites (whats_live + ship gem loop) fixed; dry-run/preflight label now shows the version that will publish. 3 CI-portable regression tests (frozen-ref read, local fallback, end-to-end publish-not-skip), CI green. Non-blocking note (both reviewers): gem_version_from_ref does no fetch before git show — relies on the frozen object being local (same invariant as frozen_sha_for); future hardening comment. Held from release merge until Rails 8.1 RC ships.
dor-check unpublished gem guard
A Abra
1h
A Abra
9m
A Abra
2h
dor-check-gem-guard 🪎
Jun 25 2:52p 9:16p
Comment
Review pair APPROVED: carl (heavy) + jasper (light). All 4 acceptance bullets met — Gem::Requirement#satisfied_by? detection; wired merge-gate-only (if gate != build) so it fires before red CI; fully offline (File.read + regex + Gem::Requirement, no network); gem-name-agnostic regex covers studio-engine + solana-studio (verified against live Gemfile/lock, neither false-flagged). False-flag guards sound (path:/git: bridges, untouched Gemfile, new/unlocked gems all skipped). Tests green (56 runs), CI green. Non-blocking nits: only first constraint of a multi-constraint line checked; Gem::Version.new(locked) unrescued; net-new-unpublished-gem intentionally out of scope; a named solana-studio fixture would self-document acceptance #4. Held from release merge until Rails 8.1 RC ships.
bin/pr-status mergeability helper
A Abra
1h
A Abra
3m
A Abra
2h
pr-status-mergeable 🪎
Jun 25 2:52p 9:16p
Comment
Review pair APPROVED: carl (heavy) + shannon (light). All 4 acceptance bullets met — one-line mergeable/mergeState/ci/draft summary; DIRTY branch prints the CONFLICTING fix hint; takes a PR# and shells gh pr view --json (read-only); verified live on #199. Test green (2 runs/22 assertions), CI green (lint/scan_js/scan_ruby/test). Non-blocking nits for a future touch: PENDING legacy status-context -> ci=mixed (modern check-runs fine); positional --repo after PR#; no shellescape on interpolated args (trusted-local CLI). Held from release merge until Rails 8.1 RC ships.
Gem-ship session retrospective
A Abra
<1m
A Abra
56m
A Abra
31m
gem-ship-retro 🪎
Jun 25 2:52p 📚 9:16p
Comment
Review pair APPROVED: shannon (heavy) + alex-docs (light). Acceptance 3/3 — frictions+lessons, links dor-check-gem-guard(#200)+pr-status-mergeable(#199), format matches 2026-06-17 retro. All cross-refs verified. Held from release merge until Rails 8.1 RC ships.
Persona clear revert
R Rapidash
<1m
R Rapidash
3m
R Rapidash
3h
persona-clear-revert 🪎
Jun 25 4:13p 9:16p
Comment
Review pair APPROVED: carl (heavy) + shannon (light). Both confirmed the 2 tests are genuine regression guards (fail against pre-change model): clear path nils mascot/session/color/emoji + drops persona + inline sync_session_mascot, so a plain --persona none reverts mid-task to the session Pokemon with no stage change (the conditional before_save only fires on a BUILD_STAGES transition). Sentinels none/clear/off/- + unknown-soul fallthrough sound; case-insensitive lookup. app-registry.md documents it. CI green (4/4).
Install agent skills locally
Z Zapdos
3m
Z Zapdos
2h
Z Zapdos
59m
install-agent-skills-locally 🪎
Jun 25 4:15p 4:43a
Comment
Review pair APPROVED + READY-TO-UNDRAFT (both): carl (heavy) + shannon (light). All 5 acceptance bullets verified — canonical docs/agents/skills/<name>/ tracked; bin/install-agent-docs mirrors skills into ~/.claude/skills with check/drift (cp+cmp, find -mindepth 2 keeps README out); recovery wired (ecosystem-build Phase 5b + house-burn-down/bootstrap/ecosystem-build docs); /wrap migrated. Carl diffed standalone vs repo SKILL.md: ONLY change is the REQUIRED trim-index graceful-degrade (Step 2 guard+else), rest byte-identical. Test sandboxes HOME/PROJECTS_DIR to tmpdir (9 runs/26 assertions, 0 fail); bash 3.2 set -u empty-array guarded. CI green (4/4). Un-drafted. Portable memory/trim-index tooling correctly scoped as follow-up.
Update testing doc parallelism
N Nidorino
<1m
N Nidorino
<1m
N Nidorino
1h
update-testing-doc-parallelism 🪎
Jun 25 6:28p 📚 9:14p
Comment
Review pair APPROVED: carl (heavy) + shannon (light). Both verified the doc against live code — TestParallelism.worker_count (test_helper.rb: 1 locally, :number_of_processors on CI, PARALLEL_WORKERS overrides) and bin/agent-worktree clear_orphan_test_procs (cwd-scoped). pg fork-safety claim accurate; obsolete OBJC_DISABLE_INITIALIZE_FORK_SAFETY dropped. CI green (4/4).
Stage-scan deploy queue
W Weepinbell
<1m
W Weepinbell
6m
W Weepinbell
3m
stage-scan-deploy-queue 🪎
Jun 25 7:58p 📚 9:13p
Comment
Review pair APPROVED: carl (heavy) + alex-docs (light). Cap mechanism verified down to exact code — Task.recent=order(created_at: :desc) (task.rb:110), Api::Paginatable per_page default 20/max 100/page 1, cmd_list discards meta + prints only returned rows with no truncation warning, CLI exposes --stage/--agent but NO --page/--per_page (pinned to page 1). Step 0 covers all 5 stages, well-placed in parallel-agent-devops.md; pointer + cap note resolve; anchor slug step-0--assess-the-queue-by-stage correct. CI: lint/scan_js/scan_ruby pass, test still running (docs-only, non-block). Out-of-scope truncation-warning follow-up noted in PR.
Repin studio-engine in mcritchie
N Ninetales
<1m
N Ninetales
31m
N Ninetales
repin-studio-engine-in-mcritchie 🪎
Jun 25 2:48p 4:44a
Comment 2 notes
Archiving (terminal): superseded by the Rails 8.1 upgrade (4f6bb77), shipped to prod v123 — the 0.11.0 studio-engine pin is already live on main/prod via that upgrade. PR #196 closed superseded. No work owed.
Enforce full suite in dor-check
V Venonat
V Venonat
V Venonat
enforce-full-suite-in-dor-check 🪎
Jun 24 12:31a 2:39p
Guard release from unreviewed merges
V Venonat
V Venonat
V Venonat
guard-release-from-unreviewed-merges 🪎
Jun 24 12:31a 2:39p
Auto-restore primary to main
V Venonat
V Venonat
V Venonat
auto-restore-primary-to-main 🪎
Jun 24 12:31a 2:39p
Choose deployments cable backend
E Ekans
E Ekans
E Ekans
choose-deployments-cable-backend 🪎
Jun 24 8:22p 6:02a
Comment
RESOLVED: Redis path (operator's choice). Prod already provisioned by concurrent cable-backend work — heroku-redis:mini on mcritchie-studio, cable.yml resolves URL+TLS via Studio::Redis.options (engine 0.10.0; handles Heroku rediss:// self-signed VERIFY_NONE), redis gem rides transitively via studio-engine. Verified live: prod broadcast → BROADCAST_OK. Provisioned heroku-redis:mini on mcritchie-studio-qa for parity (REDIS_URL); QA broadcast → BROADCAST_OK. /deployments live updates now functional on prod + QA.
Fix stale session-resume e2e
G Golem
<1m
G Golem
G Golem
session-resume-e2e-fix 🪎
Jun 24 7:29p 🐛 5:55a
Plan rolio Rails EOL upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-eol-upgrade 📇
Jun 24 7:30p 5:31a
Handoff 2 notes
Closing: planning complete. Operator DECISION recorded (Rails 8.1.x ecosystem train, all-four-together, no Ruby bump). Superseded by the 4 downstream tickets — rolio's own upgrade is already BUILT + reviewed as rolio PR #12 (feat/rolio-rails-8-1-upgrade -> 8.1.3), which also drops the brakeman.ignore EOLRails entry. Nothing left to plan here.
Board API probe check
R Rhyhorn
R Rhyhorn
R Rhyhorn
board-api-probe-17619 🪎
Jun 24 7:51p 7:51p
Hotfix verify probe
G Golem
G Golem
G Golem
hotfix-verify-probe 🪎
Jun 24 7:49p 7:49p
Reserve foreign worktree ports
G Golem
G Golem
G Golem
reserve-foreign-worktree-ports-2 🪎
Jun 24 7:29p 7:49p
Reserve foreign worktree ports
G Golem
G Golem
G Golem
reserve-foreign-worktree-ports 🪎
Jun 24 7:29p 7:49p
Reserve foreign worktree ports
M Mankey
M Mankey
M Mankey
reserve-foreign-worktree-ports-3 🪎
Jun 24 7:30p 7:49p
Plan rolio Rails upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-upgrade 📇
Jun 24 7:38p 🐛 7:39p
Plan rolio Rails EOL upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-eol-upgrade-6 📇
Jun 24 7:37p 7:39p
Plan rolio Rails EOL upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-eol-upgrade-5 📇
Jun 24 7:31p 7:39p
Plan rolio Rails EOL upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-eol-upgrade-4 📇
Jun 24 7:31p 7:39p
Plan rolio Rails EOL upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-eol-upgrade-3 📇
Jun 24 7:31p 7:39p
Plan rolio Rails EOL upgrade
R Rhyhorn
R Rhyhorn
R Rhyhorn
plan-rolio-rails-eol-upgrade-2 📇
Jun 24 7:31p 7:39p
Consolidate release card shipped badge
T Tentacool
6m
T Tentacool
2m
T Tentacool
1h
release-shipped-badge 🪎
Jun 24 2:25a 5:38p
Handoff 5 notes
Ready for Avi QA. PR #144 (base release, 5 commits): consolidates the /deployments release-card status into ONE top-right state-colored badge ('Shipped/Assembled X ago'), drops the redundant left state pill + muted ago-line + the always-'release' branch label, and rides each card's copy/paste kickoff chip inline-right with its task pills (Next='Build and Deploy QA Release', Last='Archive completed tasks'). Shape ui-only; DoR component tier green (74 controller+helper runs, 0 failures). Operator visually approved every iteration. NOTE for QA: release_flow_test.rb has 1 PRE-EXISTING error (Release::Repos.stub, gem-release planning) on the base branch — not from this UI branch.
Release confirm EOF abort
F Flareon
<1m
F Flareon
5m
F Flareon
35m
release-confirm-eof-abort 🪎
Jun 24 2:39a 🐛 5:38p
Comment
2-senior review (reviewer-select: carl heavy + jasper light). BOTH APPROVE. Carl(heavy) ran the non-TTY path LIVE (EXIT=1 loud abort), verified the --yes/--dry-run bypass sits ABOVE the tty/EOF checks (test stubs stdin to RAISE if consulted, proving hands-off never reads stdin), all 3 callers (prepare/ship/archive) consistent, interactive 'n' still declines gracefully; 51 tests 0 failures, rubocop clean. Jasper(light) confirmed bypass intact + caller audit clean. = 2 approvals.
Dor-check post-deploy nudge
F Flareon
<1m
F Flareon
7m
F Flareon
dor-check-post-deploy-nudge 🪎
Jun 24 2:39a 5:38p
Comment 3 notes
Rework VERIFIED (head f436b55): Release::PostDeploy#plan now skips 'none' like empty (post_deploy.rb:58, 'next if cmd.empty? || cmd.casecmp?("none")', strip+case robust) so the documented escape hatch no longer detonates the release; consumer-skip test added (post_deploy_test.rb:70, proven fail-without/pass-with). 56+143 tests 0 failures, rubocop clean, CI green 4/4. Carl(heavy) BLOCK resolved; Jasper(light) already approved. = 2 approvals.
Task CLI show and stale
F Flareon
<1m
F Flareon
17m
F Flareon
27m
task-cli-visibility-stale 🪎
Jun 24 2:39a 5:38p
Comment
2-senior review (carl heavy adversarial + alex-docs light). BOTH APPROVE. Carl probed degenerate inputs (empty devops/nil fields/non-git dir → graceful, exit 0), confirmed no injection (array-form git, dash/metachar branch → invalid ref → :no_branch), clean pure-lib/bin split mirroring claim_lease.rb, never false-flags stale on a git error; 36 tests 0 failures. alex-docs: --verbose well-organized, stale message actionable, bin/task help updated. NON-BLOCKING follow-up nits: (1) zero-unique-commit feat branch off main reads :on_main (advisory only; add a >=1-commit-beyond-fork guard); (2) tighten the stale_check comment (it catches branch-merged-but-task-not-advanced, not designed-with-no-branch); (3) show --json with no slug treats --json as slug -> 404.
Task API 404 and filter
F Flareon
<1m
F Flareon
23m
F Flareon
22m
task-api-not-found-filter 🪎
Jun 24 2:39a 🐛 5:38p
Comment
2-senior review (carl heavy adversarial + jasper light). BOTH APPROVE. Carl verified the rescue_from reorder against the ActiveSupport gem (reverse_each -> last-registered wins; new order = RecordNotFound->404, RecordInvalid->422, else->500), blast radius clean across all 6 Api::V1 controllers (2 deltas, both improvements incl. a latent 422 fix), genuine 500s still 500, auth still 401, 400-whitelist breaks no caller (bin/task + bin/devops-cycle checked); 27 tests 0 failures, zeitwerk clean. Jasper(light) confirmed reorder safe + whitelist safe + stage in list. = 2 approvals.
Persist mascot in worktree context
D Dragonair
<1m
D Dragonair
13m
D Dragonair
10m
persist-mascot-in-worktree-context 🪎
Jun 24 3:43a 🐛 5:38p
Rolio app emoji badge
C Clefairy
<1m
C Clefairy
8m
C Clefairy
19m
rolio-app-emoji-badge 🪎
Jun 24 4:48a 🐛 5:38p
QA Feedback 2 notes
QA-deployed on release rel-20260624-a59e5f @ qa.mcritchie.studio (Heroku v78, /up 200). Glyph verified by component+unit tests (board slug-row renders 📇 for repositories:['rolio']); no live rolio-repo card on board to render it. Awaiting operator prod-ship gate.
Agent intent timeline events
P Ponyta
<1m
P Ponyta
1h
P Ponyta
57m
agent-intent-timeline 🪎
Jun 24 4:50a 5:39p
Comment 2 notes
Review cascade: shannon[heavy] APPROVE (migration safe/reversible/indexed, duration-spine protected, no N+1, ui+db coverage complete) + carl[light] APPROVE. Non-blocking nits deferred (kind filters in reviewer_selector/retro). CI green.
Hide Building column narrow
A Articuno
<1m
A Articuno
5m
A Articuno
19m
hide-building-column-narrow 🪎
Jun 24 4:50a 5:38p
QA Feedback 3 notes
QA-deployed on release rel-20260624-a59e5f @ qa.mcritchie.studio (Heroku v78, /up 200). Building-collapse class live on /deployments; Building-specific placement locked by flipped integration test. Awaiting operator prod-ship gate.
Fix ipinfo geocoder HTTPS
K Kangaskhan
<1m
K Kangaskhan
10m
K Kangaskhan
fix-ipinfo-geocoder-https 🐊
Jun 24 5:09a 🐛 5:38p
Comment 5 notes
QA PASS on qa.turfmonster.media (Steffon): use_https=true on the deployed dyno, Geocoder.search resolves country=US region=California (was nil), /geo/check returns a real state code, all 3 RC members boot. Held at operator ship gate — release rel-20260624-a59e5f stays assembled on QA; prod not shipped per operator.
Enumeral model type colors
D Drowzee
2m
D Drowzee
5m
D Drowzee
1m
enumeral-colors 💎 🪎
Jun 24 5:11a 💎 5:38p
Comment 7 notes
Block resolved (9d262fb): color: mascot.signature_color added to all 4 MascotAgent.new sites (271 stage_timeline + 162 + the 2 already-correct), so the consolidated timeline mascot matches the build board. Regression test RED->GREEN (name-palette #3B82F6 -> signature #6F35FC); target suites 133 runs 0F. dor-check ✓. carl[deep] APPROVE stands. Merge-gated on CI test green.
Deployments rank and filter
D Dragonite
<1m
D Dragonite
17m
D Dragonite
1h
deployments-rank-and-filter 🪎
Jun 24 5:22a 5:38p
Comment
Review cascade: shannon[heavy] APPROVE (ranking deterministic, filter correct, no N+1, no traps, ui+db coverage complete) + carl[light] APPROVE. Non-blocking nits deferred (id-tiebreak, board_apps scoping). CI green.
Merge docs reviewer into Alex
D Drowzee
4m
D Drowzee
<1m
D Drowzee
merge-docs-reviewer-into-alex 🪎
Jun 24 5:25a 2:35a
Comment 4 notes
DEPLOY FIX (conductor): narrowed post_deploy_cmd from 'bin/rails db:seed' -> 'bin/rails runner load(db/seeds/02_agents.rb)'. The full db:seed (a) failed at db/seeds/54_ai_builder_multiple_candidates.rb:232 (non-idempotent: 'Github login has already been taken') and (b) would seed DEMO News/Content/Tasks into PROD at ship. 02_agents is self-documented idempotent + prod-safe and is the only seed this task needs (retire alex-docs / give alex the docs reviewer seat). Verified the agents change already applied on QA.
Mascot marker no-downgrade fallback
D Drowzee
<1m
D Drowzee
8m
D Drowzee
1m
mascot-marker-no-downgrade-fallback 🪎
Jun 24 5:26a 🐛 6:24p
Comment 3 notes
Rework verified (7c270b03): board_mascot rewritten to read via subprocess (`task field <slug> mascot 2>/dev/null`, shellescaped) mirroring resolve_mascot — SystemExit from a non-2xx board read is now contained in the child, can never abort bin/task. + board-fallback regression test (fail_get knob → non-2xx → asserts exit 0 + marker written + no mascot). RED->GREEN (1 fail → 32/115 + 6/9). dor-check ✓. carl[heavy] block resolved; shannon[light] had approved. Merge-gated on CI test green.
Geo blocklist fail closed
P Poliwrath
7m
P Poliwrath
20m
P Poliwrath
6m
geo-blocklist-fail-closed 🐊
Jun 24 5:40a 🐛 5:37p
Comment 3 notes
SHIPPED to prod (turf-monster-mainnet v108, rel-20260624-a59e5f). Per operator decision, ENABLED the prod geo_settings row post-ship: enabled=true, enforcing=true, banned=[AZ,CO,HI,ID,IA,LA,MO,NE,NV,WA]. Legal blocklist + fail-closed now LIVE on mainnet for money/entry actions.
Adopt assembled stage stuck
P Poliwrath
6m
P Poliwrath
13m
P Poliwrath
9m
adopt-assembled-stage-stuck 🪎
Jun 24 5:40a 🐛 5:37p
QA Feedback 3 notes
QA-deployed on rel-20260624-a59e5f @ qa.mcritchie.studio (mcr@15e2d3f, /up 200). Fix verified by suite (273 runs 0F) + dogfooded: merging this + geo onto the assembled RC flipped both cleanly to assembled (no manual fixup needed). Note: the fix only governs the PROD board once mcritchie-studio ships to prod. Awaiting operator prod-ship gate.
Polish task card UI
K Kadabra
<1m
K Kadabra
58m
K Kadabra
15m
polish-task-card-ui 🪎
Jun 24 5:41a 5:37p
Comment
Review cascade: shannon[heavy] APPROVE (all 4 criteria met in markup, no logic regression, no ERB/Alpine traps, theme+mobile parity) + alex-docs[light] APPROVE. Non-blocking nits deferred (dead :stack branch, STRIP_CAP comment). CI green.
Restore card crew layout
I Ivysaur
<1m
I Ivysaur
32m
I Ivysaur
6m
restore-card-crew 🪎
Jun 24 4:25p 8:39p
Comment
Review cascade: shannon[heavy] APPROVE (all 4 criteria met, clean revert of #163's crew-demotion bits while keeping operator-wanted gem/label/chip changes, no dead :strip/2xs/STRIP_CAP, theme+mobile parity improved via alpha mask-image) + carl[light] APPROVE (scope contained, dead-code cleanup complete, CI green). Non-blocking: stale :stack flex-wrap docstring (now grid). CI green.
Pokemon mascot session identity
H Haunter
H Haunter
H Haunter
pokemon-mascot-session-identity 🪎
Jun 24 3:27a 📚 3:44a
Mascot stability check
S Scyther
<1m
S Scyther
<1m
S Scyther
mascot-stability-check 🪎
Jun 24 3:25a 3:26a
Persist mascot session field
R Rhyhorn
R Rhyhorn
R Rhyhorn
persist-mascot-session-field 🪎
Jun 24 3:11a 🐛 3:44a
Clean session start culture
D Dugtrio
D Dugtrio
D Dugtrio
clean-session-start-culture 🪎
Jun 24 3:00a 📚 3:44a
Marker carries the mascot
C Caterpie
C Caterpie
C Caterpie
marker-carries-the-mascot 🪎
Jun 24 2:30a 🐛 3:44a
Document environment agent seed
C Caterpie
C Caterpie
C Caterpie
document-environment-agent-seed 🪎
Jun 24 2:23a 📚 3:44a
Board card polish iteration
C Clefairy
16m
C Clefairy
8m
C Clefairy
21m
board-card-polish-iteration 🪎
Jun 24 1:03a 3:44a
Comment
2-senior review (reviewer-select: shannon heavy + carl light). BOTH APPROVE. Shannon(heavy) verified all 7 UI criteria (pulsing-green live badge JIT-compiled, resume moved to read view off both board surfaces, empty crew slots centered+dashed, footer links inline, kind badge hidden + bug/docs emoji, mascot via crew, status-line Pokemon name); no ERB/Alpine traps. Carl(light) verified the per-session mascot rework: peer-share same-session / unique-draw otherwise / DETERMINISTIC handoff swap (own mascot stays in DB so redraw differs) / session-less stable; batch paths rescue->ErrorLog + update_columns (no recursion) + network-free; tests cover #6+#2. DEPLOY ACTION (not a blocker): run pokemon:resync_mascots post-deploy to stamp mascot_session on existing tasks.
Next Release card polish
A Arbok
<1m
A Arbok
6m
A Arbok
1h
next-release-card-polish 🪎
Jun 24 12:39a 3:44a
Comment
2-senior review (reviewer-select: shannon heavy + carl light). BOTH APPROVE. Shannon(heavy) verified all 4 criteria in the markup (Kick-off label removed via optional label local, chip floated right with justify-between+flex-wrap no overflow, One-trigger label gone, Current->Next Release muted-uppercase), no double-label regression, Last Release card unaffected, theme-token-only. Carl(light) confirmed the id='current-release' anchor + qa_release_kickoff trigger string PRESERVED (conductor SOP links intact), kickoff_chip handles absent label safely. Both: non-blocking nits (dead label_text 'Current Release' branch + stale leading comments).
Fix blocked card drag
P Parasect
1m
P Parasect
15m
P Parasect
4m
fix-blocked-card-drag 🪎
Jun 23 11:31p 🐛 3:44a
QA Feedback
2-senior PASS: carl (HEAVY, found the original bug) approve — fix sources stage from dropzones (evt.from/evt.to), PATCH gated on fromZone!==toZone, so a same-zone reorder of a blocked card no longer silently un-blocks; revert reinserts into live fromZone; archiveTask stranding fixed via zoneForStage(blocked->building); Building lane exempt from <1250px collapse (blocked stays visible); component-tier coverage locks the invariants; all 4 CI checks green (test 1m48s); FULL suite 1315/0 + rubocop 0. jasper (LIGHT) approve. Nits (non-blocking): tests assert literal JS substrings; pre-existing revert-order cosmetic.
Board-aware crew columns
S Snorlax
9m
S Snorlax
6m
S Snorlax
42m
board-aware-crew-columns 🪎
Jun 23 9:29p 3:44a
QA Feedback
2-senior PASS: shannon (HEAVY) approve — clean follow-on to #128, all acceptance criteria met; overflow NOT reintroduced (improved: grid minmax(0,1fr) bounds width + pill moved to -left-1 kills #128's right-edge spill); dark-mode parity holds; shape=ui-only holds (task.rb touch is just board-column constant); Alpine/CSS gotchas clear; CI runs FULL suite (db:test:prepare test test:system, 1m56s). alex-docs (LIGHT) approve — 8 ACs map+test-covered, board-vs-workflow decoupling preserved (DEPLOY_STAGES stays 4). DEFERRED non-blocking docs nits: _stage_agent_avatars.html.erb grid comment says 'centered' but code is justify-start; the stale 'flex-wraps' comment (now grid-cols) — recurring since #128; PR-body z-index numbers drifted.
Provision worktree test DB
C Charmeleon
35m
C Charmeleon
16m
C Charmeleon
7m
provision-worktree-test-db 🪎
Jun 23 8:01p 3:44a
QA Feedback
2-senior PASS: carl (HEAVY) approve — verified the database.yml test.url change against Rails 7.2.3 source (keys on 'if url' truthiness; unset var renders YAML nil, not a crashing empty string); all 3 resolution scenarios verified (CI/local/worktree), CI test job green, only test: block touched (no prod-boot risk); bin/agent-worktree idempotent + allow_fail. jasper (LIGHT) approve — .env.test.local gitignored, friction solved. DEFERRED non-blocking: add an [integration] probe for the unset-TEST_DATABASE_URL path (CI already exercises it); two cosmetic redundancies (prepare_test_db runs twice on new --start; test_database_url computed 3x).
Fix retro heroku-run escaping
G Gyarados
57m
G Gyarados
8m
G Gyarados
8m
fix-retro-heroku-run-escaping 🪎
Jun 23 8:01p 🐛 3:44a
QA Feedback
2-senior PASS: jasper (HEAVY) approve — Base64 round-trip exact for quotes/parens/&&/pipes/backticks/unicode/newlines/60KB, urlsafe never line-wraps, survives bash -c reparse; other conductor callers untouched (slug-shaped .inspect only); fail-first genuine (4 RED pre-fix), tests assert command construction. alex-docs (LIGHT) approve — stale 'safe inspected literal' comment replaced. DEFERRED non-blocking nits: one vacuous refute_includes("worked":) assertion (real guards are the &&/pipe/Base64 ones); add require 'base64' to the remote snippet defensively; Base64 ~33% size inflation (fine for real retro text).
Release retro learn step
G Growlithe
2m
G Growlithe
13m
G Growlithe
19m
release-retro-step 🪎
Jun 23 6:36p 3:44a
QA Feedback
2-senior PASS: carl (HEAVY) approve — non-blocking contract verified (archive has zero retro refs; tests prove both directions), TTY-free mode gated, data-gather correct, 47 runs green. alex-docs (LIGHT) approve — docs accurate, non-blocking emphasized. Deferred: --file-tasks title <3 words can silently fail + untested; retro is regenerate-not-append (note in doc); cosmetic header/heading nits.
Doctor reconcile git worktrees
N Nidoran♀
3m
N Nidoran♀
9m
N Nidoran♀
6m
doctor-reconcile-worktrees 🪎
Jun 23 6:36p 🐛 3:44a
QA Feedback 2 notes
Rework RE-REVIEW PASS: carl (HEAVY) approve — prunable-orphan ENOENT crash RESOLVED (two-layer: orphan_worktree_issues guards !Dir.exist? + emits 'prunable' issue; capture_status rescues SystemCallError); both doctor and snapshot --write exit 0, verified failing-first vs pre-fix commit; label-collision nit fixed (path-hash). jasper (LIGHT) approve. No blockers. Non-blocking: orphan issues counted in snapshot.summary but not per-worktree (enhancement).
Post-deploy command hook
D Dratini
5m
D Dratini
14m
D Dratini
5m
post-deploy-cmd-hook 🪎
Jun 23 6:36p 3:44a
QA Feedback 2 notes
Rework RE-REVIEW PASS: carl (HEAVY) approve — all 5 resolved: BLOCKER --exit-code now in executed argv (test pins it to the real sh argv, not just dry-run print); MAJOR abort test independently proves --exit-code + right app + ABORTED; MINOR Shellwords.split + -- terminator, single heroku_argv drives both dry-run and exec; NIT unroutable-app abort documented intentional; ship re-run tolerates already-published gems (verified in code). No new issues from the #130 rebase; 104 runs green. shannon (LIGHT) approve. Non-blocking: printed join renders spaced args unquoted (cosmetic).
Fix qa-intake merge signal
Z Zapdos
1m
Z Zapdos
14m
Z Zapdos
19m
fix-qa-intake-merge-signal 🪎
Jun 23 6:36p 🐛 3:44a
QA Feedback
2-senior PASS: carl (HEAVY) approve — verified failing-first by reverting (4 bug tests RED, 4 preservation GREEN); fix keys on mergeStateStatus CLEAN/HAS_HOOKS, GitHub genuine BEHIND still flagged, all other needs-agent triggers preserved. shannon (LIGHT) approve. Deferred follow-ups: separate 'Worktree Attention' view still nags rebase for clean+behind worktrees; add HAS_HOOKS + conflicting-not-behind test cases.
Mascot as build agent
B Bellsprout
<1m
B Bellsprout
6m
B Bellsprout
5m
mascot-as-build-agent 🪎
Jun 23 6:29p 3:44a
QA Feedback 3 notes
Rework round-3 RE-CONFIRM PASS: carl (HEAVY) approve — independently ran FULL suite 1278/0; verified four-compartment deploy rendering (assembled 30m + shipped 10m as separate pills) matches main's per-stage design (combined-40m would have been the regression); controller test now anchors to data-test crew-duration markers; line-434 de-coupled from task title (asserts real 'Stage crew' header). jasper (LIGHT) approve. flex-wrap overflow major resolved earlier. DEFERRED non-blocking doc nit: partial header comment (_stage_agent_avatars.html.erb:14-17,67) still describes the abandoned 3-lane flex-wrap design vs the actual grid-cols-4 — reconcile in a future touch.
Pokemon page grid toggle
P Persian
<1m
P Persian
4m
P Persian
1h
pokemon-page-grid-toggle 🪎
Jun 23 6:21p 3:44a
QA Feedback
2-senior PASS: shannon (HEAVY) approve — clean ui-only; view state in localStorage + $watch (survives reloads, defaults list); all McRitchie Alpine/CSS gotchas clear; dark-mode inherited; mobile-first responsive grid. alex-docs (LIGHT) approve — copy/aria/ERB-comments accurate, no stale docs. Non-blocking polish deferred: aria-pressed on toggle, clamp stored value defensively, cloak toggle buttons; footnote vs 'Avatar (S3)' header wording.
Exclude builder from reviewers
R Rattata
11m
R Rattata
9m
R Rattata
9m
exclude-builder-from-reviewers 🪎
Jun 23 3:19p 3:44a
QA Feedback
Rework RE-REVIEW PASS: carl (HEAVY) approve — all resolved: builder_candidate? membership gate (no phantom exclusion); SOUL_SLUG gate so a UUID actor degrades to domain-only (a real session id passing the regex is ~4e-14 and benign); CI lint green; docs/test/log-token done; FULL suite 1304/0 + rubocop 0 offenses on head bf08184. jasper (LIGHT) approve. DEFERRED non-blocking (jasper): bin/reviewer-select excluded_line prints 'KEPT: too few' for a known non-pool builder where it should say 'not a candidate' (Rails log already correct) — small CLI follow-up. MERGE COORDINATION: #135 must rebase onto this and fold the excluded builder into seed_for's key. HELD at reviewed (not merged) so it does not contaminate the pending 4-fix prod ship; merges into the follow-up train after the current release ships.
Backfill pokemon mascots
backfill-pokemon-mascots 🪎
Jun 23 1:33p 3:44a
QA Feedback 3 notes
Rework RE-REVIEW PASS: carl (HEAVY) approve — all 3 blockers verified resolved: (1) rescue now ErrorLog.capture! with target: task (durable trace); (2) active_mascots hoisted to a single live-scan, in-memory taken set preserves uniqueness; (3) backend tests added — uniqueness across >=2 live tasks, count + idempotent-rerun-0, per-row rescue asserting ErrorLog row, rake wrapper. find_each now scoped to live; flaky-fallback nit fixed. shannon (LIGHT) approve. Non-blocking: rake still prints 'backfilled 0' without distinguishing unseeded deck.
Reviewer-select weight followups
G Geodude
39m
G Geodude
4m
G Geodude
4m
reviewer-select-weight-followups 🪎
Jun 23 12:43p 🐛 3:44a
QA Feedback 2 notes
Rework RE-REVIEW PASS: carl (HEAVY) approve — agents_seed_test asserts 2.0 (full suite green); seed-key coordination verified (seed_for folds excluded_builder so .decision/.select agree post-exclusion; tie-with-builder-excluded test proves CLI preview==recorded); rebase kept BOTH #136 exclusion + #135 seed/weight intact; CI 1308/0 + rubocop 0. alex-docs (LIGHT) approve — 'random tiebreak' wording swept across devops-cycle-design/avi-role/mission/bin, preview guarantee scoped to default qa_owner, #136 §247 preserved. DEFERRED nits: mission.md guarantee lacks the default-qa_owner caveat (overview altitude, ok); one code comment says 'random' loosely.
Wire two senior review flow
wire-2-senior-review 🪎
Jun 23 12:11p 5:13p
Comment
2-senior review (reviewer-select pick): Carl=HEAVY, alex-docs=LIGHT. Carl APPROVE — verified suite 18 runs 0 failures + rubocop clean, confirmed alex->alex-docs POOL fix closes a real wrong-soul TaskEvent bug, REPO_DOMAINS additive. alex-docs BLOCK — mission.md:72 still said 'Alex = Documentation' (contradicting the §1.2 rewrite it shipped); fixed to 'alex-docs = Documentation' (commit 46abda6), the last remaining instance. Both conditions now met = 2 approvals.
Stage avatars on board cards
board-card-stage-avatars 🪎
Jun 23 7:13a 5:13p
Auto capture move usage
auto-capture-move-usage 🪎
Jun 23 6:49a 4:22a
Comment 3 notes
Rework VERIFIED (head 96de174): all 3 fixes present — is_a?(Hash) guard + broadened StandardError rescue in agent_session_usage.rb sum_usage, and method-level 'rescue StandardError; nil' on autofill_move_usage in bin/task. Both regression tests present (non-object-JSON-not-fatal + move-still-PATCHes-spine), proven fail-without/pass-with by the rework agent. CI green 4/4, mergeable. Carl(heavy) BLOCK conditions fully met; Jasper(light) already approved the rest = 2 approvals.
Surface the task mascot
surface-the-task-mascot 🪎
Jun 23 6:46a 7:48a
Comment
Folded into pokemon-model-and-mascots (PR #120): the board-card chip needs the Pokemon model in the SAME deployable, and #120 isn't merged yet, so a separate release-targeted PR would break. Built the surfacing on the #120 branch instead.
Document stage event trail
document-stage-event-trail 🪎
Jun 23 6:29a 📚 5:13p
Comment 3 notes
2-senior review (reviewer-select: alex-docs heavy + jasper light). BOTH APPROVE. alex-docs verified all spine fields/flags/backfill/stale-flag against live code (task.rb, task_event.rb, current.rb, tasks_controller.rb, routes.rb, schema.rb); confirmed the rebased Build-SOP blockquote doesn't contradict the shipped §1.2/§1.4. jasper independently diffed every claim + confirmed anchors/cross-links resolve. 4/4 criteria met.
Pokemon model and mascots
pokemon-model-and-mascots 🪎
Jun 23 6:27a 5:13p
Comment 4 notes
2-senior review (reviewer-select: carl heavy + shannon light). BOTH APPROVE. Carl(heavy) verified all 8 criteria + merge-forward integrity (both sides on task.rb/_board/task_test, zero conflict markers), idempotent network-free seed, unique-at-create draw that persists (never re-rolled); full suite green except 6 known LOCAL_EMAIL_CAPTURE env artifacts (zero mailer files in diff). Shannon(light) APPROVE — chip+stage-avatars coexist cleanly, /pokemon read-only theme-safe, status-line sound. Minor non-blocking nits only.
Fix TaskEvent review blockers
fix-task-event-blockers 🪎
Jun 23 6:12a 🐛 5:13p
Task UI stage agents
task-ui-stage-agents 🪎
Jun 23 5:37a 5:13p
Board polish QA refinements
board-polish-qa-refinements 🪎
Jun 23 5:19a 3:44a
Comment
Deployed to PROD: app.mcritchie.studio v104 (SHA 7d02578), shipped 2026-06-23 ~18:15 by a concurrent release that also carried #139 etc. Verified live: hide-active-button (#113) + always-show muted badges (#108); #109/#110 ride the same linear history. All four board-polish refinements now in main.
Seed souls prod and QA
S Steffon
seed-souls-prod-qa 🪎
Jun 23 5:12a 5:13p
Stages page step outlines
stages-page-step-outlines 🪎
Jun 23 5:12a 5:13p
Deploy flow heartbeat tooling
deploy-flow-heartbeat-tooling 🪎
Jun 23 5:12a 5:13p
Deploy flow redesign spec
deploy-flow-redesign-spec 🪎
Jun 23 5:12a 5:13p
Release-aware dor-check base
release-aware-dor-check-base 🪎
Jun 23 3:48a 🐛 2:21a
Task stage change log
task-stage-change-log 🪎
Jun 23 3:30a 5:13p
QA Feedback
2-senior review (new flow): Shannon (light)=APPROVE (clean timeline, avatar-ready). Carl (heavy)=BLOCK on 2 small fixes: (1) host current.rb shadows engine Current's attribute :user (test-invisible regression); (2) CLI/conductor actor mis-attributes to the build claimant (breaks per-stage avatars). Fixing forward on-branch + adding logged-in + backfill tests.
Rolio deploy runbook
rolio-deploy-runbook 📇
Jun 23 3:20a 5:13p
Memory cleanout SOP
memory-cleanout-sop 🪎
Jun 23 3:07a 📚 5:13p
New app onboarding SOP
new-app-onboarding-sop 🪎
Jun 23 3:06a 5:13p
Handoff
Docs-only chore. 6 files: NEW new-app-onboarding-sop.md (tier table + phased checklist + evergreen/standalone build-conventions split); EDITs to devops-cycle-design.md (Standalone/Client App SOP; shapes deployment-agnostic), worktrees.md (Multi-Agent Safety & Merge Patterns), app-registry.md (candidate→satellite lifecycle + Rolio 📇), index.md Start Here + ECOSYSTEM.md (discoverability + Rolio 📇). PR #107 base=release. bin/dor-check → n/a (docs chore). All relative links verified resolving. Review focus: tier names used verbatim; rescue_and_log principle framed as non-optional-for-standalone.
Fix dor-check release-cut base
fix-dor-check-release-cut-base 🪎
Jun 23 2:49a 🐛 5:13p
Comment
Already delivered out-of-band: fix shipped inline during dogfooding as commit 66db6f2 (2026-06-22), an ancestor of origin/main (LIVE on prod). All 4 acceptance criteria covered by test/lib/dor_check_test.rb (32 runs, 224 assertions, 0 failures): release-aware default_diff_base (origin/release, fallback origin/main), release-cut docs branch not false-flagged, fallback test, and the with_release_ahead_repo regression + e2e gate. No dedicated PR — fix predates this task record. Moved to shipped to reflect reality.
Document agent-shell test gotchas
document-agent-shell-test-gotchas 🪎
Jun 23 2:43a 📚 5:13p
Comment 4 notes
2-senior review (reviewer-select: alex-docs heavy + shannon light). alex-docs APPROVE — verified every fact against the live repo (.ruby-version 3.3.11, keg /opt/homebrew/opt/ruby@3.3/bin resolves to 3.3.11, pg arm64-darwin in Gemfile.lock); no fabrication, no doc traps. shannon APPROVE — accurate, paste-ready, well-placed. Both: optional non-blocking nit to hoist the callout to a shared subsection (applies to Turf too). Both criteria met = 2 approvals.
Harden QA release SOP
harden-qa-release-sop 🪎
Jun 23 2:41a 📚 5:13p
QA Feedback
Strong PR — cold-start framing, pre-merge checklist (gh pr ready / gh pr edit --base release), and /up 000 note are all accurate, and the ship gate is handled correctly (no --yes on ship; meta-trigger stops at the operator human gate). One accuracy defect in the --yes callout (lines 289-297): it claims prepare/ship/merge/archive 'all prompt for confirmation' and 'silently no-op' without --yes. Verified against bin/release: confirm() is called ONLY by prepare (line 378, 'return unless confirm' = true silent no-op, the dangerous case you nailed), ship (line 881) and archive (line 994). Both ship and archive use 'abort! ... unless confirm' = LOUD abort, not a silent no-op. merge (def at line 320) has NO confirm call at all — it never prompts, so --yes is harmless/ignored there, not required. Net: the commands shown are all safe, but the rationale over-reaches. Fix: tighten the callout so prepare is the silent-no-op case, ship/archive abort loudly without --yes, and merge takes --yes only defensively/for future-proofing (no prompt today). Docs-only and dor-check (docs-exempt) both confirmed.
Tinder outreach queue
rolio-outreach-queue 📇
Jun 22 10:15p 5:13p
Notes log and tone
rolio-notes-and-tone 📇
Jun 22 10:15p 5:13p
Social enrichment on create
rolio-social-enrich 📇
Jun 22 9:44p 5:13p
Polish tasks deployments board
polish-tasks-deployments-board 🪎
Jun 22 9:43p 5:13p
Comment 6 notes
Hide redundant active toggle button (PR #113, af7564e) — current board's button hidden (title names it); only the other board's link shows; /stages shows both. Deployed QA, verified. origin/release now main + #108/#109/#110/#113; prod still v92 pending operator ship.
Splash and mock auth
rolio-splash-auth 📇
Jun 22 9:15p 5:13p
Verify codex resume command
verify-codex-resume-command 🪎
Jun 22 8:55p 5:13p
QA Feedback 2 notes
2-senior review PASS: carl (HEAVY) approve — independently verified CODEX_THREAD_ID exists in Codex CLI v0.141.0 and equals the resume session UUID; Claude paper-trail untouched (early-return on CLAUDE_CODE_SESSION_ID); no create/move-building regression. jasper (LIGHT) approve — rename complete, tests mirror the Claude cases. No blockers/majors; minors deferred (live codex resume proof; provider-precedence test).
Session claim lease gate
A Alex
1h
session-claim-lease-gate 🪎
Jun 22 8:55p 5:13p
Comment
2-senior review (reviewer-select: carl heavy + shannon light). BOTH APPROVE. Carl(heavy, adversarial) EMPIRICALLY ran the prod-only nonce resolver live inside a Claude Code bash tool: 'claude' ancestor stable, nonce identical across invocations (0d190f608cf8), TTY degrade also stable per-terminal -> AC#4 holds via 2 mechanisms; lease fails-open on every garbled/nil path (never bricks a task); heartbeat never steals a live claim; claim persists through the real API update! path (3 keys in DEVOPS_SCALAR_KEYS). 111 tests 0 failures, rubocop clean. Non-blocking: sub-second TOCTOU on same-unclaimed-task = last-writer-wins (out of scope for a soft signal); cosmetic <=120s live-dot. Shannon(light) APPROVE — board hint well-formed + degrades, CLI warn/steal message clear (stderr+exit1), --steal documented; noted 'refuses vs warns' = intended gate semantics per spec. = 2 approvals.
Feed warm leads
rolio-feed-leads 📇
Jun 22 8:41p 5:13p
AI paste import parse
rolio-ai-import-parse 📇
Jun 22 8:41p 5:13p
AI contact enrich
rolio-ai-enrich 📇
Jun 22 8:41p 5:13p
Admin hub and schema
rolio-admin-hub 📇
Jun 22 8:41p 5:13p
Mock import contacts onboarding
rolio-import-onboarding 📇
Jun 22 8:41p 5:13p
Rolio app foundation
rolio-foundation 📇
Jun 22 8:26p 5:13p
Comment
Supersedes earlier accept bullet: matching studio (Ruby 3.3.11 / Rails 7.2.3), SQLite retained, Postgres split into rolio-postgres-upgrade.
Session resume on tasks
session-resume-on-tasks 🪎
Jun 22 7:41p 1:45p
Fix devops-cycle doc inconsistencies
fix-devops-cycle-doc-inconsistencies 🪎
Jun 22 7:26p 📚 5:13p
Force remove merged worktrees
force-remove-merged-worktrees 🪎
Jun 22 7:11p 5:13p
Archive completed tasks
archive-completed-tasks 🪎
Jun 22 6:22p 5:13p
QA Feedback
Logic APPROVED + independently verified: archivable == shipped MINUS Release.last_shipped members exactly (cross-checked vs raw SQL), zero non-shipped tasks reachable (can't touch active/blocked), idempotent, no-last-release archives all shipped, dry-run mutates nothing, Last-Release archived-member link test is real. Suite green (81 model/cli/helper + 42 controller, 0 failures). BLOCK is narrow: this PR makes shipped->archived a real transition but leaves 3 docs contradicting it. (1) app/views/tasks/stages.html.erb:63 footer still reads 'Archived is terminal trash - abandoned, never shipping' - now self-contradicts the same page's shipped row you changed (shipped tasks move to archived). User-facing. (2) app/models/task.rb:10 same stale 'abandoned, never shipping' comment. (3) docs/agents/system/devops-cycle-design.md:357 still documents the OLD 'Cleanup worktrees' kickoff + 'The deployment is done.' - update to 'Archive completed tasks' + the bin/release archive shipped->archived loop conclusion (it's the canonical Full spec). Fix all three in this PR (leave docs cleaner than you found it), then re-submit - logic needs no changes.
Gate code-producing chores
gate-code-producing-chores 🪎
Jun 22 5:47p 7:00p
Conductor CLI refactor guard
conductor-cli-refactor-guard 🪎
Jun 22 4:59p 7:00p
Dedupe release board partials
dedupe-release-board-partials 🪎
Jun 22 4:59p 7:00p
Side by side releases
side-by-side-releases 🪎
Jun 22 4:16p 7:00p
Current and last releases
current-and-last-releases 🪎
Jun 22 3:28p 7:00p
Conductor prepare hardening
conductor-prepare-hardening 🪎
Jun 22 3:11p 7:00p
Worktree base release default
worktree-base-release 🪎
Jun 22 2:03p 7:00p
Comment
QA (Avi): APPROVE-WITH-NITS ('ship it') — base-ref resolution + origin/main fallback SOLID; cleanup can't over-reclaim; qa-intake reads base_ref correctly. Cosmetic nits (qa-intake local_without_pr release-symmetry; internal :equivalent_to_main symbol) left as-is. PR #92 (base release).
Persistent release-branch cutover — conductor + prepare + init (multi-repo PR1)
release-branch-cutover 🪎
Jun 22 5:37a 7:00p
Comment
QA (Avi): APPROVE-WITH-NITS — code/docs/migration-safety all PASS. Nits ADDRESSED in this PR: (1) cycle.html.erb shipped row 'tag'->'tag gems' (ship tags gems only); (2) added multi-repo ship to devops-cycle-design 'Still to land' (ship currently single-repo mcritchie-studio); (4) bin/release merge base-check now FAILS CLOSED if gh can't read the base; (5) Release#add checks reviewed BEFORE reopening. Left as-is (harmless): eligible_task_slugs orphaned-but-tested (operator helper). Tests 108/0, zeitwerk clean. MERGE GATED on migration: drain #76/#83/#86 -> bin/release init -> then merge.
dor-check: gate code-diff chores
task-e14bc7627b69 🪎
Jun 22 4:56a 7:00p
Comment
Avi APPROVED (PR #88). Verified independently: 17/64 file, 919/0/0 full, rubocop clean, dogfood confirmed (bin/dor-check on its own chore task → 'DoR-to-Merge met (shape: backend), tiers green: unit,integration' incl --json ready:true). Fall-through complete in both text+JSON paths; probed unknown-shape + build-gate code-diff paths (correctly gated); test seam sound (plain Minitest::Test, serial; ENV wrapper process-local + ensure-restored; non-exempt tests never shell git). Folded in his 2 non-blocking nits: (1) warn! on git-failure so skipped enforcement isn't silent; (2) comment documenting the deliberate Gemfile/root-file + test/-only gap. Left tier-honesty note as-is (extracting a module for a 40-line CLI is over-engineering; gate contract satisfied). Closes the loophole groomed off PR #86 — and closes it on itself.
Multi-repo conductor (d): --prod default + eligibility warnings + board deploy-target
task-7ab627d488df 🪎
Jun 22 4:41a 7:00p
Comment
QA (Avi): APPROVE-WITH-NITS — --prod-default SAFE (only changes the record-op target heroku-run vs local; fails closed; all deploy gates [DRY/confirm/assembled] intact; no new prod path). Eligibility warn+skip + deploy-target chip + emojis-test-fix all confirmed. Non-blocking follow-up: a prepare confirm for the new prod-default. PR #91 (base release).
Multi-repo conductor (c): multi-repo ship + gem auto-repin + partial-ship policy
task-a386407ba0a4 🪎
Jun 22 4:41a 7:00p
Comment 5 notes
QA (Avi): APPROVE-WITH-NITS — irreversible-ordering crux SOUND (gems->consumers, hub->satellites, frozen qa_sha not release HEAD, record flips LAST, every failure fails closed). Nits ADDRESSED: (1) yank-detection was dead vs the real RubyGems versions API (excludes yanked) — removed yanked?/synthetic tests; yank safety now honestly delegated to gem push failing closed (rejects re-push of a yanked number, before any app deploy); (3) re-pin drift guard now fetches origin + asserts LOCAL release HEAD == frozen qa_sha; (4) push_origin_main aborts on failure. Deferred follow-up: gem frozen-SHA (prepare records qa_shas for apps only; gems fall back to origin/release HEAD) — symmetric fix in a later prepare change. 106/0; zeitwerk clean. Stacked on PR1 #87; retarget #89 to main after #87 merges.
Multi-repo conductor (b): per-repo release branches + multi-repo QA in prepare
task-817da10d5d34 🪎
Jun 22 4:17a 7:00p
Comment
QA (Avi): APPROVE-WITH-NITS, merged (#85). Test-gate: removal correct (old gate ran the HUB suite even for a turf-only release — tested nothing relevant); do NOT restore it; instead phase (c) adds an optional registry per-repo test_cmd on the MERGED branch before prod deploy (BLOCKING on c). Nits carried to phase (c): drop dead QA_URL const; abort on git -C checkout failure (dirty sibling -> wrong-branch footgun); mirror PROJECTS_DIR env; tighten dry-run --task abort copy.
Multi-repo conductor (a): deploy-adapter registry + repo_plan + eligibility + GemfileRepin
task-7a999d1ad41b 🪎
Jun 22 4:17a 7:00p
Comment
QA (Avi): APPROVE (clean). Merged to main (squash, PR #84). Non-blocking carry-forwards for phase (c) where GemfileRepin is USED: rewrite_line normalizes single-quoted gem lines to double quotes (no impact — real consumer Gemfiles use double quotes); qa_app returns slug even for gem/unknown (loose contract, only called for apps). PR-desc integration-ref corrected in the merge commit body.
Build and Deploy QA Release — one-trigger QA-department workflow + kickoff chip
task-79fdd136a1ee 🪎
Jun 22 3:36a 7:00p
Comment 2 notes
QA (Avi): APPROVE-WITH-NITS — chip + SOP + Avi throughput trait verified accurate vs the live conductor; 2 §1.4 doc nits FIXED (Release.current not featured; dropped nonexistent 'bin/release state'). PR #90 (base release).
Multi-repo release conductor — McRitchie Studio as the ecosystem DevOps hub
task-f25fabc1b67c 🪎
Jun 22 3:36a 7:00p
Comment 5 notes
CUTOVER COMPLETE 2026-06-22 — multi-repo conductor + persistent-release model LIVE on mcritchie-studio prod v85 (app.mcritchie.studio /up 200). Sequence: drained #76/#83/#86 -> merged PR1 #87 (conductor+prepare+init+docs, f138364) -> merged PR2 #89 (multi-repo ship, e96cb12) -> regenerated root AGENTS.md/CLAUDE.md (team now PRs into release) -> bin/release init created origin/release on 5 repos (studio-engine, solana-studio, mcritchie-studio, turf-monster, chain-ops; tax-studio deferred, not cloned) -> deployed prod v85. Full suite 961/0 gated the deploy. REMAINING (separate tasks): PR3 bin/agent-worktree --base release default + qa-intake; PR4 --prod default + board deploy-target (task-7ab627d488df); tax-studio release branch when cloned; gem frozen-SHA in prepare; first real multi-repo production ship.
Task naming discipline
task-31e87e26cf2b 🪎
Jun 22 2:48a 7:00p
Comment 7 notes
Avi APPROVED (PR #83, 4th pass). Verified: branch is a clean fast-forward onto origin/main@004a8a6 (linear rebase, guaranteed conflict-free merge; main has not moved since); reviewed_task helper satisfies both eligibility + 3-5 word rule (4w all callers); the two 'mystery' eligibility tests genuinely exercise the unknown-repo path (create outside assert_raises, err pinned to mystery-repo); gem_task/app_task titles all <=5 words (ceiling 'studio change'->5). Independent full suite 919/0/0 (matches). Prior passes already approved the naming core, member_plan gem-branch null, seed fix, acceptance_changed? normalization. Avi's note: MERGE PROMPTLY — 3rd time main moved mid-review; the linear FF holds only until the next merge lands.
Run Deployment: gem releases as first-class members, published gems-first
task-1c92c482df6e 🪎
Jun 21 10:13p 7:00p
Comment 2 notes
MERGED to main (squash) 2026-06-22 as the FOUNDATION for Task A (task-f25fabc1b67c, multi-repo conductor) — merged directly per operator instruction ('land #82 first'), not via a release. Rebased clean onto main first (carl: keep-both on task.rb/test_task.rb slug-vs-classification + deployment.md; full suite 880/0, CI green). Already in main, so it will reach prod + flip to shipped on the next mcr release (its branch merge is a harmless no-op). Left at 'reviewed' (self-healing). NOTE: this 'merged-to-main-but-not-deployed' awkwardness is itself a board-model gap Task A/B should address (a landed/merged state or auto-advance-on-merge).
Readable Task.slug: custom slug at creation, trickles to worktree_slug + branch
task-e904ce7d70e0 🪎
Jun 21 9:40p 7:00p
Adopt Studio::Link in turf-monster: /l magic-link + referral cutover + managed email image
task-a54f8e18a68f 🐊
Jun 21 2:11p 7:00p
Comment 7 notes
SHIPPED to mainnet: turf-monster-mainnet v104 (app.turfmonster.media), 2026-06-22. PR #160 merged to turf main, deployed via turf-monster/bin/deploy. Preflight green (IDL hash already pinned — no on-chain change), migrations CreateStudioLinks + AllowNullImageCacheOwner ran in release phase, smoke /up 200. Studio::Link /l magic-link + referral + managed email image now LIVE on mainnet; studio-engine 0.8.0 in prod.
release_notes API: route DiscordClient delivery failures into ErrorLog
task-fbca827303be 🪎
Jun 21 2:10p 7:00p
Comment
Avi APPROVED (PR #86). Verified: create_error_log reachable from action, no double-log (typed rescues don't propagate to rescue_from; no @_error_logged interaction), no swallow (non-typed failures still fall through to handle_unexpected_error → logged). MissingWebhook+DeliveryError are the only typed DiscordClient failures; MISSING_TASKS/UNKNOWN_TASKS correctly NOT logged (user input). Ran tests himself 7/30 green. Added his happy-path no-difference nit (now 7/32). Agreed the kind:chore dor-check gap is worth a ticket (groomed).
Move Turf Monster app to root domain
task-6f319c093cc2 🐊 🪎
Jun 21 2:05p 7:00p
Comment 3 notes
Gate cleared for review: PRs #79 + #160... (turf #159) marked ready, CI green on both, current with main, code reviewed-clean (host-alias backward-compatible). Advancing to reviewed. STILL OWED before the PRODUCTION DNS cutover (separately gated, NOT a QA-release blocker): runbook deployment.md MAILER_HOST ordering fix + add both hosts to Coinbase CDP allowlist.
Task cards: one-line title + app-emoji indicators (cards & release pills)
task-ae8e06c02977 🪎
Jun 21 1:56p 7:00p
Comment 2 notes
Gate cleared: rebased onto origin/main (0 behind), PR #78 marked ready-for-review, CI green (lint/scan/test). Advancing to reviewed for the QA release. Non-blocking nit open: APP_EMOJIS comment says 'mirrors' but is a superset (adds chain-ops).
probe
task-4fd92eaef558
Jun 21 1:55p 1:55p
Adopt Studio::Link in mcritchie-studio: short /l magic-link + branded email + admin email-image
task-0a09e3a0b60e 🪎
Jun 21 1:29p 7:00p
Comment 5 notes
Repin landed: Gemfile -> studio-engine ~> 0.8, Gemfile.lock resolves 0.8.0 (GIT section gone), rebased clean onto origin/main (the anticipated schema.rb index churn auto-merged), full CI GREEN against the PUBLISHED 0.8.0 gem (lint/scan_js/scan_ruby/test). Avi pre-approved the logic (APPROVE-PENDING-ENGINE-PUBLISH); engine 0.8.0 now shipped -> reviewed. Ready to ride a mcritchie-studio release.
Clean up Studio admin navigation
task-af0b5d3511ee 🪎
Jun 21 5:39a 7:00p
Comment 3 notes
APPROVED (PR #76, QA re-review). All 3 acceptance criteria met: (1) /devops fully removed from routes/links/views/API — no dangling refs anywhere in app/lib/config/test/e2e/bin; (2) admin block leads the sidebar — Mr. McRitchie confirmed criterion 2 satisfied as-is (Site→Ops→On-chain→Data within the admin block); (3) dashboard links /builders/history. Risk areas clear: docs coherent (install-agent-docs check OK, zero /devops/cycle refs in docs + both generated root files), WorktreeRegistry removal safe (snapshot --write + qa-intake use the .agents JSON independently). Route removal asserted at 3 tiers + e2e 404. Full suite 906/0/0/4 skips. Prior rework reasons (rebase/doc-coherence/draft) all addressed; branch clean + mergeable. Ready for the conductor to assemble.
Standard Studio::Link model: /l/<token>, branded mailer, managed email image (engine foundation)
task-f2ca3e97a730 💎 🪎 🐊
Jun 21 5:39a 💎 7:00p
Comment 3 notes
GEM PUBLISHED: studio-engine 0.8.0 live on RubyGems (gem registered), PR #7 squash-merged to studio-engine main, tagged v0.8.0. Version bumped 0.7.0→0.8.0 + CHANGELOG promoted at publish. Consumers can now pin 'studio-engine','~> 0.8'. Unblocks the adoption tasks (task-0a09e3a0b60e mcr, task-a54f8e18a68f turf).
bin/release ship — auto-post release notes (POST /api/v1/release_notes)
task-8d27ce40caa2 🪎
Jun 21 4:43a 7:00p
QA Feedback
Avi: post_release_notes 'non-fatal' guarantee incomplete — only rescues MissingWebhook/DeliveryError, but DiscordClient only converts non-2xx HTTP to DeliveryError; transport errors (Net::OpenTimeout/SocketError/ECONNREFUSED/SSL) from Net::HTTP.start escape and would abort the ship report after an irreversible deploy. Fix: convert transport→DeliveryError in DiscordClient#deliver (hardens the API path too) + add a transport-failure test. Doc nit: bin/release:26 'safe for dev runs' is now half-true (prepare fires a real QA deploy).
bin/release prepare — auto-deploy the RC to QA (mcritchie-studio-qa)
task-1bf8c80fa279 🪎
Jun 21 4:43a 7:00p
bin/release — deterministic prepare/ship CLI (additive find-or-create)
task-66812a1b1ae9 🪎
Jun 21 4:03a 7:00p
Split the board into Tasks / Deployments / Stages pages
task-682cf9a50403 🪎
Jun 21 1:02a 7:00p
QA Feedback
Avi QA: code/tests solid, but the new 'submitted' seam contradicts surfaces that still say 'reviewed' seam — task.rb:7/:22 comments, the /devops/cycle SOP viewer, and (self-contradictorily) the devops_stage_guide docstring (application_helper.rb:64-66) which claims to mirror the SOP. Also original ACs #1/#2 describe the pre-redesign columns. Ratify the canonical seam, then make board + /stages + SOP + model comments + task ACs all agree. Nits: dead @board_stages ivar (tasks_controller.rb:131-134) + dead Task::BOARD_STAGES constant.
Current-release header on the tasks board
task-a429a106150b 🪎
Jun 20 11:01p 7:00p
Comment
Review ✅ (Avi, independent) → reviewed. Acceptance met; Release.featured sound (no injection, ≤2 queries), partial XSS-safe + noopener, component test meaningful. CI green (parallel). Folded nits: memoized members query + tightened/extended test (QA URL + SHA branches). Avi flag for operator: /tasks is public, so QA/prod URLs + SHA on the header are publicly visible (none secret) — confirm intended.
Hermetic test env for bin/agent-worktree test (fix worktree mailer failures)
task-383fbd0a1f65 🪎
Jun 20 10:13p 7:00p
Comment 2 notes
Review ✅ (Avi, independent) → reviewed. Verified the diagnosis (env leak, not ordering — fails in isolation), the minimal env (test DATABASE_URL correct, dotenv non-overwriting), and that scope is complete (.env.agent-stack was only reaching tests via the subcommand's hand-injected env). Folded nit: Redis-isolation note. Title corrected (was 'De-flake order-dependent tests').
Worktree test DB setup deadlocks the parallel suite
task-b2a0bd0917b5 🪎
Jun 20 9:49p 7:00p
Comment 2 notes
Review ✅ (Avi, independent) → reviewed. Diff matches acceptance, CI green; verified test_database_url derivation + the test subcommand wiring; single-process is the sound pragmatic fix (CI keeps parallel). Folded both nits: precise _development_ rewrite + flake breadcrumb comment.
Release model + task links (Deploy workflow foundation)
task-6790800606f9 🪎
Jun 20 9:34p 7:00p
Comment 3 notes
Assembled into RC release/2026-06-20-deploy-foundation (4 reviewed tasks merged clean, no conflicts). Full suite on the assembled branch: 799 runs / 0 failures / 0 errors. Awaiting operator 'Make the release' → ff to main + deploy v78.
Swimlane infographic for the DevOps cycle viewer
task-df8a656148bd 🪎
Jun 20 9:08p 7:00p
Comment 2 notes
Review ✅ (Avi, independent) → reviewed. Diff matches acceptance; swimlane markup/CSS sound (4 tracks = 4 cells); component test meaningful (anchors on .swim/.swimhead counts + all stages + both workflows); CI green. Nit folded in: 'Makes the release' → 'Make the release' (51c7ea0). Non-blocking a11y note (CSS-grid div table, no SR column headers on desktop) — acceptable for admin SOP viewer.
Two-workflow task status model (Build → Deploy)
task-5380e0add7b5 🪎
Jun 20 6:33p 7:00p
Handoff 2 notes
Deployed to prod (Heroku v77) under maintenance mode; release-phase migration remapped all task rows (pr_review→submitted etc.) cleanly. Root AGENTS.md/CLAUDE.md regenerated to the new stages. New model is LIVE for the test run.
test: per-session marker
task-0984eb68ed4e 🪎
Jun 20 4:40p 4:40p
Add Tasks link to admin dashboard
task-73e3e2eeaece 🪎
Jun 20 4:37p 7:00p
Comment 2 notes
Review ✅ approved → reviewed. Clean 2-line quick-link to tasks_path; acceptance met; dor-check (component) green. Assembly note: rebase onto current main + re-run CI (CI predates the v77 status-model deploy), and merge BEFORE #67 — both edit the same lines of admin/dashboard/show.html.erb.
Add NFL hub link to admin dashboard
task-fb455eb7207c 🪎
Jun 20 4:36p 7:00p
Handoff 4 notes
Cleared the PR #67 blocker: rebased feat/admin-dashboard-nfl-hub-link onto current main (6cfdfcf), preserved the shipped Tasks quick link from #66, resolved the dashboard/test conflicts, force-pushed with lease, and marked the PR ready for review. Verification: [component] bin/rails test test/controllers/admin/dashboard_controller_test.rb passed; [gate] bin/dor-check task-fb455eb7207c passed; [ci] gh pr checks 67 passed lint, scan_js, scan_ruby, and test. Local review URL is healthy again at http://localhost:3001/admin/dashboard after applying the worktree dev DB migrations.
test: statusline genesis marker
task-72a4d30a6588 🪎
Jun 20 4:27p 4:27p
Harden bin/e2e-parallel + introduce two-tier (@smoke) e2e model
task-5493ffbe7c8d 🐊
Jun 20 5:59a 7:00p
DevOps tooling follow-ups: bin/task note, dor-check chore exemption, engine pin, ecosystem-build docs
task-bf75f02aa426 🪎
Jun 20 5:58a 7:00p
Handoff 2 notes
PR #60 open for Avi review. 4 items: bin/task note, dor-check chore/cleanup/docs exemption (+4 tests, 10 green), studio-engine ~> 0.7 pin, ecosystem-build.md. No app code touched; bin/rails test not required. Do not merge/deploy.
DevOps SOP viewer in-app page
task-10756c7be9ff 🪎
Jun 20 5:58a 7:00p
Admin models table shell -> Studio Engine
task-9fe8d486e60e 💎 🪎 🐊
Jun 20 4:56a 💎 7:00p
Add Coach model to admin models
task-ab7a35134ed0 🪎
Jun 20 3:01a 7:00p
DevOps cycle v1: DoR gate + feature-shape matrix
task-e5f6a7111a4d 🪎
Jun 19 9:19p 7:00p
DevOps scout run control and dashboard
task-5bd1bf06264d 🪎
Jun 19 5:24a 7:00p
Handoff 5 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/devops. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
DevOps scout launcher
task-941ee7d53d1f 🪎
Jun 19 4:36a 7:00p
Handoff 5 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/devops. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
Add release notes API
task-c8b95e62b0fa 🪎
Jun 18 11:01p 7:00p
Handoff 2 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/api/v1/release_notes. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
DevOps scout decision summary
task-c8f52ccbe60c 🪎
Jun 18 10:50p 7:00p
Handoff 4 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/devops. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
DevOps scout report intake
task-9424f840e120 🪎
Jun 18 9:45p 7:00p
Handoff 5 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/devops. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
DevOps scout review packets
task-141fba5922dd 🪎
Jun 18 9:05p 7:00p
Handoff 5 notes
Avi post-deploy note: Discord release note for production release v71 at ef693ab was sent to the release-notes webhook after the deploy.
DevOps batch review planner
task-faa77d6fe2af 🪎
Jun 18 8:47p 7:00p
Handoff 6 notes
Avi post-deploy note: Discord release note for production release v71 at ef693ab was sent to the release-notes webhook after the deploy.
DevOps queue snapshot command
task-f8e6218e9739 🪎
Jun 18 8:15p 7:00p
Handoff 5 notes
Avi post-deploy note: Discord release note for production release v71 at ef693ab was sent to the release-notes webhook after the deploy.
DevOps test lanes and fresh-session workflow v1
task-29e2cfa667e1 🪎
Jun 18 7:51p 7:00p
Handoff 7 notes
Avi post-deploy note: Discord release note for production release v71 at ef693ab was sent to the release-notes webhook after the deploy.
task-board-api doc follow-up: bin/task path + comma contract
task-6ff413a375a1 🪎
Jun 18 6:27p 7:00p
Handoff 4 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/tasks/task-6ff413a375a1. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
Investigate QA navbar regressions across Studio and Turf
task-854da51e5b9a 🪎 🐊 💎
REL
Jun 18 2:34p 🐛 7:00p
Handoff 2 notes
Mr. McRitchie confirmed this navbar regression task is finished. Closing it from the active DevOps board; no PR or production action required from this task.
Add terminal session context markers
task-58903a988139 🪎
Jun 18 2:23p 7:00p
Handoff 7 notes
Avi post-deploy note: Discord release note for production release v71 at ef693ab was sent to the release-notes webhook after the deploy.
Fix devops list normalizer: stop splitting array items on commas
task-7e688f153a95 🪎
REL
Jun 18 5:52a 7:00p
Handoff 8 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/tasks/task-7e688f153a95. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
Agent CLI trinity: bin/task, bin/preflight, bin/secret
task-df5a10314122 🪎
REL
Jun 18 5:09a 7:00p
Handoff 8 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/tasks/task-df5a10314122. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
Bring sticky table headers to Turf Monster
task-d0f00c5b1358 💎 🐊
REL
Jun 18 4:37a 7:00p
Handoff 6 notes
Production proof added 2026-06-22: Turf Monster production app turf-monster-mainnet is on release v105 commit 96ce1c0, which contains sticky-header merge 6bf6707 from PR #155. Production /up returned 200 at https://turfmonster.media/up. A production rails runner returned {"sticky_table_headers":true,"studio_version":"0.8.0"}. Studio Engine PR #5 is merged and the shared sticky-header capability is available through the published studio-engine gem lineage. No further sticky-header release action is pending for task-d0f00c5b1358.
Auto-reclaim merged worktrees on close (scale-down normal flow)
task-2adbc61766f3 🪎
Jun 18 4:20a 7:00p
Handoff 8 notes
Avi post-deploy note: Discord release note for production release v71 at ef693ab was sent to the release-notes webhook after the deploy.
/devops Worktrees & Slots dashboard
task-e916e32ba54c 🪎
Jun 18 4:20a 7:00p
Handoff 3 notes
Marked done after production deployment McRitchie Studio v70 at 82b1791. PR #36 Worktrees & Slots /devops panel is merged, CI was green, production /devops responds with an authenticated redirect, and the release includes this task.
Document the agent task-board API onboarding (auth + contract + footguns)
task-bfcf6e8c1ab2 🪎
QA
Jun 18 4:04a 📚 7:00p
Handoff 2 notes
Production deployed in McRitchie Studio v70 (82b1791): Task-board API onboarding docs. Verify at https://mcritchie.studio.
Propagate sticky table headers across McRitchie Studio
sticky-table-propagation 🪎
QA
Jun 18 3:35a 7:00p
Handoff 7 notes
Production deployed in McRitchie Studio v70 (82b1791): Dynamic sticky table propagation. Verify at https://mcritchie.studio.
Elastic worktree Redis capacity (steady-state 20, scale in/out by 10)
task-ec282d05a59c 🪎
Jun 17 11:15p 7:00p
Handoff
Marked done after production deployment McRitchie Studio v70 at 82b1791. PR #31 elastic worktree Redis capacity is merged, CI was green, commit 03aff75 is included in production SHA 82b1791, and production /devops responds with an authenticated redirect.
Fix bin/ecosystem-build Ruby version (3.1 -> 3.3) so fresh-Mac recovery works
task-f69c93046ffe 🪎
Jun 17 10:43p 🐛 7:00p
Handoff
Shipped ecosystem-build Ruby 3.3 fix to production in McRitchie Studio v69. CI passed; bash syntax and stale Ruby 3.1 reference checks passed.
Add sticky header to admin users table
admin-users-sticky-header 🪎
QA
Jun 17 10:11p 7:00p
Handoff 5 notes
Production deployed in McRitchie Studio v70 (82b1791): Admin users sticky table header. Verify at https://mcritchie.studio.
Add task conversation feedback
task-conversation-feedback 🪎
Jun 17 9:58p 7:00p
Handoff 3 notes
Shipped task conversation feedback to production in McRitchie Studio v68. QA and production health checks passed.
Add GitHub query console helper
github-query-console-helper 🪎
Jun 17 9:52p 7:00p
Handoff
Shipped GitHub query console helper to production in McRitchie Studio v69. CI passed; focused GitHub service tests passed locally on merged main.
Clarify task-board DevOps handoff contract
task-552b68ce294d 🪎
Jun 17 9:34p 7:00p
Handoff 8 notes
Production shipped: McRitchie Studio v72 / 4af95f8. Production URL: https://mcritchie.studio/tasks/task-552b68ce294d. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
Ship Turf Monster sidebar back-navigation fix
task-c2d06883e677 🐊
Jun 17 9:31p 🐛 7:00p
Handoff 7 notes
Production shipped: Turf Monster v102 / ca0b4be. Production URL: https://app.turfmonster.media. Verification included production health checks, relevant route smokes, dyno status, and release notes posted to Discord. Task marked done.
Ship McRitchie Studio sidebar back-navigation fix
task-ea8541e4b5b6 🪎
Jun 17 9:31p 🐛 7:00p
Handoff 7 notes
Post-deploy production smoke passed on https://www.mcritchie.studio. Signed in through the normal magic-link flow as the McRitchie admin user and verified sidebar Back behavior across /dashboard, /tasks, /tasks/task-ea8541e4b5b6, and /agents for gear, username, and avatar triggers. All 12 route/trigger cases reopened the sidebar after Back and closed with Escape. No remaining closeout blocker from the feature agent side.
Require task-board items for feature handoff
require-task-board-items 🪎
Jun 17 9:16p 7:00p