Repository navigation
Spec review before the Spec PR is ready - #164
Merged
Merged
Conversation
Once every Ticket has landed, the Spec run fast-forwards the Spec branch from origin, opens the Spec PR as a draft, and starts a Spec review session in the Spec branch worktree, logged under the Spec's name. Its prompt, shaped like the Continuation prompt, has /thirdshift:code-review review the Spec branch against the Base branch and the Spec, fix what it agrees with, and update the Spec PR through /thirdshift:pr with Unaddressed findings and Closes #<spec>. thirdshift then pushes the Spec branch, checks the Spec PR is open and targets the Base branch, and marks it ready. A failed Spec review ends the Spec run non-zero with the Spec PR left a draft. The prompt is on the Prompts and skills page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Address review findings: a failed Spec review now commits and pushes its work and reports the draft Spec PR, as a failed Run does, with the log only if it was written. The Run and the Spec review share one check that marks the PR ready, and the Spec review prompt names the Spec on its first line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Once the last Ticket lands, a Spec run now runs a Spec review on the Spec branch before it marks the Spec PR ready.
prompt::spec_reviewis shaped like the Continuation prompt and uses the existing Factory skills. It asks for/thirdshift:code-review <base>with the Spec as the spec, fixes via/thirdshift:tddwhere they fit, a push, an update to the Spec PR through/thirdshift:prwith "Unaddressed findings" andCloses #<spec>, and ends with the headless instructions.<owner>-<repo>-issue-<spec>-<timestamp>-spec-review.jsonl.run::mark_pr_ready.site/prompts/index.htmlhas been regenerated.Evidence
After: The new tests in
tests/spec_run.rspass.cargo testpasses in full andcargo clippy --all-targetsis clean.Merge Danger
Door: two-way
This only changes code, with no stored state or migration, so a revert takes it back.
Blast Radius: Spec runs
Only Spec runs change: they now run one more agent session, and the Spec PR is a draft until that session ends. Runs on an issue with no sub-issues behave as before. The only change on their path is that the PR check moved into
run::mark_pr_ready, with the same behaviour.Unaddressed findings
Standards
create_prrenamed tocreate_draft_prrather than given adraftflag. It has one caller, which always wants a draft, so a flag would be Speculative Generality.Spec
mark_pr_readyalso fails if the Spec PR targets a branch other than the Base branch. The issue only asks for "exists and is open". The extra check comes from sharing one check with the Run, and it guards the right thing.sessions_by_issuetest helper relies on the Spec URL being the first Issue URL in the prompt. That holds for every prompt today, and the fakeclaudepicks its scripts by the same rule.Closes #142
🤖 Generated with Claude Code