replan — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited replan (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Bring docs/plan.md back in line with reality without losing history or re-running the whole planning conversation. Real projects diverge from the plan by milestone 2 — this is the sanctioned way to absorb that, instead of hand-editing the plan or starting over.
Boundary with rad-repo-manager: its wrapup makes one-line status touches ("M2 shipped", stamp the date) scoped to a session. replan is the structural event — re-sequencing, re-scoping, pulling the next horizon into detail. Wrapup maintains; replan restructures.
CRITICAL: No implementation code, no source files. The only files written are `docs/plan.md` and (conditionally) `docs/[date]-update-prompt.md`. An existing PRD is never edited — contradictions surface into the update-prompt.
Read in one parallel batch: docs/plan.md, docs/handoff.md, docs/prd.md (if present). Then git, scoped by the plan's **Updated:** date:
git log --oneline --since="<plan Updated date>"
git diff --stat $(git rev-list -1 --before="<plan Updated date>" HEAD)..HEAD
git status --shortIf no plan exists, stop and recommend /rad-planner:plan (fresh) or /rad-planner:rescue (project in an unclear state).
For each milestone and task in the plan, classify from the diff, commit messages, file existence, and the handoff's validation record:
Where the evidence is ambiguous, ask — one batched set of questions (AskUserQuestion), not a drip. Never silently guess a milestone's fate.
Before touching the file:
Plan vs reality:
Shipped: <milestones/tasks, with the evidence in one clause each>
Partially done: <what's missing, in user terms>
Not started: <...>
Looks obsolete: <what and why — needs your confirmation>
Drifted: <anything built that the plan never mentioned>Confirm the obsolete calls and any surprises with the user before restructuring.
On the user's go-ahead, update docs/plan.md:
blocks to a ## Shipped section at the end of the file (create it if absent, newest first). Never delete them. ## Shipped lives outside ## Tasks, so the linter doesn't re-validate history.
Depends on: none — predecessor shipped. Do not leave the old task ID in the field: the linter reads any T<n> in Depends on as a live reference and will flag a phantom dependency.
## Shipped as a note; theremainder becomes a properly specced task (all six fields) with a fresh ID.
move its task blocks to ## Shipped under an "Obsolete —" note. Same dependency rewrite.
from the Release map into detailed milestones and six-field tasks (goal-backward, risk-first, 2–3 tasks per milestone — same discipline as plan), and refresh the Release map: the new work becomes "Now", "Later" themes feed the new "Next". Confirm the promoted scope with the user — this is the moment the V1 outline becomes real commitments.
propose new ones from what was learned, confirm/deny.
**Status:** DRAFT, stamp **Updated:** with today's date.Run the linter (use python3, or python on Windows):
python3 ${plugin_root}/scripts/plan-lint.py docs/plan.md --jsonFix CRITICAL/HIGH. Then a single risk pass — dispatch risk-assessor (references/subagent-prompts/risk-assessment.md, max_iterations: 1), focused on the restructured and newly promoted work; note in the dispatch that ## Shipped is history and out of scope. Fix blocking issues once; surface the rest.
Present per plan's Phase 5 shape (plain summary → release map → decisions → detail). On approval: flip to APPROVED, re-stamp, write the update-prompt if anything durable surfaced (e.g. the PRD now describes behavior that shipped differently).
## Shipped or is struckthrough, always recoverable.
docs/prd.md or other durable docs — surfaces changesvia the update-prompt.
plan (fresh) or rescue (unclear state).references/plan-template.md — structure, the ## Shipped rule, dependency-rewrite rulereferences/subagent-prompts/risk-assessment.md — single-pass dispatchscripts/plan-lint.py — re-run after every restructure~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.