Repository navigation
Roadmap estimation mechanism: sizing-class cycle-time calibration from acceptance/PR history + dependency critical-path forecasts (typed Forecast, refuse-on-unknown) - #7567
Conversation
|
Addressed both blocking findings from review 46009 in commit 74c7e61: critical-path accumulation now carries std.measure.Millisecond through PathEstimate, comparisons, and forecast projection; the witness also explicitly imports VolumeLarge. The impacted live-refusal, synthetic-forecast, and forecast/observation separation witnesses pass hermetically. |
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Addressed both findings from review 46019 in fcf2f2d. The Forecast/Observation coproduct classifier is deleted; the witness now relies on distinct nominal constructors. Capacity is a live input to a cited RCPSP lower bound: ScheduleForecast exposes TotalWork, CriticalPathMinimum, CapacityConstrainedMinimum = max(CP, ceil(TotalWork/cap)), and ParallelismHeadroom as distinct typed reads. A cap-1 vs cap-3 witness discriminates the result, and the output is named as a lower bound rather than a resource-leveled expected completion date. |
|
Addressed review 46044 in be9fbd4. The model no longer calls summed PR cycle time labor or unconditional resource demand. TotalWork is explicitly capacity-independent cycle-time cost. The RCPSP conversion is conditional on the existing session-grain BeltCapacity semantics: each forecast node continuously occupies one belt slot across its modeled open-to-merge interval, and CapacityConstrainedMinimum now structurally carries that EndToEndBeltSlotOccupancyAssumption. The follow-on trigger replaces the assumption with observed dispatch-to-release occupancy before resource leveling. |
|
Addressed review 46051 in 4f73f34. PR open-to-merge is now retained as one undecomposed baseline interval: review-cycle count and operator merge latency remain named assumptions, while a typed AdjustmentUnavailable identifies the separately unobserved evidence grains and prevents either assumption from changing baseline arithmetic. PRs delivering multiple roadmap nodes now produce deduplicated, typed BundledPullDelivery exclusion receipts instead of one full-duration observation per node. The live calibration keeps the four independent PR samples, exposes cell sample counts n=1, n=1, and n=2, reports two bundled exclusions beside its four located calibration gaps, and all 13 hermetic witnesses pass. — sent from wise-bat-490 |
|
CI run 30688968290 exposed two live-authority witnesses that transcribed the historical gap count of four. Current main changed the active roadmap population, so the mechanism remained honestly refused but those counts rotted. Head 219d886 makes the live controls derive the count from NoCalibrationSample rows, require a nonempty located backlog, retain the two bundled-delivery exclusions and AdjustmentUnavailable checks, and leaves all exact synthetic controls unchanged. The focused 3/3 and full 13/13 hermetic suites pass locally; fresh CI and head reviews are running. — sent from wise-bat-490 |
|
Addressed review 46108 in 946f3c6. The duplicate extdeps.github.pull_timing_history module and ExternalAuthority anchor are deleted. The six one-time normalized timing rows now live in extdeps.github.pulls under its existing GitHub pulls authority as PullTimingObservation, explicitly documented as an immutable arithmetic projection of PullRequest.created_at/merged_at from the same github.Pulls.Get response. Existing PullRequest wire fields remain unchanged; no wider Timestamp migration was introduced. All 13 hermetic forecast witnesses pass on the consolidated 138-module closure. — sent from wise-bat-490 |
|
CI publication-placement failure is fixed at |
# Conflicts: # dag/gunbc/publication_grant.dag
# Conflicts: # dag/gunbc/publication_grant.dag
|
Fixed review 46276 at |
Both inserted rows kept at each site in alphabetical order; #7567 adopted mid-list placement so the conflict shrank to adjacent lines. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Summary
Adds a public typed roadmap forecasting model grounded in cited CPM, PERT three-point, and RCPSP lower-bound vocabulary plus one-time GitHub PR timing observations. Calibration treats PR open-to-merge as one undecomposed observation. Of six cited PR intervals, four uniquely deliver one roadmap node and calibrate three sizing cells with mandatory visible sample counts
n=1,n=1, andn=2; two bundled PRs are excluded through typed, located, countedBundledPullDeliveryreceipts rather than duplicated across their nodes.The forecast exposes four distinct reads: capacity-independent
TotalWork(absolute baseline cycle-time cost, not labor), infinite-capacityCriticalPathMinimum, conditionalCapacityConstrainedMinimum = max(critical path, ceil(total slot-time / belt cap)), andParallelismHeadroom = TotalWork / CriticalPathMinimum.CapacityConstrainedMinimumstructurally carries the end-to-end belt-slot occupancy assumption needed to interpret cycle time as slot-time. These are explicitly lower bounds, not resource-leveled expected dates. Full RCPSP resource leveling and observed dispatch-to-release occupancy are named follow-on triggers.Worker concurrency, review-cycle count, and operator merge latency remain explicit named assumptions. Because the history does not separately observe review duration or operator merge latency, the forecast reports a typed
AdjustmentUnavailablewith both missing evidence grains and does not multiply or add either value into the already inclusive baseline.Forecasts are nominally distinct from observations and cannot promote roadmap state. Unknown inputs fail closed with typed, located refusals. The live authority currently returns one
NoCalibrationSamplerefusal containing the currently uncovered sizing cells, affected node IDs, the two calibration-population exclusions, and the declared assumptions; a complete synthetic graph proves the knownScheduleForecastpath.The current model note homes the earlier explicitly-relative sizing projection and keeps it derived rather than authored into
NodeSizing; the slice-2 pointer below separates that percentile-style view from the durable logarithmic label.Validation
git diff --checkand pre-pushcargo fmt --all --check: pass.Review fixes
Millisecond;VolumeLargeis explicitly imported.TotalWorkno longer claims labor demand, and the capacity conversion is conditional on a structurally carried end-to-endBeltCapacityslot-occupancy assumption.Follow-on
extdeps.github.pullsauthority; the duplicate module and external-authority anchor were deleted without changing thePullRequestwire contract.Publication placement: the three new public mechanism/witness paths are explicitly stamped
Publish Worldingunbc.publication_grant; the existingextdeps.github.pullspath is modified-only and remains covered by the pinned cutover baseline.