Agents Builders

dor-check: gate code-diff chores

Archived
task-e14bc7627b69

bin/dor-check returns DoR 'n/a' for kind:chore, skipping the shape-derived test-tier gate entirely. A chore with a real code diff (e.g. task-fbca827303be / PR #86) passes DoR with zero test enforcement — so the 'no size exemption' rule in CLAUDE.md/AGENTS.md ('it is just a small change is exactly when this gets skipped') isn't actually enforced for chores. Proposed rule: if the task branch produces a non-empty diff under code paths (app/, lib/, bin/, config/), apply the same shape-selected tier gate as feature/bug regardless of kind; keep diff-less and doc-only chores exempt. Surfaced by Avi during PR #86 review.

Created

Jun 22, 04:56

Started

Jun 22, 06:33

Completed

Jun 22, 14:53

DevOps handoff

Type

Chore

Shape

backend

Worktree Slug

Repositories

mcritchie-studio

Release Train

Branch

feat/dor-check-chore-gate

Local URL

QA URL

Production URL

tooling

Acceptance Criteria

  • Chore with a code diff and no checks_run is refused
  • Doc-only or diff-less chore still passes DoR
  • Unit tests cover both branches in test/lib

Expected Test Plan

  • unit

Checks Run

  • [unit] ruby -Itest test/lib/dor_check_test.rb — code-path classification + both gate branches (chore+code-diff gated vs doc-only/diff-less exempt); 17 runs green
  • [integration] bin/rails test test/lib/dor_check_test.rb — full dor-check CLI end-to-end via --file + DOR_CHECK_CHANGED_FILES injection (verdict text + --json + exit codes); part of suite 919/0/0

Stage Timeline

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

No stage changes recorded yet.

Conversation

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

Comment 5 days ago

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.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual