Skip to content

Add SVO Bestellstrecke domain skill#500

Open
VibeVik89 wants to merge 2 commits into
browser-use:mainfrom
VibeVik89:svo-bestellstrecke-skill
Open

Add SVO Bestellstrecke domain skill#500
VibeVik89 wants to merge 2 commits into
browser-use:mainfrom
VibeVik89:svo-bestellstrecke-skill

Conversation

@VibeVik89

@VibeVik89 VibeVik89 commented Jul 9, 2026

Copy link
Copy Markdown

Documents the svo.de order funnel (Tarifrechner Strom/Gas) for future agents:

  • The funnel is a wlp.cloud Journey-Engine web component (React in shadow DOM); the full step/field/logic structure is fetchable as JSON via the experiences-bff journeys endpoint — no clicking required.
  • Private gateway APIs: regional structure (zip → cities → streets + supply specificity), price calculation (net-first rounding), ~1,300 previous-provider list, market-communication dates, submission endpoint. No CORS on the gateway.
  • Shadow-DOM interaction patterns that actually work: input[name$=".field"] selectors, scroll+measure+click in one call, native value setter for date inputs, combobox pitfalls.
  • Traps: overlay dialogs, drain_events() vs performance API for network capture, and a warning not to click the final submit (production checkout, no test env on www).

Complements the existing domain-skills/svo/zaehlerstandsmeldung.md.

🤖 Generated with Claude Code

https://claude.ai/code/session_01SfJ1DGncLdiaThzdHiv8VH


Summary by cubic

Adds SVO Bestellstrecke domain skill docs for the Strom/Gas order funnel, covering the wlp.cloud Journey-Engine widget, APIs, robust Shadow DOM interaction, and key gotchas. Complements domain-skills/svo/zaehlerstandsmeldung.md.

  • New Features
    • Journey discovery: journey IDs and experiences-bff endpoint to fetch full steps/fields/logic as JSON.
    • Gateway APIs: zips/cities/streets, pricing (net-first rounding), providers (~1,300), market-communication dates, submissions; CORS and Accept: application/json notes.
    • Shadow DOM guidance: input[name$=".field"] selectors, scroll+measure+click in one call, native date setter, combobox quirks; MaLo/Zähler requirements; do not click final submit on production.
    • Traps: react-aria usePress checkboxes ignore CDP clicks (click_at_xy); use el.click() or Playwright; overlay dialogs; prefer Performance API over drain_events(); link to the journey theme CSS.

Written for commit 9e7b631. Summary will update on new commits.

Review in cubic

Journey-Engine widget structure, private wlp.cloud APIs (zips/prices/
providers/dates/submissions), shadow-DOM interaction patterns, and traps
learned while crawling the svo.de order funnel.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SfJ1DGncLdiaThzdHiv8VH
@browser-harness-review

Copy link
Copy Markdown

✅ Skill review passed

Reviewed 1 file(s) — no findings.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="domain-skills/svo/bestellstrecke.md">

<violation number="1" location="domain-skills/svo/bestellstrecke.md:30">
P3: This skill currently tells agents that `gw.production.wlp.cloud` has no CORS headers, but the gateway returns `Access-Control-Allow-Origin: https://www.svo.de` for the SVO page origin. That makes the note misleading: page-context `fetch` works because the origin is allowed, while arbitrary external origins may still need a proxy. Consider narrowing the CORS wording so future agents do not avoid a working browser-context request path for the wrong reason.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

- `GET /api/v1/providers?energyType=electricity|gas` — ~1.300 Vorversorger `{id, name, codeNumber}` (BDEW-Nummer).
- `GET /encore_tools/market_communication/dates?energy=…` — `provider_change_dates.next_with_cancelation/.next_without_cancelation`, `relocation_dates.earliest_possible`.
- Submit: `POST https://experiences-bff.production.wlp.cloud/svo/customer_journey/submissions`.
- **Kein CORS-Header** auf gw.production.wlp.cloud → fremde Origins brauchen einen Proxy; `fetch` im Seitenkontext (js()) funktioniert.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This skill currently tells agents that gw.production.wlp.cloud has no CORS headers, but the gateway returns Access-Control-Allow-Origin: https://www.svo.de for the SVO page origin. That makes the note misleading: page-context fetch works because the origin is allowed, while arbitrary external origins may still need a proxy. Consider narrowing the CORS wording so future agents do not avoid a working browser-context request path for the wrong reason.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At domain-skills/svo/bestellstrecke.md, line 30:

<comment>This skill currently tells agents that `gw.production.wlp.cloud` has no CORS headers, but the gateway returns `Access-Control-Allow-Origin: https://www.svo.de` for the SVO page origin. That makes the note misleading: page-context `fetch` works because the origin is allowed, while arbitrary external origins may still need a proxy. Consider narrowing the CORS wording so future agents do not avoid a working browser-context request path for the wrong reason.</comment>

<file context>
@@ -0,0 +1,50 @@
+- `GET /api/v1/providers?energyType=electricity|gas` — ~1.300 Vorversorger `{id, name, codeNumber}` (BDEW-Nummer).
+- `GET /encore_tools/market_communication/dates?energy=…` — `provider_change_dates.next_with_cancelation/.next_without_cancelation`, `relocation_dates.earliest_possible`.
+- Submit: `POST https://experiences-bff.production.wlp.cloud/svo/customer_journey/submissions`.
+- **Kein CORS-Header** auf gw.production.wlp.cloud → fremde Origins brauchen einen Proxy; `fetch` im Seitenkontext (js()) funktioniert.
+- Direkter `http_get` auf die BFF gibt teils 406 → `Accept: application/json` Header nötig (im Seitenkontext fetchen ist am robustesten).
+
</file context>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant