Plan lifecycle: closed-plan step repair and edit regression guard - #41
Merged
DocksDocks merged 2 commits intoAug 25, 2026
Conversation
…sion guard A finished plan with a non-terminal step deadlocked: step required ongoing while archive required every step terminal, and reopening destroyed the closure proof. step now accepts terminal targets on a finished plan. edit now refuses a body that regresses a terminal step status, closing the stale-draft revert race the provenance digest cannot see.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #40
Implements the reviewed plan #40:
plan.mjs stepaccepts afinishedplan when the target status is terminal (done/skipped), repairing a closed-but-unarchived record without reopening; every other case still requiresongoing. Reopening stays prohibited becausearchivetrusts only the latest closure event.plan.mjs editrefuses a body that moves a matching step id from a terminal remote status to a non-terminal one, closing the stale-draft revert race the export provenance digest cannot see (observed live in plan Skill kit refresh: fix audit findings, add routing, remove okf-bundle #35 and Reword security/refactor plan-record label blocks to creation state #39 runs).Reviews: plan review
pass; code review round 1pass(no findings).Verification:
node scripts/tests/plan-cli.mjs,plan-skill-phases.mjs, plugin selftest, andnode scripts/ci.mjs --plugin plan-lifecycleall exit 0.