Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac working tree at ~/Code/@projects/@cocottetech/. node_modules and build artifacts excluded via .gitignore. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.9 KiB
4.9 KiB
tours-settings.screen
S7 settings category — tour preferences (lead-time, revenue defaults, surface auto-pause rules, hotel filters). Implements per brief S §S7 + brief R. Reached from settings-root.screen.md "Tours" card. Voice: working.
Layout (full-screen sheet)
┌─────────────────────────────────────────────────┐
│ ◄ Settings Done │ 56pt
├─────────────────────────────────────────────────┤
│ │
│ ─── Lead-time defaults ─── │
│ Tryst announcements: [ 3 weeks ▼ ] │
│ TS4Rent announcements: [ 3 weeks ▼ ] │
│ OnlyFans tease: [ 2 weeks ▼ ] │
│ X tease: [ 1 week ▼ ] │
│ ⓘ Cocotte warns if you publish closer than this │
│ │
│ ─── Revenue defaults ─── │
│ Default floor formula: [ 5d × city-rate ▼ ] │
│ Default target: [ floor × 1.75 ▼ ] │
│ Show floor / target chips on planning cards: ☑ │
│ │
│ ─── Hotel filters (defaults) ─── │
│ Max nightly: [ $250 ▼ ] │
│ Min safety tier: [ medium ▼ ] │
│ Walkable to venue: ☑ (radius [ 1 km ▼ ]) │
│ Independent only: ☑ Chain blacklist: │
│ [ Marriott, Hilton, … ] │
│ │
│ ─── During-tour automation ─── │
│ bookings-tryst city auto-update: ☑ │
│ bookings-ts4rent city auto-update: ☑ │
│ Pause OnlyFans / X posts during tour: ☐ │
│ Auto-resume on return: ☑ │
│ │
│ ─── Post-tour ─── │
│ Draft journal entry: ☑ (per brief Q) │
│ Send tour ledger to email digest: ☑ │
│ │
│ ─── Multi-leg routing ─── │
│ Optimizer cost weighting: │
│ [ revenue 0.6 ▼ ] [ travel-time 0.3 ▼ ] [ fatigue 0.1 ▼ ]│
│ │
└─────────────────────────────────────────────────┘
Components
| Component | Notes |
|---|---|
| Lead-time defaults | Per-surface advance-notice expectations. Cocotte warns when violated. |
| Revenue defaults | Floor / target formulas. Per-leg overridable. |
| Hotel filters | Defaults applied at scout start in hotel-scout.screen.md. |
| During-tour automation | Per-surface auto-update of city / pause / auto-resume. |
| Post-tour | Journal + ledger toggles. |
| Multi-leg routing | Optimizer cost weights (per R §R6). |
States
- Default (sane defaults) — all toggles in safe configurations.
- Lead-time conflict (Quinn previewing a leg below the default) — banner appears in tour-leg-detail.screen.md.
- No tour in flight — full editable layout.
- Tour active — "during-tour automation" section read-only with chip: "Tour in flight. Changes apply to next leg."
- VoiceOver — sections read in order; pickers announce current value.
Interactions
- Tap a lead-time picker → discrete options.
- Tap a hotel chain in blacklist → remove (×).
- Tap "Optimizer cost weighting" → expanded slider sheet for fine-tuning.
Edge cases
- Lead-time set to 0 (announce day-of) — banner: "Surfaces may rank you lower. Continue?"
- Conflicting per-leg overrides — tour-leg-detail.screen.md shows precedence chip.
- Hotel filter blacklist + an event happens at a Marriott — auto-pause on venue, with one-tap "consider this Marriott because of the event" override.
Related
- Brief S §S7 — parent.
- Brief R — touring backbone.
- Brief H §H3 — tour announcements.
- tour-leg-detail.screen.md — per-leg override target.
- hotel-scout.screen.md — hotel filter consumer.
- Brief Q — post-tour journal target.
Out of scope
- Custom lead-time per surface (defer; 24-surface lead-time set is too noisy).
- Optimizer algorithm internals (engineering brief).