offer-builder
Skill15 starsChanged 6 days agoMITView on GitHub
Offer Builder. Writes the offer they can say yes to. One page: the problem in their own numbers, what they get, the price, the date it ships, and the way out, with the plain statement that it isn't finished yet. A lint refuses an offer that leaves any of that out or that leans on fake urgency, made-up proof and promises nobody can keep. Every offer waits for your yes. Use when the user says "write the offer", "make them an offer", "offer page", "proposal", "one-pager", "what do I send them", "they asked for details", or "founding customer offer".
5 other projects use a version of this.
Adopted by
Most recently taken up by
- CalebAnderson-Coder/ai-agency-os-startertheir own version, first seen Oct 25, 2026
- duncan-buildroom/profit-room-skillstheir own version, first seen Oct 13, 2026
- duncan-buildroom/freeskillstheir own version, first seen Oct 13, 2026
- mrtomaito/majlis-decision-gatetheir own version, first seen Sep 24, 2026
- styfinity/claude-marketing-departmenttheir own version, first seen Jul 8, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- duncan-buildroom/freeskills★ 65same name
- duncan-buildroom/profit-room-skills★ 18same name
- styfinity/claude-marketing-department★ 6same name
- CalebAnderson-Coder/ai-agency-os-starter★ 0same name
- mrtomaito/majlis-decision-gate★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository10 other files it gives its agents.
- case-studySkill
- demo-builderSkill
- follow-upSkill
- launch-plannerSkill
- market-researcherSkill
- objection-handlerSkill
- pre-saleSkill
- pricingSkill
- requirementsSkill
- whale-hunterSkill
The file
We split this skill into the rules it gives an agent
9 rules. 0 are common, 6 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
What you get: only what they told you they want (--get, repeat it).
- Very specific: line 40
Check that /pre-sale terms is set and the deal has a price from /pricing.
- Very specific: line 45
Log: Only after it went out: offer.py record --approval "<their yes, word for word>".
- Distinctive: line 50
No price, no ship date, nothing saying it isn't finished, or no way to get their money back.
- Distinctive: line 63
Never sends, and never records an offer that did not go out.
- Distinctive: line 64
Never hides that the product isn't finished.
- Distinctive: line 65
Never invents a customer, a result, a discount or a deadline to make it feel urgent.
- Distinctive: line 71
Stop at the first "no" or any sign of disinterest.
- Distinctive: line 72
Never invent a number, a result, a client or a deadline.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
offer-builder
A good offer takes one page and leaves no question open. The buyer should be able to forward it to their boss with no explanation. This skill writes that page, and won't let it say anything you can't back up.
${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).
python3 "${CLAUDE_SKILL_DIR}/offer.py" draft --deal north-pier --get "Every late invoice chased automatically" \
--get "Built to your requirements, which we go through together after you pay"
python3 "${CLAUDE_SKILL_DIR}/offer.py" lint --offer whale/offers/north-pier.md
python3 "${CLAUDE_SKILL_DIR}/offer.py" record --deal north-pier --text-file whale/offers/north-pier.md \
--subject "Your Product: the offer" --approval "yes" --at 2026-11-02T10:15What is on the page
- Today: what they pay now for this, from the board. "$6,400 a month ($76,800 a year)."
- What it does, in one line.
- What you get: only what they told you they want (
--get, repeat it). Never a padded feature list. - The price: from
/pricing. One number, paid up front. - When: the ship date, from
/pre-sale terms. - What you should know: it isn't finished, and how they get their money back.
- The next step: say yes and you send the Stripe link.
Steps
- Check that
/pre-sale termsis set and the deal has a price from/pricing.draftrefuses without them. offer.py draft. Read their words from the demo call and use them. Fill every[fill: ...].offer.py lint. Fix everything it finds. If a line isn't provable, it doesn't go in.- Ask. Show the page. "Send this to Renee Alvarez at North Pier Logistics? Reply yes or no." One offer per question, every time.
- Send. On a yes, as a Gmail draft from the user's account, which the user sends (or through the Gmail connector right after that yes).
- Log. Only after it went out:
offer.py record --approval "<their yes, word for word>". The deal moves tooffer-sent, and/follow-upkeeps it alive. When they say yes,/pre-sale link. When they push back,/objection-handler.
What lint refuses
- No price, no ship date, nothing saying it isn't finished, or no way to get their money back.
- Fake urgency: "act now", "limited time", "only 3 spots left", "last chance". If the price really does end, say the real date and why.
- Claims nobody can check: "guaranteed", "risk-free", "#1", "best in the industry", "trusted by", "thousands of customers".
- Anything still marked
[fill: ...].
Example from the reel
For North Pier Logistics: "Today you pay about $6,400 a month for invoice collections service ($76,800 a year)." Founding customer · 12 months, $24,000.00, paid up front. Ships within 30 days of payment, built to your requirements. It isn't finished, and they get every dollar back if it doesn't ship. (Illustrative: North Pier and every figure are fictional.)
What it never does
- Never sends, and never records an offer that did not go out.
- Never hides that the product isn't finished.
- Never invents a customer, a result, a discount or a deadline to make it feel urgent.
Consent and truth
- Nothing is sent or charged without the user's explicit yes for that exact offer. Claude drafts, the user says "yes", then it goes out from the user's own accounts. One yes per message. Never "yes to all".
- Stop at the first "no" or any sign of disinterest. A request to stop is honoured forever, across every skill.
- Never invent a number, a result, a client or a deadline. An offer is a template, not legal advice: have a lawyer read your standard terms once.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

