ワンクリックで
hitl-test
Usage: Run HITL tests. Executes human-in-the-loop test scenarios against a live agent-intercom server with real Slack integration.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Usage: Run HITL tests. Executes human-in-the-loop test scenarios against a live agent-intercom server with real Slack integration.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Browser automation skill. Drives agent-browser through structured navigate→snapshot→interact→re-snapshot flows with authentication support, form automation, visual verification, and explicit human checkpoints for external flows.
Autonomous iterative experimentation loop. Defines a measurable goal, establishes a baseline, then iterates modify→commit→measure→keep/revert until the goal is met or the budget is exhausted. Persists a TSV experiment log under the configured results directory.
GI/GR reconciliation gate for shipment manifests — verifies every manifest item exists in queue (pre-mode) or archive (post-mode) with the expected status before or after backlogit_ship_shipment runs.
On-demand harness health diagnostic. Checks manifest presence, version drift, file integrity, cross-reference validity, MCP tool availability, and template variable residue. Produces a per-category graded health report.
Multi-phase security audit skill. Scans agentic config surfaces and application source for OWASP Top 10 vulnerabilities, STRIDE threats, and config hygiene issues. Produces a scored, graded report persisted to the configured security docs directory (default: docs/security).
Scaffolds compilable but failing test harnesses for feature and chore tasks
| name | hitl-test |
| description | Usage: Run HITL tests. Executes human-in-the-loop test scenarios against a live agent-intercom server with real Slack integration. |
| version | 3.1 |
| maturity | experimental |
Executes structured test scenarios against a live agent-intercom server to validate the full Slack-mediated approval workflow, operator steering queue, task inbox, modal instruction capture, text-only thread @-mention replies (US17), file attachments, audit logging, detail levels, stall detection, and (in ACP mode) session lifecycle, threading, and workspace routing — all with a real human operator.
When the server session has a session_thread_ts set (always in ACP sessions,
and in MCP sessions with an active thread), the following tools change behavior:
| Tool | Old behavior (non-threaded) | New behavior (threaded, US17) |
|---|---|---|
transmit | Posts block-kit card with Continue/Refine/Stop buttons | Posts plain text in thread; waits for @agent-intercom continue/refine/stop @-mention reply |
standby | Posts block-kit card with Resume with Instructions button | Posts plain text in thread; waits for @agent-intercom resume <instruction> @-mention reply |
check_clearance | Posts block-kit card with Approve/Reject buttons | Posts plain text in thread; waits for @agent-intercom approve/reject <reason> @-mention reply |
Main channel messages (no thread) are unchanged — they still use block-kit buttons.
| Tool | Keywords | Example |
|---|---|---|
transmit / forward_prompt | continue, refine <text>, stop | @agent-intercom refine focus on error handling |
standby / wait_for_instruction | resume <text>, stop | @agent-intercom resume switch to integration tests |
check_clearance / ask_approval | approve, reject <reason> | @agent-intercom reject too risky |
@agent-intercom) defaults to "continue".agent-intercom is running via run_debug.ps1 (or the VS Code task "Run agent-intercom (debug)")channel_id in .vscode/mcp.json.intercom/settings.json with auto-approve rules (Scenario 3 will baseline this)/acom prefix (e.g., /acom steer, /acom task)/arc prefix (e.g., /arc session-start, /arc steer)--mode acpconfig.toml has valid host_cli and host_cli_args fields pointing to an ACP-capable agent binary[[workspace]] mapping exists in config.toml for the test channelCall ping with status_message: "HITL test suite starting" to confirm the MCP server is reachable.
ping returns acknowledged: true, report success and proceed.ping returns an error or times out, halt immediately — the server is not running or the MCP connection is not configured. Instruct the user to start the server and ensure .vscode/mcp.json points to the correct SSE endpoint.Ask the operator which mode the server is running in. This determines which scenario file to load:
| Mode | Scenario file | Slash prefix | Description |
|---|---|---|---|
| MCP | scenarios-mcp.md | /acom | Default MCP transport — tests approval workflow, steering, task inbox, terminal command gate, audit, stall detection |
| ACP | scenarios-acp.md | /arc | ACP transport — tests session lifecycle (start/stop/restart), threading, workspace routing, plus core approval/steering/task flows |
How to select:
.github/skills/hitl-test/scenarios-mcp.md.github/skills/hitl-test/scenarios-acp.mdCall broadcast with:
message: "[HITL TEST] Starting {mode} test suite. Please monitor Slack for approval requests. Tests will instruct you to APPROVE or REJECT each proposal."level: "info"(Replace {mode} with MCP or ACP based on the selected mode.)
Then call transmit with:
prompt_text: "HITL test suite ({mode} mode) is ready to begin. Are you monitoring the Slack channel? Reply 'go' to start."Wait for the operator's response. If the operator confirms, proceed. If the response indicates they are not ready, wait and re-prompt.
Load scenarios from the mode-specific file selected in Step 2:
.github/skills/hitl-test/scenarios-mcp.md.github/skills/hitl-test/scenarios-acp.mdFor each scenario:
"▶ Scenario {N}: {name}" in the chat response so the developer has visibility regardless of MCP state.broadcast with message: "[TEST] Starting scenario {N}: {name}", level: "info". If this call fails or hangs, skip it — do not let a logging failure stall the suite.broadcast with message: "[TEST] Result: {PASS|FAIL} — {name} — {details}", level: "success" for PASS or level: "warning" for FAIL.Critical rule: Chat output is the primary reporting channel. broadcast calls during scenario execution are supplementary. If any broadcast call returns an error, log the error in chat and proceed — never retry a failed broadcast or block on it.
After all scenarios complete, produce a markdown summary table:
## HITL Test Results — {mode} Mode — {date}
| # | Scenario | Expected | Actual | Status |
|---|----------|----------|--------|--------|
| 1 | ... | ... | ... | PASS |
| 2 | ... | ... | ... | FAIL |
Include a final count: {passed}/{total} scenarios passed.
Post the summary via broadcast with level: "info" so it appears in the Slack channel for the operator to see.
Also output the summary in the chat for the developer to review.
switch_freq with mode: "remote" to restore the default mode if it was changed during testing. If this call fails, note it in chat and continue.broadcast with message: "[HITL TEST] {mode} suite complete. {passed}/{total} passed.", level: "success" if all passed or level: "warning" if any failed. If this call fails, the chat summary from Step 5 is sufficient./arc session-clear.If the MCP server became unresponsive during the suite, skip all Step 6 calls entirely — they will also hang. The chat summary is the authoritative record.
| Error | Action |
|---|---|
ping fails | Halt — server not running |
| Operator does not respond to readiness prompt | Re-prompt once after 30 seconds, then halt |
| Individual scenario tool call fails | Record as FAIL in chat, best-effort broadcast, continue to next scenario |
broadcast itself fails | Log the error in chat only and continue — never stall on a logging call |
check_diff returns patch_conflict | Record as FAIL with details, continue |
| Operator rejects when approval was expected (or vice versa) | Record as FAIL — this tests the operator following instructions |
| Any MCP tool call hangs (no response) | If no response within a reasonable time, record as FAIL/TIMEOUT in chat, skip remaining steps for that scenario, continue to next scenario |
| ACP session-start fails (handshake timeout) | Record as FAIL, skip scenarios that depend on an active session |
Every MCP tool call during scenario execution is independently failable. A failure in one call must never prevent the agent from:
If the MCP server becomes entirely unresponsive mid-suite, the agent should:
| File | Mode | Scenarios | Key features tested |
|---|---|---|---|
scenarios-mcp.md | MCP | 22 | Ping, broadcast, auto-approve, approval/rejection, modal capture, wait-for-instruction, mode toggle, state recovery, double-submission prevention, risk levels, file attachments, steering queue, task inbox, modal dismiss, auto-approve suggestion, detail levels, audit log, stall detection, terminal command gate |
scenarios-acp.md | ACP | 22 | Ping, broadcast, session-start, session threading, sessions list, pause/resume, approval/rejection, modal capture, wait-for-instruction, steering queue, task inbox, checkpoints, session-stop, session-restart, max sessions, ACP-only commands, workspace mapping, stall detection, session-clear, audit log |
logs/hitl-results-{mode}-{timestamp}.md.--mode acp before the ACP suite can begin.