feat(harness): require role field in Validate() - #2446
Conversation
PR Summary by QodoRequire harness role during validation and update CLI/harness fixtures Description
Diagram
High-Level Assessment
Files changed (10)
|
Site previewPreview: https://a6d46015-site.fullsend-ai.workers.dev Commit: |
|
🤖 Finished Review · ❌ Failure · Started 9:30 PM UTC · Completed 9:41 PM UTC |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Looks good to me. FindingsLow
Previous runLooks good to me. FindingsLow
Previous run (2)ReviewFindingsMedium
Low
Labels: PR modifies harness validation and lint logic in internal/harness/. Previous run (3)ReviewFindingsMedium
Low
Labels: PR modifies harness validation and lint logic in internal/harness/ Labels: PR modifies harness validation and lint logic in internal/harness/. Previous run (4)ReviewFindingsLow
Info
Labels: PR modifies harness validation and lint logic in internal/harness/ |
c24bc2e to
c13afdb
Compare
|
🤖 Finished Review · ✅ Success · Started 9:46 PM UTC · Completed 10:00 PM UTC |
c13afdb to
8bd73d9
Compare
|
🤖 Finished Review · ✅ Success · Started 10:07 PM UTC · Completed 10:20 PM UTC |
8bd73d9 to
ed8c563
Compare
|
🤖 Finished Review · ❌ Failure · Started 10:25 PM UTC · Completed 10:37 PM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
ADR-0045 Review Squad — 11 findings (medium+ severity). Reviewed for correctness, security, and ADR alignment.
Promote the missing-role check from a Lint() warning to a hard Validate() error. Every scaffold harness already sets role:, so this is non-breaking for existing users while enforcing the contract going forward. - Validate() now returns "role field is required" when Role is empty - Lint() no longer emits the role-is-not-set diagnostic - Role struct tag keeps omitempty (Validate() is the enforcement) - ADR-0045 struct example consistent with code - Phase 4 plan updated to mark PR 1 as in-review - Removed trivially-passing NoLintWarningWithRole tests - All test fixtures updated to include role: where needed Signed-off-by: Greg Allen <gallen@redhat.com> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Greg Allen <gallen@redhat.com>
ed8c563 to
30571fa
Compare
|
🤖 Finished Review · ❌ Failure · Started 3:35 PM UTC · Completed 3:47 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 4:25 PM UTC · Completed 4:34 PM UTC |
Retro: PR #2446 — feat(harness): require role field in Validate()This was a human-authored PR (by ggallen) implementing ADR-0045 Phase 4 PR 1, making the Timeline
ObservationsReview quality gap (noted, not proposed): The agent review found the same issues as the human reviewer but rated them all as low severity, while the human rated them as medium — and 5 led to actual code fixes. The agent's "Looks good to me" verdict was overly optimistic given that actionable improvements were identified. This is partially tracked by #1525 (review agent misses analysis that Review Squad catches). Since the agent found the issues but under-weighted them rather than missing them entirely, severity calibration may warrant separate tracking — but per #2502 guidance, a single-instance observation isn't sufficient evidence for a systemic proposal. Workflow fan-out from review replies: The most concrete improvement opportunity. See proposal below. Proposals filed
|
…view feat(harness): require role field in Validate()
Summary
role:check from aLint()warning to aValidate()hard error, as specified in ADR-0045 Phase 4 PR 1role:, so this is non-breaking for existing usersrole:where neededContext
This is Phase 4, PR 1 of ADR-0045 (Forge-Portable Harness Schema). The
role:field was introduced in Phase 2 as optional with a lint warning. This PR makes it required at validation time, enforcing the contract for all harness configurations going forward.Test plan
go test ./internal/harness/— all harness validation, lint, forge, compose, and integration tests passgo test ./internal/cli/— all run, lock, and lock-all tests passgo test ./internal/...— full internal test suite passes🤖 Generated with Claude Code