A pitch deck gets one reading. I present it, the room nods, and a week later someone opens the PDF without me there to explain slide nine. The numbers have no sources, the speaker notes are either missing or embarrassing, and the deal terms are in the same file as the market research.
The proposal site skill builds the thing I wanted instead: a website I can walk a decision-maker through live, that they can come back to alone, and that keeps the private parts private.
What every proposal has to prove
The skill organizes every build around three claims, in this order:
- I understand your product and its scope.
- I understand your market and your competitors.
- I have a concrete plan.
Research comes first. Every figure carries a source and an as-of date, and any number a company reports about itself is labelled as a vendor claim. The competitor landscape is a scored table with weight sliders, so the reader can drag the weights and check whether the conclusion still holds.
The walkthrough
One file, steps.ts, lists every step of the presentation as a page and a section. That one list drives the walkthrough, the progress bar, the jump menu and the section numbers, so they cannot disagree.
- Press P to start, the arrow keys to move, J to jump, Esc to leave.
- Every step has a link of its own (
?present=1&step=9), so I can send someone straight to the part we argued about. - Speaker notes are keyed by step number, and a unit test fails if any step has no note.
- It has to work on a shared 1440px screen and on a phone, with tap targets big enough for a thumb.
The gate
Passwords are server secrets, never in the repo or the chat. A wrong guess waits and is rate limited, and a right one sets a signed cookie. A server function serves gated content after the signature check, so it never ships in the JavaScript bundle at all.
Each role sees a different amount. The reader sees the proposal; I see the same pages with my notes. The build ends with a leak scan over every file it is about to publish: if a gated sentence, a speaker note or a private name turns up anywhere in the public output, the build fails.
Two builds
Transient Digital is the reference build: a strategy proposal for Transient.AI. The strategy pages are public and pre-rendered, so they read without JavaScript, and the proposal itself sits behind the gate. The walkthrough is sixteen steps in four parts. Every pattern in the skill was copied out of this site after it worked.
NeatoFX tested whether the skill survives a different shape. The first cut skipped the walkthrough and read like a pile of slides, so I rebuilt it to the Transient standard before anything else. The proposal lives inside the existing NeatoFX Play site as a private section instead of a site of its own, and all of it is gated. It added a third role, so the most sensitive pages open for one reader only. Every row of the product, market and competitor tables links to its own source. It also has its own link preview, so a texted link says what it is without giving anything away.
The rules it will not break
- No target logos, trademarks, screenshots or copied copy. The site must never be mistaken for the company’s own.
- Every page carries the line: independent proposal, not affiliated with or endorsed by anyone named.
- A partnership that does not exist yet is always written as proposed. Never as a fact.
- No em dashes, and every page of copy goes through the same editing pass as the rest of this site.