test: scaffold agent-driven UX acceptance - #2854
Conversation
|
Scope checkThis PR changes 652 lines across 9 files. Large PRs are harder to review and more likely to be closed without review. If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs. See CONTRIBUTING.md for contribution guidelines. |
🚀 Deploying Preview to Cloudflare 🚀Preview URL: https://codex-ux-acceptance-scaffolding.try.emdashcms.com, https://codex-ux-acceptance-scaffolding-emdash-playground.emdash-cms.workers.dev (commit cc70075)This URL reflects your latest Preview deploymentPreview Deployments by commit
|
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/auth-atproto
@emdash-cms/blocks
@emdash-cms/cloudflare
@emdash-cms/contentful-to-portable-text
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/plugin-cli
@emdash-cms/plugin-types
@emdash-cms/registry-client
@emdash-cms/registry-lexicons
@emdash-cms/registry-moderation
@emdash-cms/registry-verification
@emdash-cms/sandbox-workerd
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-field-kit
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
There was a problem hiding this comment.
This PR adds internal manual UX-acceptance scaffolding only, so treating it as test tooling (no changeset, no mandated Discussion) is reasonable. The approach is sound: it reuses the existing E2E fixtures, Astro 7 background dev mode, and the existing dev-bypass endpoints; it keeps the tester skill outside the discoverable skills/ tree; and it separates coordinator-only checks from the tester's brief. I found no security, data-loss, or backwards-compatibility blocker.
What I checked
- The
ux-acceptance-site.mjslifecycle (start/status/stop, temp DB, fixture cleanup, lock/pid safety checks). - Build marker completeness against runtime imports (core, cloudflare, admin).
- Dev-bypass token flow and the warm-up API calls.
- Skill docs and the journey template for accuracy against the script and repository layout.
Headline conclusion: the scaffolding is clean and close to mergeable, but the build-marker logic can skip the admin package build in partial-build situations, which will make the harness fail to start. I also noted two small hygiene issues: the status command leaks the PAT to stdout, and one comment restates the code.
There was a problem hiding this comment.
The approach is still sound: this PR adds internal test-only scaffolding that reuses the existing E2E fixtures, Astro 7 background dev mode, and the dev-bypass endpoints without changing product code. Treating it as test tooling (no changeset, no mandated Discussion) is reasonable.
On re-review, the three concerns from the previous review are resolved in this revision:
ensureBuiltnow checks the admin package dist markers for both targets, so a partial build cannot skip the admin build.siteStatusdestructurestokenout of the run object before writing JSON to stdout.- The script no longer contains a comment that restates the code.
What I checked this round
scripts/ux-acceptance-site.mjs: start/status/stop lifecycle, build-marker completeness against the fixture dependency closure, lock/PID safety checks, fixture/temp cleanup, token handling, and status output.- The three site profiles and the journey template structure.
- The coordinator and tester skill docs against the script and repository layout.
I found no new blocking issues, security/data-loss concerns, backwards-incompatibility, or logged-out query-count changes. The scaffolding is clean and ready to merge.
What does this PR do?
Adds the initial scaffolding for agent-driven manual UX acceptance testing of the EmDash admin interface.
AGENTS.mdor implementation knowledge.Actual user journeys will be defined separately after exercising this scaffolding.
No linked issue.
Type of change
Checklist
pnpm typecheckpassespnpm lintpassespnpm testpasses (or targeted tests for my change)pnpm formathas been runmessages.pochanges except in translation PRs — a workflow extracts catalogs on merge tomain.The automated-tests item is not applicable yet: this PR creates the manual acceptance harness and was verified through targeted lifecycle and browser smokes. The i18n, changeset, and Discussion items are not applicable because no admin UI strings or published packages change and this is test tooling.
AI-generated code disclosure
Screenshots / test output
Validated on commit
24d443565:pnpm typecheckpnpm lintnode --check scripts/ux-acceptance-site.mjseditorial-smallstart/status/stop lifecycleeditorial-structurestart/status/stop lifecycleNo acceptance site or browser session was left running.