Sandcastle loop: open PRs for human review instead of self-merging #7
Labels
No labels
in-review
ready-for-agent
ready-for-human
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
weiwen/evie#7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Problem
The
.sandcastleloop currently self-merges completed branches into the base and closes the originating issues (Phase 3,merge-prompt.md). We want a human gate: the loop should push each completed branch, open a PR viatea, label it for human action, and leave the issue open (linked from the PR) rather than merging and closing autonomously.Behavioral change
ready-for-human.Label lifecycle
ready-for-agentissues.ready-for-agent->in-review(drops out of the planner; "handled, tracked in a PR, no action on the issue itself").ready-for-human(the surface the human reviews/merges).in-reviewis a new label -> add to the canonical triage vocabulary.Per-issue PR step
Folded into Phase 2 (after the reviewer, only when commits > 0); Phase 3 deleted.
sandcastle/issue-{id}exists -> reconcile labels, done.git push https://${FORGEJO_USER}:${FORGEJO_TOKEN}@forge.weiwen.dev/weiwen/evie.git HEAD:<branch>.tea pulls create --login forge --repo weiwen/evie --base main --head <branch> --title ... --description ...-- real summary, body containsCloses #{id}(auto-closes only on human merge).ready-for-human.ready-for-agent->in-review. Strict ordering -- any earlier failure leaves the issueready-for-agentfor retry.Merge cleanliness deferred to squash-merge by the human (no in-agent history reshaping).
File changes
main.mts: delete Phase-3 merge block +{{BRANCHES}}/{{ISSUES}}/completedBranchesplumbing; add apr-openersandbox.runafter the reviewer; update header comment.pr-prompt.md(per-issue:TASK_ID/ISSUE_TITLE/BRANCH) with idempotent guard + strict ordering; deletemerge-prompt.md.plan-prompt.md: filtertea issue listtoready-for-agent(fetch labels).docs/agents/triage-labels.md: addin-reviewrow.docs/agents/issue-tracker.md: add PR-creation conventions; refine the "PRs as a request surface" note to distinguish consuming PRs (no) from the loop creating them (yes).Out of band
Set the Forgejo repo default merge style to "squash".