{
  "generatedAt": "2026-07-05T04:25:27.603Z",
  "scope": "Form/Auth validation smoke with empty or deliberately invalid local inputs only; no valid submissions, uploads, production calls, or fixes.",
  "routesTested": 9,
  "counts": {
    "blocked-no-form-target": 3,
    "validation-visible": 6
  },
  "results": [
    {
      "id": "portal-login-empty",
      "path": "/projektportal/login",
      "intent": "Login: empty submit should stop with visible validation or auth error",
      "url": "https://solcom.ddev.site/projektportal/login",
      "titleBefore": "Anmeldung | SOLCOM",
      "titleAfter": null,
      "beforeUrl": "https://solcom.ddev.site/projektportal/login",
      "afterUrl": null,
      "selected": null,
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "IM PROJEKTPORTAL ANMELDEN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "headingsAfter": [],
      "formsTotalBefore": 1,
      "formsTotalAfter": 0,
      "assessment": {
        "status": "blocked-no-form-target",
        "invalidCount": 0,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-portal-login-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-portal-login-empty-after-2026-07-05.png"
      },
      "clickStatus": "no-visible-form-target",
      "commandFailures": []
    },
    {
      "id": "password-reset-empty",
      "path": "/user/password",
      "intent": "Password reset: empty submit should stop without mail side effects",
      "url": "https://solcom.ddev.site/user/password",
      "titleBefore": "Passwort zurücksetzen | SOLCOM",
      "titleAfter": "Passwort zurücksetzen | SOLCOM",
      "beforeUrl": "https://solcom.ddev.site/user/password",
      "afterUrl": "https://solcom.ddev.site/user/password",
      "selected": {
        "action": "/user/password",
        "fieldCount": 2,
        "index": 0,
        "method": "post",
        "requiredCount": 1,
        "submitLabel": "Absenden"
      },
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "PASSWORT ZURÜCKSETZEN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "headingsAfter": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "PASSWORT ZURÜCKSETZEN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "formsTotalBefore": 1,
      "formsTotalAfter": 1,
      "assessment": {
        "status": "validation-visible",
        "invalidCount": 1,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [
        {
          "formIndex": 0,
          "id": "edit-name",
          "label": "Benutzername oder E-Mail-Adresse",
          "name": "name",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        }
      ],
      "messages": [],
      "activeField": {
        "id": "edit-name",
        "label": "Benutzername oder E-Mail-Adresse",
        "name": "name",
        "required": true,
        "type": "text",
        "valid": false,
        "validationMessage": "Please fill in this field.",
        "valueLength": 0,
        "willValidate": true
      },
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-password-reset-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-password-reset-empty-after-2026-07-05.png"
      },
      "clickStatus": "clicked-target",
      "commandFailures": []
    },
    {
      "id": "portal-registration-empty",
      "path": "/projektportal/registrieren",
      "intent": "Project partner registration: empty submit should expose required-field validation",
      "url": "https://solcom.ddev.site/projektportal/registrieren",
      "titleBefore": "Projektpartner registrieren | SOLCOM",
      "titleAfter": "Projektpartner registrieren | SOLCOM",
      "beforeUrl": "https://solcom.ddev.site/projektportal/registrieren",
      "afterUrl": "https://solcom.ddev.site/projektportal/registrieren",
      "selected": {
        "action": "/projektportal/registrieren",
        "fieldCount": 41,
        "index": 0,
        "method": "post",
        "requiredCount": 14,
        "submitLabel": "Absenden"
      },
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "01. Zugang & Kontakt",
        "02. Profil & Unterlagen",
        "03. Verfügbarkeit & Qualifikationen",
        "04. Datenschutz- und Nutzungserklärung",
        "SOCIAL",
        "FOOTER NAVIGATION"
      ],
      "headingsAfter": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "01. Zugang & Kontakt",
        "02. Profil & Unterlagen",
        "03. Verfügbarkeit & Qualifikationen",
        "04. Datenschutz- und Nutzungserklärung",
        "SOCIAL",
        "FOOTER NAVIGATION"
      ],
      "formsTotalBefore": 1,
      "formsTotalAfter": 1,
      "assessment": {
        "status": "validation-visible",
        "invalidCount": 14,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [
        {
          "formIndex": 0,
          "id": "edit-salutation",
          "label": "Anrede",
          "name": "salutation",
          "required": true,
          "type": "select",
          "valid": false,
          "validationMessage": "Please select an item in the list.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-first-name",
          "label": "Vorname",
          "name": "first_name",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-last-name",
          "label": "Nachname",
          "name": "last_name",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-email",
          "label": "E-Mail-Adresse",
          "name": "email",
          "required": true,
          "type": "email",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-mobile",
          "label": "Mobil",
          "name": "mobile",
          "required": true,
          "type": "tel",
          "valid": false,
          "validationMessage": "Bitte geben Sie eine gültige Mobilnummer ein.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-password-pass1",
          "label": "Passwort",
          "name": "password[pass1]",
          "required": true,
          "type": "password",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-password-pass2",
          "label": "Passwort bestätigen",
          "name": "password[pass2]",
          "required": true,
          "type": "password",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-street",
          "label": "Straße",
          "name": "street",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-house-number",
          "label": "Hausnummer",
          "name": "house_number",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-postal-code",
          "label": "PLZ",
          "name": "postal_code",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-city",
          "label": "Ort",
          "name": "city",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-country",
          "label": "Land",
          "name": "country",
          "required": true,
          "type": "select",
          "valid": false,
          "validationMessage": "Please select an item in the list.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-privacy-consent",
          "label": "Ich habe die Datenschutzhinweise gelesen und stimme der Verarbeitung meiner Daten zu.",
          "name": "privacy_consent",
          "required": true,
          "type": "checkbox",
          "valid": false,
          "validationMessage": "Bitte bestätigen Sie die Datenschutzhinweise.",
          "valueLength": 1,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-terms-consent",
          "label": "Ich akzeptiere die Nutzungserklärung für das Projektpartnerportal.",
          "name": "terms_consent",
          "required": true,
          "type": "checkbox",
          "valid": false,
          "validationMessage": "Bitte bestätigen Sie die Nutzungserklärung.",
          "valueLength": 1,
          "willValidate": true
        }
      ],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-portal-registration-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-portal-registration-empty-after-2026-07-05.png"
      },
      "clickStatus": "clicked-target",
      "commandFailures": []
    },
    {
      "id": "project-application-empty",
      "path": "/fuer-freiberufler/projektliste/mechanical-design-engineer-mwd/bewerben",
      "intent": "Project application: empty submit should block before upload/mail/account side effects",
      "url": "https://solcom.ddev.site/fuer-freiberufler/projektliste/mechanical-design-engineer-mwd/bewerben",
      "titleBefore": "Auf Projekt bewerben | SOLCOM",
      "titleAfter": "Auf Projekt bewerben | SOLCOM",
      "beforeUrl": "https://solcom.ddev.site/fuer-freiberufler/projektliste/mechanical-design-engineer-mwd/bewerben",
      "afterUrl": "https://solcom.ddev.site/fuer-freiberufler/projektliste/mechanical-design-engineer-mwd/bewerben",
      "selected": {
        "action": "/fuer-freiberufler/projektliste/mechanical-design-engineer-mwd/bewerben",
        "fieldCount": 40,
        "index": 0,
        "method": "post",
        "requiredCount": 11,
        "submitLabel": "Absenden"
      },
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "AUF PROJEKT BEWERBEN",
        "ALS GAST BEWERBEN",
        "MIT KONTO BEWERBEN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS"
      ],
      "headingsAfter": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "AUF PROJEKT BEWERBEN",
        "ALS GAST BEWERBEN",
        "MIT KONTO BEWERBEN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS"
      ],
      "formsTotalBefore": 1,
      "formsTotalAfter": 1,
      "assessment": {
        "status": "validation-visible",
        "invalidCount": 10,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [
        {
          "formIndex": 0,
          "id": "edit-gender",
          "label": "Anrede",
          "name": "gender",
          "required": true,
          "type": "select",
          "valid": false,
          "validationMessage": "Please select an item in the list.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-first-name",
          "label": "Vorname",
          "name": "first_name",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-last-name",
          "label": "Nachname",
          "name": "last_name",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-phone",
          "label": "Telefon",
          "name": "phone",
          "required": true,
          "type": "tel",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-email",
          "label": "E-Mail-Adresse",
          "name": "email",
          "required": true,
          "type": "email",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-street",
          "label": "Straße",
          "name": "street",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-house-number",
          "label": "Hausnummer",
          "name": "house_number",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-postal-code",
          "label": "Postleitzahl",
          "name": "postal_code",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-city",
          "label": "Ort",
          "name": "city",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-privacy-accepted",
          "label": "Ich habe die Datenschutzhinweise gelesen und stimme der Verarbeitung meiner Daten zur Bearbeitung meiner Bewerbung zu.",
          "name": "privacy_accepted",
          "required": true,
          "type": "checkbox",
          "valid": false,
          "validationMessage": "Bitte bestätigen Sie, dass Sie die Datenschutzhinweise gelesen haben.",
          "valueLength": 1,
          "willValidate": true
        }
      ],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-project-application-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-project-application-empty-after-2026-07-05.png"
      },
      "clickStatus": "clicked-target",
      "commandFailures": []
    },
    {
      "id": "project-alert-empty",
      "path": "/projektportal/projekt-alert/abonnieren",
      "intent": "Project alert: empty submit should block or explicitly require login",
      "url": "https://solcom.ddev.site/projektportal/projekt-alert/abonnieren",
      "titleBefore": "Projekt-Alert abonnieren | SOLCOM",
      "titleAfter": null,
      "beforeUrl": "https://solcom.ddev.site/projektportal/projekt-alert/abonnieren",
      "afterUrl": null,
      "selected": null,
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "PROJEKT-ALERT ABONNIEREN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "headingsAfter": [],
      "formsTotalBefore": 0,
      "formsTotalAfter": 0,
      "assessment": {
        "status": "blocked-no-form-target",
        "invalidCount": 0,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-project-alert-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-project-alert-empty-after-2026-07-05.png"
      },
      "clickStatus": "no-visible-form-target",
      "commandFailures": []
    },
    {
      "id": "newsletter-invalid-email",
      "path": "/form/newsletter-signup",
      "intent": "Newsletter: invalid email should stay client-side and avoid mail/submission side effects",
      "url": "https://solcom.ddev.site/form/newsletter-signup",
      "titleBefore": "Newsletter abonnieren | SOLCOM",
      "titleAfter": "Newsletter abonnieren | SOLCOM",
      "beforeUrl": "https://solcom.ddev.site/form/newsletter-signup",
      "afterUrl": "https://solcom.ddev.site/form/newsletter-signup",
      "selected": {
        "action": "/form/newsletter-signup",
        "fieldCount": 1,
        "index": 0,
        "method": "post",
        "requiredCount": 1,
        "submitLabel": "Anmelden"
      },
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "NEWSLETTER ABONNIEREN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "headingsAfter": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "NEWSLETTER ABONNIEREN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "formsTotalBefore": 1,
      "formsTotalAfter": 1,
      "assessment": {
        "status": "validation-visible",
        "invalidCount": 1,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [
        {
          "formIndex": 0,
          "id": "edit-email",
          "label": "E-Mail-Adresse",
          "name": "email",
          "required": true,
          "type": "email",
          "valid": false,
          "validationMessage": "Please include an '@' in the email address. 'not-an-email' is missing an '@'.",
          "valueLength": 12,
          "willValidate": true
        }
      ],
      "messages": [],
      "activeField": {
        "id": "edit-email",
        "label": "E-Mail-Adresse",
        "name": "email",
        "required": true,
        "type": "email",
        "valid": false,
        "validationMessage": "Please include an '@' in the email address. 'not-an-email' is missing an '@'.",
        "valueLength": 12,
        "willValidate": true
      },
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-newsletter-invalid-email-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-newsletter-invalid-email-after-2026-07-05.png"
      },
      "clickStatus": "clicked-target",
      "commandFailures": []
    },
    {
      "id": "contact-empty",
      "path": "/kontakt",
      "intent": "Contact form: empty submit should expose required-field validation",
      "url": "https://solcom.ddev.site/kontakt",
      "titleBefore": "Kontakt | SOLCOM",
      "titleAfter": "Kontakt | SOLCOM",
      "beforeUrl": "https://solcom.ddev.site/kontakt",
      "afterUrl": "https://solcom.ddev.site/kontakt",
      "selected": {
        "action": "/kontakt",
        "fieldCount": 14,
        "index": 0,
        "method": "post",
        "requiredCount": 6,
        "submitLabel": "Hier klicken"
      },
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "KONTAKT",
        "SPRECHEN SIE MIT UNS",
        "SOCIAL MEDIA",
        "Zur Person",
        "Ihre Nachricht",
        "Datenschutz"
      ],
      "headingsAfter": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "KONTAKT",
        "SPRECHEN SIE MIT UNS",
        "SOCIAL MEDIA",
        "Zur Person",
        "Ihre Nachricht",
        "Datenschutz"
      ],
      "formsTotalBefore": 1,
      "formsTotalAfter": 1,
      "assessment": {
        "status": "validation-visible",
        "invalidCount": 6,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [
        {
          "formIndex": 0,
          "id": "edit-vorname",
          "label": "Vorname",
          "name": "vorname",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-nachname",
          "label": "Nachname",
          "name": "nachname",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-unternehmen",
          "label": "Unternehmen",
          "name": "unternehmen",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-geschaeftliche-email",
          "label": "Geschäftliche E-Mail",
          "name": "geschaeftliche_email",
          "required": true,
          "type": "email",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-message",
          "label": "Nachrichtentext",
          "name": "message",
          "required": true,
          "type": "textarea",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-datenschutz-bestaetigung",
          "label": "Ich bestätige hiermit, dass ich die hier aufgeführten Datenschutzhinweise gelesen und verstanden habe.",
          "name": "datenschutz_bestaetigung",
          "required": true,
          "type": "checkbox",
          "valid": false,
          "validationMessage": "Please tick this box if you want to proceed.",
          "valueLength": 1,
          "willValidate": true
        }
      ],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-contact-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-contact-empty-after-2026-07-05.png"
      },
      "clickStatus": "clicked-target",
      "commandFailures": []
    },
    {
      "id": "experts-lead-empty",
      "path": "/fuer-unternehmen/experten-finden-lassen",
      "intent": "Salesforce lead form: empty submit should stop before external/Salesforce leg",
      "url": "https://solcom.ddev.site/fuer-unternehmen/experten-finden-lassen",
      "titleBefore": "Page not found | SOLCOM",
      "titleAfter": null,
      "beforeUrl": "https://solcom.ddev.site/fuer-unternehmen/experten-finden-lassen",
      "afterUrl": null,
      "selected": null,
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "SEITE NICHT GEFUNDEN",
        "SOCIAL",
        "FOOTER NAVIGATION",
        "FOOTER HIGHLIGHTS",
        "FOOTER KONTAKT",
        "FOOTER"
      ],
      "headingsAfter": [],
      "formsTotalBefore": 0,
      "formsTotalAfter": 0,
      "assessment": {
        "status": "blocked-no-form-target",
        "invalidCount": 0,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-experts-lead-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-experts-lead-empty-after-2026-07-05.png"
      },
      "clickStatus": "no-visible-form-target",
      "commandFailures": []
    },
    {
      "id": "example-project-empty",
      "path": "/form/beispiel",
      "intent": "Example project form: empty submit should block before downstream mail workflow",
      "url": "https://solcom.ddev.site/form/beispiel",
      "titleBefore": "Projekt erstellen | SOLCOM",
      "titleAfter": "Projekt erstellen | SOLCOM",
      "beforeUrl": "https://solcom.ddev.site/form/beispiel",
      "afterUrl": "https://solcom.ddev.site/form/beispiel",
      "selected": {
        "action": "/form/beispiel",
        "fieldCount": 31,
        "index": 0,
        "method": "post",
        "requiredCount": 4,
        "submitLabel": "Hier klicken"
      },
      "headingsBefore": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "PROJEKT ERSTELLEN",
        "1. Ihr Projekt",
        "2. Ihre Anforderungen",
        "3. Ihre Kontaktdaten",
        "4. Datenschutz- und Nutzungserklärung",
        "SOCIAL"
      ],
      "headingsAfter": [
        "MAIN NAVIGATION",
        "USER ACCOUNT",
        "PROJEKT ERSTELLEN",
        "1. Ihr Projekt",
        "2. Ihre Anforderungen",
        "3. Ihre Kontaktdaten",
        "4. Datenschutz- und Nutzungserklärung",
        "SOCIAL"
      ],
      "formsTotalBefore": 1,
      "formsTotalAfter": 1,
      "assessment": {
        "status": "validation-visible",
        "invalidCount": 4,
        "messagesCount": 0,
        "navigated": false,
        "consoleHasOutput": false,
        "errorsHasOutput": false
      },
      "invalids": [
        {
          "formIndex": 0,
          "id": "edit-vorname",
          "label": "Vorname",
          "name": "vorname",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-nachname",
          "label": "Nachname",
          "name": "nachname",
          "required": true,
          "type": "text",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-geschaeftliche-email",
          "label": "Geschäftliche E-Mail",
          "name": "geschaeftliche_email",
          "required": true,
          "type": "email",
          "valid": false,
          "validationMessage": "Please fill in this field.",
          "valueLength": 0,
          "willValidate": true
        },
        {
          "formIndex": 0,
          "id": "edit-datenschutz-bestaetigung",
          "label": "Ich bestätige hiermit, dass ich die hier aufgeführten Datenschutzhinweise gelesen und verstanden habe.",
          "name": "datenschutz_bestaetigung",
          "required": true,
          "type": "checkbox",
          "valid": false,
          "validationMessage": "Please tick this box if you want to proceed.",
          "valueLength": 1,
          "willValidate": true
        }
      ],
      "messages": [],
      "activeField": null,
      "console": "",
      "errors": "",
      "screenshots": {
        "before": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-example-project-empty-before-2026-07-05.png",
        "after": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/formauth-example-project-empty-after-2026-07-05.png"
      },
      "clickStatus": "clicked-target",
      "commandFailures": []
    }
  ],
  "followup": {
    "path": "/Users/marc.philipps/Sites/solcom/docs/reports/assets/2026-07-04-jan-kroeger-dogfood/continuation/form-auth-validation-followup-2026-07-05.json",
    "generatedAt": "2026-07-05T04:27:30.578Z",
    "summary": [
      {
        "id": "portal-login-empty-ref-retest",
        "replaces": "portal-login-empty",
        "path": "/projektportal/login",
        "assessment": {
          "status": "validation-visible-field-level",
          "invalidCount": 2,
          "messagesCount": 0,
          "consoleHasOutput": false,
          "errorsHasOutput": false,
          "note": "Form wrapper has no visible box, but required rendered fields are visible and invalid."
        },
        "note": "Retest via snapshot ref @e47 because initial generic selector missed the visible login form."
      },
      {
        "id": "experts-lead-empty-correct-route",
        "replaces": "experts-lead-empty",
        "path": "/experten-finden-lassen",
        "assessment": {
          "status": "validation-visible",
          "invalidCount": 6,
          "messagesCount": 0,
          "consoleHasOutput": false,
          "errorsHasOutput": false
        },
        "note": "Retest with the actual local route; /fuer-unternehmen/experten-finden-lassen is a local 404."
      }
    ]
  },
  "countsWithFollowup": {
    "validationVisible": 8,
    "accessGateNoForm": 1,
    "originalRoute404Corrected": 1,
    "zeroSideEffectsExpected": true
  }
}