diff --git a/cmd/bd/human.go b/cmd/bd/human.go new file mode 100644 index 00000000..3e8a860c --- /dev/null +++ b/cmd/bd/human.go @@ -0,0 +1,87 @@ +package main + +import ( + "fmt" + + "github.com/spf13/cobra" + "github.com/steveyegge/beads/internal/ui" +) + +var humanCmd = &cobra.Command{ + Use: "human", + GroupID: "setup", + Short: "Show essential commands for human users", + Long: `Display a focused help menu showing only the most common commands. + +bd has 70+ commands - many for AI agents, integrations, and advanced workflows. +This command shows the ~15 essential commands that human users need most often. + +For the full command list, run: bd --help`, + Run: func(cmd *cobra.Command, args []string) { + fmt.Printf("\n%s\n", ui.RenderBold("bd - Essential Commands for Humans")) + fmt.Printf("For all 70+ commands: bd --help\n\n") + + // Issues - Core workflow + fmt.Printf("%s\n", ui.RenderAccent("Working With Issues:")) + printCmd("create", "Create a new issue") + printCmd("list", "List issues (filter with --status, --priority, --label)") + printCmd("show ", "Show issue details") + printCmd("update ", "Update an issue (--status, --priority, --assignee)") + printCmd("close ", "Close one or more issues") + printCmd("reopen ", "Reopen a closed issue") + printCmd("comment ", "Add a comment to an issue") + fmt.Println() + + // Workflow + fmt.Printf("%s\n", ui.RenderAccent("Finding Work:")) + printCmd("ready", "Show issues ready to work on (no blockers)") + printCmd("search ", "Search issues by text") + printCmd("status", "Show project overview and counts") + printCmd("stats", "Show detailed statistics") + fmt.Println() + + // Dependencies + fmt.Printf("%s\n", ui.RenderAccent("Dependencies:")) + printCmd("dep add ", "Add dependency (a depends on b)") + printCmd("dep remove ", "Remove a dependency") + printCmd("dep tree ", "Show dependency tree") + printCmd("graph", "Display visual dependency graph") + printCmd("blocked", "Show all blocked issues") + fmt.Println() + + // Setup & Maintenance + fmt.Printf("%s\n", ui.RenderAccent("Setup & Sync:")) + printCmd("init", "Initialize bd in current directory") + printCmd("sync", "Sync issues with git remote") + printCmd("doctor", "Check installation health") + fmt.Println() + + // Help + fmt.Printf("%s\n", ui.RenderAccent("Getting Help:")) + printCmd("quickstart", "Quick start guide with examples") + printCmd("help ", "Help for any command") + printCmd("--help", "Full command list (70+ commands)") + fmt.Println() + + // Common examples + fmt.Printf("%s\n", ui.RenderAccent("Quick Examples:")) + fmt.Printf(" %s\n", ui.RenderMuted("# Create and track an issue")) + fmt.Printf(" bd create \"Fix login bug\" --priority 1\n") + fmt.Printf(" bd update bd-abc123 --status in_progress\n") + fmt.Printf(" bd close bd-abc123\n\n") + + fmt.Printf(" %s\n", ui.RenderMuted("# See what needs doing")) + fmt.Printf(" bd ready # What can I work on?\n") + fmt.Printf(" bd list --status open # All open issues\n") + fmt.Printf(" bd blocked # What's stuck?\n\n") + }, +} + +// printCmd prints a command with consistent formatting +func printCmd(cmd, description string) { + fmt.Printf(" %-20s %s\n", ui.RenderCommand(cmd), description) +} + +func init() { + rootCmd.AddCommand(humanCmd) +} diff --git a/cmd/bd/main.go b/cmd/bd/main.go index a8c86ec9..873a7ee3 100644 --- a/cmd/bd/main.go +++ b/cmd/bd/main.go @@ -275,6 +275,7 @@ var rootCmd = &cobra.Command{ "fish", "help", "hooks", + "human", "init", "merge", "onboard",