首页 / Skills / 开发提效 / 追问到底 Grill Me
开发提效

追问到底 Grill Me

Matt PocockMITSkill 语言: 英文
协议已核对不含脚本低风险
演示真实运行记录 · claude-sonnet-5-5 · 2026年10月
/grill-me I'm planning to add user login to my small web app (a recipe-sharing site, about 200 users). My plan: email + password, and let people stay logged in. Please grill me on it.
Skill: grilling

I'm starting from the root of the design tree. These questions don't depend on each other. Session mechanics, password storage and the threat model will hang off your answers.

I haven't looked at your codebase. If you tell me the stack, or point me at the repo, I'll check the facts myself and won't ask you for them.

❓ Q1 - Build or delegate?: Do you want to implement email and password auth yourself (hashing, sessions, reset flow)? The alternative is a hosted or library-backed option such as your framework's built-in auth, Auth0, Clerk, Supabase Auth or Firebase Auth. At 200 users, the cost of getting a custom implementation subtly wrong usually outweighs the cost of adopting a library.

➡️ Use your framework's mature auth library or a hosted provider. Don't hand-roll crypto or session handling. Email and password stays as the user-facing method.


❓ Q2 - What does login actually protect?: What can a logged-in user do that an anonymous visitor can't? Examples are posting recipes, editing or deleting only their own recipes, commenting, favoriting, or private recipes. Are there roles, such as an admin or moderator who can remove other people's content?

➡️ Anyone can browse. Login is required to create, and users can edit or delete only their own recipes. Add a single admin flag for moderation, and nothing more elaborate.


❓ Q3 - Existing data and users: Does the site already have content or "users" in some form, such as a name field or anonymous submissions? If so, how do existing recipes get attached to the new accounts?

➡️ Treat existing recipes as unowned. Let the admin assign them manually, or let an author claim one by email.


❓ Q4 - Email verification: Do you require users to confirm their email address before they can post?

➡️ Yes. Send a verification link, and allow browsing but not posting until it's confirmed. This stops typo'd addresses, which would lock people out of reset, and it stops spam signups.


❓ Q5 - Password reset: This is where "email and password" plans most often fail. Do you have a way to send transactional email reliably, such as Postmark, SES or Resend, with SPF/DKIM set up so messages don't land in spam? Will reset links be single-use and short-lived, around 1 hour?

➡️ Yes. Use a transactional email provider. Reset tokens are random, stored hashed, single-use and expire in 1 hour. Resetting a password also invalidates all existing sessions.


❓ Q6 - "Stay logged in" semantics: What does that mean to you? One option is a long-lived session cookie (say 30 days) that is HttpOnly, Secure and SameSite=Lax, backed by a server-side session you can revoke. The other is a stateless JWT. Should it be a "remember me" checkbox or the default behavior?

➡️ Use a server-side session with an opaque ID in an HttpOnly, Secure, SameSite=Lax cookie. Make it a 30-day sliding expiry as the default, because this is a low-risk site. Skip JWTs, since you can't revoke them easily and you gain nothing at this scale.


❓ Q7 - Abuse and brute force: Do you want rate limiting on login, signup and reset endpoints? For example, throttle per IP and per account, and add a CAPTCHA only if abuse actually shows up. Do you also want to reject known-breached or very weak passwords?

➡️ Yes to throttling on all three endpoints, with generic error messages ("invalid email or password") so accounts can't be enumerated. Set a minimum length of 10 and check against a breached-password list. Don't impose composition rules. Add a CAPTCHA only if abuse appears.


Once you've answered, the next round will cover password hashing and storage, CSRF, HTTPS and deployment, account deletion and data handling, and testing. Which of those apply will depend on what you pick for Q1.

How it was tried: I installed grill-me together with the grilling skill it calls, in a clean temporary folder, and invoked it as a slash command with a made-up plan (email and password login for a small recipe site). Only Skill and Read tools were allowed. This shows the first round of questions only; a real session continues once you answer them.

它做什么

grilling 这个 Skill 的一个简短入口:一轮不留情面的追问,在动手前把方案或设计压力测试一遍。真正提问的是 Matt Pocock 的 grilling,这个 Skill 只负责调用它。

工作方式

  1. 由你手动调用(它被标记为模型不会自己触发)。
  2. 它唯一的指令是让代理调用 grilling。
  3. 随后 grilling 就方案或设计向你逐个提问。

适合场景

想在写代码前被追问、被挑战的方案和设计。同时需要安装 grilling 这个 Skill。

说明与风险

低风险:纯指令文件:只有一行,让代理调用 `grilling` 这个 Skill。没有脚本、不联网、不写文件。它依赖 `grilling` 已安装,并且标记为只能手动调用(`disable-model-invocation`)。 已和 `grilling` 一起试用一次,只看到了第一轮提问。

SKILL.md 原文包内共 3 个文件