Skip to content

feat(qa): unattended agent QA mode — H2 Docker + Playwright surface gate #1827

Closed

Description

@natechadwick-intsof

Summary Unattended agents (overnight workflows, CI helpers, PR follow-up) need a supported QA-mode path to validate user-visible surfaces with Playwright against a contained H2 Docker CMS, without relying on a developer host install (C:\Installs\Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝╬ô├▓┬ÑΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ) or treating "needs live CMS" as permanently agent-unsafe. Today we have: - Docs: dev vs QA modes Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ QA mode = all-in-docker pass/fail; automation owns build Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ package Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ install/image Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ Playwright. - Module: modules/perc-qa-automation (Playwright HARD GATE for WebUI screens). - Matrix H2 smoke: matrix-install-smoke / H2 profile and install-oriented specs. - Gap: No productized, agent-callable "bring up H2 QA stack Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ run focused Playwright for the surface under test Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬╝Γö¼┬╝Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼├║╬ô├╢┬úΓö¼┬¼ tear down" path. Overnight agent_safe_only therefore skips Playwright / live-CMS issues instead of exercising them safely. ## Goal Agents validating a UI (or install-adjacent) surface unattended should: 1. Start (or attach to) the qa-automation H2 Docker stack for CMS. 2. Wait for health / ready. 3. Run Playwright specs for the surface under test (filtered, not always full suite). 4. Collect logs/artifacts on failure. 5. Tear down cleanly (disk / port hygiene). Dev mode (local install + bind + hot copy) remains the human fast loop. This issue is QA mode for agents. ## Related | Item | Role | |------|------| | workbench-rest-and-qa-modes.md | Direction of record (dev vs QA mode) | | modules/perc-qa-automation/AGENTS.md | Playwright HARD GATE, mode table | | #1690 | Post-P0 checklist mentions Playwright against docker/local Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ not this enablement | | #1695 | Example surface that needs live Playwright (Explorer) | | #1508 / matrix-install-smoke | RDBMS matrix cells (H2 exists; agent product UX path still missing) | | Closed #1692 | Host-install Playwright path Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ not the long-term agent path | ## Acceptance criteria - [ ] Documented one-shot entrypoint (script or perc-devctl / compose profile) that starts CMS on H2 in Docker suitable for Playwright (published URL, default admin creds, no host install required). - [ ] Health wait documented and automated (ready before tests start; clear timeout errors). - [ ] Playwright can run with env pointing only at that stack (TEST_CMS_URL / project convention) Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ no DEV_PERCUSSION_INSTALL / host path required for this mode. - [ ] Surface filtering: documented way to run a subset of specs (by path/grep/tag) for the PR surface under test. - [ ] Tear-down command or compose down that frees ports and does not leave multi-GB orphans by default. - [ ] Agent instructions updated: root/module AGENTS.md and/or night-issue workflow so unattended UI work can use this path instead of blanket-skipping Playwright. - [ ] Smoke proof: at least one reference Playwright path (e.g. login + one product screen) green against the H2 QA stack in an unattended-friendly invocation (local agent or CI job). - [ ] Failure artifacts: where screenshots/traces/logs land; how agents attach them to PRs/issues. ## Non-goals (this issue) - Full multi-RDBMS matrix (Postgres/MySQL/SQL Server/Oracle) Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö¼├æ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£Γòæ╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬ú╬ô├╗├åΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ª╬ô├▓┬╝Γö£Γöñ╬ô├╢┬ú╬ô├▓├│╬ô├╢┬╝Γö£ΓòæΓò¼├┤Γö£ΓòóΓö¼Γò¥Γò¼├┤Γö£ΓûôΓö£┬¬Γò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓûôΓö£ΓöéΓò¼├┤Γö£ΓòóΓö¼Γò¥╬ô├╢┬ú╬ô├▓├ªΓò¼├┤Γö£ΓûôΓö¼Γò¥╬ô├╢┬ú╬ô├╢├▒Γò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòùΓö£ΓöñΓò¼├┤Γö£ΓòóΓö¼├║Γò¼├┤Γö£ΓòóΓö£ΓîÉ tracked elsewhere (#1508 etc.). - Replacing dev mode for human iteration. - UAT sign-off theater (#1371). ## Proposed slices (optional breakdown) 1. Entrypoint + health: H2 Docker up/down + docs. 2. Playwright wiring: env defaults + one golden unattended smoke. 3. Surface filter + agent rules: subset run + AGENTS / night-issue-prs integration. 4. CI optional job: workflow_dispatch or path-filtered optional check. ## Operator notes When agents ship work under this path, label PRs with operator:* + model:* (see .grok/workflows/README.md). Do not invent host-install-only workarounds as the product process. ## Agent progress (night-issue-prs) | Slice | Issue | Status | PR | Notes | Updated | |-------|-------|--------|-----|-------|---------| | 1 Entrypoint + health | #1927 | done | #1955 | H2 qa-up/health/down | 2026-08-05 | | 2 Playwright env + golden smoke | #1928 | done | #2072 #2154 #2070 | Children A/B/C merged; closed after acceptance verify (skip re-implement) | 2026-08-07 | | 2A TEST_CMS_URL env | #2064 | done | #2072 | Env precedence; no live CMS | 2026-08-07 | | 2B Golden smoke | #2065 | done | #2154 | Live test:golden 2 passed; antlib+CXF+modern login | 2026-08-07 | | 2C Failure artifact attach | #2066 | done | #2070 | Docs | 2026-08-07 | | 3 Surface filter + agent rules | #1929 | done | #2074 | Filter+docs shipped; rules residual #2073 | 2026-08-05 | | 3 residual AGENTS human review | #2073 | pr_opened | #2317 | Human approved rule apply; AGENTS + night-issue agent_safe QA surface filter | 2026-08-07 | | 4 Optional CI job | #1930 | done | #2096 | Optional workflow_dispatch + path-filtered; merged | 2026-08-06 | Epic note (2026-08-07): Slices 1-4 product work is on main. Residual #2073 rule apply is in PR #2317 (human-approved). After merge, epic AC for agent rules is complete — close #1827 when happy.

