# name<TAB>file<TAB>perl substitution<TAB>packages. Each must make the tests fail; a survivor is a guard no test watches.
# Run by `make kit-verify` through scripts/mutate.sh (copied from zeoarchitect scripts/mutate.sh at 35f6681).
single-dash flag after the verb	app.go	s/case strings\.HasPrefix\(t, \"-\"\) && t != \"-\":/case false:/	./...
single-dash flag in verb position	app.go	s/if !strings\.HasPrefix\(verb, \"--\"\) \{/if false {/	./...
unknown flag is refused	app.go	s/if !ok \{\n\t\t\t\treturn Usagef\(\"unknown flag/if !ok \&\& false {\n\t\t\t\treturn Usagef(\"unknown flag/	./...
unknown command is refused	app.go	s/if !ok \{\n\t\treturn Usagef\(\"unknown command/if !ok \&\& false {\n\t\treturn Usagef(\"unknown command/	./...
positional count is bounded	app.go	s/if len\(c\.Args\) > cmd\.MaxArgs \{/if false {/	./...
a value flag needs its value	app.go	s/if i\+1 >= len\(rest\) \{/if false {/	./...
a no-value flag refuses a value	app.go	s/\} else if !f\.TakesValue && hasVal \{/} else if false {/	./...
an app cannot shadow a kit verb	app.go	s/case seen\[c\.Name\]:/case false:/	./...
a command needs a Run	app.go	s/case c\.Run == nil:/case false:/	./...
no command is a usage error	app.go	s/if len\(args\) == 0 \{/if false {/	./...
--json goes to stderr for the RESULT line	app.go	s/if c\.JSON \{\n\t\tw = c\.Stderr/if false {\n\t\tw = c.Stderr/	./...
the exit table: not_ready is 7	exit.go	s/ExitNotReady    ExitCode = 7/ExitNotReady    ExitCode = 6/	./...
the exit table: usage is 2	exit.go	s/ExitUsage       ExitCode = 2/ExitUsage       ExitCode = 3/	./...
ExitOnly(ok) is nil	exit.go	s/if code == ExitOK \{\n\t\treturn nil\n\t\}//	./...
doctor exits 7 when not ready	verbs.go	s/if !ready \{\n\t\treturn ExitOnly\(ExitNotReady\)/if false {\n\t\treturn ExitOnly(ExitNotReady)/	./...
a failing check names its next step	verbs.go	s/if ck\.Next == \"\" \{/if false {/	./...
a skipped check is not a failure	verbs.go	s/if !ck\.OK && !ck\.Skipped \{\n\t\t\tready = false/if !ck.OK {\n\t\t\tready = false/	./...
status exits 1 when unhealthy	verbs.go	s/if !st\.Healthy \{\n(\t\tfmt\.Fprintf[^\n]*\n)?\t\treturn ExitOnly\(ExitFailed\)/if false {\n\t\treturn ExitOnly(ExitFailed)/	./...
status state is checked	verbs.go	s/if !validStates\[st\.State\] \{/if false {/	./...
version defaults to unsigned	verbs.go	s/state, signer := SignatureUnsigned, \"\"/state, signer := SignatureVerified, \"\"/	./...
the signature state is checked	verbs.go	s/\tdefault:\n\t\treturn Failed\(\"signature state/\tcase \"never\":\n\t\treturn Failed(\"signature state/	./...
RESULT: ok carries no reason	result.go	s/case r\.Outcome == OutcomeOK && r\.Reason != \"\":/case false:/	./...
RESULT: a non-ok outcome needs a reason	result.go	s/case r\.Outcome != OutcomeOK && r\.Reason == \"\":/case false:/	./...
RESULT: the reason is one token	result.go	s/case r\.Reason != \"\" && !reasonRe\.MatchString\(r\.Reason\):/case false:/	./...
RESULT: the outcome is checked	result.go	s/if !r\.Outcome\.valid\(\) \{/if false {/	./...
RESULT: undo is one line	result.go	s/if strings\.ContainsAny\(r\.Undo, \"\\n\\r\"\) \{/if false {/	./...
RESULT: a refusal exits 3	result.go	s/case OutcomeRefused:\n\t\treturn ExitRefused/case OutcomeRefused:\n\t\treturn ExitFailed/	./...
recovery_required is not safe to retry	result.go	s/return o != OutcomeRecoveryRequired/return true/	./...
every outcome but ok and a refusal is exit 1	result.go	s/default:\n\t\treturn ExitFailed\n\t\}\n\}\n\n\/\/ SafeToRetry/default:\n\t\treturn ExitOK\n\t}\n}\n\n\/\/ SafeToRetry/	./...
help is built from the command table	verbs.go	s/for _, c := range a\.Commands \{\n\t\tadd\(c, false\)/for range a.Commands {\n\t\t_ = add/	./...
an error message is folded to one printable line	app.go	s/if strconv\.IsPrint\(r\) \{/if strconv.IsPrint(r) || true {/	./...
only a plain name is echoed	app.go	s/if flagNameRe\.MatchString\(s\) \{/if true {/	./...
a plain single-dash flag is named	app.go	s/case flagNameRe\.MatchString\(name\):/case false:/	./...
-h points at --help	app.go	s/case name == "h":/case false:/	./...
--help is help	app.go	s/if args\[0\] == "--help" \{/if false {/	./...
a command name is validated	app.go	s/case !nameRe\.MatchString\(c\.Name\):/case false:/	./...
a command cannot list a code outside the table	app.go	s/if !e\.inTable\(\) \|\| e == ExitOK \{/if false {/	./...
a command cannot end outside the table or with 0	app.go	s/if errors\.As\(err, &e\) && !e\.Code\.inTable\(\) \|\| e != nil && e\.Code == ExitOK \{/if false {/	./...
a command cannot end with 0 and a message	app.go	s/ \|\| e != nil && e\.Code == ExitOK \{/ {/	./...
version lists exit 1	app.go	s/Exits: \[\]ExitCode\{ExitFailed\}, Run: a\.runVersion/Run: a.runVersion/	./...
doctor lists exit 1	app.go	s/\[\]ExitCode\{ExitFailed, ExitNotReady\}/[]ExitCode{ExitNotReady}/	./...
RESULT words are printable ASCII	result.go	s/\^\[!#-<>-~\]\+\$/^[^\\s"=]+\$/	./...
RESULT totals refuse a repeated key	result.go	s/if seen\[p\.Key\] \{/if false {/	./...
RESULT totals refuse reserved keys	result.go	s/seen := map\[string\]bool\{"from": true, "to": true, "reason": true, "undo": true\}/seen := map[string]bool{}/	./...
doctor prints an empty list, not null	verbs.go	s/if checks == nil \{/if false {/	./...
an unhealthy status names itself on stderr	verbs.go	s/\t\tfmt\.Fprintf\(c\.Stderr, "%s: status: not healthy[^\n]*\n//	./...
