Repository navigation
[Sprint] sprint-loop-46 - #44
Merged
Merged
Conversation
scealiontach
force-pushed
the
sprint/2026-06-08-sprint-loop-46
branch
from
June 8, 2026 18:04
70b2e5c to
ede52c8
Compare
scealiontach
marked this pull request as ready for review
June 8, 2026 18:11
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.
Sprint Plan: 2026-06-08 Sprint Loop 46
Sprint goal
Restore predictable command-line contracts for small, high-priority shell commands by fixing three Backlog bugs where parser or argument handling currently exposes internal behavior instead of documented usage. This sprint intentionally keeps scope reviewable: each selected issue is a focused CLI regression with clear Bats coverage and no active Linear blockers, sub-issue gates, manual label exclusion, or open-PR file overlap.
Selected issues
SUR-3647 - Bug: semver diff missing arguments throw nounset errors instead of usage
Description summary:
bash/semvervalidates arity forbump,compare, andget, butcommand-diffdereferences$1and$2underset -o nounset.bash/semver diffandbash/semver diff 1.2.3currently fail with rawunbound variableerrors instead of usage output. Existingtests/semver.batscoverage exercises validdiffbehavior but not invalid arity.Rationale: This is the smallest, lowest-risk CLI contract fix in the eligible set and gives immediate consistency across semver subcommands.
Definition of Done:
command-diffrejects zero and one argument before dereferencing positional parameters.unbound variable.semver diffbehavior remains unchanged.tests/semver.batsincludes regressions for zero and one diff arguments.Dependencies / ordering: First. This is independent and establishes the sprint's command-arity pattern.
SUR-3646 - Bug: review-prs bare invocation never reaches default organizations
Description summary:
bash/review-prsdocuments default organization lists for bare invocations, but callsoptions::parse "$@", which exits with syntax help on no arguments unlessNO_SYNTAX_EXIToroptions::parse_availableis used. As a result,REVIEW_PRS_ORGSandREVIEW_PRS_INTEREST_ORGSdefaults are unreachable. Existing tests cover the jq shim but not the command's default path.Rationale: This is another tight parser behavior fix and can use the repo's documented
options::parse_availableentry point without changing shared parser semantics.Definition of Done:
bash/review-prsreaches the default organization setup path instead of exiting on syntax.-oand-iarguments still work as documented.ghandjqso the default scan path is verified without network access.Dependencies / ordering: Second. Independent of SUR-3647, but it should follow the semver arity fix so parser-related test patterns are fresh.
SUR-3645 - Bug: daml-export -h no longer shows standard help
Description summary:
bash/daml-exportredefines-has the DAML host option even thoughoptions.shreserves-hfor help.daml-export -his parsed as a missing host argument and can continue into unrelated arithmetic/find errors instead of displaying help. The issue notesbash/daml-exportaround the host option declaration andbash/options.shautomatic help registration.Rationale: This completes a coherent parser/help sprint and addresses a user-facing discovery failure in a complex command. It is slightly broader than the first two because the host flag must move to a non-reserved option, so it is ordered last.
Definition of Done:
bash/daml-export -hdisplays standard command help.-H.DAML_HOSTcorrectly.options::add; any broader guard is only included if low-risk and covered.Dependencies / ordering: Third. It touches a more complex command and may optionally touch shared option registration, so it should wait until the two narrower parser fixes are complete.
Risks + mitigations
tests/options.bats.review-prsnormally shells out toghandjq. Mitigation: test with PATH stubs and avoid network-dependent tests.daml-exportis a larger script with external DAML/Java assumptions. Mitigation: keep this issue focused on option parsing/help and use isolated command invocations or stubs rather than full export flows..claude/sprints/,.claude/runs/, or.claude/plans/. Mitigation: post command output to Linear comments or attach it in Linear only.tests/helpers.bashpatterns and keep stubs inside test temp directories.Out of scope
review-prsintegration testing against real GitHub organizations.options.shbeyond a small duplicate-option guard if it is chosen and covered..claude/directories.Linear Evidence
list_issueswithteam=Surinis,project=shell-scripts,state=Backlog,limit=250, thenget_issue(includeRelations=true),list_comments, andlist_issues(parentId=...)for each candidate.blockedByrelations returned for any candidate.Sub-issue Status
No reviewed Backlog candidate had sub-issues returned by Linear, so no parent issue was skipped by the sub-issue gate.
Linear State Transitions