scute-pty-e2e
Run agentic PTY smoke tests for scute (shell integration, output channels, and TUI) with scripted scenarios and log capture.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Run agentic PTY smoke tests for scute (shell integration, output channels, and TUI) with scripted scenarios and log capture.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | scute-pty-e2e |
| description | Run agentic PTY smoke tests for scute (shell integration, output channels, and TUI) with scripted scenarios and log capture. |
| references | [] |
This skill runs PTY-based smoke scenarios that exercise real shell integration, output channels, and the TUI. Use it when you need fast, agentic feedback on the shell/TUI experience.
python3bunOPENAI_API_KEY) or a local provider.scripts/agent/pty_runner.pyscripts/agent/scenarios/suggest-stdout.json — suggest via CLI, stdout outputscripts/agent/scenarios/suggest-keybinding.json — suggest via Alt+G keybindingscripts/agent/scenarios/explain-stdout.json — explain via CLI, stdout outputscripts/agent/scenarios/explain-keybinding.json — Ctrl+E → choose menu → explain actionscripts/agent/scenarios/build-stdout.json — build TUI, submit with Enterscripts/agent/scenarios/generate-stdout.json — generate via CLI, stdout outputscripts/agent/scenarios/clipboard-file.json — suggest to clipboard, verify filescripts/agent/scenarios/choose-cancel.json — choose menu opens, cancel with qscripts/agent/scenarios/choose-explain.json — choose menu → select explainscripts/agent/scenarios/choose-keybinding.json — Ctrl+E → choose menu → cancelscripts/agent/run-all — runs all granular scenarios, prints pass/fail summaryscripts/agent/run-one <name> — runs a single scenario by nameconfigs/agent-pty.yml/tmp/scute-pty-<scenario-name>.log/tmp/scute-clipboard.txtbash (clean shell: --noprofile --norc)configs/agent-pty.ymlscute-test$ /tmp/scute-clipboard.txt# Run ALL granular scenarios and get a pass/fail summary
scripts/agent/run-all
# Run a single scenario by name
scripts/agent/run-one suggest-stdout
scripts/agent/run-one explain-stdout
scripts/agent/run-one build-stdout
scripts/agent/run-one generate-stdout
scripts/agent/run-one clipboard-file
scripts/agent/run-one suggest-keybinding
scripts/agent/run-one explain-keybinding
scripts/agent/run-one choose-cancel
scripts/agent/run-one choose-explain
scripts/agent/run-one choose-keybinding
Override shell/config:
scripts/agent/run-one suggest-stdout --shell zsh
scripts/agent/run-all --shell zsh --config configs/agent-pty.yml
Suppress step-by-step output:
scripts/agent/run-all --quiet
Each scenario is a JSON file with a prompt string and a steps array. Available step types:
| Step | JSON Syntax | Description |
|---|---|---|
send_line | {"send_line": "command"} | Send text + CR (submits the line) |
send_text | {"send_text": "text"} | Send text without submitting |
send_keys | {"send_keys": ["CTRL+E"]} | Send special key sequences |
sleep | {"sleep": 1.5} | Wait a fixed duration (seconds) |
wait_for_prompt | {"wait_for_prompt": true, "timeout": 10} | Wait for prompt in NEW output only; resets buffer after match |
wait_for_text | {"wait_for_text": "expected", "timeout": 10} | Wait for specific text in output |
assert_output_contains | {"assert_output_contains": "text"} | Assert buffer contains text |
assert_output_not_contains | {"assert_output_not_contains": "text"} | Assert buffer does NOT contain text |
assert_file_exists | {"assert_file_exists": "/path"} | Assert file exists on disk |
assert_file_contains | {"assert_file_contains": "/path", "expected": "text"} | Assert file contains text |
clear_buffer | {"clear_buffer": true} | Reset the output buffer to empty |
drain | {"drain": true, "idle_ms": 200} | Read until output settles (no data for N ms) |
delete_file | {"delete_file": "/path"} | Delete a file (cleanup before test) |
All string values in steps support {variable} interpolation:
{scute_bin} — absolute path to the scute binary{config} — absolute path to the config file{shell} — shell name (bash/zsh/sh){prompt} — the prompt string from the scenarioENTER, TAB, ESC, CTRL+A, CTRL+C, CTRL+D, CTRL+E, CTRL+G, CTRL+U, UP, DOWN, LEFT, RIGHT, BACKSPACE, ALT+G, HOME, END
run-all and run-one exit with code 0 on pass, 1 on failure. Assertion failures are printed to stderr./tmp/scute-pty-<name>.log to inspect raw terminal output./tmp/scute-clipboard.txt for clipboard channel verification.Use these with any agent that can run shell commands and read files:
Run scripts/agent/run-one suggest-stdout. If it fails, read /tmp/scute-pty-suggest-stdout.log (last 120 lines) and diagnose the issue.
Run scripts/agent/run-one explain-stdout. If it fails, read /tmp/scute-pty-explain-stdout.log and summarize what went wrong.
Run scripts/agent/run-one clipboard-file. If it passes, the clipboard output channel works. If it fails, check /tmp/scute-pty-clipboard-file.log and /tmp/scute-clipboard.txt.
Run scripts/agent/run-all and report the pass/fail summary. For any failures, include the last 120 lines of the corresponding log file.
--timeout (seconds) on the command line.configs/agent-pty.yml is used (not a different config).build-stdout scenario sends ENTER after 2s — increase the sleep if the TUI is slow to render.scute init ran successfully by reading the log after the init step.