aieo-product/claude_qamods/tree/main/plugins/qa-guide

一個 Claude Code 模組,為 AskUserQuestion 提示開啟一個側邊窗格,顯示 AI 解釋、選項效果、最近指令和回答歷史。可透過 claude-qamods 市集安裝;需要 Claude Code 2.1.286+ 和早期存取的 function-hooks 外掛程式 API。
aieo-product/claude_qamods/tree/main/plugins/qa-guide

qa-guide 是一個 Claude Code 模組,當 Claude 在 AskUserQuestion 中提問時,它會開啟一個側邊面板,顯示問題的原因、每個選項的結果、最近的指令和回答歷史。在精簡顯示模式下,它會透過 Haiku 產生有限的提示背景解釋(預設,不依賴會話長度);在完整上下文模式下,它會分叉會話的轉錄並重新產生考慮了整個會話的解釋。回答後,它會顯示選擇卡和最近 20 條歷史記錄,可以透過 p / n / l 進行導航。要求是 Claude Code 2.1.286 或更高版本(早期存取的 function-hooks API),並且當寬度為 144 字元或更多時,窗格會自動開啟。安裝方法是 /plugin marketplace add aieo-product/claude_qamods 和 /plugin install qa-guide@claude-qamods。在隱私方面,它不進行自己的網路傳輸,資料僅保存在會話記憶體中($.state),不寫入磁碟。AI 解釋的啟用/禁用、上下文的精簡/完整模式以及成本顯示(showCost)可以透過 /config 或 /plugin configure 進行切換。
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add aieo-product/claude_qamods claude plugin install qa-guide
日本語 · English
Claude Code mods that make Claude's questions easier to read and answer.
The first mod, qa-guide, opens a side pane whenever Claude asks you something with AskUserQuestion. The pane explains why Claude is asking and what each option leads to, so you can answer without scrolling back through the conversation.

▶ Demo video: landscape 16:9 · portrait 9:16
Claude's question dialog shows a question and a few short options. After a long session it is easy to lose track of what the question is about, so you end up scrolling back through the transcript before you can answer. qa-guide keeps that context next to the dialog.
While a question is open (compact view, fits the pane without scrolling)
compact context or full context.After you answer (full view)
p / n / l, or open one from the list| Full view after answering | Browsing history with p / n |
| --- | --- |
|
|
|
/qa-guide opens it at any width.Run these commands inside Claude Code:
/plugin marketplace add aieo-product/claude_qamods
/plugin install qa-guide@claude-qamods
The installer may report unset userConfig options. You can ignore this: language defaults to auto, context to compact, and showCost to on. To change an option, run /plugin configure qa-guide@claude-qamods or use /config.
To update, run /plugin marketplace update claude-qamods and then /plugin update qa-guide@claude-qamods. To remove it, run /plugin uninstall qa-guide@claude-qamods.
When Claude asks a question, the pane opens next to the dialog. Answer in the dialog as usual.
The default language option is auto. A question or option label containing hiragana or katakana selects Japanese; otherwise, the pane and AI explanation use English. Chinese text alone selects English. Each history entry keeps the language chosen when it was created; entries saved by older versions stay Japanese.

Run /config and set qa-guide's language option to en or ja to choose a fixed language, or auto to restore automatic selection. Before any question exists, automatic selection uses Claude Code's language setting when available (Japanese selects Japanese; other languages select English), then the locale (LC_ALL, or LANG when LC_ALL is empty). A locale starting with ja selects Japanese; otherwise, the fallback is English.

