Skip to content

feat(harness): add Lint() diagnostic method (ADR-0045 Phase 3 PR 1) - #23

Closed
guyoron1 wants to merge 11 commits into
mainfrom
worktree-investigate-adr-0045
Closed

feat(harness): add Lint() diagnostic method (ADR-0045 Phase 3 PR 1)#23
guyoron1 wants to merge 11 commits into
mainfrom
worktree-investigate-adr-0045

Conversation

@guyoron1

@guyoron1 guyoron1 commented Jun 16, 2026

Copy link
Copy Markdown
Owner

Part of fullsend-ai#2326

Summary

  • Adds Lint() method to the Harness struct returning []Diagnostic — non-fatal warnings separate from Validate() (which returns hard errors)
  • First lint rule: warns when role field is missing, preparing for Phase 4 which will make it required
  • Adds the Phase 3 implementation plan (docs/plans/adr-0045-forge-portable-harness-phase3.md)

Details

New files:

  • internal/harness/lint.goDiagnosticSeverity type, Diagnostic struct with String(), and Harness.Lint() method
  • internal/harness/lint_test.go — 6 subtests covering role presence/absence, severity formatting, and unknown severity fallback

No existing files modified. Validate() is unchanged. No callers of Lint() are added yet — that is Phase 3 PR 3.

100% code coverage on lint.go. All existing tests pass.

Test plan

  • go test -v -run TestLint ./internal/harness/ — all 6 subtests pass
  • go test -coverprofile=cover.out ./internal/harness/ && go tool cover -func=cover.out | grep lint.go — 100% coverage on lint.go
  • make go-test — all existing tests pass
  • make lint — passes
  • make go-vet — passes

🤖 Generated with Claude Code

…nings (ADR-0045 Phase 3 PR 1)

Add a Lint() method to the Harness struct that returns non-fatal
diagnostics separate from Validate(). The first rule warns when
the role field is missing, preparing for Phase 4 which will make
it required. Also adds the Phase 3 implementation plan.

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>
@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

Go tier 1: 0 files → qf-tests/ADR-0045/go/
Python tier 2: 0 files → qf-tests/ADR-0045/python/
[skip ci]
@fullsend-ai-coder

fullsend-ai-coder Bot commented Jun 16, 2026

Copy link
Copy Markdown

QualityFlow Pipeline Summary

Stage Agent Status
1 STP Builder
2 STP Reviewer
3 STP Refiner
4 STD Builder
5 STD Reviewer
6 STD Refiner
7 Test Generator

Test Output

Language Count Location
Go 1 files qf-tests/GH-23/go/

Issue: GH-23


Generated by QualityFlow

@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

5 similar comments
@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

@guyoron1

Copy link
Copy Markdown
Owner Author

/fs-qf

@guyoron1

Copy link
Copy Markdown
Owner Author

/qf

1 similar comment
@guyoron1

Copy link
Copy Markdown
Owner Author

/qf

QualityFlow and others added 9 commits June 17, 2026 09:23
Verdict: NEEDS_REVISION (7 critical, 5 major, 1 minor)
The STP was generated for the wrong feature and must be regenerated.

Co-Authored-By: QualityFlow <qualityflow[bot]@users.noreply.github.com>
…te fields [skip ci]

Co-Authored-By: QualityFlow <qualityflow[bot]@users.noreply.github.com>
Replaces intermediate pipeline artifacts with organized test files.

Total: 1 test files → qf-tests/GH-23/
Jira: GH-23
[skip ci]
@guyoron1

Copy link
Copy Markdown
Owner Author

Closing — QualityFlow test artifacts were inadvertently pushed to this branch. Will re-test on dedicated PRs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants