一键导入
mission-verification-worker
Expands Mission automated coverage, integration flows, and E2E-readiness for the Electron Mission GUI
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Expands Mission automated coverage, integration flows, and E2E-readiness for the Electron Mission GUI
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Finishes an already-started Mission renderer feature by validating the existing draft, applying minimal follow-up fixes, and committing.
Implements Mission renderer routing, MissionPage, Mission Control panels, and Mission-specific interaction UX in the Electron app
Implements Mission protocol, backend/session plumbing, Electron IPC, store reconciliation, and restore logic for Mission GUI
End-to-end UI testing for the Droi Electron app using agent-browser via CDP. Use this skill when the user asks to test the Droi desktop application, run E2E tests, automate UI interactions, verify session management, or validate UI changes after development. Triggers: "test the app", "E2E test", "UI test", "agent-browser test", "test session creation", "test session deletion", "verify the UI works", "run automated tests".
Implements UI fixes in the Electron + React renderer layer
| name | mission-verification-worker |
| description | Expands Mission automated coverage, integration flows, and E2E-readiness for the Electron Mission GUI |
NOTE: Startup and cleanup are handled by worker-base. This skill defines the WORK PROCEDURE.
Use this skill for features that primarily add or stabilize:
Read the contract and testing library first. Review validation-contract.md, mission AGENTS.md, .factory/library/user-testing.md, and .factory/services.yaml before deciding what to test.
Translate assertions into tests deliberately. Group related assertions into the smallest reliable test files. Prefer extending existing tests before creating broad new suites.
Write failing tests first (red). Add the failing Mission assertions before touching implementation code or test hooks.
Stabilize the test surface only as needed. If you add data-testid hooks or minor harness support, keep those changes tightly scoped to the assertions under test.
Run targeted automated coverage iteratively. Use the narrowest commands that prove the changed assertions, then widen to the relevant suite.
For any Mission-invoking manual/E2E verification, obey the hard constraints:
Mission-GUI-TESTagent-browser flow: Custom -> CCH-GPT-5.4DROID_APP_DATA_DIRCollect evidence for the full flow, not just pass/fail. For end-to-end Mission flows, record:
Run the feature’s final validation set before handoff. For verification-heavy features, this typically includes:
pnpm testpnpm typecheckBe explicit about proof ownership. If the feature claims fulfills assertions, the handoff must map each claimed assertion to new or newly-owned checked-in tests or Mission-GUI-TEST artifacts produced by that feature. Older milestone artifacts may be supporting context, but they cannot be the sole proof for a claimed assertion.
Treat proof-audit sessions as non-closing unless they add owned proof. A pure audit/review session may summarize existing evidence, but it must not close a feature's fulfills coverage unless it also produces feature-owned checked-in proof. If no new proof was added, say so explicitly and return the remaining assertion variants as still unproven.
Handle artifact-only closures explicitly. If a feature is satisfied by already-checked-in proof, the handoff must name the exact commit, files, and session ids being relied on, and must still leave a traceable worker handoff for scrutiny. If the contract requires a fresh live same-session Electron proof, do not close the feature with older artifacts, injected state, copied snapshots, or restored-session screenshots alone.
Return a handoff that makes gaps obvious. If any assertion variant remains unproven (for example, user pause covered but daemon failure not covered), state that explicitly rather than implying the full contract area is complete.
{
"salientSummary": "Expanded Mission integration coverage for create/run/validator injection, pause/continue, daemon-failure recovery, and kill-worker flows. Added stable Mission test ids and confirmed Mission-invoking Electron checks use `Mission-GUI-TEST` plus Custom -> `CCH-GPT-5.4` with an isolated copied data directory.",
"whatWasImplemented": "Extended Mission-focused automated tests across interaction mode hot switching, session persistence, notification mapping, watcher/recovery paths, and Electron integration scenarios. Added stable Mission selectors needed by E2E and documented the constrained Electron validation path for Mission flows.",
"whatWasLeftUndone": "I did not modify unrelated UI polish outside the assertions covered by the new integration/E2E tests.",
"verification": {
"commandsRun": [
{
"command": "node --test --experimental-strip-types test/interactionModeHotSwitch.test.ts test/sessionStore.test.ts test/rpcNotificationMapping.test.ts",
"exitCode": 0,
"observation": "Mission protocol persistence, restore precedence, and notification mapping scenarios pass."
},
{
"command": "pnpm test",
"exitCode": 0,
"observation": "Full Node test suite passes with the Mission additions."
},
{
"command": "pnpm typecheck",
"exitCode": 0,
"observation": "Type contracts remain valid after Mission test-surface changes."
}
],
"interactiveChecks": [
{
"action": "Launched the Electron dev app with `DROID_APP_DATA_DIR=/tmp/droi-mission-e2e`, selected `Mission-GUI-TEST`, and chose Custom -> `CCH-GPT-5.4` for a new Mission flow",
"observed": "Mission E2E started on the Electron surface without using Web/LAN mode or the OS project picker."
},
{
"action": "Ran the kill-worker and restart/reselection sanity flows",
"observed": "The paused Mission remained inspectable, reused the same Mission session context, and recovered through Mission entry points."
}
]
},
"tests": {
"added": [
{
"file": "test/missionIntegration.test.ts",
"cases": [
{
"name": "create -> run -> validator injection -> completion",
"verifies": "Mission stays active through validator injection and completes only at the final Mission state."
},
{
"name": "daemon failure and user pause both resume through normal chat continuation",
"verifies": "Paused Mission flows recover without recreating the session."
},
{
"name": "kill worker transitions to mission_paused with user-kill semantics",
"verifies": "Kill Worker does not look like infrastructure failure and keeps the Mission inspectable."
}
]
}
]
},
"discoveredIssues": []
}