The context option defaults to compact: explanations use a bounded summary and Haiku, so their input does not grow with the session. Set context to full in /config to use the whole session for every new explanation. For one question, choose Full context to replace its explanation with a new one using the whole session. The button can be clicked on surfaces that support clicks. After answering, focus the pane and press f.
In the Claude Desktop app, the Full context button can be clicked while the question dialog is still open.
The showCost option is an on / off picker and defaults to on. Set it to off in /config or /plugin configure qa-guide@claude-qamods to show measured tokens without the API-price estimate.
| Control | Where | Action |
| --- | --- | --- |
| /qa-guide | prompt | Open the guide (also before the first question) |
| p / n | pane focused | Previous (older) / next (newer) question |
| l | pane focused | Back to the latest question |
| h | pane focused | Show or hide the history list |
| a | pane focused | Turn AI explanations on or off for the next questions |
| f / Full context | pane focused / button | Regenerate the selected question's explanation using the whole session |
| Ctrl+X then Tab, or click | anywhere | Move keyboard focus into the pane |
| Esc | pane focused | Return focus to the prompt |
While the question dialog is open it holds the keyboard, so the pane cannot be scrolled. That is why the compact view is sized to fit. After you answer, the full view can be scrolled.
qa-guide is a single hooks module, plugins/qa-guide/hooks/register.tsx:
| Hook | What it does |
| --- | --- |
| prompt.submit | Records the last 5 prompts you typed (origins composer, bridge, sdk) |
| tool.call (AskUserQuestion) | Collects context, opens the pane, starts the AI explanation without blocking, then waits for the dialog and stores the answer |
| ui.render (Pane) | Draws the compact view while the question is open and the full view afterwards |
| session.start / command.run | Registers and handles /qa-guide |
By default, the AI explanation uses $.model.complete with model: 'haiku' and an output limit of 1,500 tokens. Its compact prompt contains qa-guide's instructions, your last 3 prompts (up to 600 characters each), the tail of Claude's lead-up text (up to 2,500 characters), a summary of tool activity since your last real prompt (the last 12 tool uses, each tool name and first string input clipped to 120 characters), and the questions. The entire prompt is capped at 12,000 characters, regardless of transcript size.
With context: full or Full context, qa-guide uses $.model.fork to ask one tool-less question over the session's existing transcript on the session's model. If Claude asks before the session has produced its first response, there is no transcript to fork yet, so this path falls back to a short haiku completion. The explanation arrives while you are still reading, and the dialog is never held back. A newer explanation replaces the selected entry's previous explanation; late results from an older run are ignored. State lives in $.state, so it survives a hot reload but not the end of the session.
context: full sends the whole session transcript to the session's model through a fork; if no transcript exists yet, it falls back to a short Haiku completion.$.state) and are gone when the session ends.a to turn automatic explanations off; rendering the pane alone never calls a model.
| | What is sent | Approximate tokens |
| --- | --- | --- |
| Pane (no AI) | Nothing. Your recent prompts and Claude's lead-up text are read from the local session. | 0 |
| AI explanation (compact, default) | Instructions, last 3 prompts (600 characters each), Claude's lead-up text (last 2,500 characters), last 12 tool summaries (120 characters each), and questions. The whole prompt is capped at 12,000 characters; the full transcript is not sent. | Input: typically ~1,500–4,000, independent of session length (tokens vary by language and content).<br>Output: up to 1,500. |
| AI explanation (full context) | A fork of the whole session transcript, plus qa-guide's instructions, your last 3 prompts (up to 600 characters each) and the question. Used by context: full and the Full context button. | Transcript: read from the prompt cache (as many tokens as the session holds).<br>Added input: ~1,000–3,000.<br>Output: ~500–1,000, more if the model thinks. |
| Full-context fallback | Only when there is no transcript to fork yet: a short prompt with the recent instructions, Claude's lead-up text and the questions. | Input: typically ~1,500–4,000.<br>Output: up to 1,500. |
haiku or session for the model used. The compact view shows this line when a row is available. A Full context re-run replaces that entry's usage with the new result.≈ $0.0052 (API price). It multiplies measured tokens by a built-in table of USD list prices as of 2026-09, including cache reads and cache writes (1.25 × the input rate). This table must be updated when prices change. Unknown models show tokens only.+, as in ≈ $0.031+, means some usage could not be priced. These totals survive a hot reload and reset when the session ends.haiku alias, priced as claude-haiku-4-5. Full-context forks run on the session's model, whose ID is read when the request starts, so switching with /model changes them too. If a full-context run falls back to Haiku, the fork and fallback usage are priced separately and added together./model, the whole transcript is processed as fresh input once. Compact mode never forks the transcript.| Symptom | Fix |
| --- | --- |
| The pane does not open when Claude asks | The terminal is narrower than 144 columns. Widen it, or run /qa-guide. A toast tells you when this happens. |
| /qa-guide is not recognised | Run /plugin and check that qa-guide@claude-qamods is installed and enabled, then start a new session. |
| AI explanation says it could not be generated | The model request failed or returned no text (for example an API error or rate limit). The rest of the pane still works, and the next question tries again. |
| Nothing renders after a Claude Code update | The early-access API may have changed. Please open an issue with your Claude Code version. |
git clone https://github.com/aieo-product/claude_qamods
cd claude_qamods
claude --plugin-dir plugins/qa-guide # try it in a session
Checks:
claude plugin validate . # marketplace manifest
claude plugin validate plugins/qa-guide # plugin manifest and hooks module
claude plugin test plugins/qa-guide # tests on terminal and desktop surfaces
npx -y -p typescript@5 tsc -p plugins/qa-guide --noEmit
Type checking needs the engine-written declarations in plugins/qa-guide/.claude-plugin/types/. They are gitignored, and Claude Code writes them the first time it loads the plugin from your checkout. See CONTRIBUTING.md for the full workflow.
Issues and pull requests are welcome. Please read CONTRIBUTING.md and the Code of Conduct. To report a security issue, follow SECURITY.md.
MIT © aieo-product