From 6305aa16c9c38f090a370b96bd2004078f4e5262 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 6 Aug 2026 05:57:31 +0000 Subject: [PATCH] Docs: mark Work Graph MVP complete after Samples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ROADMAP F3 Top-3 is [x] now that DesignPatterns.Samples#25 / PR#28 shipped the request-prep demo; Design Doc and CHANGELOG link the sample and note Phase 2+ remains deferred (closes Spec #308 on merge). Co-authored-by: 落笔wys --- CHANGELOG.md | 1 + docs/ROADMAP.md | 4 ++-- docs/design/WorkGraph.md | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c312d3b..c30ddcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- **F3 Work Graph MVP complete**: ROADMAP Top-3 marked `[x]` after Samples [DesignPatterns.Samples#25](https://github.com/Skymly/DesignPatterns.Samples/issues/25) / [PR#28](https://github.com/Skymly/DesignPatterns.Samples/pull/28); Design Doc references the request-prep sample; Spec [#308](https://github.com/Skymly/DesignPatterns/issues/308) closed (Phase 2+ Dop/trace/DI/unregistered Analyzer deferred). - **Peer-presence Unregistered\* base**: extract `UnregisteredPayloadPeerAnalyzerBase` for DP024 / DP044 / DP072; `UnregisteredHandlerAnalyzer`, `UnregisteredEventHandlerAnalyzer`, and `UnregisteredCommandHandlerAnalyzer` become thin adapters supplying attribute-peer and declared-peer extraction. Strategy/Factory contract-peer base unchanged. Diagnostic behaviour frozen (including no `IStreamCommandHandler` peer-presence). - **DI registration map consumer seam**: `CaptiveDependencyAnalyzer` and `SingletonLifecycleAnalyzer` obtain the map only via `DiRegistrationMap.Build(Compilation)` at compilation analysis time; incremental `DiRegistrationMapBuilder` wiring is a private implementation detail of `Build`. Diagnostic behaviour for DP062/066/068–071 is unchanged. `Build` skips generated syntax trees (`.g.cs` / auto-generated headers) so visibility matches the prior `RegisterSyntaxNodeAction` + `GeneratedCodeAnalysisFlags.None` path. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 983f5e5..2305e3e 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -107,7 +107,7 @@ |------|------|------|------| | 1 | **Command Router** | MVP + 域内增强已落地:1:1 `SendAsync`/`TrySendAsync`/`SendStreamAsync`/`TrySendStreamAsync` + `[RegisterCommandHandler]`(含 `IStreamCommandHandler`)+ DP072–077 + pipeline(ADR-009)+ `AddCommandRouter` / Autofac `RegisterCommandRouter` + [Design Doc](design/CommandRouter.md)(#257–#265、#275–#277、#282–#283)。Samples #266;探索与 MediatR 的差异点见 Design Doc | [~] | | 2 | **Builder**(Step Builder) | **MVP 完成**:`[GenerateBuilder]` / `[BuilderStep]` / `[BuilderAssemble]` + 泛型 type-state `{Holder}Builder`([ADR-010](adr/ADR-010-step-builder-type-state-markers.md))+ DP078–DP086 + [Design Doc](design/StepBuilder.md)(#288–#291)+ Samples [DesignPatterns.Samples#23](https://github.com/Skymly/DesignPatterns.Samples/issues/23) / [PR#24](https://github.com/Skymly/DesignPatterns.Samples/pull/24)。Spec [#287](https://github.com/Skymly/DesignPatterns/issues/287)。Phase 2+:async / DI / step validation | [x] | -| 3 | **Fork–Join Work Graph** | **双路径已落地**:`IWorkStep` / `IWorkGraph` / `WorkGraphBuilder` + `[WorkGraph]` / `[WorkStep]` + `WorkGraphGenerator`(`{Holder}WorkStepKeys` + `Create`)+ DP087–DP092 + [Design Doc](design/WorkGraph.md)(#309–#312)。Spec [#308](https://github.com/Skymly/DesignPatterns/issues/308)。Samples(sibling)与 Phase 2+(Dop / 追踪 / DI / 未注册 Analyzer)待办 | [~] | +| 3 | **Fork–Join Work Graph** | **MVP 完成**:`IWorkStep` / `IWorkGraph` / `WorkGraphBuilder` + `[WorkGraph]` / `[WorkStep]` + `WorkGraphGenerator`(`{Holder}WorkStepKeys` + `Create`)+ DP087–DP092 + [Design Doc](design/WorkGraph.md)(#309–#312)+ Samples [DesignPatterns.Samples#25](https://github.com/Skymly/DesignPatterns.Samples/issues/25) / [PR#28](https://github.com/Skymly/DesignPatterns.Samples/pull/28)。Spec [#308](https://github.com/Skymly/DesignPatterns/issues/308)。Phase 2+:Dop / 追踪 / DI / 未注册 Analyzer | [x] | #### 观望(已过硬门槛,未进 Top-3) @@ -245,4 +245,4 @@ State 转换表 v1 已于 0.1.0-preview4 发布;v2(guard 委托、DI 集成 - F5+ Composite 树 schema 校验:`[CompositeSchema(MaxDepth, MaxNodes)]` 契约级约束 + `[CompositePart(AllowedChildTypes)]` 节点级约束 + DP063(max depth exceeded Warning)/ DP064(child type not allowed Error)/ DP065(node count exceeded Warning)。见 [ADR-007](adr/ADR-007-composite-tree-schema-validation.md)。 - 文档体系精简:移除 RFC / Spec / Plan / Review 仓内类型;Spec 合入 Design Doc;任务与审查改用 GitHub Issue / PR。见 [DOCUMENTATION.md](DOCUMENTATION.md)。 - F3 Step Builder MVP:`[GenerateBuilder]` / `[BuilderStep]` / `[BuilderAssemble]` + type-state `{Holder}Builder`(ADR-010)+ DP078–DP086 + Design Doc(#288–#291)+ Samples [DesignPatterns.Samples#23](https://github.com/Skymly/DesignPatterns.Samples/issues/23);Spec [#287](https://github.com/Skymly/DesignPatterns/issues/287)。 -- F3 Fork–Join Work Graph 双路径:Runtime builder + 波次 fail-fast(#309)+ DP087–DP092(#310)+ Keys/`Create` 生成器(#311)+ Design Doc(#312);Spec [#308](https://github.com/Skymly/DesignPatterns/issues/308)。 +- F3 Fork–Join Work Graph MVP:Runtime builder + 波次 fail-fast(#309)+ DP087–DP092(#310)+ Keys/`Create` 生成器(#311)+ Design Doc(#312)+ Samples [DesignPatterns.Samples#25](https://github.com/Skymly/DesignPatterns.Samples/issues/25) / [PR#28](https://github.com/Skymly/DesignPatterns.Samples/pull/28);Spec [#308](https://github.com/Skymly/DesignPatterns/issues/308)。 diff --git a/docs/design/WorkGraph.md b/docs/design/WorkGraph.md index 8c2b2d3..860c983 100644 --- a/docs/design/WorkGraph.md +++ b/docs/design/WorkGraph.md @@ -238,12 +238,12 @@ await generated.RunAsync(new PrepContext(), CancellationToken.None); - **无** `TContext` isolate/merge 框架 - **无** 类型化 payload 边 -Samples(request-prep)落在 sibling [DesignPatterns.Samples](https://github.com/Skymly/DesignPatterns.Samples),不在本仓 Docs PR。 +Request-prep 示例已落地于 sibling [DesignPatterns.Samples#25](https://github.com/Skymly/DesignPatterns.Samples/issues/25) / [PR#28](https://github.com/Skymly/DesignPatterns.Samples/pull/28)。 ## 参考 - Spec:[Fork–Join Work Graph (#308)](https://github.com/Skymly/DesignPatterns/issues/308) -- 落地:#309 Runtime → #310 Diagnostics(DP087–DP092)→ #311 SourceGenerators → #312 Docs → Samples(sibling) +- 落地:#309 Runtime → #310 Diagnostics(DP087–DP092)→ #311 SourceGenerators → #312 Docs → Samples [DesignPatterns.Samples#25](https://github.com/Skymly/DesignPatterns.Samples/issues/25) - Wayfinder:[#300](https://github.com/Skymly/DesignPatterns/issues/300) / 准入地图 [#244](https://github.com/Skymly/DesignPatterns/issues/244) - [ADR-006](../adr/ADR-006-composite-parallel-traversal.md) — Composite 同层并行(对照,非依赖) - [docs/ROADMAP.md](../ROADMAP.md) F3 Top-3