control-ui-e2e
Use when testing, fixing, or extending the Quiet Core bot Control UI GUI with Vitest + Playwright end-to-end checks, mocked Gateway WebSocket flows, mocked…
Skill by liuda1999
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/liuda1999-control-ui-e2e
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, testing, data, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/control-ui-e2e
What's inside
- Skill name
control-ui-e2e- Description
- Use when testing, fixing, or extending the Quiet Core bot Control UI GUI with Vitest + Playwright end-to-end checks, mocked Gateway WebSocket flows, mocked dashboard runs, screenshots/videos, or agent-verifiable browser proof.
- License
- MIT
- Instructions
- 71 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Control UI E2E
Use this for Control UI changes that need a real browser flow with deterministic Gateway data.
## Test Shape
- Use `ui/src/**/*.e2e.test.ts` for full GUI flows.
- Use `ui/src/test-helpers/control-ui-e2e.ts` to start the Vite Control UI and install a mocked Gateway WebSocket.
- Keep scenarios deterministic. Do not use live provider keys, real channel credentials, or a real Gateway unless the user explicitly asks for live proof.
- Prefer existing `.browser.test.ts` or unit tests for narrow rendering logic; use this E2E lane when the proof should cover routing, app boot, Gateway handshake, requests, and visible UI behavior together.
## Commands
- Target one E2E test in a Codex worktree:
```bash
node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner ui/src/ui/e2e/chat-flow.e2e.test.ts
```
- Run the whole local lane in a normal checkout:
```bash
pnpm test:ui:e2e
```
If dependencies are missing in a Codex worktree, install once with `pnpm install`; for broad GUI proof or dependency-heavy checks, use Testbox/Crabbox instead of running a wide local pnpm lane.
## Visual Proof Default
When running mocked Control UI/dashboard validation for a user-facing feature, produce visual proof by default unless the user explicitly opts out.
- Keep the Vitest E2E assertions deterministic; do not commit generated screenshots or videos.
- After or alongside the focused E2E test, run the mocked Control UI app when available, for example `pnpm dev:ui:mock -- --port <port>`.
- Drive Chromium with Playwright against the local mock URL and capture a video plus screenshots for each meaningful state: initial view, interaction input, result state, and final/paginated/selected state.
- Use `browser.newContext({ recordVideo: { dir, size }, viewport })`, `page.screenshot({ path })`, and close the context before reporting the video path.
- Put artifacts under `.artifacts/control-ui-e2e/<short-feature-name>/` or another clearly named local temp directory, and report the absolute paths in the final answer.
- Treat recording as validation, not only demo capture. If the recorder fails or shows surprising behavior, stop, fix the behavior, add or update a regression test, then rerecord.
- If visual proof is blocked, state the exact blocker and still report the textual E2E evidence.
## Mock Pattern
Start the app server, install the mock before `page.goto`, then assert both Gateway traffic and visible UI:
```ts
const server = await startControlUiE2eServer();
const page = await context.newPage();
const gateway = await installMockGateway(page, {
historyMessages: [{ role: "assistant", content: [{ type: "text", text: "Ready." }] }],
});
await page.goto(`${server.baseUrl}chat`);
await page.locator(".agent-chat__composer-combobox textarea").fill("hello");
await page.getByRole("button", { name: "Send message" }).click();
const request = await gateway.waitForRequest("chat.send");
await gateway.emitChatFinal({ runId: String(request.params.idempotencyKey), text: "Done." });
await page.getByText("Done.").waitFor();
```
Extend `installMockGateway` with typed scenario options or method responses when a new flow needs more Gateway surface.
## Standalone Recording
When recording an already-running mocked Control UI URL, use a temporary Playwright script or `playwright test` spec and keep the recording flow focused:
- Open the mock URL, interact through stable `data-*` selectors or user-facing role selectors, and wait on asserted states instead of relying on fixed sleeps.
- Assert both visible UI state and mocked Gateway traffic for request-driven flows. For example, verify the expected count/row is visible and that `sessions.list` was called with the expected `search`, `offset`, and `limit`.
- Use short sleeps only after assertions to make the captured video readable.
- Store the generated video under `.artifacts/control-ui-e2e/<feature>/`; do not commit it.From liuda1999/Quiet-Core-bot, MIT.
More from liuda1999/Quiet-Core-bot
- 0.589score
claw-score
liuda1999
Audit or refresh Quiet Core bot maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
acp-router
liuda1999
Route plain-language requests for Claude Code, Cursor, Copilot, QuietCore ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
browser-automation
liuda1999
Use when controlling web pages with the QuietCore browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
clawdtributor
liuda1999
Use for Quiet Core bot clawtributors PR/issue triage: Discrawl discovery, live-open rechecks, deep review, topic grouping, and compact…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
discord-user-post
liuda1999
Post an approved message as the logged-in Discord user through the Discord desktop app.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
tag-duplicate-prs-issues
liuda1999
Use gitcrawl to search duplicate Quiet Core bot PRs/issues, group related work in prtags, and sync duplicate state to GitHub.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
canvas
liuda1999
Present HTML on connected QuietCore node canvases, navigate/eval/snapshot, and debug canvas host URLs.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
security-triage
liuda1999
Triage Quiet Core bot security advisories, drafts, and GHSA reports with shipped-tag and trust-model proof.
SkillAFreshness: A★ 1Claude Code +9 - 0.577score
github
liuda1999
Use gh for GitHub issues, PR status, CI/logs, comments, reviews, releases, and API queries.
SkillAFreshness: A★ 1Claude Code +9 - 0.576score
wiki-maintainer
liuda1999
Maintain the QuietCore memory wiki vault with deterministic pages, managed blocks, and source-backed updates.
SkillAFreshness: A★ 1Claude Code +9 - 0.575score
crabbox
liuda1999
Use the Crabbox wrapper for Quiet Core bot remote validation across Linux, macOS, Windows, and WSL2, including delegated Blacksmith Testbox proof.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
prose
liuda1999
OpenProse VM skill pack.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 25, 2026 (1 month ago)
- Last release
- Oct 7, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/liuda1999/Quiet-Core-bot
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from liuda1999
- 0.589score
claw-score
liuda1999
Audit or refresh Quiet Core bot maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
acp-router
liuda1999
Route plain-language requests for Claude Code, Cursor, Copilot, QuietCore ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
browser-automation
liuda1999
Use when controlling web pages with the QuietCore browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
clawdtributor
liuda1999
Use for Quiet Core bot clawtributors PR/issue triage: Discrawl discovery, live-open rechecks, deep review, topic grouping, and compact…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
discord-user-post
liuda1999
Post an approved message as the logged-in Discord user through the Discord desktop app.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
tag-duplicate-prs-issues
liuda1999
Use gitcrawl to search duplicate Quiet Core bot PRs/issues, group related work in prtags, and sync duplicate state to GitHub.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
control-ui-e2e skill. Agent Mart. https://agentmart.dev/skills/liuda1999-control-ui-e2e (last updated 2026-10-24)