From 600ea6770ddffde461b894c29477486d0e6c1e05 Mon Sep 17 00:00:00 2001 From: Frank Tovar Date: Sun, 5 Apr 2026 02:05:33 +0200 Subject: [PATCH] New tasks for roll retries. --- TASKS.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/TASKS.md b/TASKS.md index e69f683..20b5bb9 100644 --- a/TASKS.md +++ b/TASKS.md @@ -8,7 +8,7 @@ This ExecPlan is a living document. The sections `Progress`, `Surprises & Discov After this change, a Rolemaster skill can opt into an automatic retry when its first result lands in specific “skipp” bands. The player will be able to toggle that behavior while creating or editing a Rolemaster open-ended skill, roll the skill, and then see the retry clearly in the campaign log card through a special badge and readable summary text. The detailed roll view will still show enough information to explain why the retry happened and what final result was recorded. -For this feature, a “skipp” means a Rolemaster open-ended percentile skill roll whose first fully evaluated result, including the skill expression modifier and any low-end subtraction chain, lands in one of the retry windows before any retry bonus is applied. This plan preserves the user-provided thresholds exactly: results `77`, `78`, and `79` grant a retry with `+5`; results `81` through `110` grant a retry with `+10`; result `80` does not retry. +For this feature, a “skipp” means a Rolemaster open-ended percentile skill roll whose first fully evaluated result, including the skill expression modifier and any low-end subtraction chain, lands in one of the retry windows before any retry bonus is applied. This plan preserves the user-provided thresholds exactly: results `77` through `90` grant a retry with `+5`; results `91` through `110` grant a retry with `+10`. ## Progress @@ -37,7 +37,7 @@ For this feature, a “skipp” means a Rolemaster open-ended percentile skill r Rationale: The request explicitly asks for “a toggle for a rolemaster skill.” A skill-group default would widen scope into template inheritance and create unclear behavior for ad hoc custom rolls. Date/Author: 2026-04-04 / Codex -- Decision: The retry windows are interpreted literally from the request: `77-79 => +5`, `81-110 => +10`, `80 => no retry`. +- Decision: The retry windows are interpreted literally from the request: `77-90 => +5`, `91-110 => +10`. A result of `111` counts as success and doesn't need to be retried. Rationale: The user gave concrete inclusive and exclusive bounds. Preserving those exact bounds avoids silently changing game rules inside the plan. Date/Author: 2026-04-04 / Codex @@ -119,7 +119,7 @@ Run targeted Rolemaster service and API tests from `D:\Code\RpgRoller`: dotnet test RpgRoller.Tests/RpgRoller.Tests.csproj --filter "FullyQualifiedName~ServiceRolemasterRollTests|FullyQualifiedName~RolemasterApiTests|FullyQualifiedName~PayloadBudgetTests" -Acceptance is that there are explicit tests for a `+5` retry case, a `+10` retry case, a non-retry case at `80`, and a disabled-skill case that proves the old result path remains unchanged. +Acceptance is that there are explicit tests for a `+5` retry case, a `+10` retry case, and a disabled-skill case that proves the old result path remains unchanged. ### Milestone 3: Surface the retry in the workspace and lock the behavior @@ -164,7 +164,7 @@ Expected final command transcript: Validation is complete only when all of the following are true. -The backend proves rule correctness. There must be a unit test where the first attempt result is `78` and the stored final result comes from a retry with `+5`. There must be another where the first attempt result is `81` or another value inside the second band and the stored final result comes from a retry with `+10`. There must be a test where the first attempt result is exactly `80` and no retry occurs. There must be a test where the skill toggle is disabled and an otherwise eligible first result still does not retry. +The backend proves rule correctness. There must be a unit test where the first attempt result is `78` and the stored final result comes from a retry with `+5`. There must be another where the first attempt result is `96` or another value inside the second band and the stored final result comes from a retry with `+10`. There must be a test where the skill toggle is disabled and an otherwise eligible first result still does not retry. The persistence layer proves round-trip safety. A test must create a skill with the toggle enabled, persist the database, reload state, and confirm the skill still exposes `RolemasterRetryOnSkipp = true`.