# Kibble installation contract: section 28 of 29 (guide version 3)

> This is **one section only**, not the whole contract. Complete document: https://www.usekibble.dev/AI/guide.md

## 28. Installation report {#report}

Copy this template, fill in every line from what you actually did and observed, and return it to the person who asked for the installation. Write "not tested" rather than guessing.

Installation report:

```
KIBBLE INSTALLATION REPORT
Install contract guide version:   3
SDK build (X-Kibble-SDK-Version header):
Capability coverage:              see the capability table in the completion checklist
Site / property name:
Property key used (public pk_ value only):
Collector origin used:
Website hosts:                    
External connections:             (provider, host, tenant, routes; one recipe each, with where it is installed and by whom)
Platform / framework:             Version:
Integration status label:         (direct integration / fixture-tested adapter / importable template / live-verified installation, only if the Verify section was completed on the live site)
Files changed (paths):
Where the snippet is installed:   (layout / theme / tag manager container)
Installed exactly once per page?  yes / no / not tested
Consent mechanism:                (custom banner / CMP name / Google Consent Mode)
Consent granted wired:            yes / no     denied wired: yes / no     saved choice re-applied on load: yes / no
Semantic markup added:            (meta kibble:content / sections / clicks / forms / none)
Booking or checkout adapter:      (none / dataLayer events / rezStream tag (recipe) / Shopify pixel / BigCommerce BODL)
Approved hosts registered:        (with ports)   Cross-domain tested: yes / no / not applicable
Tenant check on shared hosts:     (host -> tenant, other-tenant page sends nothing: yes / no / not applicable)
Handoff:                          _kbh removed from the address bar: yes / no; first page view nav handoff: yes / no; destination consent source: (name or none)
Booking criteria mapping:         (form -> roles, or "explicit call", or "none")
Booking engine results signal:    (availability via dataLayer / none / not tested)
Site search:                      (scope, results known? yes / no / site has no search)
Form acceptance wiring:           (which response triggers formAccepted, or none)
Outcome emitted from:             (confirmed signal with reference, or "none")
Outcome candidates triggered:     (signals, or none)
Network check:                    kibble.js loaded once (status __); no /v1/collect before consent: yes / no;
                                  /v1/collect after consent (status __)
Console check:                    kibble.debug.consent = __     after denied: browserId null: yes / no
Kibble diagnostics checked by:    (name) / not checked
Not tested / limitations:
Open questions for the owner:
```

END OF SECTION report
