Rework onboarding to a two-question wizard, add the Tod persona and a TOD_HOME sandbox - #8
Merged
Merged
Conversation
The instruction block's Communication section gains a Writing style subsection: lead with the answer, one idea per sentence, plain verbs, and never em dashes. CLI help headers switch from em dashes to colons. Tests pin the new section and guard all rendered configurations and help output against em and en dashes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Replace the four communication enums with requirement-gathering and response-detail (1-5 scales) in a version-2 config schema - tod init always ends with a predefined onboarding script, delivered verbatim in the new Tod persona as a single message - Rewrite the instruction-block template: deterministic, under 4KB, with persona, session opt-in, precedence, non-technical operator, and reconfiguration sections - Add TOD_HOME to redirect every tod path into a local folder for agent test sessions (bun run sandbox); boundary roots follow the override - Accept '#'-prefixed work item ids, report unchanged state files on repeat init/sync, and show the done count in status --all Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Reworks initialization and the generated operator harness around a fixed two-question onboarding, replacing the four-dimension communication profiling from the first prototype. Also adds a sandbox mode for testing the CLI with an agent without touching the real home directory.
Changes
src/config.ts): version-2 schema with two 1-5 scales,requirementGatheringandresponseDetail, replacing the technicality/detail/focus/tone enums.tod config settakesrequirement-gatheringandresponse-detail. No migration: a v1 config fails validation with the standing repair-or-delete fix.src/commands/init.ts): everyinitrun ends with a predefined script the agent delivers verbatim as Tod, both questions in a single message, then records answers viatod config setandtod sync. The CLI stays non-interactive; reconfiguration is re-runninginit.src/template.ts): rewritten as a concise deterministic block (under 4KB, budget enforced in tests). New sections: Tod persona, session opt-in ("Are we building with Tod today?"), instruction precedence, non-technical operator assumption, and reconfiguration discoverability (offertod initon repeated conflict, never silently change config). Operator-facing writing rules (lead with the answer, no em dashes) render into the block and CLI output.src/paths.ts,src/boundary.ts):TOD_HOMEredirects every tod path (state, instruction files, boundary allowlist) into an alternate root mirroring the home layout;bun run sandbox <cmd>targets a gitignoredoutput/. Resolved once inresolveHome()and used as the default by every path helper so no code path bypasses it.#prefix tod itself prints, and non-numeric ids get an explicit reason; repeatinit/syncreport untouched state files asunchanged;tod status --allshows the done count in its header.Why
Profiling the operator's technical depth added onboarding friction without changing behaviour much; the two scales map directly to the two behaviours operators actually push on (how much tod asks upfront, how much it explains after). The wizard script is predefined because agent-improvised onboarding proved inconsistent in testing.
TOD_HOMEis an env var rather than a flag so a test session is redirected once at launch; a per-command flag forgotten mid-session would write into the real~/.claude.🤖 Generated with Claude Code