ship-pitch — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ship-pitch (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Turn a project's real, verifiable evidence into an investor one-pager and a slide-by-slide deck outline. The angle is a builder's pitch: lead with proof of execution — what is shipped and how fast the team ships (momentum) — rather than vague vision. Brand, momentum, and product capabilities all come from files already in the repo, so the pitch matches the current release and never drifts from reality.
The cardinal rule: never fabricate a metric. Momentum stats (releases, active build days, cadence) are derived from the repo and may be shown. Traction (users, revenue, retention) is shown only as clearly-labeled placeholders until a real, sourced number exists. See references/one-pager-and-deck.md → "The honesty contract."
Reuses the same brand-as-data file and version anchor as the rest of the toolkit, and consumes their outputs:
docs/brand.json ← colors + fonts (themes the HTML render; sets name + tagline)
docs/VERSION ← shared semver anchor (stamped on the one-pager)
├─ shipping-log / ship-changelog → docs/SHIPPING-LOG.md → momentum stats + shipped features
├─ user-guide-builder / ship-guide → docs/user-guide/* → what it does + who it's for
├─ screenshot-capture / ship-screenshots → [SCREENSHOT: id] callouts for deck visuals
└─ logo-pack / ship-logos → docs/brand/ logo for the deck cover
ship-pitch (this) → docs/pitch/one-pager.md + .html + docs/pitch/deck-outline.mdIf a needed input is missing, this skill points at the sibling that produces it (e.g. no shipping log → run /ship-changelog first) rather than guessing.
node "<skill-dir>/scripts/collect-pitch-inputs.mjs" --days 30Returns one JSON blob: brand (name/tagline/colors), version, shippingLog (releases, latest/first version, dates), git (commits, active days, span, last shipped, contributors), guide (path + section headings = the shipped feature map), priorPitch (existing outputs — update, don't clobber), gaps[], and ready. Read it. It is the only source of metrics. If ready is false or gaps[] is non-empty, handle it per step 2 before writing.
the HTML render must be on-brand and must never default to purple. Offer /ship-logos.
show; if neither exists, you have no momentum numbers — say so and offer /ship-changelog. Do not invent cadence.
/ship-guide, or fall back to the README / routes and mark inferred items.
the momentum + shipped sections in place.
references/one-pager-and-deck.md for the section order,the voice rules, the traction-placeholder block, and the deck slide template. Read references/worked-example.md for a full input→output trace. Match them — the value of this skill is the consistent, honest structure.
docs/pitch/one-pager.md using the section order: problem →solution → what's shipped → who it's for → why now/why us → traction → the ask.
domain; never write interchangeable SaaS filler).
git/shippingLog numbers.[TRACTION: …],[METRIC: …], [TBD: …], [ASK: …], [SOURCE: …], [CONTACT: …], [TEAM: …], [MODEL: …], or [PLACEHOLDER]. The renderer styles every one of these as a visible dashed-pill placeholder, so no fake number can ship. Use only this set (the full table is in references/one-pager-and-deck.md → "Canonical placeholder tokens") so the writer and the renderer regex stay in lockstep. [SCREENSHOT: id] is a deck visual marker, not a blank, and is left un-styled.
docs/pitch/deck-outline.md — one block per slide(headline + 3–5 talking points + speaker note + visual suggestion), covering: title, problem, solution, what's shipped, momentum, who it's for, why now/why us, traction (placeholders), business model, the ask. Suggest [SCREENSHOT: id] visuals that ship-screenshots can fill.
node "<skill-dir>/scripts/render-one-pager.mjs" \
--in docs/pitch/one-pager.md --out docs/pitch/one-pager.html \
--brand docs/brand.json --version docs/VERSIONSelf-contained, themeable via :root tokens from brand.json — both colors AND typography: the Google Fonts <link> is built from brand.fonts (display/body/mono), so a brand that sets custom fonts actually fetches them (not only the --font-* tokens). All-system font names (e.g. Georgia, system-ui) are skipped — no needless web fetch. Never purple by default, no backdrop-filter / no SVG feTurbulence, and includes a print stylesheet so it exports to PDF cleanly.
bracket placeholder the founder still has to fill** (search the output for [). Tell them which inputs were missing and which sibling command produces them.
A pitch passes only if all of these hold:
user provided. Every unverified metric is a visible [...] placeholder. If you typed a user/revenue/growth number you didn't read in a source, you failed.
builds, not that customers exist.
against the guide); future work is clearly future-tense under "roadmap."
the product's actual domain (learned from the guide/brand), not swappable filler. The "rejected vs accepted" example in one-pager-and-deck.md is the bar.
<link> fetchesthe brand's display/body/mono faces (verify: the Google Fonts URL names the brand's fonts, not the defaults), and the --font-* tokens match it. Not purple unless brand.json says so; no backdrop-filter / feTurbulence; prints to a clean PDF.
[ surfaces every unfilled placeholder, and theHTML render styles every canonical token (TRACTION, METRIC, TBD, ASK, SOURCE, CONTACT, TEAM, MODEL, PLACEHOLDER) as a visible dashed pill — none render as plain text. Only [SCREENSHOT: id] (a deck visual) is intentionally left un-styled.
("revolutionary," "seamless," "leverage," "synergy," "game-changing").
Nothing is hardcoded to any one app. All inputs are auto-discovered from conventional paths (docs/brand.json, docs/VERSION, docs/SHIPPING-LOG.md/CHANGELOG.md, docs/user-guide/*) with graceful fallback. Momentum comes from plain git, available in any repo. External generators (logo, screenshots, a deck builder) are referenced through their sibling skills as adapters — none is assumed installed; the skill degrades to placeholders and clear "run X to fill this" notes instead of failing.
scripts/collect-pitch-inputs.mjs — discovery: gathers brand, version, momentum(shipping log + git), and the shipped-feature map into one JSON. Read-only. Run it; don't re-derive history by hand.
scripts/render-one-pager.mjs — renders the one-pager markdown to a self-contained,brand-themed, print-friendly HTML page (dependency-free markdown subset). Themes colors and fonts from brand.json: --font-* tokens and the Google Fonts <link> are both derived from brand.fonts, so custom typography is actually loaded, deduped, and falls back cleanly for system fonts.
references/one-pager-and-deck.md — section order, voice, the honesty contract, thetraction-placeholder block, and the deck slide template.
references/worked-example.md — a full discovery-JSON → one-pager + deck-outline trace,with a rejected-vs-accepted problem statement showing the anti-generic bar.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.