Agents Builders

Activity Feed

comment 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. primary-owns-review-lane
about 2 hours ago
comment 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. review-timer-signal
about 2 hours ago
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-demo-seed-cache
about 4 hours ago
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-notes-cadence
about 4 hours ago
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-event-outreach-arm
about 4 hours ago
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-admin-ai-results
about 4 hours ago
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-add-notes
about 4 hours ago
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-prompts
about 4 hours ago
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
about 4 hours ago
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
about 4 hours ago
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-polish2
about 4 hours ago
qa_feedback PR #255 needs rework: session-preflight fails because installed active qa-release skills in /Users/alex/.claude and /Users/alex/.codex are stale relative to docs/agents/skills/qa-release/SKILL.md, so agents would still load the old review flow. Run bin/install-agent-docs from the worktree and resubmit. Also clean up devops-cycle-design cold-start language that still says the conductor reviews, merges, and deploys work; it conflicts with the new primary-owned merge model.
C
codex
primary-owns-review-lane
about 4 hours ago
qa_feedback PR #254 needs rework: open_intents_for only treats a later target transition as superseding an intent. If a review intent is recorded and the reviewer blocks directly from submitted before a reviewed transition, then blocked -> building -> submitted resurfaces the old intent/timer. Add a regression for submitted -> blocked -> building -> submitted without reviewed, and scope open intents to the current stage cycle or invalidate intents when leaving their source stage.
C
codex
review-timer-signal
about 4 hours ago
comment Shared PR #16 rework pushed at 23b9fbb: enrich prompt/provider contract is aligned, rolio-enrich-tags is submitted on PR #16, and Rolio's standalone PR base is documented as main. Local full suite and latest GitHub Actions CI passed. rolio-event-outreach-arm
about 7 hours ago
comment Shared PR #16 rework pushed at 23b9fbb: enrich prompt/provider contract is aligned, rolio-enrich-tags is submitted on PR #16, and Rolio's standalone PR base is documented as main. Local full suite and latest GitHub Actions CI passed. rolio-admin-ai-results
about 7 hours ago
comment Shared PR #16 rework pushed at 23b9fbb: enrich prompt/provider contract is aligned, rolio-enrich-tags is submitted on PR #16, and Rolio's standalone PR base is documented as main. Local full suite and latest GitHub Actions CI passed. rolio-add-notes
about 7 hours ago
comment Shared PR #16 rework pushed at 23b9fbb: enrich prompt/provider contract is aligned, rolio-enrich-tags is submitted on PR #16, and Rolio's standalone PR base is documented as main. Local full suite and latest GitHub Actions CI passed. rolio-prompts
about 7 hours ago
comment Shared PR #16 rework pushed at 23b9fbb: enrich prompt/provider contract is aligned, rolio-enrich-tags is submitted on PR #16, and Rolio's standalone PR base is documented as main. Local full suite and latest GitHub Actions CI passed. rolio-merge-enrich-socials
about 7 hours ago
comment QA rework pushed in PR #16 at 23b9fbb: enrich prompt catalog is facts/tags-only, includes required fact keys, and leaves public profiles in SocialFinder/social cache. Full local suite and latest GitHub Actions CI passed. rolio-enrich-notes-cadence
about 7 hours ago
comment QA rework pushed in PR #16 at 23b9fbb: enrich prompt catalog is facts/tags-only, includes required fact keys, and leaves public profiles in SocialFinder/social cache. Full local suite and latest GitHub Actions CI passed. rolio-demo-seed-cache
about 7 hours ago
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. reviewer-roles-primary-light
about 8 hours ago
handoff Focused debug found no Add Notes-specific failure. Acceptance slice is covered and green: notes_imports_controller_test 12/53, plus adjacent contacts/imports tests 37/145. The current block is collateral from shared PR #16: Enrich prompt/provider mismatch, active rolio-enrich-tags scope, and PR base/release-branch process.
C
codex
rolio-add-notes
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-demo-seed-cache
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-enrich-notes-cadence
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-merge-enrich-socials
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-event-outreach-arm
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-prompts
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-add-notes
about 8 hours ago
qa_feedback PR #16 is not ready for QA approval yet. The admin Prompts catalog claims the enrich prompt returns facts plus public profiles, but Llm::ClaudeProvider still asks for facts only and explicitly excludes profiles. Also, PR #16 includes rolio-enrich-tags while that task is still building/claimed, and the PR targets main because Rolio has no release branch. Align the prompt/provider contract and PR scope/base before resubmitting.
C
codex
rolio-admin-ai-results
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-demo-seed-cache
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-add-notes
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-merge-enrich-socials
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-prompts
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-admin-ai-results
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-event-outreach-arm
about 8 hours ago
handoff PR #16 rework is pushed at current head df7f678. The stale Fathom taxonomy cache blocker is fixed by transcript-digest note_extraction keys in 2cb0e59; current branch also includes the later enrich-tags split. Verification on current head: bin/rails test -> 233 runs, 907 assertions, 0 failures. Ready for re-review.
C
codex
rolio-enrich-notes-cadence
about 8 hours ago
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.
C
codex
preserve-mascot-history
about 8 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-enrich-notes-cadence
about 9 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-demo-seed-cache
about 9 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-event-outreach-arm
about 9 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-add-notes
about 9 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-admin-ai-results
about 9 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-merge-enrich-socials
about 9 hours ago
qa_feedback PR #16 current head 9ff8f81 needs rework before merge. EnrichmentService.note_taxonomy caches note_extraction by contact only, so a second Fathom transcript/summary for the same contact reuses the first extraction; reproduced Denver/Broncos sample then Austin/Lakers still returning Denver/Broncos. Fix cache key/invalidation so reviewed taxonomy matches the current paste, then update PR body to include all 7 task URLs and current 231-test proof. Local review: rails test green; db:prepare/seed green; route smoke green.
C
codex
rolio-prompts
about 9 hours ago
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. alex alex devops-sop-infographic
about 9 hours ago
comment Senior review -> APPROVED (2/2) for PR #16 (the 3-task rolio-demo bundle). Reviewers: Steffon (backend heavy) + Shannon (UI light), both high confidence. Backend verified end-to-end with ANTHROPIC_API_KEY UNSET: db:migrate + seed + warm rake + 70+52 tests green, deterministic (identical payload SHA across reseeds), idempotent; one shared EnrichmentService; migrations additive/reversible. UI demo-ready (admin group-by-kind + counts, socials handles, editable cadence with no-JS fallback, Fathom taxonomy). SHIP HAZARD (Steffon, major): GitHub PR #16 = origin/feat/rolio-demo at 137c1ca (43 files, REVIEWED). The LOCAL feat/rolio-demo is 2 commits AHEAD (a88fc48 + 5df4214) -- an un-reviewed Wave-2 Event Hub stacked on the SAME branch, on NO remote. Merge PR #16 from origin at 137c1ca ONLY; do NOT push the local feat/rolio-demo branch (would balloon #16 from 43 to 57 files with un-reviewed code). Move Wave 2 onto its own branch and PUSH it (currently unpushed = loss risk). Non-blocking polish: ai_cache.rb fetch TOCTOU (rescue RecordNotUnique / upsert); 20s post-import sync spinner -> shorten to ~5-8s for stage; seeds.rb header reword; admin find-by-PK vs public_id. -> reviewed. alex alex rolio-admin-ai-results
about 10 hours ago
comment Senior review -> APPROVED (2/2) for PR #16 (the 3-task rolio-demo bundle). Reviewers: Steffon (backend heavy) + Shannon (UI light), both high confidence. Backend verified end-to-end with ANTHROPIC_API_KEY UNSET: db:migrate + seed + warm rake + 70+52 tests green, deterministic (identical payload SHA across reseeds), idempotent; one shared EnrichmentService; migrations additive/reversible. UI demo-ready (admin group-by-kind + counts, socials handles, editable cadence with no-JS fallback, Fathom taxonomy). SHIP HAZARD (Steffon, major): GitHub PR #16 = origin/feat/rolio-demo at 137c1ca (43 files, REVIEWED). The LOCAL feat/rolio-demo is 2 commits AHEAD (a88fc48 + 5df4214) -- an un-reviewed Wave-2 Event Hub stacked on the SAME branch, on NO remote. Merge PR #16 from origin at 137c1ca ONLY; do NOT push the local feat/rolio-demo branch (would balloon #16 from 43 to 57 files with un-reviewed code). Move Wave 2 onto its own branch and PUSH it (currently unpushed = loss risk). Non-blocking polish: ai_cache.rb fetch TOCTOU (rescue RecordNotUnique / upsert); 20s post-import sync spinner -> shorten to ~5-8s for stage; seeds.rb header reword; admin find-by-PK vs public_id. -> reviewed. alex alex rolio-enrich-notes-cadence
about 10 hours ago
comment Senior review -> APPROVED (2/2) for PR #16 (the 3-task rolio-demo bundle). Reviewers: Steffon (backend heavy) + Shannon (UI light), both high confidence. Backend verified end-to-end with ANTHROPIC_API_KEY UNSET: db:migrate + seed + warm rake + 70+52 tests green, deterministic (identical payload SHA across reseeds), idempotent; one shared EnrichmentService; migrations additive/reversible. UI demo-ready (admin group-by-kind + counts, socials handles, editable cadence with no-JS fallback, Fathom taxonomy). SHIP HAZARD (Steffon, major): GitHub PR #16 = origin/feat/rolio-demo at 137c1ca (43 files, REVIEWED). The LOCAL feat/rolio-demo is 2 commits AHEAD (a88fc48 + 5df4214) -- an un-reviewed Wave-2 Event Hub stacked on the SAME branch, on NO remote. Merge PR #16 from origin at 137c1ca ONLY; do NOT push the local feat/rolio-demo branch (would balloon #16 from 43 to 57 files with un-reviewed code). Move Wave 2 onto its own branch and PUSH it (currently unpushed = loss risk). Non-blocking polish: ai_cache.rb fetch TOCTOU (rescue RecordNotUnique / upsert); 20s post-import sync spinner -> shorten to ~5-8s for stage; seeds.rb header reword; admin find-by-PK vs public_id. -> reviewed. alex alex rolio-demo-seed-cache
about 10 hours ago
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. alex alex production-smoke-seal-agent
about 10 hours ago
comment 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. alex alex center-timeline-card-layout
about 10 hours ago
comment 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. alex alex splash-dynamic-bg
about 11 hours ago
handoff Ready for QA review — operator-approved the look. PR #248 (head d409e0e) bundles the full /tasks/:id timeline-card redesign: (1) centered stage badges, (2) crew avatar-over-name, (3) review pair in 50/50 columns, (4) in-progress pill -> pulsing green backdrop, (5) live duration ticker M:SS / H:MM, (6) in-progress cards show only the current stage in its active-verb form ('Assembling'). New reusable Task::STAGE_ACTIVE_LABELS + Task.active_stage_label. Full suite + rubocop green at 15d4120f; [unit]+[component] tiers recorded. Local preview: http://localhost:3004/tasks/preview-live-qa-card center-timeline-card-layout
about 11 hours ago
handoff Re-submitted after review: 3 more operator-requested tweaks landed on PR #248 AFTER it was moved to reviewed — removed the 'in progress' pill, duration now ticks live as M:SS / H:MM, and the in-progress card backdrop pulses. New commit 9580cf0. Full suite + rubocop green at d9f5fbb5. Please re-review before merge. center-timeline-card-layout
about 11 hours ago
comment Senior review → APPROVED (2/2). Reviewers: Shannon (UI) + Carl (rails/integration), both high confidence. All 10 integration tests green (47 assertions). Acceptance: all 4 met — single CSS-only aurora painted at .phone level via content_for :phone_bg behind hero (z-index 0 vs hero 1); contained by .phone overflow:hidden+radius and .splash-phonebg overflow:hidden (absorbs -25% layer bleed); reduced-motion fallback present (@media prefers-reduced-motion → animation:none, radial-gradient fills remain); hero readable (near-black headline + filled CTA above aurora, bottom mask keeps home band white). Perf: gradient-softness not blur, only transform animated (GPU-composited). Non-blocking follow-ups: (1) reduced-motion fallback not test-guarded — add assert_match(/prefers-reduced-motion/, response.body); (2) subtitle copy 'enriched searchable contacts' missing comma; (3) subtitle --label-2 ~2:1 worst-case over central blob — optional scrim/contrast nudge, on-device glance. alex alex splash-dynamic-bg
about 11 hours ago
comment Senior review → APPROVED (2/2). Reviewers: Shannon (UI) + Carl (test), both high confidence. All 65 tests green (341 assertions). Acceptance: all 4 met — transition row justify-center (ml-auto dropped from both in-progress + reconstructed chips), crew avatar-over-name (flex-col items-center text-center), review pair → grid grid-cols-2 two equal columns, single actor → justify-center flex. Component test pins STATIC ERB classes (not Alpine-managed — Nokogiri gotcha N/A) and exercises both pair (reviewed block) and single (assembled block) branches via deploy-crew seed. No findings. alex alex center-timeline-card-layout
about 11 hours ago
comment 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. alex alex add-session-preflight
about 11 hours ago
qa_feedback See PR #244 review comment (durable). HEAVY block: bin/session-preflight latest-feedback path is inert against the live board — bin/task show --json serializes @task.as_json which has no latest_activity key (it's derived, not a column); only the --file test fixture made it green. Make the feedback source real + add a test against the real --json contract. add-session-preflight
about 12 hours ago
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).
C
codex
save-codex-stage-usage
about 13 hours ago
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. managed-codex-mascot
about 13 hours ago
handoff 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. blocked-websocket-refresh
about 13 hours ago
qa_feedback HEAVY review (Jasper) — acceptance #1 'reports latest task blocker feedback' is non-functional against the live board. bin/session-preflight shells to 'bin/task show <slug> --json', which serializes @task.as_json — Task has no custom as_json and latest_activity is NOT a column (it is derived; deployments_broadcaster uses activities.recent.first). So the real task JSON has no latest_activity key and latest_feedback(task) always returns nil → 'Latest feedback: none' for every real task. The suite masks it: every test feeds a fabricated --file fixture with latest_activity hand-injected, so no test exercises the real --json contract. FIX: make the feedback source real — either (a) extend the task API serializer so /api/v1/tasks/:slug data includes latest_activity (mirror what bin/devops-cycle computes — most-recent activity / qa_feedback/block note), or (b) have session-preflight fetch the task's activities directly rather than reading task['latest_activity']. Then add a test exercising the REAL bin/task show --json → latest_feedback path and fix the --file fixture to match the live API contract so a green test can't mask empty feedback. Other checks (branch drift, PR/overlap, docs/stale, tiers) are sound — only the feedback data contract needs to become real. add-session-preflight
about 13 hours ago
handoff Follow-up fixed the observed flash/missing-card race by broadcasting stage moves as one ordered Turbo Stream payload. Evidence: service regression for one websocket payload, Playwright deployments_live on E2E_PORT=3026, full-suite/rubocop fingerprint d9a819876d94. blocked-websocket-refresh
about 14 hours ago
handoff PR #243 is ready for Avi QA. Build board now subscribes to live task broadcasts; /tasks updates building-to-blocked cards without reload. Local review: http://localhost:3024/tasks. Verification recorded in checks_run, including full-suite/rubocop fingerprint ed17e0c615ca. alex alex blocked-websocket-refresh
about 14 hours ago
handoff 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. alex alex release-progress-labels
about 14 hours ago
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. release-task-stack-row
about 14 hours ago
handoff QA-rework addressed (single-aurora scope, per operator). (1) Scope: re-groomed to 'single animated aurora' — the query-param variant switcher was the discovery phase; operator picked aurora live and refined it (full-screen, motion, copy). Test plan updated to match. (2) Untested feature: added integration test 'splash paints the full-device aurora background' asserting body.page-splash + .splash-phonebg + both .splash__aurora--a/--b layers render — dropping 'yield :phone_bg' now fails the suite. (3) Idiom: moved page-critical splash CSS from inline <main> <style> into content_for :head. Copy: operator kept the subhead as-is (their call). Re-certified rolio-rooted (fingerprint 6475ec871c7d, 121 tests + rubocop green). NOTE acknowledged: standalone repo, PR #15 -> main via rolio's own flow, not bin/release. splash-dynamic-bg
about 14 hours ago
handoff Implemented Next Release tracker labels with active/complete wording: Testing/Tested, Assembling/Assembled, Deploying/Live on QA, Testing/Confirmed, Deploying/Deployed. Added active connector pulse and component coverage. Verified with helper/controller/broadcaster tests, full-suite-check, DoR, and local Playwright desktop/mobile smoke at http://localhost:3023/deployments. alex alex release-progress-labels
about 14 hours ago
qa_feedback Both reviewers: the aurora itself is EXCELLENT — CSS-only, GPU-composited (transform-only, no blur/image bytes), prefers-reduced-motion honored, aria-hidden decorative layer, prod-safe (CSP disabled, no dark-mode parity gap), clean reusable content_for :phone_bg/:body_class hooks scoped to splash only. BLOCK is an ACCEPTANCE + TEST-PLAN divergence (Shannon heavy BLOCK; Carl light: code-safe but ACCEPTANCE_MET=no): (1) the task says 'a few switchable variants selectable via query param' and the test plan says '[integration] splash renders EACH background variant', but the PR ships ONE hard-coded aurora — pages#splash is empty, no params read, splash.html.erb hard-codes splash__aurora--a/--b. (2) The new test (test/integration/auth_test.rb:14) asserts only div.splash > div.auth — it never asserts the aurora markup (.splash__aurora--a/--b, .splash-phonebg, the :phone_bg yield) actually renders, so the headline feature is untested (drop 'yield :phone_bg' and the suite stays green). PATH — Avi/PO decides scope FIRST, then implement to match: either (a) build the query-param variant switcher + a per-variant integration test, OR (b) re-groom the task to 'single animated aurora', update the test plan, and add a test asserting the aurora markup renders. Minor (owner copy call): new subhead 'enriched searchable contacts' lost the serial commas; 'warm outreach powered by the real world' is vague. Minor (idiom): page-critical inline CSS lives in <main>; content_for :head is the idiomatic home. NOTE: rolio is a standalone app (base main, NOT in the mcritchie release train) — handle its merge/deploy via rolio's own flow, never bin/release. splash-dynamic-bg
about 15 hours ago
qa_feedback 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. docs-gate-cleanup
about 18 hours ago
handoff 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. release-progress-tracker
about 18 hours ago
qa_feedback Heavy (Shannon, deep UI pass): BLOCK on 2 UI-quality defects + 1 correctness edge (architecture is sound — additive, gated to variant==:current, nil-safe, broadcast-live, no /deployments board regression). (1) LIGHT-MODE PARITY: the active stage label uses fixed text-amber-200 on bg-surface (release_tracker_label_classes) → ~1.3:1 contrast, so the MOST important (active) label is effectively invisible in light mode; complete/pending labels correctly use semantic text-heading/text-muted and the dots theme fine — only the active label breaks the light/dark token contract. FIX: theme-aware amber e.g. text-amber-700 dark:text-amber-200, and add a light-mode pass (recorded checks were 920px/390px only). (2) A11Y: in app/views/tasks/_release_summary.html.erb, <%= 'aria-current="step"' if step active %> is HTML-escaped by ERB → renders aria-current=&quot;step&quot; (literal-quoted) instead of the token. FIX: non-escaping idiom (tag helper, or aria: { current: (:step if active) }). (3) MINOR correctness: release_tracker_done_count uses state=='assembled' || assembled_at.present?; assembled_at is sticky (never cleared by reopen!), so a release reopened by a late merge over-advances to done_count 3 while actually back in assembling. The || branch adds no case state=='assembled' doesn't already cover — drop it. (4) PO-confirm (non-blocking): stages 4-5 (Deploying active / all-complete) are unreachable on the live Next Release card — ship! sets confirmed_at + state=shipped atomically (3→5) and a shipped release moves to Last Release where the tracker isn't rendered, so the live card tops out at 'Confirming' active; confirm intended. Light (Carl): APPROVE — backend/helper correctness sound, fully nil-safe, both tiers green. PR is still a draft; CI green at head. Re-stamp checks after rework. release-progress-tracker
about 23 hours ago
qa_feedback 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. auto-record-deploy-lane-intents
about 24 hours ago
qa_feedback Heavy (Carl): APPROVE — gates/CLI/installer correct; re-ran all tiers green on head 83c8d9d. Light (Alex/docs): BLOCK — acceptance #2 'Active docs use live stage names' not fully met; three active docs still carry legacy stages/dead endpoints, contradicting this PR's own corrections elsewhere. FIX: (1) docs/agents/system/comms.md lines 7-12 still document GET /api/v1/tasks?stage=queued + POST /api/v1/tasks/:slug/{start,complete,fail_task} — none exist (routes.rb:223-230 = index/show/create/update/destroy + member POST :intent only); rewrite to PATCH /api/v1/tasks/:slug + POST .../intent. (2) docs/topics/routes-and-controllers.md:93 still lists POST .../{queue,start,complete,fail_task} — mirror the architecture.md fix. (3) docs/agents/agents/mack/role.md:25 uses legacy 'queued' stage — use 'designed'. (4) config/feature_shapes.yml:8 points at docs/agents/system/devops-cycle.md (§3) which does not exist — should be devops-cycle-design.md (§3). Also: branch tip 83c8d9d is a 'Merge release into docs gate cleanup' commit past the certified checks SHA d13600a — re-run + re-stamp full-suite/rubocop on the rebased tip. NOTE: this PR owns the qa-release SKILL.md operator-gated flip that #235's §1.4 rewrite depends on — co-land the two. docs-gate-cleanup
about 24 hours ago
qa_feedback 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. release-autonomy-cleanup
about 24 hours ago
handoff 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. skip-self-claim-on-create
1 day ago
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. blocked-task-websocket
1 day ago
comment 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. task-card-comment-layout
1 day ago
qa_feedback PR #236 is still marked draft and GitHub CI is still in progress at head 2a9ac9f, so it cannot enter the release merge batch yet. Mark the PR ready for review after CI is green, then resubmit for QA. task-card-comment-layout
1 day ago
qa_feedback PR #232 now conflicts with the updated release branch after the current QA train. Resolve release conflicts in docs/agents/skills/qa-release/SKILL.md and test/commands/install_agent_skills_test.rb, update the branch on top of origin/release, and re-run focused checks plus CI before re-review. GitHub also showed no completed workflow runs at current head 4f0e665. docs-gate-cleanup
1 day ago
qa_feedback PR #235 still contradicts its operator-gated release policy. docs/agents/system/devops-cycle-design.md still describes Build and Deploy QA Release as shipping production without human confirm and still instructs bin/release ship --by conductor --yes; it also claims payment/solana risk tags can force a pre-merge human pass via config, but the added config only gates QA assembly and the conductor surface is read-only. Align docs with the actual policy/config before re-review. release-autonomy-cleanup
1 day ago
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. shared-wrap-skill
1 day ago
qa_feedback PR #232 still leaves live docs/tooling vocabulary inconsistent. Update docs/topics/data-model.md and docs/topics/theme.md to the live stage/readiness names, and replace QA acceptance / production-ready lane wording in docs/agents/modules/devops-task-board.md and docs/agents/modules/parallel-agent-devops.md with Ready To Assemble / Assembled Release. Re-run focused docs/tooling checks and CI before re-review. docs-gate-cleanup
1 day ago
qa_feedback 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. cross-llm-docs-audit
1 day ago
handoff 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. cap-session-concurrency
1 day ago
handoff QA rework pushed to PR #230 in commit 9218233. The audit artifact now includes refreshed read-only verification from bin/install-agent-docs check, Ruby-3.3 bin/agent-worktree doctor, bin/agent-worktree cleanup, and bin/task stale; it distinguishes tracked source docs from generated root docs and installed Claude skills, updates doctor/cleanup counts, and removes the stale dirty-primary residual-risk note. Verification: git diff --check clean; bin/dor-check cross-llm-docs-audit green for non-code chore. cross-llm-docs-audit
1 day ago
handoff PR #232 is ready for Avi review. Changes align active agent docs with designed/building/submitted/reviewed/assembled/shipped, make QA-release stop at the production ship gate, add legacy-stage hints in bin/task, update devops-cycle to live stages, make install-agent-docs worktree-safe for global hooks, remove filter_map from command-line Ruby scripts, and sync generated AGENTS/CLAUDE/global skills locally. Verification: targeted unit/integration tests, bin/install-agent-docs check, bin/agent-worktree doctor no Ruby 2.6 crash, bin/full-suite-check green at f43146115358, bin/dor-check green. docs-gate-cleanup
1 day ago
qa_feedback PR #228 blocks because it prevents new heartbeat lease forging, but it does not remove the user-visible false intent on /deployments. A bin/release follow-up created with --no-claim still gets the conductor session mascot, and the unchanged stage crew UI still renders any designed task with a mascot as a green live crew-live timer. Please add the missing UI/logic fix and regression coverage proving a freshly created designed/unowned task on /deployments does not show the live build ticker, while a real building claim still does. skip-self-claim-on-create
1 day ago
qa_feedback PR #229 does not meet acceptance: bin/release prepare still does not record a visible Steffon QA intent in the standard reviewed -> merged -> prepare flow. Merged members already have an assembled transition, and Task#record_intent_event(to_stage: "assembled") no-ops after that transition exists, so the new prepare step records zero members and /deployments does not show Steffon live. Please fix the standard flow and add a regression test that starts with Release::Conductor.adopt! / bin/release merge semantics, then runs the prepare intent path and proves the deploy board shows Steffon QA live without a manual bin/task intent. auto-record-deploy-lane-intents
1 day ago
qa_feedback Update the audit artifact with current read-only verification before re-review. Re-run bin/install-agent-docs check, Ruby-3.3 bin/agent-worktree doctor, bin/agent-worktree cleanup, and bin/task stale, then revise the findings to distinguish tracked source docs from installed/generated root docs and installed Claude skills. In particular, correct the inverted install-agent-docs results, remove or rewrite stale root-AGENTS.md evidence, update the qa-release drift description, and refresh the worktree-doctor count. cross-llm-docs-audit
1 day ago
qa_feedback SOP §1.4 still uncapped — see PR #224 comment. Add ≤5-concurrent/waves cap to devops-cycle-design.md §1.4 step 2 + the ~L470 parallel-review block so SOP matches the skill; fix essential-0→essential-1 label. index.md cap block is good. cap-session-concurrency
1 day ago
handoff Added durable audit doc at docs/agents/audits/cross-llm-docs-audit-2026-06-26.md. Key findings: ship-gate contradiction, legacy stage-name drift, adapter-policy drift, broken generated-root worktrees link, stale local wrap skill, Ruby bootstrap gap for agent-worktree doctor, and worktree cleanup debt. Verification: git diff --check clean; bin/dor-check cross-llm-docs-audit passed non-code chore gate. PR: https://github.com/amcritchie/mcritchie-studio/pull/230
C
codex
cross-llm-docs-audit
1 day ago
handoff Rework done. (1) Added the ≤5-concurrent / waves-of-≤5 cap to devops-cycle-design.md §1.4 step 2 AND the parallel-review block (step 3), so the canonical SOP now agrees with the skill — no more 'all at once' override. (2) Kept the label essential-0, NOT essential-1: heroku pg:info reports essential-0 live (Connections 7/20); the reviewer's essential-1 was likely from the stale 'essential-1 incident' memory. The 20-connection ceiling is identical on essential-0/1, so the cap stands either way — flagging for the operator if a plan change is actually pending. cap-session-concurrency
1 day ago
qa_feedback Cap is only in qa-release SKILL.md, not the canonical SOP it defers to: SKILL.md says 'the SOP wins' on conflict, yet devops-cycle-design.md §1.4 step 2 (and the ~line 470 parallel-review block) still says 'review all of it at once / Launch the whole batch concurrently' — leaving the heaviest QA-release burst uncapped and overriding this PR's skill edit. Add the ≤5-concurrent / waves-of-≤5 cap to §1.4 step 2 + the parallel-review line so SOP and skill agree. Also correct the board-DB plan label from essential-0 to essential-1 (the 20-conn ceiling is identical, so the cap stands). AGENTS.md/index.md cap block is solid — keep as-is. cap-session-concurrency
1 day ago
handoff 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. prune-cached-commit-observations
1 day ago
qa_feedback Heavy review BLOCK (Carl): the premise 'observations read by nothing' is false. GithubCommitObservation rows ARE read: Admin::AiBuilderMultipleController derives @observed_through_date from GithubCommitObservation.maximum(:committed_at) (lines 12,40) -> drives boundary_week_partial?->representative_metrics_week; pruning nulls it, defeats partial-week protection, surfaces artificially-low builder multiples as 'representative'. Also diagnostics at :142/:148/:166/:172/:175 and backtest_csv_exporter.rb:155 read observations. FIX: re-source observed_through_date + diagnostics from a non-pruned table (GithubBuilderCommitRangeCache / WeeklyMetric) OR make boundary logic tolerate an empty observations table, plus a dashboard test against an empty-observations table. NOTE: this only stops future growth (skip_complete:true skips the 231k backlog) and delete_all needs VACUUM to reclaim disk -> a one-time skip_complete:false sweep + VACUUM is still required to relieve the cap. prune-cached-commit-observations
1 day ago
handoff 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. task-intelligence-dashboard
1 day ago
qa_feedback Jasper BLOCK: biggest_estimate_misses computes actual-dev before the both-present guard → TypeError, /intelligence 500s when a shipped task has actual_size but nil dev_size. Move the guard before the arithmetic (filter_map, skip when dev or actual nil); add a unit test for actual-present/dev-nil (must skip, not raise); then un-draft #214 for re-review. task-intelligence-dashboard
1 day ago
handoff 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. usage-capture-hardening
1 day ago
comment 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. assembled-column-deploy-crew
1 day ago
qa_feedback Merge conflict vs origin/release after release-mascot-and-timer (current.rb/release.rb/conductor.rb/bin/release) + avi-task-sizing (task.rb/bin/task) landed. Rebase onto origin/release, resolve, push, re-submit — approvals stand pending a clean rebase. usage-capture-hardening
1 day ago