Activity

  1. natechadwick-intsof commented on Aug 5, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Split disposition (night operator) — PR-sized children

    Do not implement full #1827 in one PR. Work proceeds as four independent, PR-sized slices. Parent stays open as the checklist/epic until all children close.

    Child issues

    # Slice Issue Scope
    1 Entrypoint + health + tear-down #1927 H2 Docker up/down script or compose profile; health wait; ports/disk hygiene; docs in workbench-rest-and-qa-modes.md
    2 Playwright wiring + golden smoke #1928 Env defaults (TEST_CMS_URL only; no host install path); one unattended smoke (login + one screen); failure artifact locations
    3 Surface filter + agent rules #1929 Subset run by path/grep/tag; update root/module AGENTS.md + night-issue workflow so agent_safe can use QA mode instead of blanket Playwright skip (human review of rule files before commit)
    4 Optional CI #1930 workflow_dispatch and/or path-filtered optional job; artifact upload; non-blocking by default

    Suggested order

    1. feat(qa): #1827 slice 1 — H2 Docker QA entrypoint + health wait + tear-down #1927 first (stack must exist).
    2. feat(qa): #1827 slice 2 — Playwright env (TEST_CMS_URL) + golden unattended smoke #1928 next (depends on published URL / health).
    3. feat(qa): #1827 slice 3 — Playwright surface filter + agent rules for QA mode #1929 after 1–2 (filter + agent_safe policy).
    4. feat(qa): #1827 slice 4 — optional CI workflow_dispatch / path-filtered QA job #1930 last (CI consumes productized path).

    Parent AC mapping

    Parent acceptance criterion Child
    Documented one-shot H2 Docker entrypoint #1927
    Health wait automated #1927
    Tear-down frees ports / no multi-GB orphans #1927
    Playwright env = TEST_CMS_URL only (no host install) #1928
    Golden smoke (login + one screen) unattended #1928
    Failure artifacts location + attach guidance #1928 (docs); #1930 (CI upload)
    Surface filtering by path/tag #1929
    Agent instructions / night-issue no blanket skip #1929
    Optional CI job #1930

    Explicit non-goals (still parent-level)

    Operator labels on children

    operator:grok, operator:night-issue-prs, model:grok-4.5 (+ existing enhancement, qa task, 8.2).

    Status: split-only tonight — no implementation PR from this session. Leave #1827 open until children complete.

  2. added a commit that references this issue on Aug 5, 2026
  3. natechadwick-intsof commented on Aug 5, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    #1928 slice A (#2064): Playwright env TEST_CMS_URL without host install — PR #2072

    Unattended QA can set TEST_CMS_URL + ADMIN_PASSWORD without DEV_PERCUSSION_INSTALL. Live H2 smoke still #2065.

    Operator: Grok night-issue-prs (model grok-4.5)

  4. natechadwick-intsof commented on Aug 5, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Slice 3 progress: #1929 PR opened — #2074

    Operator: Grok night-issue-prs (model grok-4.5)

  5. added 2 commits that reference this issue on Aug 5, 2026
  6. added a commit that references this issue on Aug 5, 2026
  7. added a commit that references this issue on Aug 5, 2026
  8. natechadwick-intsof commented on Aug 6, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Agent progress (2026-08-06) — slice 4 #1930

    Status: pr_opened — #2096
    Branch: feat/issue-1930-optional-h2-qa-ci
    Commit: ae0ed62fc4

    Shipped optional non-required CI:

    • .github/workflows/h2-qa-playwright.yml — workflow_dispatch dry-run/live + path-filtered PR wiring job
    • Docs in workbench-rest-and-qa-modes.md (trigger, env, artifacts, Windows parity) + README cross-links

    Not required on all PRs. Live first-green may wait on #2065 + distribution-tree package capacity on runner.

    Co-Authored by Grok Build using grok-4.5 with agent main.

  9. natechadwick-intsof commented on Aug 6, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    #2065 (slice 2B golden smoke) — PR opened

  10. added a commit that references this issue on Aug 6, 2026
  11. natechadwick-intsof commented on Aug 6, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Night-issue skip (2026-08-06): #2073 marked skipped in progress table.

    Root AGENTS.md human-review hard gate blocks committing AGENTS / night-issue rule files until explicit human approval (e.g. rules LGTM / commit the AGENTS change). Product docs/scripts for the surface filter already landed under #1929 / #2074. Residual stays open for the human-approved rule-file apply PR.

    Operator: Grok night-issue-prs (model grok-4.5)

  12. natechadwick-intsof commented on Aug 6, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Night-issue re-confirm (skip): #2073 remains blocked on human review of surface-filter rule wording (productized in #1929 / PR #2074 docs) and explicit approval to commit root/module AGENTS.md + night-issue workflow rule files. No rule-file PR opened by unattended agent.

    _Operator: Grok night-issue-prs (model grok-4.5) —

  13. natechadwick-intsof commented on Aug 7, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Agent progress (night-issue-prs) — 2026-08-07 00:56 UTC

    Operator: Grok night-issue-prs (model grok-4.5)

  14. natechadwick-intsof commented on Aug 7, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Agent progress (night-issue-prs) — slice #1928 closed as done (disposition: skip re-implement)

    Verified acceptance already on main via closed children:

    Child PR Role
    #2064 #2072 TEST_CMS_URL env-only
    #2065 #2154 Golden unattended smoke
    #2066 #2070 Failure artifact attach docs

    Parent progress table updated: slice 2 / 2A / 2B / 2C → done. Remaining unattended-QA residual on this epic: #2073 only (human AGENTS rule gate).

    Co-Authored by Grok Build using grok-4.5 with agent main.

  15. natechadwick-intsof commented on Aug 7, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    #2073 residual (AGENTS/night-issue rules): night-issue-prs skipped again — hard gate requires human rules LGTM / explicit approval before committing AGENTS.md or .grok/workflows rule files. Product surface-filter already on main via #1929/#2074. Progress table row for #2073 remains skipped.

    _Operator: Grok night-issue-prs (model grok-4.5) —

  16. natechadwick-intsof commented on Aug 7, 2026

    @natechadwick-intsof
    CollaboratorAuthor

    Agent progress — #2073 residual

    Human approved applying AGENTS / night-issue QA surface-filter rules.

    Co-Authored by Grok Build using grok-4.5 with agent main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    8.2This issue found in 8.2 releaseenhancementNew feature or requestqa taskHuman QA tasktech-debttech debt

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions