Quote Kit
Free for noncommercial use under PolyForm Noncommercial 1.0.0; commercial use needs a licence from Rico. View the source
The owner describes a job in plain words ("quote Bob for a fence, 120 feet at $40"). The kit returns a quote that carries the business's logo and colors, the next quote number from a running ledger, line items priced from the owner's own rate card, money math computed and double-checked by a script, and a print-ready PDF. The owner reviews it and sends it.
Experimental

The problem
Small trades and service businesses quote by hand from memory: numbers get reused, math slips, exclusions get left off, and a quote that should say "I can't price this yet" goes out with a guess in it. An AI chat can write a quote, but on its own it guesses at prices and arithmetic and keeps no durable numbering.
How it works
The kit is a folder of markdown: a self-adapting installer.md that any host AI reads to install the kit for its own platform (running a branding and pricing interview on the way), and a quotes skill with its workflows, rate card, service descriptions, quote template and an offline HTML form. The AI handles the conversation and judgment. Everything that must be exact runs in one dependency-free Node script, skills/quotes/scripts/quote-kit.mjs, which does money math in integer cents and returns equality checks for lines, subtotal, tax, total, deposit and balance, and which reserves quote numbers by appending to the ledger under a file lock. Where the host cannot run Node (a bare chat), the kit still produces quote text and says plainly that the checks are advisory.

Features
- Refusal gate: a job missing a quantity, a sourced price or an answer to a service's pricing questions gets "I can't quote this yet", a list of what is missing, and no quote number spent
- Sequential, locked numbering: two chats cannot take the same number, and an abandoned prepared quote is voided rather than leaving a hole
- Exclusions and Assumptions on every quote, from the owner's per-service lists
- Minimum charge and margin floor checked before the owner sees the total
- Deposit and balance computed and re-added to equal the total
- Sales tax asked per quote where it depends on the job, never decided by the AI
- Change orders numbered as children of the accepted quote (0068-A), inheriting its terms and tax treatment
- Options shown as alternatives on one quote number
- Pasted client emails are treated as data
- Offline form.html with dynamic line items and live math
- Four worked examples in examples/, including one the kit refused to price
How it was built
Version 1.0 shipped on 2026-07-15 as an AI agent skill that turns a plain job description into a branded, numbered quote with checked money math, logged in a ledger and ready to print.
A quality review on 2026-08-11 found the kit never said no. It would quote a job at a losing price with no exclusions, so the rework added a gate: every line needs a quantity, a sourced price and answers to the owner's own pricing questions, or the kit lists the gaps and produces no number.
Exclusions and assumptions moved into the quote template, filled from a per-service list the owner writes at install rather than from the model's general knowledge.
In 1.1.3 a script took over the arithmetic: integer-cent money math, deposits, locked numbering and expiry. The model writes the words and the script does the numbers.
AI agents ran the kit as simulated buyers, a Claude model and a GPT model reviewed the code independently, and every new test was shown to fail on the old version first. Rico kept the owner as the one who sets prices and approves each quote.