{
  "generatedAt": "2026-07-05T08:10:00+02:00",
  "mode": "read-only config/browser/mailpit/code smoke",
  "environment": {
    "site": "https://solcom.ddev.site",
    "branch": "develop",
    "scope": "local only; no production, no external write, no valid submit in this pass"
  },
  "acceptanceCriteria": [
    "Public newsletter route renders for anonymous users.",
    "Newsletter form exposes a required e-mail input and submit action.",
    "A production-like newsletter signup must have a defined downstream contract: mail handler, provider handoff, or explicit local-only storage decision.",
    "Double-opt-in, privacy, unsubscribe, and confirmation copy must be visible or traceable to a responsible handler before release-readiness."
  ],
  "browserRoute": {
    "url": "https://solcom.ddev.site/form/newsletter-signup",
    "title": "Newsletter abonnieren | SOLCOM",
    "h1": "NEWSLETTER ABONNIEREN",
    "formCount": 1,
    "fields": [
      {
        "name": "email",
        "id": "edit-email",
        "type": "email",
        "placeholder": "E-Mail-Adresse",
        "required": true,
        "visible": true
      },
      {
        "id": "edit-actions-submit",
        "type": "submit",
        "value": "Anmelden"
      },
      {
        "type": "hidden",
        "name": "form_id",
        "value": "webform_submission_newsletter_signup_add_form"
      }
    ],
    "visiblePrivacyOrUnsubscribeLinks": [
      {
        "text": "Direkt zum Inhalt",
        "href": "#main-content",
        "note": "Skip link only; no visible privacy, double-opt-in, unsubscribe, or newsletter-provider copy found in the form area."
      }
    ],
    "consoleErrors": [],
    "screenshot": "newsletter-readiness-form-2026-07-05.png"
  },
  "drupalConfig": {
    "configName": "webform.webform.newsletter_signup",
    "status": "open",
    "title": "Newsletter abonnieren",
    "description": "<p>Melden Sie sich fuer aktuelle SOLCOM Insights und Projektinformationen an.</p>",
    "accessCreateRoles": [
      "anonymous",
      "authenticated"
    ],
    "confirmationType": "inline",
    "confirmationTitle": "Vielen Dank",
    "confirmationMessage": "<p>Vielen Dank fuer Ihre Anmeldung. Bitte behalten Sie Ihr Postfach im Blick.</p>",
    "handlers": [],
    "variants": []
  },
  "localState": {
    "newsletterSubmissionCount": 1,
    "mailpit": {
      "total": 9,
      "count": 9,
      "messages_count": 9,
      "unread": 0
    }
  },
  "codeSearch": {
    "newsletterHits": [
      "config/sync/webform.webform.newsletter_signup.yml",
      "web/modules/custom/solcom_editorial/tests/src/FunctionalJavascript/NewsletterSignupSmokeTest.php",
      "web/modules/custom/solcom_editorial/tests/src/Kernel/PublicWebformCopyUpdateTest.php",
      "web/modules/custom/solcom_editorial/solcom_editorial.post_update.php"
    ],
    "doubleOptInHits": [
      "web/modules/custom/solcom_projektpartner/src/Service/ProjektpartnerMailManager.php",
      "web/modules/custom/solcom_projektpartner/src/Controller/ProjektpartnerVerificationController.php",
      "web/modules/custom/solcom_project_offer/modules/solcom_project_offer_alert/src/Controller/AlertConfirmationController.php",
      "web/modules/custom/solcom_project_offer/modules/solcom_project_offer_alert/src/Form/ProjectOfferAlertSubscribeForm.php"
    ],
    "assessment": "Double-opt-in code exists for Projektpartner registration and Project Offer Alert, but no newsletter_signup handler, provider handoff, or newsletter-specific double-opt-in implementation was found."
  },
  "result": {
    "status": "open",
    "summary": "The newsletter route renders and stores a local webform submission, but production-readiness remains open because the webform has no handlers, no provider handoff, no Mailpit evidence, and no visible double-opt-in/privacy/unsubscribe copy.",
    "janFindingImpact": [
      "Supports Teresa #44 / magazine-newsletter parity as partially present but not production-ready.",
      "Keeps the existing Newsletter Downstream risk open.",
      "No additional score change; this refines already documented risk rather than adding a new failure class."
    ]
  }
}
