fix(release): the probe declares its commands before it doctors - #39
Merged
Conversation
0.10.6 did not publish. The probe smoke-tests the packed tarball by running `orly init` in a repository that is one `main.go`, then expecting `orly doctor` to pass — and since 81b2875 taught doctor to refuse a setup that declares no conform and no verify command, it correctly refuses that one. `init` seeds commands by reading a Makefile and package.json scripts. A single Go file offers neither, so it seeds none, and the probe was asking doctor to bless a repository with no declared way to check itself. So the probe completes its setup, which is what a real repository does after init, and then doctors. It proves what it was always for: the tarball installs, renders 44 files, and doctors clean once setup is finished. Reproduced locally against the packed 0.10.6 tarball — doctor exits 1 before the declaration and 0 after, with `🟢 installed rules match .oracle/orly.json; work and verification commands are declared`. The doctor change stays as written. It is right, it is tested in src/setup.test.ts, and a repository that cannot say how it checks itself should not pass a health check. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018ZTshuX7LqgMRvdRxMFNmU
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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.
0.10.6 did not publish. The release job's
Install the packed tarball into a throwaway repositorystep failed, sonpm view @agentsfleet/orly versionstillreads 0.10.5 and the two lifecycle rules from #38 have not reached any consumer.
The probe is stale, not the code. Since 81b2875 taught
orly doctorto refuse asetup declaring no
conformand noverify.*, it correctly refuses the probe'sown repository — which is a single
main.go.initseeds commands by reading aMakefile and
package.jsonscripts; that repository offers neither, so it seedsnone, and the probe was asking doctor to bless a repository with no declared way
to check itself.
The probe now completes its setup before doctoring, which is what a real
repository does after
init.Session notes 1
Two options were on the table and Indy picked the second: give the probe a
Makefile so
initinfers from it, or declare the commands explicitly. Explicitwins on intent — it exercises the declaration path that 81b2875 is about,
rather than leaning on inference heuristics that could drift independently.
commandSetupErrors(src/validation.ts:45-52) wantsconformnon-empty plusone non-empty
verify.*; it does not check runnability, so[["true"]]is anhonest minimum for a probe whose subject is installation, not testing.
The doctor change stays exactly as written. It is right,
src/setup.test.tsasserts it, and a repository that cannot say how it checks itself should not
pass a health check.
Review
No findings. One judgment call worth recording: the alternative fix — softening
doctor back to a warning — would have made this probe pass by undoing the
explicitness #38's follow-up commits deliberately introduced. Rejected on those
grounds rather than on effort.
CI/CD edits sit behind explicit approval in the operating model; Indy approved
this one and chose the shape.
Make
Reproduced against the actual packed 0.10.6 tarball, not a simulation:
Merging this republishes:
package.jsonalready carries 0.10.6 and the registrydoes not, so the release job will pack, probe, and publish on the merge commit.
🤖 Generated with Claude Code
https://claude.ai/code/session_018ZTshuX7LqgMRvdRxMFNmU