fix(sling): remove obsolete --quality flag

The --quality flag (basic|shiny|chrome) referenced mol-polecat-* formulas
that were removed in c47a746 ("Remove obsolete polecat formula files") but
the flag code was left behind, causing errors when used.

Rather than restore the formulas, remove the flag entirely since:
- The default `gt sling <bead> <rig>` is now the standard workflow
- Formula-on-bead via `--on` or `--molecule` covers custom workflows
- The quality-level formulas were intentionally deprecated

Removes:
- --quality/-q flag and help text
- qualityToFormula() function
- Quality Levels section from command documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
julianknutsen
2026-01-04 20:12:05 -08:00
parent 5186cd90be
commit 59414834ec

View File

@@ -74,11 +74,6 @@ Formula-on-Bead (--on flag):
gt sling mol-review --on gt-abc # Apply formula to existing work
gt sling shiny --on gt-abc crew # Apply formula, sling to crew
Quality Levels (shorthand for polecat workflows):
gt sling gp-abc greenplace --quality=basic # mol-polecat-basic (trivial fixes)
gt sling gp-abc greenplace --quality=shiny # mol-polecat-shiny (standard)
gt sling gp-abc greenplace --quality=chrome # mol-polecat-chrome (max rigor)
Compare:
gt hook <bead> # Just attach (no action)
gt sling <bead> # Attach + start now (keep context)
@@ -109,7 +104,6 @@ var (
slingMolecule string // --molecule: workflow to instantiate on the bead
slingForce bool // --force: force spawn even if polecat has unread mail
slingAccount string // --account: Claude Code account handle to use
slingQuality string // --quality: shorthand for polecat workflow (basic|shiny|chrome)
slingNoConvoy bool // --no-convoy: skip auto-convoy creation
)
@@ -127,7 +121,6 @@ func init() {
slingCmd.Flags().StringVar(&slingMolecule, "molecule", "", "Molecule workflow to instantiate on the bead")
slingCmd.Flags().BoolVar(&slingForce, "force", false, "Force spawn even if polecat has unread mail")
slingCmd.Flags().StringVar(&slingAccount, "account", "", "Claude Code account handle to use")
slingCmd.Flags().StringVarP(&slingQuality, "quality", "q", "", "Polecat workflow quality level (basic|shiny|chrome)")
slingCmd.Flags().BoolVar(&slingNoConvoy, "no-convoy", false, "Skip auto-convoy creation for single-issue sling")
rootCmd.AddCommand(slingCmd)
@@ -162,22 +155,6 @@ func runSling(cmd *cobra.Command, args []string) error {
}
}
// --quality is shorthand for formula-on-bead with polecat workflow
// Convert: gt sling gp-abc greenplace --quality=shiny
// To: gt sling mol-polecat-shiny --on gt-abc gastown
if slingQuality != "" {
qualityFormula, err := qualityToFormula(slingQuality)
if err != nil {
return err
}
// The first arg should be the bead, and we wrap it with the formula
if slingOnTarget != "" {
return fmt.Errorf("--quality cannot be used with --on (both specify formula)")
}
slingOnTarget = args[0] // The bead becomes --on target
args[0] = qualityFormula // The formula becomes first arg
}
// Determine mode based on flags and argument types
var beadID string
var formulaName string
@@ -1003,19 +980,6 @@ func agentIDToBeadID(agentID string) string {
}
}
// qualityToFormula converts a quality level to the corresponding polecat workflow formula.
func qualityToFormula(quality string) (string, error) {
switch strings.ToLower(quality) {
case "basic", "b":
return "mol-polecat-basic", nil
case "shiny", "s":
return "mol-polecat-shiny", nil
case "chrome", "c":
return "mol-polecat-chrome", nil
default:
return "", fmt.Errorf("invalid quality level '%s' (use: basic, shiny, or chrome)", quality)
}
}
// IsDogTarget checks if target is a dog target pattern.
// Returns the dog name (or empty for pool dispatch) and true if it's a dog target.