Repository navigation
[Devbook drift] .devbook/domain/roadmap/features.md#laying-out-imported-plans #877
Description
Scheduled Devbook verify run, 2026-09-30 (devbook:verify-change, kind feature).
| Chapter | Counterpart | Resolved via | Verdict |
|---|---|---|---|
.devbook/domain/roadmap/features.md#laying-out-imported-plans |
ImportPlanItemsCommandHandler, ImportedPlanPlacement, EffortWindow, PlanningPace, RelengthenItemCommand/ProposeRelengthQuery, RoadmapPlanView.AsDrawn, RoadmapBand.razor (UpdateFromTasksAsync), RoadmapItemEditor.razor, RoadmapPlanShelf.razor |
term alias (RoadmapItem, RoadmapTag, PlannedWindow, Roadmap Item gathering) |
conflict |
Evidence: Built and aligned: import by tag; skip and name untagged entries; cycle refuses the whole batch; never deletes; slowest pace across repositories; shelf; steps inside an item. Tests: ImportPlanItemsTests, ImportedPlanPlacementTests, RoadmapTimelineStepsTests, RoadmapBandShelfTests, ImportPlanDialogRoadmapTests.Lay_out_is_offered_off_for_a_task_document_and_counts_its_tags_when_on. Six contradictions with "Placing a plan in time" (ruling 5 as amended 2026-09-27); details below.
Detail
This chapter is active (no status line). Its "Placing a plan in time" sub-feature, amended 2026-09-27, and the code disagree on six points:
| # | Point | Chapter | Code |
|---|---|---|---|
| a | "Update from tasks" offer | "there is no longer an offer to update from its tasks" | The offer is still rendered and wired: RoadmapItemEditor.razor (roadmap-editor-update-from-tasks) → RoadmapBand.UpdateFromTasksAsync. Tests: RoadmapBandUpdateFromTasksTests.An_effort_placed_item_whose_tasks_changed_is_offered_the_update, .Taking_the_update_stores_the_new_end_and_names_what_now_overlaps |
| b | Unstarted plan whose start has passed | "starts today" | Keeps its stored start: EffortWindow.Derive. Tests: RoadmapPlanViewTests.AnEffortPlacedItemNobodyStarted_IsDrawnAtThePaceInUse_FromItsStart_AndCanBeMoved, EffortWindowTests.AnEffortPlacedItem_IsReadAtThePaceInUse_KeepingItsStart |
| c | Waiting work when the plan it waits on moves | It follows the moved plan | Dependents move only inside an import pass (ImportPlanItemsCommandHandler.InDependencyOrder). Relengthening names overlaps but moves nothing: RelengthenItemTests.ADependentThatNowOverlaps_IsNamed_AndNotMoved, PlanDependencyTests.ReschedulingDoesNotDragTheDependentWorkAlong |
| d | Hand-moved or due-dated plan | "keeps its dates" | AsDrawn redraws and locks any in-flight item, whatever placed it (AnItemInFlight_StartsWhenItsWorkBegan_… uses an item with no import placement). Only an unstarted due-dated item keeps its end (ADueDatedItemNobodyStarted_KeepsTheEndThePersonWrote) |
| e | Typed points a week | Each repository band carries its own | The typed pace is global; only the stretch choice is per repository. Tests: PlanningPaceTests.ARepositoryReadsTheOneTypedPaceNotAnOldOneOfItsOwn, .AChoiceForARepositoryGoesToThatRepositoryAndTheTypedPaceIsGlobal, RoadmapBandPaceTests.Mine_typed_in_the_heading_is_stored_once_for_every_band |
| f | A chosen stretch that measured nothing | A line says the typed pace is used instead | Falls to the next stretch that did measure: PlanningPaceTests.AChosenStretchThatMeasuredNothingGivesWayToOneThatDid, RoadmapBandPaceTests.A_stretch_that_measured_nothing_is_not_offered_and_the_next_one_is_used |
Questions for a person:
- Points a–c: should the 2026-09-27 amendment be built (remove the offer, start stale unstarted plans today, cascade waiting work)? Or does the chapter overstate what was decided?
- Points e–f: the code looks newer here; one pass traced it to commit 8247b09 of 2026-09-29.
context.md#story-points-a-weekstill says the typed pace is per repository. Should the chapter and that setting adopt a global typed pace that falls back to the next measured stretch? - Point d: may the in-flight forecast override dates a person set by hand or by a due date?
Action: a person decides which side is the model: the chapter (then the code is a defect, for apply-change) or the code (then the chapter is stale, for capture-specs). The question is under Detail above.
Read-only: nothing was run or written. The chapter carries no draft or proposed status, and no open pull request or change names it.
Activity
JSdotNet commentedon Oct 1, 2026
The issue sweep (2026-10-01) checked this against current
main; the drift is still there. Before a chapter or code change can be written, a person has to answer:Answer here and remove
needs-info; the next sweep classifies the issue again from the answer.JSdotNet commentedon Oct 21, 2026
Closed as superseded, at the owner's request after the issue sweep: the 2026-10-07 amendment to ADR 0013 ruling 5 (7e2cac6, fc5a11a) settled all six points. The Update-from-tasks offer is removed;
RoadmapProjection.cslays effort-sized items out from today or after their predecessors and keeps hand-placed and due-dated windows; the per-repository pace and the fall-through to the next measured stretch matchPlanningPaceTests. One leftover sits outside this chapter:.devbook/domain/roadmap/context.md:118still says the typed pace is used when the chosen period is empty, which contradicts line 161 and the code.