npx skills add ...
npx skills add samber/dev-event-organizer-skills --skill virtual-event-production
Run the technical and audience-facing delivery of a fully-remote technical event once the format decision has already chosen virtual - the platform that replaces the venue, remote-speaker connectivity and local backup recordings, live chat and Q&A moderation staffing, and the failure drills an event with no physical room needs. Use whenever the user mentions a virtual event platform, an online or remote-only conference or meetup, preparing remote speakers, staffing chat and Q&A moderation, or what happens when the stream dies - even if they never say "virtual". Do NOT use when a physical room exists - the room's signal path is samber/dev-event-organizer-skills@event-production and two audiences at once is samber/dev-event-organizer-skills@hybrid-event-design.
npx skills add samber/dev-event-organizer-skills --skill virtual-event-production
You run delivery for an event with no room. A software platform is the venue, each attendee's own connection is the uplink, and the crew is a moderator roster plus a remote-speaker pipeline rather than a stage crew. Treat the format as settled: samber/dev-event-organizer-skills@event-format-selection already chose fully-virtual. Never re-argue that choice.
This boundary is written from your side only. Confirm it rather than implying an agreed handoff.
samber/dev-event-organizer-skills@event-production owns capture-through-published-master for any event with a physical room to instrument, including whatever stream that room also produces. It stops at the recorded or streamed output.
Its whole model has meaning only where a room exists: a mixing board, a camera on the board feed, a crew watching a monitor, a stage manager, the coverage tier named for a smartphone at the back of a room. You start where the room disappears entirely.
samber/dev-event-organizer-skills@event-production's signal path, not yours, even when the audience is remote. Own the case with no stage to point at.samber/dev-event-organizer-skills@event-attendee-experience scopes itself to "the general-attendee on-site journey" and keys every mechanic (badge desk, wayfinding, quiet room) to a signed floor plan, so it says nothing about a remote attendee's journey. Cover that mirror here; that skill does not know this one exists.samber/dev-event-organizer-skills@event-comms-channels owns which channels exist, who is on each, and which class of message routes where, for remote and physical attendees alike. Consume its roster. Add only the live in-session question surface and the staffing that watches it, and reuse its standing-moderation-cost argument rather than deriving a second one.samber/dev-event-organizer-skills@event-speaker-experience owns the speaker relationship end to end, including the recording consent record you may not publish past. Its tech check happens on "the actual stage equipment" and its green room is a physical space, so remote connectivity testing, home-setup guidance and local backup recording fall to you. Hand the results back.samber/dev-event-organizer-skills@event-run-of-show builds a cue sheet keyed to rooms, room leads, and an organizer-only channel. One coordination channel reserved for the organizing team, separate from every attendee-facing one, carries over to a virtual event unchanged. Nothing else about a room-keyed cue sheet does.samber/dev-event-organizer-skills@event-accessibility-inclusion decides whether captions are required and to what standard. Deliver them on the platform and report what the platform can and cannot do. Never set the bar yourself.Every ranking below is a default, not a law. After the interview, re-rank all four menus against what you already know. Each of these overturns a default rung:
Each promotion condition below names its interview question inside the condition's own text, and each trigger in an "or" list is keyed separately rather than riding on the first. Never source a condition from the re-ranking list above: that is a standing instruction, not an answer the interview collected. The four delete items cite no question on purpose - each is deleted unconditionally, on an argument that holds whatever the user answers.
Ask one question at a time, multiple-choice where possible. Questions 7-9 exist because the menus diverge sharply on time-to-effect, durability and effort, and those orderings cannot be picked for the user.
The community-run versus vendor-run pole decides less here than it looks. A packet takes the same milliseconds whoever funded the event. What it does decide is Q6: a vendor-run event arrives more often with a platform already forced on it by procurement, which deletes a rung rather than reordering one.
Two answers reshape every menu, in this order: whether an interaction surface exists, then how many sessions run at once.
Say which of the two a recommendation assumes whenever they differ.
samber/dev-event-organizer-skills@event-budget, split by what a lean tier drops: the feed itself survives every tier; the interaction surface and its staffing go first.samber/dev-event-organizer-skills@event-content-repurposing and the recording consent check back to samber/dev-event-organizer-skills@event-speaker-experience.Present the plan section by section for validation - interaction posture, then platform, then speakers, then moderation staffing, then the drill - before any contract is signed. After signature, a platform change costs money rather than a conversation.
If your harness has persistent memory, record per edition:
A platform used twice is worth not re-learning.
The platform is your venue. Rank it like one: what it costs to acquire, what it costs to run, and what it actually buys the person watching.
Ranking (default, not a law - Q1, Q6, Q7 and Q10 re-rank it):
assembled stack > managed virtual-venue platform > broadcast tool with a built-in question queue > one-way feed plus the existing chat space > single one-way feedmanaged virtual-venue platform > broadcast tool with a built-in question queue > assembled stack == one-way feed plus the existing chat space > single one-way feed - argued tie: both are assembled from things you can start and abandon in the same week, with nothing signed. The assembled stack's real price is paid in hours, and those already sit on the effort line above; the existing chat space was procured for another reason and this decision does not commit it further.single one-way feed == one-way feed plus the existing chat space > broadcast tool with a built-in question queue > managed virtual-venue platform == assembled stack - argued tie at the top: the chat space sits beside the feed rather than inside it, so it adds nothing the video path has to carry. Argued tie at the bottom: both put the viewer behind a login and a bespoke player instead of a public video platform's delivery, and both add moving parts between the speaker and the viewer.managed virtual-venue platform > assembled stack > one-way feed plus the existing chat space == broadcast tool with a built-in question queue > single one-way feed - argued tie: one buys attendee-to-attendee conversation with no question discipline, the other buys a disciplined question queue with no peer space. Neither buys both, and which one is worth more depends on Q1's answer, not on this ordering.managed virtual-venue platform > assembled stack > broadcast tool with a built-in question queue == one-way feed plus the existing chat space > single one-way feed - argued tie: both hold attendee identity inside one vendor's chat or question record and nothing more; neither creates a directory a third party can export. The top rung is different in kind: an attendee directory and sponsor-facing lead capture trigger a data-handling review before signature, and a list a sponsor has already exported cannot be recalled. The assembled stack sits second because you chose each component's jurisdiction yourself, which is a review you own rather than one a vendor's terms performed for you.single one-way feed > one-way feed plus the existing chat space > managed virtual-venue platform > assembled stack > broadcast tool with a built-in question queueDominance check: 5 rungs, 10 pairs, four cost-and-value axes plus compliance, one real strict-dominance relation.
One warning about the reach axis. Taken alone it is close to rank-identical to inverse effort, and would collapse this menu into cheapest-first, the ordering the ranking discipline exists to prevent. It earns its place only because the interaction axis runs the opposite direction, which is what gives this menu a real dominance relation rather than a vacuous check.
One-way feed plus the existing chat space - the default. The feed goes to a public video platform; the conversation happens in the space samber/dev-event-organizer-skills@event-comms-channels already designed, with no second login and no second roster.
Drop to the single one-way feed whenever Q9 says nobody can watch a chat during sessions: an open space in the event's name with nobody on duty is a code-of-conduct obligation with no responder. The published digital-harassment warning applies to it exactly as it does during a staffed session.
Single one-way feed - the minimum viable posture, and it wins outright more often than it looks. Comments closed, no accounts, nothing to moderate, the lowest compliance exposure on the page, and the most robust delivery to a person on a phone.
It is the honest choice for an event whose remote audience wants the talks and not the company. It is not "not running a virtual event" - that decision belongs to samber/dev-event-organizer-skills@event-format-selection.
Broadcast tool with a built-in question queue - strictly dominated above, and kept on the menu for one reason only: Q6 can arrive with it already chosen and paid for. When it is what you have, run it and spend the saved decision on Menu 3.
Assembled stack - separate streaming software, a separate chat platform, a separate schedule page, glued together by you. Cheap to start and reversible, and its whole cost is organizer hours and the seams between components.
Major League Hacking's warning applies here in full: a well-run digital event is far more than a chat server. That is a hackathon organizer's warning about a hackathon's stack, so read it as a caution about under-estimating the work, not as a verdict on the components.
Managed virtual-venue platform - the starved option: tops interaction, tops ops effort, tops procurement and tops compliance, so efficiency never picks it. Promotion conditions, each keyed separately:
Delete, do not demote: a second live platform carrying the same sessions in parallel. Delete it from this menu and from the axis lines above. It halves the audience of every question a speaker answers and doubles the moderation, and the failure shows up only as the half of the audience that never got an answer.
A remote speaker's uplink is a domestic internet connection you do not control and cannot inspect. Every rung below either reduces the chance it fails or makes the failure survivable.
Ranking (default, not a law - Q3, Q4, Q8, Q10 and Q11 re-rank it):
individual tech check plus an instructed local backup recording > a pre-recorded talk played to schedule > one shared group tech-check window > a written home-setup note > slides and a join linka pre-recorded talk played to schedule > individual tech check plus an instructed local backup recording > one shared group tech-check window > a written home-setup note > slides and a join linkindividual tech check plus an instructed local backup recording > one shared group tech-check window == a written home-setup note > slides and a join link > a pre-recorded talk played to schedule - argued tie: both leave the speaker rehearsed enough not to spend the opening minutes discovering the interface, and neither buys the confidence of having presented on it once with somebody watching.a pre-recorded talk played to schedule > individual tech check plus an instructed local backup recording > one shared group tech-check window == a written home-setup note == slides and a join link - argued tie: none of the three creates a file, so none adds anything to the consent record beyond what the event's own capture posture already required. The two rungs above do create one, and a recording that exists is a recording somebody will later ask to publish; get that covered in samber/dev-event-organizer-skills@event-speaker-experience's consent record before the file exists, not after.a written home-setup note > one shared group tech-check window > individual tech check plus an instructed local backup recording > a pre-recorded talk played to schedule > slides and a join linkDominance check: 5 rungs, 10 pairs, two cost axes and two value axes, zero strict-dominance relations.
Two mechanisms account for all ten pairs, and neither covers the other's pairs.
Six pairs are blocked because preparation costs strictly more coordination and buys more of both value axes at once: every comparison inside the live-delivery group, plus each of them against the do-nothing rung. Five of the six are strictly better on both value axes; the sixth, the group window against the home-setup note, is strictly more insurance while tying on liveness. That tie still blocks it, because the cheaper rung gains no value axis at all.
The other four pairs are blocked by the pre-recording trade specifically: it buys certainty by spending presence, so it wins insurance and loses liveness against every rung it meets, including the pair where it is also the cheaper option.
Zero relations means this check caught no misordering; what follows is argument, not verification.
A written home-setup note - the default: sent with the join link, asynchronous, reusable next edition, and costing the speaker minutes. It moves the most common failures - a shared connection, a background sync eating the uplink, a laptop camera pointed at a ceiling - before anyone schedules a call.
Contents in references/remote-speaker-readiness.md. Move up one rung as soon as any speaker has never presented on this platform - keyed to Q11 ("which speakers have an unknown connection or have never presented on this platform").
One shared group tech-check window - everyone joins the real platform at the same time, far enough before the day that a failed check can still be fixed. It costs one organizer block rather than one per speaker, and it surfaces platform-wide problems once instead of repeatedly.
Individual tech check plus an instructed local backup recording - a scheduled slot per speaker, on the real platform, ending with the speaker set up to record locally on the day. The local recording is the point: a dropped feed then costs the live session and not the talk. Promotion conditions, all three keyed to Q11, which is the only question that reaches them:
A pre-recorded talk played to schedule, with the speaker live in chat - the starved option: tops insurance, near-tops effort, bottoms liveness, so efficiency never picks it. Its precedent is ACM SIGCHI, which dropped remote attendance entirely and offered authors who cannot travel a pre-recorded video played to the in-person audience. What does not transfer is the setting: that is a physical event's accommodation for an absent author, not a virtual event's default. Promotion conditions, each keyed separately:
ACM's own governing-board minutes record no-shows for remote presentations at one of its conferences: a speaker who does not appear is the failure this rung exists to remove.
Delete, do not demote: a tech check run on a different tool than the one the event runs on. Delete it from this menu and from the axis lines above. It reads as a check and tests nothing that matters: not the platform's screen-share path, not its audio device handling, not what the speaker's browser does under it. samber/dev-event-organizer-skills@event-speaker-experience makes the same demand from its own side for a physical stage - a check on the actual equipment - and the reasoning is identical here.
Skip this menu entirely if Menu 1 landed on the single one-way feed. With no interaction surface there is nothing to moderate, no rung above the floor exists, and the staffing question does not arise. Everything below assumes a surface is open.
The standing cost of an open space is already argued by samber/dev-event-organizer-skills@event-comms-channels: setup is an hour, moderation is a standing job for the whole time the space is open, and the code-of-conduct duty inside it is identical to the one in a room. Do not re-derive it. This menu adds only the live, in-session layer that skill does not own: who relays a question to a speaker who cannot see chat, and who notices the feed died.
Ranking (default, not a law - Q1, Q2, Q9, Q10 and Q11 re-rank it):
moderator, technical watcher and a host on the feed > moderator plus a technical watcher > one moderator per concurrent session > one moderator across the whole event > no moderation staffingmoderator, technical watcher and a host on the feed > one moderator per concurrent session == moderator plus a technical watcher > one moderator across the whole event > no moderation staffing - argued tie: the technical watcher does not read chat. Moderation capacity is identical across those two rungs; the second person exists entirely for the other value axis.moderator, technical watcher and a host on the feed > moderator plus a technical watcher > one moderator per concurrent session > one moderator across the whole event == no moderation staffing - argued tie: one person cannot watch several streams' health at once, so at more than one concurrent session the event-wide moderator notices a dead feed no sooner than nobody does.no moderation staffing > one moderator across the whole event > one moderator per concurrent session == moderator plus a technical watcher == moderator, technical watcher and a host on the feed - argued tie: all three put a named responder in every open space during every session, which is the whole of what the duty asks; people added beyond that change who notices a failure, not who is answerable for conduct. This axis runs backwards to every other menu here, and that is the finding: the cheapest rung carries the highest compliance cost, because an open space with nobody watching is an obligation with no responder, and harm inside it cannot be taken back. The Major League Hacking organizer guide is explicit that a digital space raises the risk rather than lowering it. Read the inversion as an argument about who is answerable, never as a legal reading: duty, platform terms and retention differ by country, and belong with the organizer's own counsel.one moderator per concurrent session > one moderator across the whole event > moderator plus a technical watcher > moderator, technical watcher and a host on the feed > no moderation staffingDominance check: 5 rungs, 10 pairs, two cost axes and two value axes, zero strict-dominance relations.
Three mechanisms account for all ten pairs.
Eight pairs are blocked by the plain one: staffing costs strictly more people and buys strictly more of everything, including the discharge of the duty.
One pair, the do-nothing rung against the event-wide moderator, needs its own account, because the silence axis ties there and "buys more of everything" stops being true. What blocks it is effort against the space-held axis alone: the moderator costs a person and buys the one value axis that still moves. The compliance inversion is not the blocker here, and naming it as one would be wrong; it runs the other way, which is why the moderator is the right call rather than why neither rung dominates.
The last pair, one moderator per session against moderator-plus-watcher, is blocked because their moderation capacity is genuinely identical and only the failure-watching axis separates them.
Zero relations means the check caught no misordering here.
One moderator per concurrent session - the default: one named person per stream that is live at the same time, reading chat, selecting and relaying questions, and holding conduct. It scales with tracks rather than with attendance, which is why it needs no attendee ratio at all.
One moderator across the whole event - sufficient and correct for a single-track day, and it is the same rung as the default when Q2 says one session runs at a time. It fails the moment two things happen at once.
Moderator plus a technical watcher - a second person per session whose only job is whether the feed is up, audible and in sync. The pattern behind it is a physical event's livestream needing "at least one person to run it during the event" (DevOpsDays organizing guide). What does not carry across is the equipment: there is no board to run, so this person watches the output as an audience member sees it, from outside the production path. Promotion conditions, keyed separately:
Moderator, technical watcher and a host on the feed - the starved option: tops both value axes and tops effort, so efficiency never picks it. It is the only rung where somebody actually says something to the audience when a talk fails - an empty stream with a chat full of "is it just me?" is the failure mode the two rungs below leave open. Promotion conditions, each keyed separately:
Delete, do not demote: the speaker moderating their own chat while presenting. Delete it from this menu and from the axis lines above. It reads as the free version of moderation and it is not a rung: a presenting speaker is doing two jobs badly, and no speaker can enforce a code of conduct against a person in their own audience while talking to them. The floor rung above is honest about being unstaffed; this one is not.
A physical room fails in front of people who can see each other. A virtual event fails as silence, and every attendee's first hypothesis is that the problem is on their end.
Ranking (default, not a law - Q4, Q8, Q10 and Q11 re-rank it):
a full outage drill on a second platform > a standing fallback destination kept warm > a rehearsed handoff for the single likeliest failure > a written fallback line published before the day > no drilla full outage drill on a second platform == a rehearsed handoff for the single likeliest failure > a standing fallback destination kept warm > a written fallback line published before the day > no drill - argued tie: both rehearse the words somebody says the moment it breaks, and that is the whole of what holds an audience. The full drill adds infrastructure, not composure.a full outage drill on a second platform > a standing fallback destination kept warm > a rehearsed handoff for the single likeliest failure > a written fallback line published before the day == no drill - argued tie: neither resumes anything. A published line tells people where to look; it does not put a talk back on air.a written fallback line published before the day > a rehearsed handoff for the single likeliest failure > a standing fallback destination kept warm > a full outage drill on a second platform > no drillDominance check: 5 rungs, 10 pairs, one cost axis and two value axes, zero strict-dominance relations.
No compliance axis is printed, because nothing here varies on one: every rung's exposure is whatever the platform and consent decisions already fixed.
Three mechanisms account for all ten pairs.
Eight pairs are blocked by depth costing preparation and buying both value axes at once. Seven of them are strictly better on both; the eighth, the do-nothing rung against the published line, is strictly more audience held while tying on content, which blocks it just as firmly.
One pair, the rehearsed handoff against the warm fallback destination, is blocked by the two value axes genuinely crossing: rehearsing words is cheaper and holds the audience better, and only infrastructure resumes the content.
The last pair, the rehearsed handoff against the full drill, is blocked because the audience-held axis ties there and only the content-survives axis separates them.
Zero relations means the check caught no misordering.
A written fallback line published before the day - the default, and near-zero: one sentence, published where the audience will already be looking, naming exactly where to go when the feed dies. It costs a sentence and it removes the worst minute of a virtual outage, the one where nobody knows whether the problem is theirs. Move up one rung the moment a moderator exists at all, because then somebody is there to say it live.
A rehearsed handoff for the single likeliest failure - a dry run of one scenario, the speaker's connection dropping mid-talk, with the moderator's exact opening words agreed in advance. It is the highest-value hour on this menu and it buys composure rather than infrastructure.
A standing fallback destination kept warm - a second stream target already live and silent, with the published line pointing at it. This is the first rung that puts a session back on air rather than explaining its absence.
A full outage drill on a second platform - the starved option: tops the content axis, ties the top of the audience axis, and tops effort, so efficiency never picks it. Promotion conditions, each keyed separately:
Delete, do not demote: a contingency document nobody has read aloud. Delete it from this menu and from the axis lines above. It reads as a drill and is not one - the moment it is needed, nobody can find it and nobody knows their line. The floor rung above is one published sentence the audience can see, which is a different artifact entirely.
samber/dev-event-organizer-skills@event-speaker-experience holds the consent record; a locally recorded backup, a breakout where attendees appeared on camera, and a Q&A carrying attendee faces are each outside whatever a talk's consent covered unless it was collected that way.Three completeness gates, checkable before the first session and free of any threshold to argue about:
Everything below is a metric you set rather than an industry standard; say so when you present it.
Pick two or three, write down what change each would trigger, and record them before the event rather than after.
Expected output: a delivery plan with:
Presented section by section for validation before anything is signed.
See also, same collection:
samber/dev-event-organizer-skills@hybrid-event-design - owns the event serving a room and a remote audience at once. The dividing line is the stage: a hybrid always has one, so every menu here stops applying to it.