Pipeline controller: plan 2 (hard +, error +50 %), backlog throttle, 2 trajectory workers, stop rules, summaries every 50; budget reserve

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 13:35:54 +02:00
parent 1c4667a0fc
commit 13360292dd
781 changed files with 50211 additions and 22 deletions

View File

@@ -0,0 +1,52 @@
# 1. Goal
A winter service clears snow from the roads of its clients. The dispatcher calls
the class {{P}}SNOW_FEE for each snow clearing job. The class is in package $TMP
and is active. The code is legacy code: one long method, deep nesting and
hardcoded numbers. Refactor the class in place. The class name, the public types
and the public method stay the same. The behavior stays the same.
# 2. Open questions
None.
# 3. Context
- The class {{P}}SNOW_FEE is in package $TMP. It is active.
- The dispatcher calls the method CALCULATE for each job.
- The dispatcher gives the area of the site in square metres, the priority of the
job and the distance to the site in kilometres.
- The class is legacy code. No user reports an error. This is a refactoring
task: the result of the method must not change.
# 4. Contract
- The class {{P}}SNOW_FEE stays in package $TMP. Do not rename it.
- The class is public and final. It has a public constructor without parameters.
- The public section keeps these types:
- TY_AREA (TYPE i)
- TY_PRIORITY (TYPE c LENGTH 1)
- TY_DISTANCE (TYPE i)
- TY_FEE (TYPE p LENGTH 9 DECIMALS 2)
- The public section keeps one method:
CALCULATE
IMPORTING iv_area TYPE ty_area
iv_priority TYPE ty_priority
iv_distance TYPE ty_distance
RETURNING VALUE(rv_fee) TYPE ty_fee.
- Do not add other public methods. Do not change the signature.
# 5. Business rules
- The behavior of the class must stay exactly the same. The current
implementation is the only source of the rules.
- Read the legacy code before you change it. Keep every threshold, every
surcharge, every minimum and every special case.
- The hidden tests call the public method with the same input as the legacy code
and compare the result.
# 6. Constraints
- Release target: ABAP Platform 2025 (SAP_BASIS 816).
- Coding standards: Clean ABAP. Each method below 40 statements. No deep
nesting. Use constants for the numbers. No comment that restates the code.
- Out of scope: do not change the public interface; do not create other objects.
# 7. Acceptance
- The class is active and has no syntax error.
- The hidden tests pass.
- Write your own ABAP Unit tests for the class.