From an Opportunity, a Quote is priced in the quote builder
(apps/web/src/components/quotes/quote-builder/quote-builder-workspace.tsx,
apps/web/src/hooks/use-quote-builder.ts). Once a Quote is in DRAFT
status, its action bar
(apps/web/src/components/quotes/shell/quote-action-bar.tsx) shows a
Send Quote button that opens an email-send dialog
(use-quote-email-send-dialog.tsx); later statuses show Send for
Signature instead when the quote requires an agreement. QuoteStatus
is a generated enum; see Concepts: data model.
TODO(owner, likely product): write the full guide covering the builder's
adjustment/pricing model
(apps/web/src/lib/validations/quote-builder-adjustments.ts), what
merge-field tokens ({{fieldKey}}) are available in quote text per
project memory, and the full DRAFT → ... → ACCEPTED status lifecycle
including what "Send for Signature" requires versus a plain send.