How this tool computes its result
Takes a free-text objective, audience description, and a newline-separated list of scoring criteria. Weight is not user-configurable — it's derived purely from list position: baseWeight = max(1, criteriaCount − index + 1), so the first criterion typed always gets the highest raw weight and the last gets the lowest, in a fixed descending-by-order scheme. Those raw weights are then normalized into percentages that sum to 100 (value / total × 100). For each criterion, three fixed-template scoring-guide sentences are auto-generated at levels 5, 3, and 1 by lowercasing the criterion name and slotting it into "Excellent {x}...", "Average {x}...", "Weak {x}..." templates.
