一键导入
brewtools-think-short
Installs or removes the think-short terse-mode hooks. Triggers: think-short, be terse, terse mode, инжект терс-режим.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Installs or removes the think-short terse-mode hooks. Triggers: think-short, be terse, terse mode, инжект терс-режим.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
SSH server management — connect, configure, deploy, administer Linux servers with safety gates.
Manager mode. on installs+arms a HARD delegation wall into THIS project (PreToolUse denies Write/Edit/Bash in main session, subagents free); off disarms; uninstall removes it. Codeword ++m auto-injects a delegate-everything prompt (plan-aware: adds the plan supplement in plan mode); ++a auto-injects an architecture-first directive (mode-agnostic); ++rr/++r auto-inject review discipline (anti-regression / two-phase double-check), all independent of this skill. level strict|balanced, status, edit, reset. Triggers: manager, менеджер, hard mode, хард режим, delegate.
Creates and improves Claude Code subagents. Triggers: create agent, improve agent, scaffold agent, fix agent.
Extracts etalon classes, patterns, architecture into convention docs. Triggers: extract conventions, etalon classes.
Orchestrates e2e testing: BDD scenarios, Playwright autotests. Triggers: e2e tests, BDD scenarios, write autotest.
Syncs KNOWLEDGE.jsonl or session learnings to project rules. Triggers: rules, knowledge sync, extract rules.
| name | brewtools:think-short |
| description | Installs or removes the think-short terse-mode hooks. Triggers: think-short, be terse, terse mode, инжект терс-режим. |
| argument-hint | [install|remove] [project|global] | free-text intent |
| allowed-tools | Read, Bash, AskUserQuestion, Task |
| model | sonnet |
| user-invocable | true |
| disable-model-invocation | true |
Install-only skill. It wires three self-contained hooks (SessionStart, UserPromptSubmit, PreToolUse:Task) that inject a terse-output prompt — or removes them. No on/off toggle, no profiles, no project-level config — only an ephemeral per-session counter in the OS temp dir (
os.tmpdir()/brewtools-think-short/<session_id>.think-short-counter), auto-pruned. The hooks own all runtime behavior. This skill only decides install vs remove and project vs global, then delegates the file work to thebrewcode:hook-creatoragent following the runbook.
| Hook | Behavior |
|---|---|
| SessionStart | inject the full terse prompt + reset the per-session counter |
| UserPromptSubmit | inject the full prompt every 10th user prompt (10/20/30…, not the 1st) |
PreToolUse:Task|Agent | inject the full terse prompt into spawned subagents (coexistence-safe with other Task hooks) |
$CLAUDE_PLUGIN_ROOT is NOT inherited by the Bash tool in main-conversation slash invocations. Resolve dynamically:
BT_ROOT="${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/claude-brewcode/brewtools/*/ 2>/dev/null | sort -V | tail -1 | sed 's:/*$::')}"
test -d "$BT_ROOT/skills/think-short/assets" || { echo "❌ BT_ROOT invalid: $BT_ROOT"; exit 1; }
Asset paths (all under $BT_ROOT/skills/think-short/assets/):
INSTALL.md — full install/remove runbook (project + global + remove)think-short-session.mjs, think-short-prompt-counter.mjs, think-short-task.mjs, think-short-prompt.md — the hook files that travel togetherNever use
Write/Editon~/.claude/*— protected path, blocked in ALL modes. Global install/remove runs through the Bash tool only (cp+nodemerge). The hook-creator agent handles this per the runbook.
Read $ARGUMENTS.
remove, uninstall, delete, убери, удали, выключи, сними, off, disable.AskUserQuestion (options: Install / Remove).global: global, глобально, for all projects, всех проектах.project: project, this repo, локально, здесь, этот проект.AskUserQuestion: "Install think-short for this Project or Globally?" (options: Project / Global). Do not auto-guess.For remove with unspecified target, ask the same Project/Global question (or offer to clean both if the user says "everywhere").
Tell the user plainly what will happen, e.g.:
Installing think-short hooks (SessionStart + UserPromptSubmit + PreToolUse:Task) into
<repo>/.claude/and merging<repo>/.claude/settings.json.
Then verify assets and delegate to brewcode:hook-creator via the Task tool. Pass it: the chosen action (install|remove), the chosen target (project|global), the absolute runbook path, and the absolute assets source dir.
EXECUTE using Bash tool (resolve + print the absolute runbook and assets-dir paths to hand off):
BT_ROOT="${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/claude-brewcode/brewtools/*/ 2>/dev/null | sort -V | tail -1 | sed 's:/*$::')}"
test -d "$BT_ROOT/skills/think-short/assets" || { echo "❌ BT_ROOT invalid: $BT_ROOT"; exit 1; }
echo "ASSETS_DIR=$BT_ROOT/skills/think-short/assets"
echo "RUNBOOK=$BT_ROOT/skills/think-short/assets/INSTALL.md" && echo "✅ assets ok" || echo "❌ FAILED"
STOP if ❌ — plugin cache incomplete; reinstall/update brewtools first.
Spawn the agent (substitute ACTION, TARGET, RUNBOOK, ASSETS_DIR from above):
Task(subagent_type="brewcode:hook-creator", prompt="
Follow the runbook at RUNBOOK exactly — it self-locates its source via SRC=\$(dirname \"\$RUNBOOK\").
ACTION = ACTION (install|remove)
TARGET = TARGET (project|global)
RUNBOOK = RUNBOOK (absolute path to assets/INSTALL.md)
ASSETS_DIR = ASSETS_DIR (absolute path to the assets source dir — copy the 4 hook files FROM here)
Copy/merge or strip the 4 think-short hook assets per the runbook's marker convention, copying from ASSETS_DIR.
Project target: Write/Edit settings.json freely. Global target (~/.claude/*): BASH ONLY (cp + node merge), never Write/Edit — protected path.
Merge = append + dedupe by think-short-*.mjs script path. Remove = strip entries by those markers, drop empty event arrays, delete the 4 files.
Report which hooks were installed/removed and the exact settings.json path.
")
After hook-creator returns, report:
settings.json that changed (project or global path),/reload needed (plain settings.json hooks; SessionStart fires on next claude start / --resume).| Condition | Response |
|---|---|
BT_ROOT resolves but $BT_ROOT/skills/think-short/assets missing | ERROR: think-short: assets not found under $BT_ROOT — plugin cache incomplete. STOP. |
Neither $CLAUDE_PLUGIN_ROOT set nor any cached plugin dir found | ERROR: think-short: cannot locate plugin root — install/update brewtools first. STOP. |
| Intent ambiguous | AskUserQuestion: Install / Remove. |
| Target unspecified | AskUserQuestion: Project / Global. |
| Global target | Hook-creator MUST use Bash only (cp + node merge) — ~/.claude/* is protected. |
Verify the 4 assets exist and the scripts parse before delegating:
BT_ROOT="${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/claude-brewcode/brewtools/*/ 2>/dev/null | sort -V | tail -1 | sed 's:/*$::')}"
A="$BT_ROOT/skills/think-short/assets"
test -d "$A" || { echo "❌ assets dir missing"; exit 1; }
for f in think-short-session.mjs think-short-prompt-counter.mjs think-short-task.mjs think-short-prompt.md INSTALL.md; do
test -f "$A/$f" || { echo "❌ missing $f"; exit 1; }
done
node --check "$A/think-short-session.mjs" && \
node --check "$A/think-short-prompt-counter.mjs" && \
node --check "$A/think-short-task.mjs" && \
echo "✅ smoke" || echo "❌ smoke FAILED"
Expected: ✅ smoke.