Launch Plan Sequencer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Launch Plan Sequencer (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.
A launch is not a day; it is an arc. The teams that botch launches treat "launch" as a single deadline, pile every task onto it, and discover on the morning of that the demo video is unrendered, sales has never seen the pitch, and nobody owns the Hacker News thread. Your job is the opposite: stretch the launch into three phases — pre-launch, launch day, post-launch — and assign every asset and channel an owner and a date before the clock starts.
This skill owns the sequence and the schedule. It does not own the strategy (what to launch, to whom, why now — that is a precondition the team brings in), it does not own the message itself (that is [[positioning-statement]] and [[messaging-hierarchy]]), and it does not own the minute-by-minute choreography of the day itself (that is [[launch-day-runbook]]). You produce the map; those skills fill in the territory.
Reach for it the moment someone says "we're launching" and there is no dated plan. Run it once the strategy is settled and the message spine exists ([[positioning-statement]], [[messaging-hierarchy]]), and before [[launch-day-runbook]] sequences the day. Re-run it whenever the launch date moves — a slipped date silently invalidates every dependency behind it.
Work backward from the launch date (call it L). Everything is relative to L.
Nothing ships on launch day that was not finished days before. Pre-launch is where assets get made, owners get assigned, and the channels get armed.
why now. If you cannot write it, you are not ready to launch — settle the strategy first. Everything downstream inherits this sentence.
messaging that every asset reuses come from [[positioning-statement]] and [[messaging-hierarchy]]. Do this first so the landing page, emails, and sales deck all say the same thing in the same words.
checklist below): landing page copy ([[landing-page-copy]]), competitive framing, pricing/packaging, the demo. Set every asset due at L−3d, not L−0 — you need a buffer day for the thing that breaks.
name the owner, draft the post/email, and schedule it. Self-serve / product-led distribution mechanics are [[plg-motion-designer]]; the sales team's deck, battlecard, and demo script are [[sales-enablement-kit]].
launch day has an audience, not an empty room. A launch nobody is waiting for is a press release into the void.
landing page on mobile, confirm the demo renders. The dry run is where you find the broken thing while you still have a day to fix it.
Launch day is pure execution of pre-built ammunition. If you are writing copy on launch day, you have already failed. The hour-by-hour orchestration — publish order, who hits which channel when, the war-room, the incident path — is owned by [[launch-day-runbook]]. Your job here is only to confirm the day has: a single owner (the "launch captain"), a go/no-go check at L−30min, and the assets staged and scheduled. Then hand off to [[launch-day-runbook]].
The launch spike decays in days. Post-launch turns attention into pipeline and learnings.
who engaged, a "in case you missed it" resend, and a sales follow-up on every warm lead. Cadence and copy reuse [[messaging-hierarchy]].
milestones — reshare the social proof the launch generated.
drove. Record the numbers honestly; this is the input to your next launch plan.
ongoing content, paid, lifecycle. Hand the durable distribution back to [[plg-motion-designer]] and the ongoing sales motion to [[sales-enablement-kit]].
Every launch plan must answer, for each row: owner, due date, status. Cut rows that don't fit the audience — a developer tool does not need a TikTok — but never leave a row ownerless.
| Asset / channel | Phase | Owner | Due | Source skill |
|---|---|---|---|---|
| Launch thesis (1 sentence) | Pre | PMM | L−21d | strategy (precondition) |
| Positioning statement | Pre | PMM | L−18d | [[positioning-statement]] |
| Messaging hierarchy | Pre | PMM | L−16d | [[messaging-hierarchy]] |
| Landing / launch page | Pre | Web | L−3d | [[landing-page-copy]] |
| Pricing & packaging | Pre | PMM | L−10d | pricing & packaging |
| Competitive battlecard | Pre | PMM | L−5d | competitive framing |
| Demo / product video | Pre | Product | L−3d | (asset) |
| Sales deck + script | Pre | Sales | L−5d | [[sales-enablement-kit]] |
| In-product launch surface | Pre | Eng | L−1d | [[plg-motion-designer]] |
| Email — warm-up tease | Pre | Lifecycle | L−7d | [[messaging-hierarchy]] |
| Email — launch announce | Day | Lifecycle | L | [[messaging-hierarchy]] |
| Social posts (X/LinkedIn) | Day | Social | L | [[messaging-hierarchy]] |
| Community / forum post | Day | Community | L | — |
| Press / outreach | Day | PMM | L | — |
| Hour-by-hour run-of-show | Day | Launch captain | L | [[launch-day-runbook]] |
| Follow-up nurture sequence | Post | Lifecycle | L+1d | [[messaging-hierarchy]] |
| Launch retro | Post | PMM | L+7d | (this skill) |
A launch plan is done when:
row, accountable.
executes. The one exception is the live posts/emails that are scheduled but fire on the day.
([[positioning-statement]], [[messaging-hierarchy]]) is due before any asset that reuses it. If the landing page is due before the messaging, the plan is wrong.
dry-run at L−2d.
have dates before launch day, or they will never happen.
a deadline, not a sequence. Pull them back to L−3d.
[[launch-day-runbook]]'s job; duplicating it splits the source of truth and the two will drift.
[[positioning-statement]] and the laddered copy is [[messaging-hierarchy]]; strategy and pricing are settled upstream. Cross-link; do not rewrite.
pre-launch is not optional.
five-minute fix; finding it at L is a public failure.
leaves most of the value on the table.
Give the script your launch date and it prints the dated, phased plan with owners. Drop it in launch_sequencer.py and run python launch_sequencer.py 2026-09-15. It resolves every L−offset to a real calendar date so the plan is a schedule, not a wish list.
#!/usr/bin/env python3
"""Launch Plan Sequencer — turn a launch date into a dated, owned, phased plan.
Usage: python launch_sequencer.py YYYY-MM-DD
"""
import sys
from datetime import date, timedelta
# (label, phase, owner, offset_days_from_L, source_skill)
PLAN = [
("Launch thesis (1 sentence)", "pre", "PMM", -21, "strategy (precondition)"),
("Positioning statement", "pre", "PMM", -18, "positioning-statement"),
("Messaging hierarchy", "pre", "PMM", -16, "messaging-hierarchy"),
("Pricing & packaging", "pre", "PMM", -10, "—"),
("Warm-up tease email", "pre", "Lifecycle", -7, "messaging-hierarchy"),
("Sales deck + script", "pre", "Sales", -5, "sales-enablement-kit"),
("Competitive battlecard", "pre", "PMM", -5, "—"),
("Landing / launch page", "pre", "Web", -3, "landing-page-copy"),
("Demo / product video", "pre", "Product", -3, "—"),
("Dry run (click every link)", "pre", "Launch captain", -2, "—"),
("In-product launch surface", "pre", "Eng", -1, "plg-motion-designer"),
("Go / no-go check", "day", "Launch captain", 0, "launch-day-runbook"),
("Run-of-show (hour by hour)", "day", "Launch captain", 0, "launch-day-runbook"),
("Launch announce email", "day", "Lifecycle", 0, "messaging-hierarchy"),
("Social + community + press", "day", "Social/PMM", 0, "—"),
("Follow-up nurture sequence", "post", "Lifecycle", 1, "messaging-hierarchy"),
("Amplify social proof", "post", "Social", 2, "—"),
("Launch retro", "post", "PMM", 7, "this skill"),
("Fold into always-on motion", "post", "Growth", 14, "plg-motion-designer"),
]
PHASE_LABEL = {"pre": "PRE-LAUNCH", "day": "LAUNCH DAY", "post": "POST-LAUNCH"}
def main() -> None:
if len(sys.argv) != 2:
sys.exit("usage: python launch_sequencer.py YYYY-MM-DD")
L = date.fromisoformat(sys.argv[1])
print(f"Launch date L = {L:%a %Y-%m-%d}\n")
current = None
for label, phase, owner, off, src in PLAN:
if phase != current:
current = phase
print(f"== {PHASE_LABEL[phase]} ==")
when = L + timedelta(days=off)
rel = "L" if off == 0 else (f"L{off}" if off < 0 else f"L+{off}")
src = "" if src == "—" else f" <- {src}"
print(f" {when:%a %Y-%m-%d} [{rel:>4}] {owner:<14} {label}{src}")
if __name__ == "__main__":
main()Worked example — python launch_sequencer.py 2026-09-15:
Launch date L = Tue 2026-09-15
== PRE-LAUNCH ==
Tue 2026-08-25 [ L-21] PMM Launch thesis (1 sentence) <- strategy (precondition)
Fri 2026-08-28 [ L-18] PMM Positioning statement <- positioning-statement
Sun 2026-08-30 [ L-16] PMM Messaging hierarchy <- messaging-hierarchy
Sat 2026-09-05 [ L-10] PMM Pricing & packaging
Tue 2026-09-08 [ L-7] Lifecycle Warm-up tease email <- messaging-hierarchy
Thu 2026-09-10 [ L-5] Sales Sales deck + script <- sales-enablement-kit
Thu 2026-09-10 [ L-5] PMM Competitive battlecard
Sat 2026-09-12 [ L-3] Web Landing / launch page <- landing-page-copy
Sat 2026-09-12 [ L-3] Product Demo / product video
Sun 2026-09-13 [ L-2] Launch captain Dry run (click every link)
Mon 2026-09-14 [ L-1] Eng In-product launch surface <- plg-motion-designer
== LAUNCH DAY ==
Tue 2026-09-15 [ L] Launch captain Go / no-go check <- launch-day-runbook
Tue 2026-09-15 [ L] Launch captain Run-of-show (hour by hour) <- launch-day-runbook
Tue 2026-09-15 [ L] Lifecycle Launch announce email <- messaging-hierarchy
Tue 2026-09-15 [ L] Social/PMM Social + community + press
== POST-LAUNCH ==
Wed 2026-09-16 [ L+1] Lifecycle Follow-up nurture sequence <- messaging-hierarchy
Thu 2026-09-17 [ L+2] Social Amplify social proof
Tue 2026-09-22 [ L+7] PMM Launch retro <- this skill
Tue 2026-09-29 [ L+14] Growth Fold into always-on motion <- plg-motion-designerNotice what the schedule enforces: the message spine lands first, every asset is done by L−3d, there is a dry run at L−2d, launch day only executes, and post-launch is already on the calendar. Edit the PLAN list to add or cut rows for your audience — the dates and phases recompute themselves.
A dated, phased launch plan: the pre-launch → launch-day → post-launch arc with every channel and asset assigned an owner and a due date relative to L, the message spine sequenced before its dependents, a dry-run and buffer day before launch, and a post-launch follow-up + retro already scheduled. Hand the day-of run-of-show to [[launch-day-runbook]] and the durable distribution to [[plg-motion-designer]] and [[sales-enablement-kit]].
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.