@malamute/ai-rules 1.4.0 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -121,17 +121,19 @@ Interactive workflows invoked with `/skill-name`:
|
|
|
121
121
|
| `/review` | Code review with security/perf checklist |
|
|
122
122
|
| `/debug` | Structured debugging workflow |
|
|
123
123
|
| `/spec` | Write technical spec before implementing |
|
|
124
|
+
| `/sudden-death` | Kill indecision with rapid-fire questions |
|
|
124
125
|
| `/fix-issue` | Analyze GitHub issue and implement fix |
|
|
125
126
|
| `/generate-tests` | Generate comprehensive tests |
|
|
126
127
|
|
|
127
128
|
<details>
|
|
128
|
-
<summary><strong>See all
|
|
129
|
+
<summary><strong>See all 14 skills</strong></summary>
|
|
129
130
|
|
|
130
131
|
| Skill | Usage | Description |
|
|
131
132
|
| ----------------- | ----------------------------- | ------------------------------------- |
|
|
132
133
|
| `/learning` | `/learning nextjs` | Explains concepts before implementing |
|
|
133
134
|
| `/review` | `/review src/users/` | Code review with checklist |
|
|
134
135
|
| `/spec` | `/spec add auth` | Technical specification |
|
|
136
|
+
| `/sudden-death` | `/sudden-death backend` | Kill indecision, get a verdict |
|
|
135
137
|
| `/debug` | `/debug TypeError...` | Systematic debugging |
|
|
136
138
|
| `/fix-issue` | `/fix-issue 123` | Fix GitHub issue |
|
|
137
139
|
| `/review-pr` | `/review-pr 456` | Review pull request |
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sudden-death
|
|
3
|
+
description: Kill indecision with rapid-fire questionnaires
|
|
4
|
+
argument-hint: [decision-topic]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Sudden Death Mode
|
|
8
|
+
|
|
9
|
+
You are now in **sudden death mode**. No more "it depends" - guide the user through a tournament-style elimination and deliver a decisive verdict.
|
|
10
|
+
|
|
11
|
+
**IMPORTANT: Always respond in the user's language.** If they write in French, respond in French. Polish? Polish. The examples below are in French for flavor, but adapt to the user.
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
|
|
15
|
+
Decision topic: `$ARGUMENTS`
|
|
16
|
+
|
|
17
|
+
If no argument provided, ask: "What's on the chopping block? (e.g., backend stack, database, UI library, hosting)"
|
|
18
|
+
|
|
19
|
+
## The Game
|
|
20
|
+
|
|
21
|
+
### Phase 1: Candidates
|
|
22
|
+
|
|
23
|
+
List all reasonable options for the domain. Example for backend:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Candidats: NestJS, Hono, Fastify, Elysia, AdonisJS, .NET, FastAPI, Go
|
|
27
|
+
|
|
28
|
+
En garde. Première question...
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Phase 2: Elimination Tournament
|
|
32
|
+
|
|
33
|
+
Ask **5-8 killer questions**. Each question should potentially eliminate candidates.
|
|
34
|
+
|
|
35
|
+
Format:
|
|
36
|
+
```
|
|
37
|
+
### Q1: [Short punchy question]
|
|
38
|
+
[Context if needed]
|
|
39
|
+
|
|
40
|
+
→ User answers
|
|
41
|
+
→ **Eliminated: [X, Y]** or **Advantage: [Z]** or **Point: [Z]**
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Example questions (backend stack):
|
|
45
|
+
- "Full TypeScript (front + back) or ok to switch languages?"
|
|
46
|
+
- "Structured framework (modules, DI, conventions) or minimal?"
|
|
47
|
+
- "Decorators (@Controller, @Get) or simple functions?"
|
|
48
|
+
- "Batteries included or pick your own libs?"
|
|
49
|
+
- "Big community or cutting-edge?"
|
|
50
|
+
|
|
51
|
+
**Elimination rules:**
|
|
52
|
+
- Strong preference → Eliminate mismatches immediately
|
|
53
|
+
- Slight preference → Note advantage, keep in race
|
|
54
|
+
- "Tie" / "Both good" → No elimination, move on
|
|
55
|
+
|
|
56
|
+
### Phase 3: Final Showdown
|
|
57
|
+
|
|
58
|
+
When down to 2-3 candidates:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
### Finale: [A] vs [B]
|
|
62
|
+
|
|
63
|
+
[A]: [2-3 key traits]
|
|
64
|
+
[B]: [2-3 key traits]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
If clear winner → Declare it
|
|
68
|
+
If tie → Go to tiebreaker
|
|
69
|
+
|
|
70
|
+
### Phase 4: Tiebreaker (when needed)
|
|
71
|
+
|
|
72
|
+
Frame it as a **character choice**, not just technical:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Score: [A] 2 - [B] 2
|
|
76
|
+
|
|
77
|
+
Tu as choisi [previous bold choice] pour sortir de ta zone.
|
|
78
|
+
[A] = full send, nouvelle expérience
|
|
79
|
+
[B] = un pied dans le connu
|
|
80
|
+
|
|
81
|
+
On est des fous ou pas ?
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Phase 5: Verdict
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
### Winner: **[Option]**
|
|
88
|
+
|
|
89
|
+
[One-liner why it fits THEIR specific answers]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Between Decisions
|
|
93
|
+
|
|
94
|
+
After each major decision, recap and offer options:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
Stack actuelle:
|
|
98
|
+
- Frontend: Next.js 15
|
|
99
|
+
- Backend: AdonisJS
|
|
100
|
+
- ORM: Lucid
|
|
101
|
+
|
|
102
|
+
On continue ? Il reste:
|
|
103
|
+
- UI lib (shadcn, autre ?)
|
|
104
|
+
- State management
|
|
105
|
+
- Hosting
|
|
106
|
+
|
|
107
|
+
**Sudden death** ou **tu tranches direct** ?
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
- **Sudden death** = Full questionnaire
|
|
111
|
+
- **Tu tranches direct** = User is confident, give quick recommendation
|
|
112
|
+
|
|
113
|
+
## Tone
|
|
114
|
+
|
|
115
|
+
- **Playful combat** - "En garde", "Eliminated", "Survivor"
|
|
116
|
+
- **Call out bold choices** - "On est des fous !", "Allez on y va !"
|
|
117
|
+
- **No corporate speak** - Skip the "it depends on your requirements"
|
|
118
|
+
- **Quick and punchy** - Short questions, fast eliminations
|
|
119
|
+
- **Celebrate decisions** - Each choice is a win, not a compromise
|
|
120
|
+
|
|
121
|
+
## Quick Verdict Mode
|
|
122
|
+
|
|
123
|
+
If user says "tu tranches" or wants fast advice:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
Pour [context], je dirais **[Option]**.
|
|
127
|
+
|
|
128
|
+
[One sentence why]
|
|
129
|
+
|
|
130
|
+
Sold ? Ou on fait un sudden death pour être sûr ?
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Adapt to Domain
|
|
134
|
+
|
|
135
|
+
Common sudden death topics:
|
|
136
|
+
|
|
137
|
+
| Domain | Typical Candidates |
|
|
138
|
+
|--------|-------------------|
|
|
139
|
+
| Backend | NestJS, Fastify, Hono, AdonisJS, .NET, FastAPI, Go |
|
|
140
|
+
| Frontend | Next.js, Nuxt, SvelteKit, Remix, Angular |
|
|
141
|
+
| Database | PostgreSQL, MySQL, MongoDB, SQLite, Supabase, PlanetScale |
|
|
142
|
+
| ORM | Prisma, Drizzle, TypeORM, Lucid, SQLAlchemy |
|
|
143
|
+
| UI | shadcn/ui, Radix, Chakra, MUI, Mantine |
|
|
144
|
+
| Hosting | Vercel, Railway, Render, Fly.io, AWS, Coolify |
|
|
145
|
+
| State | Zustand, Jotai, Redux Toolkit, Signals, TanStack Query |
|
|
146
|
+
| Auth | Auth.js, Lucia, Clerk, Supabase Auth, custom JWT |
|
|
147
|
+
|
|
148
|
+
For unknown domains, identify the key trade-offs and build questions on the fly.
|