# E-signing

When a deployed page carries a document that must be signed — a quote, a proposal,
terms, a contract — the signing is owned end to end by the `business-assistant:e-sign`
skill. This plugin routes to it; it does not re-implement any signing, recording,
stamping, or dispatch mechanics, because those carry a legal and compliance basis
that must not be forked.

## What e-sign owns

`business-assistant:e-sign` deploys the document to Cloudflare Pages keyed by a
`DOC_REF`, captures a signer's name, email, and an intent-and-consent tick through
a Pages Function into a shared D1 `acceptances` table (with a one-acceptance-per-
document database lock), renders a base PDF once and stamps an Electronic
Acceptance Certificate onto it at dispatch, and emails the stamped PDF to owner and
signer — inside a live operator session only. Its legal basis is a simple
electronic signature admissible under UK ECA 2000 s.7 and the simple-signature tier
of UK eIDAS. Its full outcome contract and failure signals are in that skill.

## The hand-off

1. Build and deploy the document page as its own site (this plugin's `web-design`
   plus `references/deploy.md`), so it has a stable URL.
2. Load `business-assistant:e-sign` and let it take over capture, D1 recording,
   PDF stamping, and dispatch for that `DOC_REF`.
3. If the document must also sit behind a login, apply `references/gating.md`
   first — gate the document path **and** the `/api/*` signing endpoints on the
   same origin, and confirm the gate-probe.

Immutability holds: once a `DOC_REF` has an acceptance recorded, the deployed
document is never edited. Changed terms are a new `DOC_REF` and a fresh deploy.

## Editions

E-signing is the one feature that is **not** self-contained in the marketplace
edition. It depends on the `business-assistant:e-sign` skill being present on the
host. A standalone install that needs signing must carry that skill; without it,
this plugin builds and deploys the document but does not sign it. This is a stated
host dependency, not a silent gap.
