pp-planer/.sisyphus/README.md
Thorsten Bus c9324eb542 docs: add Sisyphus boulder workflow README
- Quick start guide for continuation
- File structure overview
- Current status summary
- Key documents reference
- Workflow patterns
- Troubleshooting guide
- Metrics and next steps
2026-03-01 23:20:35 +01:00

305 lines
8.9 KiB
Markdown

# 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
1. **Read the continuation guide first**:
```bash
cat .sisyphus/CONTINUATION_GUIDE.md
```
2. **Verify environment**:
```bash
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
```
3. **Continue with next tasks**:
- See `CONTINUATION_GUIDE.md` for detailed instructions
- See `SESSION_SUMMARY.md` for current state
- See `plans/cts-herd-playwright.md` for full plan
---
## 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
1. **Read**:
- Plan file for task requirements
- Notepad for inherited wisdom
- Continuation guide for execution pattern
2. **Delegate**:
```typescript
task(
category="quick",
load_skills=["playwright"],
run_in_background=false,
description="Create {filename}.spec.ts",
prompt=`[6-section prompt from continuation guide]`
)
```
3. **Verify**:
```bash
npx playwright test {filename}.spec.ts # All tests pass
```
4. **Mark Complete**:
```typescript
Edit("plans/cts-herd-playwright.md", [
{op: "replace", pos: "{line}#{hash}", lines: "- [x] {task}"}
])
```
5. **Commit**:
```bash
git add tests/e2e/{filename}.spec.ts
git commit -m "test(e2e): add {feature} E2E tests"
```
6. **Update Notepad** (if learnings discovered):
```bash
echo "## [DATE] Task {N}: {Name}\n{learnings}" >> notepads/cts-herd-playwright/learnings.md
```
---
## CRITICAL PATTERNS
### Test Structure
```typescript
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
```typescript
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
1. **Read CONTINUATION_GUIDE.md** — Complete context for next session
2. **Launch Wave 3 tasks** — T8-T13 (6 tasks in parallel)
3. **Verify all tests pass** — Should have ~35-40 E2E tests after Wave 3
4. **Continue to Wave 4** — T14-T20 (7 tasks)
5. **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