fix(status): show the commit as the first step of a push - #288
Merged
Conversation
The results file recorded the commands an agent ran but not what it said at the end. A trial that stops early leaves no record of why. Each trial now records the agent's final message as `text`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
`prismic status` presented the commit and `--force` as two peer options and gave no reason for the commit. An agent read the commit as git hygiene, and its own rules say a hygiene commit is the user's decision. It stopped and asked instead of publishing the type. `status` now says why the commit is needed and lists it as step 1 under "Next:", ahead of the push. It no longer offers `--force`. The lines under "Next:" are pasteable shell. `push` and `pull` say the same reason in their help text and in their uncommitted-files errors. `--force` stays in those errors as an escape hatch. The git check on `push` and `pull` does not change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
The `pull --help` text called `--force` "Not recommended". In a project that is not a git repository, `pull --force` is the only correct way to adopt remote models. An agent read the label and stopped to ask instead of pulling. Both `--force` descriptions now state what the flag skips and nothing more. `status` prints its reason inside the branch that builds the commit step. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
The note repeated a sentence that `status` and the uncommitted-files error already say. No eval trial needed it, and it was the only new text read by an agent that stopped in a project without git. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
This comment was marked as outdated.
This comment was marked as outdated.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
Brings in the serialized test matrix from #289. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
angeloashmore
marked this pull request as ready for review
September 5, 2026 00:27
lihbr
approved these changes
Sep 5, 2026
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.
Resolves: #277
Resolves: #276
Description
prismic statusreports model files with uncommitted git changes. It offers the commit andprismic push --forceas equal options, with no reason for either.An agent told to publish a finished
articletype read that, gave the choice back to the user, and stopped. It read the commit as git hygiene, which its own rules leave to the user.statusnow gives the reason and lists the commit as step 1 underNext:, ahead of the push. It no longer offers--force.pushsays the same in its help text.The harness now records the final message of each agent. A failed trial recorded only the commands it ran, so explaining this one needed a search through CI logs.
The agent commits and pushes in 14 of 15 trials, up from about half. The
check-before-actingevals held.The git check on
pushandpulldoes not change.Checklist
Preview
The end of
prismic status, with one uncommitted model file:How to QA 1
Run the eval. It runs an agent against a real account, so run it in a container or a disposable VM.
PRISMIC_ALLOW_EVALS=true node --run evals -- evals/sync-models.eval.ts -t "commits and pushes"Read
evals/results.local.json. Each trial lists the commands the agent ran, andpushis in them.To see the text alone, create a type with the CLI in a project that git tracks, leave the model file uncommitted, and run
prismic status.📌
🤖 Generated with Claude Code
https://claude.ai/code/session_01VWBMpcTzzQR7vxxVtbwYzS
Note
Low Risk
CLI messaging and eval reporting only; push/pull git enforcement behavior is unchanged per the PR description.
Overview
prismic statusnow explains that model history lives in git and builds a single Next: list that putsgit add/git commitahead ofprismic pushorpull. It no longer surfaces--forceas a peer option when files are uncommitted, so agents and users see commit-then-sync as the intended path.push,pull, and related help/error copy** align on the same git-history wording and clarify that--forceskips the git check (not generic “safety checks”).Eval harness persists each trial’s final agent
textin results JSON (alongside commands), andtoHaveRunfailures can surface that message for debugging.Reviewed by Cursor Bugbot for commit b327b88. Bugbot is set up for automated code reviews on this repo. Configure here.
Footnotes
Please use these labels when submitting a review:
⚠️ #issue: Strongly suggest a change.
❓ #ask: Ask a question.
💡 #idea: Suggest an idea.
🎉 #nice: Share a compliment. ↩