Align ACMS pipeline protocol signatures and allocation formula with the
specification (docs/specification.md §42630-42937):
- BudgetAllocator.allocate() now accepts optional request: ContextRequest
parameter per BudgetAllocatorProtocol spec (§44754-44766), enabling
future request-aware allocation strategies.
- Allocation formula changed from proportional to confidence alone to
proportional to confidence * quality_score per spec §45003. Both
DefaultBudgetAllocator and ProportionalBudgetAllocator use the new
weighted formula. With default quality_score=1.0, behavior is backward-
compatible.
- DetailDepthResolver.resolve() now accepts budget: int parameter per
DetailDepthResolverProtocol spec (§44803-44814), enabling future
budget-aware depth resolution decisions.
- Default packer changed from no-op DefaultBudgetPacker to production
GreedyKnapsackPacker per spec §45013. ACMSPipeline uses lazy import
to avoid circular dependency; ContextAssemblyPipeline imports directly.
- Added quality_score field to service-layer StrategyCapabilities
(already present in domain model).
- Updated 5 feature scenarios and 1 Robot helper where GreedyKnapsackPacker
relevance-based ordering changed fragment output order vs. the old no-op
packer. Fixed by adjusting test fragment relevance scores to preserve
expected ordering.
ISSUES CLOSED: #924