???? ?? ? ??? ???? workbook/deck ?? ??? ??

?? ??
- AgentLoopService? ?? ?? ? ?? ??? ?? ??? ??? ?? ??? ? ??? ??? ??? ??
- XLSX dashboard workbook? PPT deck? ?? ?? ??? ??? ?? dashboard, storyline ?? ????? ? ? ????? ??

?? ????
- AgentQueuedCommandProjector? ??? queued command ??? queued_input_interrupt, queue_notification, queue_resume, queued_prompt ?? ???? thinking/user ???? ???? ?? helper? ??
- AgentLoopService? drain? ? ??? ?? switch? ?? ?? projector ??? ???? ??? ???
- ArtifactQualityReviewService? dashboard sheet? KPI, trend, decision ?? ?? ??? ???? workbook review ??? ??
- ArtifactRepairGuideService? ? dashboard ??? core story ?? ?? ???? ????? ??
- DeckQualityReviewService? storyline? Options, Roadmap, Appendix? ????? ?? ????? ?? ? ?? ?? ??? ????? ??
- DeckRepairGuideService? storyline ?? ??? deck storyline ?? ???? ????? ??
- AgentQueuedCommandProjectorTests, DeckQualityReviewServiceTests, ArtifactQualityReviewServiceTests, ArtifactRepairGuideServiceTests, DeckRepairGuideServiceTests? ??? ??? ??
- README.md? docs/DEVELOPMENT.md? 2026-04-15 09:24 (KST) ?? ??? ?? ??? ??

?? ??
- dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify_loop_doc_finish2\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2\\ : ?? 0 / ?? 0
- dotnet test src/AxCopilot.Tests/AxCopilot.Tests.csproj -c Release -v minimal --filter "AgentQueuedCommandProjectorTests|AgentCommandQueueTests|ArtifactQualityReviewServiceTests|ArtifactRepairGuideServiceTests|DeckQualityReviewServiceTests|DeckRepairGuideServiceTests|PptxSkillGoldenDeckTests|ExcelSkillDashboardSummaryTests" -p:OutputPath=bin\\verify_loop_doc_finish2_tests\\ -p:IntermediateOutputPath=obj\\verify_loop_doc_finish2_tests\\ : ?? 25
This commit is contained in:
2026-04-15 08:58:19 +09:00
parent 918d62b8d5
commit ff29a83039
13 changed files with 281 additions and 84 deletions

View File

@@ -83,4 +83,28 @@ public class DeckQualityReviewServiceTests
review.Issues.Should().Contain(issue => issue.Message.Contains("headline is too long"));
review.Issues.Should().Contain(issue => issue.Message.Contains("comparison slide needs at least two options"));
}
[Fact]
public void ReviewDeck_ShouldFlagMissingStorylineSlides_WhenHintsAreProvided()
{
using var slides = JsonDocument.Parse(
"""
[
{ "layout": "title", "title": "PMO Steering" },
{ "layout": "executive_summary", "title": "Executive Summary", "headline": "Message", "summary_points": ["A", "B"], "recommendation": "Proceed" },
{ "layout": "recommendation", "title": "Recommendation", "recommendation": "Proceed", "summary_points": ["Reason"] }
]
""");
var review = DeckQualityReviewService.ReviewDeck(
"Storyline Deck",
slides.RootElement,
hasTemplate: false,
autoRepairCount: 0,
storyline: ["Executive Summary", "Options", "Roadmap", "Appendix"]);
review.Issues.Should().Contain(issue => issue.Message.Contains("Storyline expects an options or comparison slide", StringComparison.OrdinalIgnoreCase));
review.Issues.Should().Contain(issue => issue.Message.Contains("Storyline expects a roadmap slide", StringComparison.OrdinalIgnoreCase));
review.Issues.Should().Contain(issue => issue.Message.Contains("Storyline expects appendix or evidence support", StringComparison.OrdinalIgnoreCase));
}
}