grilling-sleek
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Split and organize AI code changes into well-structured commits following this project's conventions. Use this skill whenever committing changes — whether one file or many. Trigger when the user asks to commit, save, submit, or stage changes, or when dirty files need committing after a task. Also use when multiple files were edited and need logical grouping into separate commits, or when the user asks about commit conventions for this project.
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
Execute the grill-me-sleek release process. Use this skill when the user wants to publish a new version, create a release, bump version numbers, or says things like "release v0.2.0", "publish a new version", "cut a release", "ship it", or "prepare release". Also use when the user mentions CHANGELOG updates combined with version bumping in this project.
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
| name | grilling-sleek |
| description | Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases. |
Interview me relentlessly about every aspect of this until we reach a shared understanding. Walk down each branch of the decision tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
Ask about one branch at a time, waiting for my feedback on each branch before continuing. Asking about several branches at once is bewildering.
If a fact can be found by exploring the environment (filesystem, tools, etc.), look it up rather than asking me. The decisions, though, are mine — put each one to me and wait for my answer.
Do not act on it until I confirm we have reached a shared understanding.
You grill me through a web UI: each batch of questions becomes one web page I review and submit. The CLI is installed globally via npm and communicates with the Hub to create and manage grilling sessions.
One decision-tree branch per round. Each batch's questions covers the sub-decisions of one branch. Resolve that branch from my answers, then push the next branch's questions.
The CLI is distributed via npm. Install it globally:
npm install -g @grilling-sleek/cli
Or use it directly with npx:
npx @grilling-sleek/cli --help
The CLI needs node >= 22 on the machine you run it on.
Once installed, use the grilling-sleek command directly:
grilling-sleek <command> [flags]
The CLI talks to the production Hub by default. Large input goes via stdin (--file -) or a heredoc -- never inline for big batches.
If the CLI is unavailable, fall back to grilling me in plain terminal chat: ask one branch's questions, wait, proceed. Keep the same one-branch-at-a-time discipline.
| Command | API | Use |
|---|---|---|
| create | POST /sessions | Create a session + first branch's questions |
| poll | GET .../response?wait= (loop) | Block until I submit answers |
| push | POST .../rounds | Push the next branch's questions |
| complete | PATCH /sessions/{id} | End the session (after shared understanding) |
| cancel | PATCH /sessions/{id} | Abort (I abandoned, context lost, etc.) |
| status | GET /sessions/{id} | Query session state |
Flags: --file - or (input, default stdin), --inline (small only), --json [fields] (machine-readable stdout, optional field filter), --wait (poll total timeout, default 600), --round (poll a specific round), --reason + --detail (cancel).
create and push return immediately -- they do not wait. Always split into three steps so you can surface the URL to me before blocking:
# First branch -- create returns immediately with the URL
URL=$(grilling-sleek create --json url <<'EOF'
{ ...grilling for first branch... }
EOF
)
# tell me the URL in the TUI (Markdown), e.g. Answer round 1 here: $URL
grilling-sleek poll <id> --wait 600 # blocks until I submit
# Each subsequent branch: push (returns at once), show the same URL, poll
grilling-sleek push <id> <<'EOF'
{ ...grilling for next branch... }
EOF
grilling-sleek poll <id> --wait 600 # blocks until I submit
# ...repeat until the tree is resolved...
grilling-sleek complete <id>
Never pass --wait to create or push: it blocks those calls and denies you the chance to print the URL before waiting. The URL stays the same across rounds -- the browser reloads to the next branch automatically, so you only need to point me at it once per session (and can remind me for later rounds).
Read schemas/grilling.json for the authoritative schema. Quick reference:
Example, one branch (auth approach) as one round:
{
"name": "Auth approach",
"description": "Locking down the authentication strategy before we touch code.",
"questions": [
{
"id": "q_auth_scheme",
"header": "Auth",
"text": "Which authentication scheme should we use?",
"type": "single",
"options": [
{ "label": "JWT, stateless", "description": "Signed tokens; no server session store." },
{ "label": "Server sessions", "description": "Opaque session ID in a DB/Redis." },
{ "label": "OAuth 2.0 / OIDC", "description": "Delegate to an IdP." }
],
"recommended": 0,
"explanation": "Stateless JWT fits our horizontally-scaled, read-heavy API; refresh tokens cover revocation."
},
{
"id": "q_token_storage",
"header": "Token store",
"text": "If JWT, where do we keep refresh-token allowlist state?",
"type": "multi",
"required": false,
"options": [
{ "label": "Redis" },
{ "label": "Postgres" },
{ "label": "None (short TTL only)" }
],
"recommended": 0,
"explanation": "Redis gives sub-ms revocation checks; pair with short access-token TTL."
}
]
}
poll returns my answers on stdout as JSON. The CLI normalizes everything to exit codes -- do not judge by exit code alone, parse the JSON:
stdout is pure JSON (parse it directly); stderr has human-readable progress/warnings. 2>/dev/null gives clean JSON.
When we reach shared understanding:
If I abandon the grilling or you lose context, run grilling-sleek cancel so the session does not linger until TTL.
The CLI supports persistent configuration via ~/.config/grilling-sleek/config.json.
# Set a configuration value
grilling-sleek config set server http://192.168.1.100:3000
# Get a configuration value
grilling-sleek config get server
# List all configuration
grilling-sleek config list
# Unset a configuration value
grilling-sleek config unset server
To use a self-hosted server, configure the CLI once:
grilling-sleek config set server http://192.168.1.100:3000
After configuration, all commands will automatically use the configured server.