diff --git a/docs/roadmap/implementation.md b/docs/roadmap/implementation.md index 0dde514..03ed87b 100644 --- a/docs/roadmap/implementation.md +++ b/docs/roadmap/implementation.md @@ -354,6 +354,12 @@ queries occur during lookup. ## Stage 9 — Use Profile Identity Lookup During Requirement Inspection +**Status: Complete (2026-10-09).** Requirement inspection now uses the +identity-only profile capability when available and keeps the full-profile +fallback for other internal repositories. Exact identity, error classification, +and partial-profile behavior are covered; benchmark comparison with the Stage 7 +baseline is recorded below. + **Outcome:** Requirement inspection no longer deep-copies a target it does not use. @@ -642,6 +648,31 @@ next routing change. No public method or ConfigKit query was added. Focused verification passed: `go test ./internal/configuration ./internal/usecase .`; both benchmark families were rerun without the race detector. +### Requirement-Inspection Identity Comparison + +The before values use the Stage 7 benchmark-only baseline at `04d5d69`; after +values use the same root fixture at `6c5dec7` (`Inspect requirements by +profile identity`). The command and environment are those in the Inspection +Baseline subsection. The small case has two nested provider-option entries and +the larger case has 64; neither benchmark case accesses a provider, artifact, +or schema. Times list all five `ns/op` samples in command order, followed by +median and range. + +| Requirement-inspection case | Stage 7 `ns/op` (median; range) | Stage 7 allocations | Identity lookup `ns/op` (median; range) | Identity lookup allocations | +| --- | --- | --- | --- | --- | +| Small extras | 23022, 25193, 24687, 24974, 23157 (24687; 23022–25193) | 11922; 240 | 2895, 2794, 2807, 3047, 2876 (2876; 2794–3047) | 2264; 26 | +| Nested extras | 635726, 642297, 591992, 605001, 590312 (605001; 590312–642297) | 263370–263372; 6008 | 2917, 2730, 2797, 2804, 2787 (2797; 2730–2917) | 2264; 26 | + +The 64-entry case reduced cumulative allocation by about 261 KB and 5982 +allocations per inspection; its median fell from about 605 microseconds to +2.8 microseconds. The small case fell from about 11.9 KB/240 allocations to +2.3 KB/26 allocations. These fixture-local results support using identity-only +selection for the information inspection consumes; they do not imply provider +latency improvements. The optional-capability and complete-profile fallback +paths preserve exact requested IDs, profile-load error wrapping, and +nil-profile/nil-target validation. Focused verification passed: +`go test ./internal/configuration ./internal/usecase .`. + ### Validation And Compiled-Rendering Baseline The benchmark-only baseline is commit