- Quick start guide for continuation - File structure overview - Current status summary - Key documents reference - Workflow patterns - Troubleshooting guide - Metrics and next steps
8.9 KiB
Sisyphus Boulder Workflow — CTS Herd + Playwright E2E Testing
Project: CTS Presenter App — Church Service Preparation Tool
Phase: E2E Testing with Playwright on Laravel Herd
Status: 7/24 tasks complete (29.2%) — Wave 1-2 Complete, Wave 3 Partial
QUICK START
For Continuing This Work
-
Read the continuation guide first:
cat .sisyphus/CONTINUATION_GUIDE.md -
Verify environment:
cd /Users/thorsten/AI/cts-work curl -s -o /dev/null -w "%{http_code}" http://cts-work.test/login # Should return 200 npx playwright test # Should pass 13 tests php artisan test # Should pass 174 tests -
Continue with next tasks:
- See
CONTINUATION_GUIDE.mdfor detailed instructions - See
SESSION_SUMMARY.mdfor current state - See
plans/cts-herd-playwright.mdfor full plan
- See
FILE STRUCTURE
.sisyphus/
├── README.md # This file — start here
├── CONTINUATION_GUIDE.md # Complete guide for continuing work
├── SESSION_SUMMARY.md # Current session summary
├── boulder.json # Boulder state tracking
├── plans/
│ ├── cts-presenter-app.md # Phase 1 plan (COMPLETE)
│ └── cts-herd-playwright.md # Phase 2 plan (ACTIVE — 7/24 tasks)
├── notepads/
│ ├── cts-presenter-app/ # Phase 1 learnings
│ └── cts-herd-playwright/ # Phase 2 learnings (ACTIVE)
│ ├── learnings.md # Patterns, conventions
│ ├── decisions.md # Architectural choices
│ ├── issues.md # Problems, gotchas
│ └── problems.md # Unresolved issues
└── evidence/
├── task-1-herd-login-page.txt # T1 verification
├── task-3-factory-fields.txt # T3 verification
├── task-3-pest-pass.txt # T3 verification
├── task-4-build-tests.txt # T4 verification
├── task-4-testid-login.txt # T4 verification
├── task-5-config-check.txt # T5 verification
├── task-5-playwright-setup.txt # T5 verification
├── task-6-auth-tests.txt # T6 verification
└── task-7-navigation-tests.txt # T7 verification
WORKTREE STRUCTURE
/Users/thorsten/AI/cts-work/ (branch: cts-presenter-app)
├── playwright.config.ts # Playwright configuration
├── tests/
│ ├── e2e/
│ │ ├── .auth/
│ │ │ └── user.json # storageState (gitignored)
│ │ ├── auth.setup.ts # Auth setup for tests
│ │ ├── auth.spec.ts # Auth E2E tests (5 tests)
│ │ └── navigation.spec.ts # Navigation E2E tests (9 tests)
│ └── Feature/ # Pest tests (174 tests)
├── resources/js/
│ ├── Pages/ # 6 Vue pages (data-testid added)
│ ├── Components/
│ │ ├── Blocks/ # 4 block components (data-testid added)
│ │ └── [others] # 8 other components (data-testid added)
│ └── Layouts/ # 3 layouts (data-testid added)
├── routes/web.php # Routes (includes POST /dev-login)
└── [other Laravel files]
CURRENT STATUS
Completed (7/24 tasks)
- ✅ Wave 1: Herd env, dummy login, UserFactory (3 tasks)
- ✅ Wave 2: data-testid attributes, Playwright infrastructure (2 tasks)
- ✅ Wave 3: Auth tests, Navigation tests (2 tasks)
In Progress
- Wave 3: 6 remaining E2E test spec files (T8-T13)
Pending
- Wave 4: 7 E2E test spec files (T14-T20)
- Final Verification: 4 review tasks (F1-F4)
Test Status
- E2E: 13 tests passing (2 spec files)
- Pest: 174 tests passing (26 feature files)
- Build: Succeeds (790 modules, 1.51s)
KEY DOCUMENTS
1. CONTINUATION_GUIDE.md (START HERE)
Purpose: Complete guide for continuing the work
Contents:
- Quick start commands
- Completed work summary
- Remaining task breakdown with exact requirements
- Execution patterns for each task type
- 6-section prompt templates
- Troubleshooting guide
- Verification checklists
When to use: Every time you continue this work
2. SESSION_SUMMARY.md
Purpose: Summary of current session's work
Contents:
- Executive summary
- Completed work details
- Current state
- Remaining work
- Key patterns established
- Metrics and handoff checklist
When to use: To understand what was done in the last session
3. plans/cts-herd-playwright.md
Purpose: Complete task plan (1,624 lines)
Contents:
- All 24 implementation tasks with detailed requirements
- 4 final verification tasks
- Acceptance criteria for each task
- QA scenarios
- References and patterns
When to use: To understand exact requirements for each task
4. notepads/cts-herd-playwright/learnings.md
Purpose: Accumulated knowledge from all sessions
Contents:
- Patterns that work
- Conventions established
- Gotchas discovered
- Best practices
When to use: Before starting any new task (to avoid known pitfalls)
WORKFLOW
For Each Task
-
Read:
- Plan file for task requirements
- Notepad for inherited wisdom
- Continuation guide for execution pattern
-
Delegate:
task( category="quick", load_skills=["playwright"], run_in_background=false, description="Create {filename}.spec.ts", prompt=`[6-section prompt from continuation guide]` ) -
Verify:
npx playwright test {filename}.spec.ts # All tests pass -
Mark Complete:
Edit("plans/cts-herd-playwright.md", [ {op: "replace", pos: "{line}#{hash}", lines: "- [x] {task}"} ]) -
Commit:
git add tests/e2e/{filename}.spec.ts git commit -m "test(e2e): add {feature} E2E tests" -
Update Notepad (if learnings discovered):
echo "## [DATE] Task {N}: {Name}\n{learnings}" >> notepads/cts-herd-playwright/learnings.md
CRITICAL PATTERNS
Test Structure
import { test, expect } from '@playwright/test';
test('description', async ({ page }) => {
await page.goto('/url');
await page.waitForLoadState('networkidle'); // CRITICAL
await expect(page).toHaveURL(/pattern/);
await expect(page.getByTestId('testid')).toBeVisible();
});
CSRF Protection
const cookies = await page.context().cookies();
const xsrfToken = decodeURIComponent(
cookies.find(c => c.name === 'XSRF-TOKEN')?.value || ''
);
await page.request.post('/endpoint', {
headers: { 'X-XSRF-TOKEN': xsrfToken }
});
data-testid Naming
{component-kebab}-{element-description}- Examples:
login-oauth-button,service-list-edit-button
German UI Text
- Always use exact German text from Vue components
- Examples: "Gottesdienste", "Bearbeiten", "Finalisieren"
TROUBLESHOOTING
Session Timeouts
Symptom: task() times out after 10 minutes
Solution: Check if file was created, verify tests, proceed if passing
Test Failures
Symptom: Element not found
Solution: Check data-testid spelling in Vue component
Symptom: Timeout waiting for element
Solution: Add page.waitForLoadState('networkidle')
Symptom: Redirect to login
Solution: Re-run auth setup: npx playwright test --project=setup
SQLite BUSY
Symptom: Database locked errors
Solution: Verify workers: 1 in playwright.config.ts
METRICS
Progress
- Tasks: 7/24 complete (29.2%)
- E2E Tests: 13/~45 complete (~29%)
- Spec Files: 2/15 complete (13.3%)
Quality
- Test Pass Rate: 100% (13/13 E2E + 174/174 Pest)
- Build Success: 100%
- Commits: 8 atomic commits (6 worktree + 2 main repo)
Time
- Session Duration: ~3 hours
- Avg Time per Task: ~25 minutes
- Estimated Remaining: ~7-8 hours (17 tasks)
NEXT STEPS
- Read CONTINUATION_GUIDE.md — Complete context for next session
- Launch Wave 3 tasks — T8-T13 (6 tasks in parallel)
- Verify all tests pass — Should have ~35-40 E2E tests after Wave 3
- Continue to Wave 4 — T14-T20 (7 tasks)
- Final Verification — F1-F4 (4 review tasks)
CONTACT
Plan: .sisyphus/plans/cts-herd-playwright.md (READ-ONLY for subagents)
Guide: .sisyphus/CONTINUATION_GUIDE.md (START HERE)
Notepad: .sisyphus/notepads/cts-herd-playwright/ (APPEND-ONLY)
Worktree: /Users/thorsten/AI/cts-work (branch: cts-presenter-app)
Last Updated: 2026-03-01 23:20 UTC
Status: READY FOR CONTINUATION
Quality: ✅ All tests passing, full documentation
Recommendation: Continue with Wave 3 tasks T8-T13