feat(cmd): move worker setup out of init - #164
Merged
Merged
Conversation
hand config reports the fleet's worker defaults and which of them are still missing; hand config set validates one value and writes it atomically, refusing a model or effort the configured harness takes no launch flag for. Model and effort are stored keyed by that harness (config/model.claude), so switching harnesses re-asks instead of handing a worker an identifier chosen for a different tool. An older home's unkeyed value is moved under the harness it belonged to on init and update.
The bare command is the session hook, so it is where a supervising agent learns the fleet is not configured yet. It now carries the same config block hand config prints, and leads its help with one question per missing value for the agent to put to the operator.
init now only bootstraps: it never reads stdin, asks nothing, and writes no worker default, so it runs unchanged in a script, in CI, or with stdin closed. What the fleet should dispatch is settled by the operator in the first supervising session instead, because a value invented at bootstrap time is indistinguishable from one the operator chose. The --setup flag is gone rather than deprecated: nothing in the tool, the tests or the session integration invoked it, and an unknown flag already refuses with a usage document naming it.
…faults The generated block now makes settling a missing worker default a step of the workflow, and says who answers: the supervisor asks the operator in conversation and persists the reply with hand config set. Answering its own harness dialog would configure the fleet with the agent's guess.
The quick start built the tool from a checkout, which is the maintainers' setup rather than an install, and pointed at hand init --setup for configuration. It now installs a release binary, initializes a home that asks nothing, and explains the worker defaults the first session asks for. Building a checkout moves to CONTRIBUTING.md.
atqamz
force-pushed
the
161-noninteractive-init
branch
from
August 5, 2026 02:09
48b1760 to
9a4cd9a
Compare
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
hand initbootstrap-only and stdin-free, remove--setup, and leave worker defaults for the operator to choose in the supervising session.hand configreporting and atomic persistence with model and effort keyed by harness and applicability derived frominternal/harness.Gate fixes
hand init.Verification
01KZ7SQHQ0C1D740KSM92ZDTPZcompleted review with zero findings after both fixes.--setupbehavior.9a4cd9a71cc46061f38395875d708423c0f28a97.Sequencing
Issue #163 remains responsible for deleting SPECS.md and auditing the provisional ADR set after this change lands.
Closes #161