Retry structurally invalid planner candidates #246
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/prolog-rlm!246
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "rage/245-planner-structural-retry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #245. Blocks behavioral acceptance #183 / PR #242.
RAGE baseline
Branch starts from exact canonical
main267697bef10a3fffff7c093e1435ece770e7444b. The TDD classifier head37637cab5b2be4f04cf4458744e9037fe915d9a7proved the original defect with green expected-failure assertions; current realization candidate is39d8e1ff030e011e8e0c37619c0c2ba053d83c47.The live #183 gate exposed a generic retry asymmetry:
planner_attempts/1retriesplan_parse/2failures, but a parseable candidate that fails canonical structural validation exited the planner loop and was rejected later byplan_run/5, so no configured repair attempt occurred.TDD-first defect contract
The deterministic classifier established from canonical
mainproved:planner_attempts(2)is configured;phase:validate / kind:invalid_plan / detail:final_must_be_unique_and_last;No intentional-red CI, xfail, skip, swallowed failure, or validation weakening is used.
Analyze / adversarial correction
rlm_plan:plan_validate/4is non-executing but mixes structural validation with capability and plan-budget checks. Retrying every validation error would incorrectly teach the planner to repair around host policy or budget denial.A structural-only duplicate validator/refactor was considered, but the realized candidate found a smaller safe reuse boundary: call canonical
plan_validate/4, then classify its structured result instead of retrying every error.Realization
Current candidate
39d8e1ff...classifies canonical validation outcomes before any candidate plan operation runs:phase:validate, kind:invalid_plan=> bounded planner-repair candidate;plan_run/5still validates again before execution as defense in depth. No plan is auto-edited or partially executed.The deterministic realization matrix covers:
No second validator, authority layer, provider-specific special case, or downstream product logic is introduced.
Adversarial decision
Implementation design: GO. Exact-head verification: HOLD.
The current head itself is mergeable and has no submitted reviews, PR conversation comments, or unresolved review threads, but its repository-native Actions state is not a valid green gate:
startup_failure;startup_failure;failurewhile its only returned job remainsqueuedwith no executed steps;GitHub rejected an attempted exact-run CI retry with HTTP 403 (
This workflow run cannot be retried). This is currently runner/workflow-state evidence, not evidence that the implementation passed. Do not reuse the older green TDD-head results for this changed candidate and do not change code merely to manufacture a new SHA.Keep draft until the exact realization head gets normal completed deterministic, REAL/Paid OpenRouter, Nix, clean-pack, and Tree-sitter evidence. If a real test/provider failure appears, preserve it and repair the root cause.