提問面板
一個「提問」按鈕(右下角)會打開頁面上的側邊面板:問題輸入框、Haiku/Sonnet 切換、串流回答、同一執行緒內的追問、停止,以及選取文字後再按「就這點提問」來引用一段文字。一個小工具,兩個根據執行時期選擇的後端:
| 頁面位置 | 後端 | 回答來源 |
|---|---|---|
| claude.ai 成品 | claude.use("sample"),使用檢視者自己的 Claude | 頁面文字 |
由 ask-open 提供服務 | lens serve.py (claude -p,唯讀) | 頁面文字,加上 --repo 中的檔案 |
純本機 file:// | 無:按鈕永不顯示 | 不適用 |
步驟
- 發佈為成品:
python3 ~/.claude/skills/ask-panel/scripts/inject.py report.html(原地修改,或加上-o out.html),然後以capabilities: {sample: {}}發佈該檔案。如同任何其他能力,先載入artifact-capabilities技能。 - 在本機顯示:
~/.claude/skills/ask-panel/scripts/ask-open report.html [--repo DIR]。它會注入腳本、啟動伺服器並開啟瀏覽器。它會持續執行直到按 Ctrl-C,因此請以背景指令啟動。它只服務該份報表,使用自己的連接埠。它會賦予開啟的頁面 lens 金鑰,因此只用它來開啟受信任的報表。 - 告知使用者頁面上已有一個提問按鈕。這就是整個交接過程。
規則
- 關於頁面的問題應在頁面的面板中提出。 請勿在工作階段中回答這些問題,也請勿使用成品留言進行問答(留言會回到工作階段)。如果問題需要實際工作(更改程式碼、新的調查),那是新任務,而非面板問題。
- 注入操作是冪等的,並且會跳過 lens 課程(它們有自己的提問功能)。
- 成品模式僅在點擊時呼叫
sample,絕不在載入時呼叫。not_granted與其他永久性代碼會隱藏面板。 - 模型文字僅使用 DOM 節點呈現,絕不作為 HTML 呈現。
檔案
assets/ask-panel.js、assets/ask-panel.css(小工具,由 inject.py 內嵌)、scripts/inject.py、scripts/ask-open。本機後端是 ~/.claude/skills/lens/scripts/serve.py;對於非 lens 課程的頁面,它會以 mode: "report" 回應 POST /__lens/ask。
測試:node ~/.claude/skills/ask-panel/scripts/test-panel.mjs(Playwright,假 claude,無網路),以及 python3 ~/.claude/skills/lens/scripts/test-serve.py 用於測試伺服器。