Generate branded single-file HTML proposals from voice dumps or text input. Triggers on: "generate a proposal", "create a proposal", "send a quote to", "make a proposal for", "proposal for consulting", "quick proposal", "generate quote", "on-the-fly proposal", "freelance proposal", "custom proposal", "proposal HTML", "send them a proposal". Use this for ANY proposal that doesn't go through the CRM portal — consulting work, freelance gigs, custom services, one-off projects, or cocktail edge cases that need freeform content. Also use when Max/OpenClaw needs to generate a proposal via claude -p. For standard cocktail events that fit CRM templates, use the CRM's POST /api/quotes endpoint instead.
Generate branded, bilingual, single-file HTML proposals from unstructured input. These proposals match the MTL Craft Cocktails portal look and feel but can contain any content — cocktail events, consulting, freelance work, anything.
Extract these from the voice dump or conversation:
Required:
Optional (use defaults if missing):
bash ~/.claude/skills/proposal-generator/assets/create-stripe-link.sh \
--amount-cents $((DEPOSIT_DOLLARS * 100)) \
--name "Deposit - [service name] ([client name])" \
--description "[summary of the event/service]" \
--client "[client name]" \
--event-date YYYY-MM-DD \
--event-type [workshop|bar_service|consulting|etc] \
--meta guests=25 --meta location="[address]"
STRIPE_SECRET_KEY (or STRIPE_API_KEY) from env or
~/.openclaw/.env. Falls back to pulling the live token from the
Composio Stripe connected account if neither is set.STRIPE_URL=$(bash ... ).STRIPE_CREATE_PAYMENT_LINK action
(confirmed missing from the catalog on 2026-04-14). Call Stripe
directly; this script is the canonical path.~/.claude/skills/proposal-generator/assets/proposal-template.htmlhref~/proposals/proposal-[client-last-name]-[date].html~/Documents/GitHub/client-portal-proposal/public/proposals/proposal-[client-last-name]-[date].htmlcd ~/Documents/GitHub/client-portal-proposalgit add public/proposals/proposal-[client-last-name]-[date].htmlgit commit -m "Add proposal: [client name] [date]"git pushhttps://portal.mtlcraftcocktails.com/proposals/proposal-[client-last-name]-[date]These apply unless the user explicitly overrides them:
Shareable URL: https://portal.mtlcraftcocktails.com/proposals/proposal-[client-last-name]-[date]
Backup: Local copy saved to ~/proposals/proposal-[client-last-name]-[date].html
Technical details:
When called via claude -p, the prompt should include:
The skill handles Stripe payment link creation automatically via Composio. No Stripe link needs to be provided — it is always created as part of generation.
Example claude -p invocation:
claude -p "Using the proposal-generator skill, generate a proposal:
Client: Clara Kutser, [email protected], 438-657-6578
Event: Drink Without The Drunk mocktail bar, May 22, 12-4 PM, Vanier College
Line items:
- 175 guests x $15/person = $2,625
- Bar on wheels = $600
- 3 mixologists x $40/hr x 6hrs = $720
- Package discount = -$1,445
Total: $2,500 + tax
Deposit: 25% = $625
Save to: ~/proposals/proposal-kutser-2026-05-22.html"
Colors, fonts, layout structure, logo, and both theme modes are defined in the
template file at assets/proposal-template.html. Never deviate from this
base — only change content, never chrome.