1. Design the rule document
Describe your rules as data. A decision policy and a score model:namespace
namespace
2. Read them in the workflow
3. Apply them in a function
- Validation: a malformed rule document stops the run with a message naming the field, instead of quietly changing outcomes.
- Safe default: a finding the policy does not list is referred, so a new check can never approve anything on its own.
- Ignored, not lost: findings set to IGNORE are kept, in
ignored, for the record. - Self-explaining results:
partsand a copy of themodelgo into every result, so a score can be explained with the rules that produced it, even after the rules change.
4. Give the rules a screen
In your application, an admin page that:- reads both documents (
GET /floware/v1/configurations/reviews/<key>); - shows them as forms: a segmented Decline / Refer / Ignore control per finding, number inputs for thresholds and weights, a table for grades;
- validates before saving: weights add up, grades start at 0, thresholds in range;
- saves with
PUT, and shows “applies from the next run”.
PUT replaces the whole document and keeps no history, keep a version number inside the document, and log each save in your own table if you need a change history.

