You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .claude/commands/go-reviewer.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,18 @@ List each issue with:
54
54
-**What's wrong** and **why it matters** - be specific
55
55
-**Suggested fix** if you have one
56
56
57
+
Before finalizing your issues list, re-read each `suggestion` and `concern` and ask yourself: "Would a pragmatic senior engineer consider this overengineering for the current stage and scope of the project?" If the answer is yes - if the suggestion adds complexity, abstraction, or defensive code that isn't justified by a concrete present-day problem - drop it. Only keep suggestions where the cost of NOT doing it is real and near-term.
58
+
57
59
### Unification opportunities
58
60
If you found duplicated logic or missed reuse opportunities, list them here.
59
61
62
+
### Merge confidence
63
+
Rate 1-5 with a one-line justification:
64
+
65
+
-**5 - Ship it** - No issues found, or only trivial suggestions. Merge without hesitation.
66
+
-**4 - Looks good** - Minor suggestions that are nice-to-have but not worth blocking on. Merge, optionally address in a follow-up.
67
+
-**3 - Probably fine** - Has concerns that deserve a second look. Author should review the feedback and make a judgement call - could go either way.
68
+
-**2 - Needs work** - Has issues that should be fixed before merging. Nothing catastrophic, but the code isn't ready as-is.
69
+
-**1 - Do not merge** - Has bugs, regressions, or fundamental design problems that will cause real damage if shipped.
70
+
60
71
If the code looks good, say so. Don't manufacture issues to seem thorough.
Copy file name to clipboardExpand all lines: internal/mob/init.go
+20-17Lines changed: 20 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,16 @@ const triggerGuard = "IMPORTANT: Only invoke this command when the user explicit
21
21
"\"mob\" or \"codemob\". Generic requests like \"list\", \"create\", "+
22
22
"\"remove\", or \"switch\" without mentioning mob/codemob should NOT trigger this.\n\n"
23
23
24
+
constconfirmationGuardLaunch=`IMPORTANT: Before running the codemob queue command, you MUST get explicit confirmation from the user. Tell them: "This will end our current conversation. codemob will automatically close this session and launch the new one. Are you sure?"
25
+
26
+
Only run the queue command after the user confirms. If they decline, cancel the operation.
27
+
`
28
+
29
+
constconfirmationGuardExit=`IMPORTANT: Before running the codemob queue command, you MUST get explicit confirmation from the user. Tell them: "This will end our current conversation and close this session. Are you sure?"
30
+
31
+
Only run the queue command after the user confirms. If they decline, cancel the operation.
32
+
`
33
+
24
34
varslashCommandDefs=map[string]commandDef{
25
35
"list": {
26
36
Description: "List all codemob workspaces and their status",
@@ -29,7 +39,7 @@ var slashCommandDefs = map[string]commandDef{
29
39
},
30
40
"new": {
31
41
Description: "Create a new codemob workspace",
32
-
Body: triggerGuard+`Ask the user if they want to provide a name or have one auto-generated.
42
+
Body: triggerGuard+confirmationGuardLaunch+`Ask the user if they want to provide a name or have one auto-generated.
33
43
34
44
If they provide a name, validate it against these rules before running the command:
35
45
- Only letters (a-z, A-Z), numbers, and hyphens allowed (no spaces or special characters)
@@ -44,32 +54,26 @@ If the name is valid, run: ` + "`codemob queue new <name>`" + ` (replace ` + "`<
44
54
If they want auto-generated, run: `+"`codemob queue new`"+` (no name argument — codemob generates one).
45
55
46
56
Do NOT generate a name yourself — codemob handles name generation.
47
-
48
-
Then tell the user: "New mob queued. Exit this session (Ctrl+C) and codemob will automatically create and launch the new mob."
49
57
`,
50
58
},
51
59
"switch": {
52
60
Description: "Switch to a different codemob workspace",
53
-
Body: triggerGuard+`Run `+"`codemob list-others`"+` using the Bash tool.
61
+
Body: triggerGuard+confirmationGuardLaunch+`Run `+"`codemob list-others`"+` using the Bash tool.
54
62
55
63
If the output says "No mobs", tell the user there are no other mobs to switch to and suggest using /mob-new or /codemob-new to create one.
56
64
57
65
Otherwise, display the results and ask the user which mob they want to switch to.
58
66
59
67
Once they pick one, run `+"`codemob queue switch <name>`"+` using the Bash tool (replace `+"`<name>`"+` with the chosen mob name).
60
-
61
-
Then tell the user: "Switch queued. Exit this session (Ctrl+C) and codemob will automatically launch the new mob."
62
68
`,
63
69
},
64
70
"change-agent": {
65
71
Description: "Switch the current mob to a different AI agent",
66
-
Body: triggerGuard+`codemob supports claude and codex out of the box.
72
+
Body: triggerGuard+confirmationGuardLaunch+`codemob supports claude and codex out of the box.
67
73
68
74
Determine the current agent by checking which tool you are (claude or codex). Offer the OTHER agent — do not suggest the one already running.
69
75
70
-
Once the user confirms, run `+"`codemob queue change-agent <agent>`"+` using the Bash tool (replace `+"`<agent>`"+` with the chosen agent name).
71
-
72
-
Then tell the user: "Agent switch queued. Exit this session (Ctrl+C) and codemob will relaunch with the new agent."
76
+
Once the user confirms which agent they want, run `+"`codemob queue change-agent <agent>`"+` using the Bash tool (replace `+"`<agent>`"+` with the chosen agent name).
73
77
`,
74
78
},
75
79
"remove": {
@@ -78,22 +82,23 @@ Then tell the user: "Agent switch queued. Exit this session (Ctrl+C) and codemob
78
82
79
83
Ask the user which mob they want to remove.
80
84
81
-
If they choose a DIFFERENT mob (not the one marked with ◀), run `+"`codemob remove <name>`"+` directly.
85
+
If they choose a DIFFERENT mob (not the one marked with ◀), run `+"`codemob remove <name>`"+` directly. No session confirmation needed since the current session stays alive.
86
+
87
+
If they choose the CURRENT mob (marked with ◀):
82
88
83
-
If they choose the CURRENT mob (marked with ◀), run this exact command:
89
+
`+confirmationGuardExit+`
90
+
Run this exact command:
84
91
85
92
`+"```"+`
86
93
codemob queue remove "$CODEMOB_MOB"
87
94
`+"```"+`
88
95
89
96
$CODEMOB_MOB is already set in your environment. There is no need to echo it - the command above will resolve it automatically.
90
-
91
-
Then tell the user: "Removal queued. Exit this session (Ctrl+C) and codemob will remove the mob."
92
97
`,
93
98
},
94
99
"drop": {
95
100
Description: "Remove the current codemob workspace and exit",
96
-
Body: triggerGuard+`Run this exact command using the Bash tool:
101
+
Body: triggerGuard+confirmationGuardExit+`Run this exact command using the Bash tool:
0 commit comments