Validation agent: Playwright-based role validation for westside-basketball #235
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/claude-custom#235
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
User Story
story:validation-executeAs the superadmin, I want an automated agent that validates deployed features by logging in as each role (admin, coach, parent) and navigating the actual UI with Playwright, so that I can verify merges work in production without manual clicking.Lineage
story:validation-execute(added to project-pal-e-agency user stories)arch:claude-custom(note creation tracked as discovered scope)Repo
forgejo_admin/claude-customContext
Today's schedule feature session produced 4 merged PRs that need production validation. The Playwright MCP server is already configured in
~/.mcp.json. The concept: a Claude Code skill that dispatches Playwright-based validation against the live app.What exists today:
mcp__playwright__*tools) — browser automationWestside2026!for all roles/validate-ticketskill — runs post-merge checks but doesn't use browser automationDecision: Skill, not agent. A skill is simpler, follows the existing
skills/{name}/SKILL.mdconvention, and can be invoked inline via/validate-ui. An agent would need its own frontmatter, tool restrictions, and spawn conventions — overkill for this.Test accounts (all use password
Westside2026!):marcusdraney23@gmail.com(roles: admin, coach, player)ken10seka@gmail.com(role: coach)apaisasandra@gmail.com(role: player — 3 kids, 2 teams)Validation mechanism:
mcp__playwright__browser_snapshot— captures page accessibility tree for text content validationmcp__playwright__browser_take_screenshot— captures visual evidence for the verdict reportmcp__playwright__browser_fill+browser_click— fills Keycloak login formKeycloak login flow:
/coach)File Targets
~/.claude/skills/validate-ui/SKILL.md— skill definition with usage instructions, Playwright flow, and verdict templateAcceptance Criteria
browser_snapshotand validates text content against acceptance criteriabrowser_take_screenshotas visual evidenceTest Expectations
Constraints
~/.claude/skills/validate-ui/SKILL.md(standard skill convention)Westside2026!for all test accountsChecklist
~/.claude/skills/validate-ui/SKILL.mdRelated
~/.mcp.json/validate-ticketskill (existing —/validate-uiis complementary, not a replacement)project-pal-e-agencyuser stories —story:validation-executeaddedScope Review: NEEDS_REFINEMENT
Review note:
review-820-2026-04-04Template is complete and traceability is strong (story note verified), but 4 issues need resolution before dispatch:
arch-claude-custom— no backing note in pal-e-docs for thearch:claude-customlabelskills/X/SKILL.md, notskills/X.md)Scope refinement (2026-04-04)
Addressed review-820 findings:
~/.claude/skills/validate-ui/SKILL.md. Follows existing convention.Westside2026!. Documented in issue body with email/role mapping.browser_snapshotfor text validation,browser_take_screenshotfor visual evidence. Explicit in body.Scope Review: READY
Review note:
review-820-2026-04-04(re-review, updated from NEEDS_REFINEMENT)All 4 issues from first review are resolved:
skills/validate-ui/SKILL.mdWestside2026!for all 3 test accounts with email/role mappingbrowser_snapshotfor text validation,browser_take_screenshotfor evidence[SCOPE]discovered scope, not blockingTemplate complete. Traceability verified (story note confirmed on project-pal-e-agency). File target follows convention. 6 AC all testable. Single file, single repo, under 5-minute rule. Ready for dispatch.