docs: initialize umzugsliste

WordPress plugin for Siegel Umzüge moving list form.

Creates PROJECT.md with requirements and constraints.
This commit is contained in:
2026-01-16 10:53:00 +09:00
commit e860f47d35
2 changed files with 103 additions and 0 deletions

77
.planning/PROJECT.md Normal file
View File

@@ -0,0 +1,77 @@
# Umzugsliste
## What This Is
A WordPress plugin providing a digital moving list form for Siegel Umzüge. Customers calculate the volume of their move by entering inventory items room-by-room, then request quotes for moving services. This plugin migrates the legacy standalone `liste.php` script into a secure, integrated WordPress solution.
## Core Value
Email format identical to legacy — office staff workflow depends on the exact HTML table structure.
## Requirements
### Validated
(None yet — ship to validate)
### Active
- [ ] Plugin infrastructure with CPT `umzugsliste_entry` for storing all submissions
- [ ] Settings page with receiver email, captcha config (reCAPTCHA v2/v3/hCaptcha), thank you URL
- [ ] Shortcode `[umzugsliste]` renders form matching legacy structure
- [ ] Volume calculations (cbm) matching legacy logic exactly
- [ ] Captcha integration with all three providers
- [ ] Legacy HTML table email format generation
- [ ] i18n support (German primary, English secondary)
- [ ] Form submission saves to CPT before email (data safety)
- [ ] Inline form validation (not JS alerts)
### Out of Scope
- PDF generation — email HTML is the only output format
- Customer accounts — simple form submission, no login
- Furniture list admin editing — future feature (extract as-is for v1)
- Frontend redesign — keep existing form look, wrap it properly
## Context
**Legacy Code Location:** `/Users/vmiller/Local Sites/siegel-liste/app/public/liste/`
- `liste.php` — Main form with email sending (PHPMailer/SMTP)
- `liste_ENG.php` — English version
- `functions.inc.php` — Email HTML generators, date selectors
- `css/` — Foundation CSS + custom.css
- `js/` — Foundation JS
**Legacy Structure:**
- 7 room sections: Wohnzimmer, Schlafzimmer, Arbeitszimmer, Bad, Küche/Esszimmer, Kinderzimmer, Keller
- Each furniture item: quantity (v prefix), cbm value (q prefix), montage option (m prefix)
- Additional work sections: Montage, Schrank, Elektriker, Dübelarbeiten, Packarbeiten, Anfahrt
- Sonstiges free text section
**Environment:**
- Local by WP Engine for development
- WordPress site uses Salient theme
- Plugin directory: `wp-content/plugins/umzugsliste/`
## Constraints
- **Theme**: Must integrate with Salient theme
- **Language**: German primary, English secondary
- **Email Format**: Must match legacy HTML table structure exactly
- **Email Delivery**: Use wp_mail() with SMTP plugin support
- **Encoding**: UTF-8 (convert from legacy ISO-8859-1)
- **Access**: Editors and above can view CPT entries
- **Admin UI**: Top-level menu (Umzugsliste with Entries + Settings)
## Key Decisions
| Decision | Rationale | Outcome |
|----------|-----------|---------|
| Extract furniture data as static config | Matches legacy, editing is future feature | — Pending |
| Support all 3 captcha providers | Flexibility for admin preference | — Pending |
| Use wp_mail() not PHPMailer directly | WordPress integration, SMTP plugins work | — Pending |
| Inline validation not JS alerts | Modern UX improvement over legacy | — Pending |
| Redirect to configurable thank you URL | Better UX than inline confirmation | — Pending |
---
*Last updated: 2026-01-16 after initialization*

26
.planning/config.json Normal file
View File

@@ -0,0 +1,26 @@
{
"mode": "yolo",
"depth": "standard",
"parallelization": {
"enabled": true,
"plan_level": true,
"task_level": false,
"skip_checkpoints": true,
"max_concurrent_agents": 3,
"min_plans_for_parallel": 2
},
"gates": {
"confirm_project": false,
"confirm_phases": false,
"confirm_roadmap": false,
"confirm_breakdown": false,
"confirm_plan": false,
"execute_next_plan": false,
"issues_review": false,
"confirm_transition": false
},
"safety": {
"always_confirm_destructive": true,
"always_confirm_external_services": true
}
}