"Add pitboss start universal entry + iteration wizard#15
Merged
Conversation
- new-user branch routes to setup
- existing-user branch shows snapshot (budget/phases/deferred)
with continue/sweep/new-plan paths
- new-plan flow drives in-TUI interview + planner agent
(questioner_ranged.txt template), shows generated phase list
with run/wait/terminate choices
"
Contributor
Author
|
LMK what you think |
Owner
|
Can you fix rustdoc |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new “universal entry” workflow for Pitboss by introducing an interactive config wizard, an interactive start iteration wizard (including optional interview-driven plan generation), and a destructive nuke command to remove .pitboss/.
Changes:
- Introduces
pitboss config(aliassetup) with a full-screen TUI wizard that writes an explicit, self-documenting.pitboss/config.tomland scaffolds workspace files when creating. - Introduces
pitboss startwith an iteration wizard for existing workspaces (continue/sweep/new plan), including in-TUI questioner + planner dispatch using a new ranged questioner prompt template. - Adds
pitboss nuketo delete.pitboss/after confirmation; enables bracketed paste mode in the terminal guard.
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
src/tui/wizard.rs |
New config/setup TUI wizard for collecting configuration inputs. |
src/tui/mod.rs |
Exposes new TUI modules and enables bracketed paste in terminal setup/restore. |
src/tui/iteration.rs |
New iteration/new-plan TUI flow used by pitboss start for existing workspaces. |
src/prompts/templates/questioner_ranged.txt |
New template to enforce min/max question counts for interview mode. |
src/prompts/mod.rs |
Adds prompt renderer for questioner_ranged and includes it in template budget tests. |
src/cli/start.rs |
Implements pitboss start flows, workspace snapshotting, and silent agent dispatch helpers. |
src/cli/plan.rs |
Exposes collect_repo_summary for reuse by the start/iteration wizard dispatch. |
src/cli/nuke.rs |
Implements pitboss nuke with confirmation and basic tests. |
src/cli/mod.rs |
Wires new config, start, and nuke commands into Clap + dispatch. |
src/cli/init.rs |
Adds scaffold_dirs helper for config wizard workspace creation. |
src/cli/config.rs |
Implements pitboss config wizard orchestration and config/plan/deferred writers with tests. |
.gitignore |
Ignores pitboss-contributions.md. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Ev::Quit => break None, | ||
| Ev::Done(r) => break Some(r), | ||
| } | ||
| } |
Comment on lines
+170
to
+177
| let audit_enabled = result.audit_enabled; | ||
| let sweep_enabled = result.sweep_enabled; | ||
| let sweep_min = result.sweep_threshold.unwrap_or(5); | ||
| // Pitboss requires `trigger_min_items <= trigger_max_items` (default | ||
| // max = 8). The wizard only collects min, so when the user picks a | ||
| // threshold above 8 we lift max alongside it with a small buffer so | ||
| // the agent still has headroom to drain a few extra items per sweep. | ||
| let sweep_max = sweep_min.saturating_add(3).max(8); |
Comment on lines
+105
to
+109
| /// Universal entry point. Auto-detects whether `.pitboss/` exists: | ||
| /// without it, runs the setup wizard and chains into `play --tui`; with | ||
| /// it, opens the iteration wizard (current budget, deferred items, and | ||
| /// completed phases) and offers continue / sweep / new-plan paths. | ||
| Start, |
Comment on lines
+1158
to
+1167
| let inner_w = area.width.saturating_sub(2).max(1) as usize; | ||
| let inner_h = area.height.saturating_sub(2).max(1) as usize; | ||
| let total_lines = display.chars().count().div_ceil(inner_w).max(1); | ||
| let max_scroll = total_lines.saturating_sub(inner_h) as u16; | ||
| let auto_scroll = match cursor_pos { | ||
| Some(pos) => { | ||
| let cursor_line = pos / inner_w; | ||
| let min_scroll = cursor_line.saturating_sub(inner_h.saturating_sub(1)) as u16; | ||
| min_scroll.min(max_scroll) | ||
| } |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.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.
Summary
Three new top-level commands and a guided wizard:
pitboss start— universal entry point. Auto-detects.pitboss/; routes new users into setup +chains to play, existing users into an iteration wizard (continue/sweep/new-plan).
pitboss config(alias:setup) — multi-step config wizard with explanatory screens for each knob(models, budget, sweeps, auditor, tests). On an existing workspace, opens to a summary screen
pre-populated from disk; user can save or step back through to edit. Writes an exhaustive
self-documenting
config.toml(no invisible defaults).pitboss nuke— deletes.pitboss/aftery/Nconfirmation.The new-plan path inside
pitboss startdrives an in-TUI interview (1-5 / 5-10 / 10-20 / as-manyquestion ranges) against the planner agent and shows the generated phase list with run/wait/terminate
options.
Why
rebuy/sweep/ hand-editdeferred.md. This is purely additive — every existing command keeps itssignature and behavior.
Tests
cargo clippy --all-targets -D warningscleancargo fmt --checkcleansrc/{prompts,tui,grind}/snapshots/Test plan
cargo install --path . --forcepitboss configin a fresh dir → walk 6 steps → confirm.pitboss/config.tomlhas every sectionpitboss startin the same dir → iteration wizard → New plan → interview → review screen → Runpitboss setup(alias) still workspitboss nuke→ydeletes.pitboss/;nleaves itpitboss play --dry-rununchanged from mainEOF
)"