feat: implement single review round workflow with bounded author revisions and update tests - #115
Merged
Merged
Conversation
…sions and update tests
Contributor
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
A critical compile-blocking issue and three unresolved moderate test gaps remain.
Review effort: Lite
Findings: 1
Open (3)
What changed in this PR
Implements a bounded single-review workflow with at most one author revision before final output.
Changes:
- Adds conditional routing and terminal draft outputs.
- Updates workflow executors, state semantics, and feature documentation.
- Adds approval, rejection, and fallback regression tests.
The review identified one critical compile issue and three moderate test-coverage gaps that remain unresolved.
| File | Summary |
|---|---|
Workflows/BlogExecutors.cs |
Emits capped revised drafts. |
specs/013-single-review-round/tasks.md |
Tracks implementation tasks. |
specs/013-single-review-round/spec.md |
Defines feature requirements. |
specs/013-single-review-round/research.md |
Records design decisions. |
specs/013-single-review-round/quickstart.md |
Defines validation scenarios. |
specs/013-single-review-round/plan.md |
Documents the implementation plan. |
specs/013-single-review-round/data-model.md |
Documents state transitions. |
specs/013-single-review-round/checklists/requirements.md |
Records specification checks. |
ResearchState.cs |
Clarifies revision-cap semantics. |
BlogWriter.Tests/BlogWorkflowTests.cs |
Adds workflow regression scenarios. |
BlogWorkflow.cs |
Adds bounded routing and terminal output sources. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| // Review only the initial author pass. A rejected review can route back | ||
| // to the author once, but the capped revision is terminal output. | ||
| .AddEdge<ResearchState>(authorExecutor, reviewerExecutor, | ||
| condition: s => s?.RevisionNumber < ResearchState.MaxRevisions) |
Comment on lines
+44
to
+45
| var author = new TestAuthor("draft-1", "draft-2"); | ||
| var reviewer = new TestReviewer("Please revise the introduction."); |
Comment on lines
+78
to
+83
| var service = new BlogWriterSessionService(workflow, new RecordingStore()); | ||
| BlogSession session = await service.StartAsync("topic"); | ||
|
|
||
| Assert.Equal("draft-1", session.State.Draft); | ||
| Assert.Equal(2, author.Calls); | ||
| Assert.Equal(1, reviewer.Calls); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


No description provided.