Skip to content

Close yolo, contract, and helper gaps from #78 - #80

Merged
DocksDocks merged 16 commits into
mainfrom
79-close-yolo-contract-and-helper-gaps-from-78
Oct 19, 2026
Merged

DocksDocks merged 16 commits into
mainfrom
79-close-yolo-contract-and-helper-gaps-from-78

Conversation

@DocksDocks

Copy link
Copy Markdown
Owner

What and why

Two yolo runs in another repository found 13 gaps in the plan-lifecycle plugin (#78). This pull request closes them, and it makes the yolo skill apply code-clarity to every change of code, tests, comments, or error messages.

Helper (plan.mjs):

  • status planned and status ongoing refuse while Research is empty or only _Not researched yet._ (gap 11). The check compares the whole section, so Research prose that quotes the placeholder does not trigger it. The old substring test printed a false Research is not filled after drafting. advice for plan Close yolo, contract, and helper gaps from #78 #79 itself.
  • edit refreshes the .origin sidecar only after the remote write succeeds, so a retry of the same file after a failed gh issue edit works (gap 12).
  • New advice for two steps that share a Files path with no Depends chain (gap 13), and for an edit that changes planned work after a trusted plan pass (gap 2).

Text:

  • The contract states the Research gate, the Files grammar and overlap rule, the required-check Acceptance rule, the re-review rule, the sidecar order, and a retry procedure for failed GitHub calls.
  • Both plan-reviewer surfaces report a goal_fit finding when Acceptance lacks a check that the repository instructions require. The review blocks stay identical.
  • The yolo skill gains rules for existing plans and incomplete requests, red baselines, commits, baseline failures, the self-review record, post-merge cleanup, and a merge answer that also starts a new run. The run summary moves to yolo/references/run-summary.md and gains a reviewed head and a Limits and failures section.

A trial in a disposable private repository ran three yolo runs with the branch files. It found five more gaps (14-18), and steps 12-16 fix them: the red baseline now agrees with tdd-workflow, the pull request body gets its final values after checks, the run summary is the whole description, temporary check worktrees have a path, and an adopted ongoing plan meets the Draft and Research Done when. The evidence table is in the Verification Results of #79.

Review order

  1. plugins/plan-lifecycle/skills/productivity/plan-manager/scripts/plan.mjs and scripts/tests/plan-cli.mjs (commits 1-4 and the format commit).
  2. plugins/plan-lifecycle/skills/productivity/plan-manager/references/plan-contract.md.
  3. plugins/plan-lifecycle/agents/plan-reviewer.md and plugins/plan-lifecycle/skills/productivity/plan-reviewer/SKILL.md.
  4. plugins/plan-lifecycle/skills/productivity/yolo/SKILL.md and yolo/references/run-summary.md.

Verification

  • node scripts/tests/plan-cli.mjs: PASSED; the new cases are research gate, edit retry, shared files advice, and re-review advice. Each new case failed on an assertion before its fix.
  • node scripts/ci.mjs --plugin plan-lifecycle passed on each commit in a clean worktree. Full node scripts/ci.mjs passed on the reviewed head.
  • On real GitHub, the branch helper refused status planned with placeholder Research and printed the shared-files and re-review advice.
  • Plan review passed in rounds 1 and 2. Code review passed in round 1 with one LOW finding: the contract advice list does not name an empty Research section, although the helper advises for it. The finding is in the review comment on Close yolo, contract, and helper gaps from #78 #79.
  • Plugin versions are unchanged. scripts/release.mjs bumps them after the merge.

Closes #79
Closes #78

A drafted plan could move to planned or ongoing while its Research
section still held the placeholder. The helper only printed advice
after the write. Now status planned and status ongoing refuse until the
trimmed Research section is filled. The check compares the whole
section, so Research prose that quotes the placeholder is not unfilled.

Refs #78
…ceeds

edit refreshed the .origin sidecar before it wrote the issue body. When
gh issue edit failed, the sidecar already named a body that GitHub did
not have, so a retry with the same file refused as a stale export. Now
edit refreshes the sidecar only after the remote write succeeds.

Refs #78
…s chain

Two steps that list the same file and have no Depends order can run in
parallel and collide. The helper did not read the Files cell. Now it
prints advice for each pair of steps that share an exact path, after it
trims each entry and removes code marks, unless a Depends chain links
the two steps. Advice, not a refusal: Files cells can hold folders and
globs, which exact comparison cannot judge.

Refs #78
A plan-review pass covers the body that the reviewer read. An edit after
the pass could change Goal, Research, Steps, Acceptance, or Do not touch,
and show still reported plan=pass. Now edit prints advice that names the
changed sections when a trusted plan pass exists. Edits to Verification
Results or Open questions print no such advice.

Refs #78
…review rules

The contract did not say when a passed plan needs a new review, how to
recover from a failed GitHub call, what the Files cell holds, or that
Acceptance must cover the checks that repository instructions require.
It now states these rules, the Research gate on planned and ongoing, the
new advice, and a pointer to the yolo rule for existing plans.

Refs #78
A plan could pass review without the check that the repository
instructions require for the files it changes. Both plan-reviewer
surfaces now report a goal_fit finding for that gap. The review block
stays the same in both files.

Refs #78
Two yolo runs found gaps in the yolo skill: it always drafted a new
plan, had no rule for incomplete requests, required checks, baseline
failures, red baselines, self-review records, or commit timing, did not
clean up a user checkout after the merge, and its run summary hid
failures. The skill now has rules for each gap. It applies code-clarity
to every change of code, tests, comments, or error messages. The run
summary template moves to references/run-summary.md.

Refs #78
The full gate formats scripts/tests/plan-cli.mjs; the plugin gate does
not check that file.

Refs #78
The yolo Red baseline rule required an assertion failure, so a trial
run added an empty stub to avoid an import failure. tdd-workflow names
that stub as the wrong fix: a missing symbol is the failing baseline.
The rule now accepts a missing export or symbol that the step adds, and
says how to record it.

Refs #78
A fresh reader could not tell whether the missing-export record replaces
the test counts or follows them. It replaces the counts for that file.

Refs #78
Landing wrote the run summary before the pull request and its checks
existed, so trial runs had to invent values and an update step. Landing
now writes pending values first, updates the body with gh pr edit after
the checks, and updates an open pull request instead of creating one.

Refs #78
Engineering standards gave the pull request description to
commit-discipline, and Landing gave it to the run summary. A trial run
had to choose. The run summary is now the whole description;
commit-discipline owns the commits.

Refs #78
The Commits and baseline-check rules asked for a temporary worktree with
no path, and a trial run put one inside the review scratch directory.
The rules now use the agent-worktrees root that the contract already
uses for yolo worktrees, outside /tmp and .git.

Refs #78
The Research Done when needed status planned to succeed, but the helper
refuses planned once work has started. A trial run adopted an ongoing
plan and could not meet it. The Done when now also accepts an adopted
plan that already reads planned or ongoing.

Refs #78
A fresh reader found that an adopted ongoing plan never meets the Draft
Done when, so "continue at the first phase whose Done when is not met"
pointed at Draft. The Done when now names the adopted case.

Refs #78
A fresh reader noted that the baseline check could run on a stale
origin/<default>, because the only fetch is in Landing.

Refs #78
@DocksDocks DocksDocks linked an issue Oct 19, 2026 that may be closed by this pull request
@DocksDocks
DocksDocks merged commit 621ee60 into main Oct 19, 2026
5 checks passed
DocksDocks added a commit that referenced this pull request Oct 19, 2026
…after-80

Close three text gaps left after #80
@DocksDocks
DocksDocks deleted the 79-close-yolo-contract-and-helper-gaps-from-78 branch October 23, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Close yolo, contract, and helper gaps from #78 Close yolo skill gaps found in two plan-lifecycle 0.13.1 runs

1 participant