# Business Effect Amount Prompt Fix Design ## Problem Business blueprint generation can fail with `Business effect amount is invalid`. The validator correctly limits `INCREASE_NUMBER` and `DECREASE_NUMBER` amounts to numeric literals or `${param.field}` placeholders, but neither the initial AI prompt nor the correction prompt states that contract explicitly. The dynamic prompt example also contains no numeric effect, so the model may return an empty amount or an arithmetic expression such as `stock - 1`. A single correction attempt receives the same incomplete guidance and can fail again. ## Scope Keep the existing safe DSL and validator unchanged. Add one shared prompt constraint that is included in both initial generation and correction prompts: - `INCREASE_NUMBER` and `DECREASE_NUMBER` require `targetTable`, `targetField`, `conditionFields`, and a non-empty `amount`. - `amount`, `minValue`, and `NUMBER_GTE.compareValue` may only be numeric literals or `${param.saved_column}` placeholders. - Arithmetic expressions such as `stock - 1`, SQL fragments, units, and descriptive text are forbidden. - `DECREASE_NUMBER.minValue` may be omitted; the generated runtime already defaults it to zero. Do not infer or default a missing amount because that could silently change business behavior. ## Implementation Extract the numeric-expression guidance into a small prompt helper in `AiGenerateServiceImpl`. Call it from both `buildBusinessBlueprintPrompt` and `buildBusinessBlueprintCorrectionPrompt`. No DTO, persistence, template, or validator changes are required. ## Testing Add regression assertions proving: 1. The initial business-blueprint prompt describes the allowed numeric forms and rejects arithmetic expressions. 2. A correction prompt produced after an invalid amount contains the same numeric constraint and the validation error. 3. Existing valid numeric effects still parse and persist. Run the targeted `AiGenerateServiceImplTest` suite, followed by the generator module tests if the targeted suite passes.