Repository navigation
feat(session-flow): workflow probes git for missing files before asking - #12630
melodic-automation-lanes[bot] wants to merge 1 commit into
Conversation
Lane-Activity: work-resolve-issue/resolve-issue
|
claude-security-review reviewed Security review: no security issues foundI read every hunk of both changed files. Neither matches a trusted-path glob.
Instruction-surface lens. This change narrows a standing instruction (an ask-first rule). I checked the removed rule against the six Gate 0 classes that PR context. It contains no embedded directives aimed at this lane. critical-findings: 0 |
| - When code, `git status` or history references a file that is not on disk, probe before any | ||
| investigation the task did not ask for. Run | ||
| `git --no-optional-locks status --porcelain -- <path>` and | ||
| `git log --oneline -1 --diff-filter=D -- <path>`, each its own read-only call. A status line | ||
| decides first; the deleting commit counts only when status prints nothing: | ||
| - **Intentional**: a staged removal (`D` in the first status column), or no status line and a | ||
| commit that deleted the path. Skip investigating it and say so, citing the status line or | ||
| commit | ||
| - **Unexplained**: deleted only in the working tree (`D` in the second status column). | ||
| Investigate it like any other file in scope | ||
| - **Not settled**: neither probe names the path, or a probe fails. Ask before investigating |
There was a problem hiding this comment.
No test covers the new rule. Closing issue #12594 sets two criteria:
- "The step runs the git probe before any question."
- "A question remains only for the case the probe cannot settle."
This bullet meets both. But no file under plugins/session-flow/evals/ covers the explore stage's missing-file gate. Searching for deleted, not on disk or diff-filter finds only the unrelated cs-env-worktree-not-pruned and re-first-split-hop cases.
That means a later edit could bring back ask-first wording, or drop one of the three branches, and nothing would fail. One example: an edit that makes a worktree-only delete ( D) count as intentional.
Suggested fix: add an eval case. A scaffold could build a repo with three files and reference all of them from code:
- one staged-deleted (
git rm); - one deleted only from the working tree (
rm); - one deleted by an earlier commit.
The case would then assert that:
- both probes run before any question;
- the staged and committed deletes are skipped, with the status line or commit cited;
- the worktree-only delete is investigated;
- no question is asked.
claude-lane: claude-review
There was a problem hiding this comment.
pr-unblock / address-feedback: UNCERTAIN, left open
Evidence: plugins/session-flow/skills/workflow/context/steps.md:34, plugins/session-flow/evals/workflow-stage-5-settings-screen/case.yaml:8
The finding holds as far as the code shows. The new explore-stage rule (steps.md lines 34-44) sets three outcomes: intentional, unexplained and not settled. No case under plugins/session-flow/evals/ exercises it. No fix was made in this round, though. The suggested eval would need a git repo holding a staged delete, a worktree-only delete and a committed delete. Every eval case in this repository builds its fixture through context.scaffold_script, which points to a scaffold.sh file next to case.yaml, and the review-thread tool's check-paths refuses plugins/session-flow/evals/<case>/scaffold.sh because script files are outside this lane's scope. A case.yaml with no scaffold could not reach the gate. A person should add the case, with case.yaml, scaffold.sh and samples, or file it as a follow-up. The graders should check that both probes run before any question, that the staged and committed deletes are skipped with the evidence cited, that the worktree-only delete is investigated, and that no question is asked.
|
claude-review reviewed Code review: PR #12630,
|
|
The unattended merge path armed native auto-merge at head |
|
pr-unblock / address-feedback finished round 1 of max 4 on a4d9623. |
|
The pr-unblock lane stopped
When a retry on this head can change the outcome, the lane runs one on its own, up to its per-head cap, and edits this comment if it stops again; a run that does not stop clears the status. When no retry can (a review thread the lane does not take or settle, or a failing check after the retries are spent), a person resolves the threads or gets the checks green, then dispatches the workflow below: that run finds the cause gone and clears the status. On a pull request the lanes App opened, the dispatchers start that run once per stop; on any other, a person does. A new commit to the branch starts clean. To run it again on this head now, dispatch the gh workflow run pr-unblock.yml -R melodic-software/claude-code-plugins -f pr-number=12630 -f activity=address-feedback |
|
Superseded by #12680, which carries this branch's head plus the eval scaffold the lane's path scope refused. Closed so the open-PR count reflects live work. |
Closes #12594
Summary
Opened by the work-resolve-issue lane. The run's own summary:
Not verified
Fix
Verification
The runner ran each check from the base copy against a4d9623:
The run reports:
Left out: the items under Not verified.
Related
#12594