Skip to content

chore: saved workflows find the pull request themselves and stop closing umbrella issues - #313

Merged
nofuturekid merged 2 commits into
mainfrom
chore/saved-workflow-fixes
Nov 13, 2026
Merged

nofuturekid merged 2 commits into
mainfrom
chore/saved-workflow-fixes

Conversation

@nofuturekid

@nofuturekid nofuturekid commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Refs #294

What changed

  • nova-pr.js: after the builder returns, a light read-only agent runs gh pr list --head <branch> --state open and the script uses that number as the source of truth. A builder that omits pr_number no longer drops the task (it happened with ci: release only pull-request-green commits, changelog section required, publish draft-first #309 and feat: offer updates as a browser download instead of installing them inside the app #312). A differing builder number, several open PRs, a failed lookup or no open PR is refused with a reason. pr_number is now required in the builder schema.
  • nova-pr.js: new optional task field closes (boolean, default true), validated and documented in the header and whenToUse. With closes: false the builder prompt asks for Refs #<n> and forbids closing keywords; a PR body that closes the issue anyway makes the task not ready. There was no body gate before, so a small one was added (the facts agent also returns the body).
  • nova-pr.js: the title error names the task slug and the rejected character.
  • nova-merge-train.js cleanup: a remote branch already deleted by GitHub is the expected outcome (handled structurally by the cleanup plan, no text matching) and no longer produces a problem or partial. The rule for a branch that still exists is unchanged (tip is the pushed head or already on origin/main).
  • .claude/agents/nova-builder.md: rule 6 writes Refs #<n> instead of Closes #<n> when the task says the issue stays open.
  • Both headers state that scratch output goes under ~/.cache or the scratch argument, not /tmp.

Left out

Checked

  • node --check on wrapped copies of both scripts; prettier check.
  • Mock harness (20 cases): builder without pr_number proceeds to review, number mismatch refused, no open PR refused, closes: false prompt has Refs and no closing keyword, already deleted remote branch gives done without problems, differing remote tip kept and reported.
  • No Gradle, docker or local-ci (docs-only change).

🤖 Generated with Claude Code

…ing umbrella issues

nova-pr: after the builder returns, a light read-only agent lists the open
pull requests of the task branch and that number is the source of truth. A
builder without pr_number no longer drops the task; a differing number or no
open pull request is refused with a clear reason. pr_number is required in the
builder schema. New task field closes (default true): with false the builder
writes "Refs #<n>", and a PR body that closes the issue makes the task not
ready. Title errors name the slug and the rejected character.

nova-merge-train cleanup: a remote branch that GitHub already deleted after the
push is the expected outcome, not a problem.

Both headers say scratch output goes under ~/.cache or the scratch argument,
not /tmp.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- nova-merge-train cleanup: drop the free-text goneOnly backstop; the
  structural plan already treats a gone remote branch as expected, so kept
  worktrees and refused deletions are reported again.
- nova-builder role file: Refs instead of Closes when the task says the issue
  stays open.
- Headers: ~/.cache instead of a local absolute path (R-PUBLIC).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@nofuturekid
nofuturekid merged commit b779920 into main Nov 13, 2026
8 checks passed
@nofuturekid
nofuturekid deleted the chore/saved-workflow-fixes branch November 13, 2026 13:19
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.

1 participant