hackathon-deck-pitch

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

The pitch: filled, hosted, linked

路演:填充、托管与链接

One member presents it on stage, projected, in three to five minutes; the jury scores on paper. Eight slides, about thirty seconds each, one idea per slide: the claim on the slide, the explanation said aloud. The cover, the problem, the one number that makes it real (optional), what was built (a screenshot), how it works (a small diagram: what goes in, the agent, what comes out, the person who checks), the live demo (the cue to switch to the app, its screenshot as the fallback), where it stands, and the line the jury should remember.
Work from the root of the team's clone; everything goes into
decks/pitch/
. The scripts ship with this skill, in the
scripts/
folder beside this SKILL.md (call that folder
$SKILL_DIR/scripts
; under Claude Code it is also
${CLAUDE_PLUGIN_ROOT}/skills/hackathon-deck-pitch/scripts
, and after
npx skills add
it is
~/.agents/skills/hackathon-deck-pitch/scripts
):
fill.mjs
fills the deck,
check.mjs
checks it, and
pitch.example.json
shows the content filled for an invented tool.
由一名成员在舞台上进行投影展示,限时三至五分钟;评委在纸上评分。共八页,每页约三十秒,每页只讲一个观点:核心主张写在页面上,解释由演讲者口头说明。依次包括封面、问题、让问题显得真实的那个数字(可选)、构建了什么(一张截图)、工作原理(一张小图:输入什么、Agent、输出什么,以及由谁检查)、现场演示(切换到应用的提示,以及作为备用方案的截图)、当前进展,以及评委应当记住的一句话。
从团队仓库副本的根目录开始工作;所有内容都放入
decks/pitch/
。本 skill 附带这些脚本,位于本 SKILL.md 旁边的
scripts/
目录(将该目录记为
$SKILL_DIR/scripts
;在 Claude Code 中,它也位于
${CLAUDE_PLUGIN_ROOT}/skills/hackathon-deck-pitch/scripts
,执行
npx skills add
后则位于
~/.agents/skills/hackathon-deck-pitch/scripts
):
fill.mjs
用于填充 deck,
check.mjs
用于检查,
pitch.example.json
展示了一个虚构工具的填充内容示例。

1. Slideless, in the event's workspace

1. Slideless:活动工作区中

bash
npm i -g @antasphere/slideless@latest
slideless whoami --json
The participant's
hackathon login
is the same Antasphere login. It asks to sign in, or says "Run
antasphere login
": the participant runs
hackathon login
in their own terminal, then again. A refusal that the organization has no access to Slideless: STOP and tell the participant an organizer has to open Slideless to the event's organization; nothing can be published before.
workspace.name
in
hackathon whoami --json
is the event's organization; take the workspace with the same name in
slideless workspaces --json
and pass
--workspace <its id>
to every
slideless
command below. When none has that name, say so and ASK; never publish in a personal workspace.
bash
npm i -g @antasphere/slideless@latest
slideless whoami --json
参与者的
hackathon login
与 Antasphere 登录相同。如果系统要求登录,或提示“Run
antasphere login
”,参与者先在自己的终端中运行
hackathon login
,然后再次运行该命令。如果系统拒绝访问,并提示该组织无权使用 Slideless:立即停止,并告知参与者,需要由主办方为活动所属组织开通 Slideless;在此之前无法发布任何内容。
hackathon whoami --json
中的
workspace.name
是活动所属组织的名称;在
slideless workspaces --json
中选择名称相同的 workspace,并将
--workspace <its id>
传递给下方每一条
slideless
命令。如果没有同名 workspace,说明情况并询问参与者;绝不能发布到个人 workspace 中。

2. Start from the organizer's template

2. 从主办方模板开始

bash
slideless template list --json --workspace <id>
Take the template titled
Pitch presentation
. When there is none, STOP: tell the participant the organizers have not published the event's templates yet (their
event-decks
guide does it) and to ask one of them. Never build the deck any other way. Then, once:
bash
slideless template start "Pitch presentation" decks/pitch/deck --workspace <id>
printf 'decks/*/deck/\ndecks/*/check/\n' >> .gitignore    # once per clone, if not there yet
decks/pitch/deck/
carries the Antasphere brand's typefaces, whose licence forbids a public repository: it is never committed. The team's source is
decks/pitch/pitch.json
and the screenshots. When
decks/pitch/deck/
already exists, keep it: its
.slideless.json
is the link to the published deck, so the next push is a new version and the share link keeps working.
bash
slideless template list --json --workspace <id>
选择标题为
Pitch presentation
的模板。如果不存在,立即停止:告知参与者主办方尚未发布活动模板(由主办方的
event-decks
指南完成此操作),并让参与者向其中一位主办方询问。绝不能以其他方式构建 deck。然后,只需执行一次:
bash
slideless template start "Pitch presentation" decks/pitch/deck --workspace <id>
printf 'decks/*/deck/\\ndecks/*/check/\\n' >> .gitignore    # once per clone, if not there yet
decks/pitch/deck/
包含 Antasphere 品牌的字体,其许可禁止将这些字体用于公开 repository,因此该目录绝不提交到版本库。团队维护的源内容是
decks/pitch/pitch.json
和截图。当
decks/pitch/deck/
已存在时予以保留:其中的
.slideless.json
保存已发布 deck 的链接,因此下一次 push 会生成新版本,而分享链接会继续有效。

3. Gather, then ASK

3. 收集内容,然后询问

Read the repository (the README, the routes, the dashboard's pages). When the
hackathon-deck-demo
skill ran, use its screenshots in
decks/demo/screens/
: one for what was built, one for the live moment. Without them, take two screenshots of the running app (the
hackathon-deck-demo
skill's
play.mjs
does it).
Then ASK the participant, in ONE message, to confirm each slide's words, proposed from what you read:
  1. the product's name (24 characters at most), its one sentence, the members;
  2. the problem: one real kind of person, and what goes wrong for them today in one sentence;
  3. one number that makes it real, its unit and where it comes from, or none;
  4. what was built in one sentence, and its screenshot;
  5. how it works: three short steps (which one is the agent), and the person who checks, or none;
  6. the one moment shown live, its screenshot, and one line if the live demo fails;
  7. what works today, what is not finished, what comes next;
  8. the one line the jury should repeat, and a demo link anyone can open (
    https://
    ), or none.
读取代码仓库(README、路由和 dashboard 的页面)。当
hackathon-deck-demo
skill 已运行时,使用
decks/demo/screens/
中的截图:一张用于展示构建了什么,另一张用于现场演示。如果没有这些截图,则对正在运行的应用截取两张图(
hackathon-deck-demo
skill 的
play.mjs
可完成此操作)。
然后根据所读内容拟定每页文案,在一条消息中询问参与者确认:
  1. 产品名称(最多 24 个字符)、一句话介绍和成员;
  2. 问题:一种真实存在的人群类型,以及他们今天遇到什么问题,用一句话说明;
  3. 一个让问题显得真实的数字、其单位和数据来源,或不提供;
  4. 用一句话说明构建了什么,并提供相应截图;
  5. 工作原理:三个简短步骤(指出哪一步是 Agent),以及负责检查的人,或不设置检查人;
  6. 现场演示中的一个关键时刻、相应截图,以及现场演示失败时的一句话说明;
  7. 目前哪些功能可用、哪些尚未完成、下一步计划;
  8. 希望评委复述的一句话,以及任何人都能打开的演示链接(
    https://
    ),或不提供链接。

4. Fill and check

4. 填充并检查

Write
decks/pitch/pitch.json
in the shape of
pitch.example.json
:
lang
(
en
,
fr
or
nl
),
occasion
(from
hackathon event status --json
: its name and its start day, as
<name> · <day month year>
),
team
,
product
,
oneLiner
,
members
,
problem
(
person
,
text
),
stake
(
number
,
unit
,
text
) or
null
,
built
(
image
,
text
),
how
(
title
,
headline
,
steps
with
title
,
sub
and
agent: true
on the agent's,
check
with
label
and
text
or
null
),
demo
(
image
,
text
,
fallback
),
next
(
works
,
missing
,
then
),
close
(
line
,
demoUrl
). Image paths are relative to
decks/pitch/
. Short words: the limits are set so each slide reads from the back of the room.
bash
node "$SKILL_DIR/scripts/fill.mjs" pitch decks/pitch
node "$SKILL_DIR/scripts/check.mjs" decks/pitch
fill.mjs
exit 2, one line per problem: fix
pitch.json
, run it again.
check.mjs
needs Playwright once per machine (exit 4 says how). It walks the eight slides on a laptop and the eight screens on a phone, writes
decks/pitch/check/laptop-N.png
and
phone-N.png
, and prints
ok
. Exit 1, one line per problem: a text that runs out of its slide, a phone screen that scrolls, a request outside the deck, an image that did not load. Shorten in
pitch.json
, fill, check again. Open the screenshots with the participant (
open decks/pitch/check
on macOS,
start
on Windows,
xdg-open
on Linux); open
decks/pitch/deck/index.html
to rehearse (arrows, Page Up/Down for a clicker).
按
pitch.example.json
的结构将内容写入
decks/pitch/pitch.json
:
lang
(
en
、
fr
或
nl
),
occasion
(取自
hackathon event status --json
:活动名称和开始日期,格式为
<name> · <day month year>
),
team
、
product
、
oneLiner
、
members
、
problem
(
person
、
text
),
stake
(
number
、
unit
、
text
)或
null
,
built
(
image
、
text
),
how
(
title
、
headline
、
steps
;每个
steps
项包含
title
、
sub
,Agent 对应项设置
agent: true
;
check
包含
label
和
text
,或为
null
),
demo
(
image
、
text
、
fallback
),
next
(
works
、
missing
、
then
),
close
(
line
、
demoUrl
)。图片路径相对于
decks/pitch/
。文字要简短:字数限制已设置好,确保每页内容从教室后方也能读清。
bash
node "$SKILL_DIR/scripts/fill.mjs" pitch decks/pitch
node "$SKILL_DIR/scripts/check.mjs" decks/pitch
如果
fill.mjs
以退出码 2 结束,它会逐行输出一个问题:修复
pitch.json
后重新运行。
check.mjs
在每台机器上只需准备一次 Playwright(退出码 4 会说明如何准备)。它会遍历笔记本电脑上的八张幻灯片和手机上的八个屏幕,写入
decks/pitch/check/laptop-N.png
和
phone-N.png
,并打印
ok
。如果以退出码 1 结束,它会逐行输出一个问题:文字超出幻灯片、手机屏幕需要滚动、幻灯片外部的请求,或图片未加载。缩短
pitch.json
中的文字,重新填充并再次检查。与参与者一起打开截图(在 macOS 上运行
open decks/pitch/check
,在 Windows 上运行
start
,在 Linux 上运行
xdg-open
);打开
decks/pitch/deck/index.html
进行彩排(使用方向键,或用演示控制器按 Page Up/Down)。

5. Publish and share

5. 发布与分享

bash
slideless push decks/pitch/deck --title "<Team> · Pitch" --template "Pitch presentation" --no-open --json --workspace <id>
slideless share <deck id> --name "Jury" --json --workspace <id>
Read
presentation.id
, then
url
(
https://<host>/v/<token>/
, shown once). No password and no expiry: the jury opens it after the event. A refusal about credits: an organizer tops the organization up; say so and stop.
bash
slideless push decks/pitch/deck --title "<Team> · Pitch" --template "Pitch presentation" --no-open --json --workspace <id>
slideless share <deck id> --name "Jury" --json --workspace <id>
读取
presentation.id
,然后读取
url
(
https://<host>/v/<token>/
,只显示一次)。链接不设密码,也不设过期时间:活动结束后评委仍可打开。如果系统因 credits 不足而拒绝:需要由主办方为该组织补充额度;告知参与者并停止。

6. Hand the link to the platform

6. 将链接交给平台

bash
hackathon decks link --pitch <url> --json
hackathon decks show --json
The team is the signed-in participant's own. Exit 2: not a share link
https://<host>/v/<token>/
. Exit 1 with the platform's sentence: the link's host is not one the platform accepts (the sentence names the allowed host). Exit 3: sign in, or not on a team.
Commit
decks/pitch/pitch.json
and the screenshots it names, never
decks/pitch/deck/
or
decks/pitch/check/
. Push before the freeze like any other work.
bash
hackathon decks link --pitch <url> --json
hackathon decks show --json
该团队属于当前登录的参与者。退出码 2:给出的链接不是
https://<host>/v/<token>/
格式的分享链接。退出码 1,并显示平台给出的提示:链接的 host 不在平台允许的 host 列表中(该提示会列出允许的 host)。退出码 3:尚未登录,或当前用户不属于任何团队。
提交
decks/pitch/pitch.json
及其引用的截图,绝不要提交
decks/pitch/deck/
或
decks/pitch/check/
。像处理其他工作一样,在冻结时间前 push。

Never

禁止事项

  • Never build the deck without the organizer's template, and never copy the brand's files elsewhere.
  • Never put a credential, a password or a real person's data on a slide or in a screenshot.
  • Never a mock-up passed off as the app; never a feature the app does not have.
  • Never share the link with a password or an expiry.
  • Never pass a credential to
    slideless
    or
    hackathon
    : the Antasphere login does the work.
  • 绝不在没有主办方 template 的情况下构建 deck,也绝不把品牌文件复制到其他位置。
  • 绝不在幻灯片或截图中放入凭据、密码或真实个人数据。
  • 绝不使用冒充真实应用的效果图;绝不展示应用实际上不具备的功能。
  • 绝不为分享链接设置密码或过期时间。
  • 绝不向
    slideless
    或
    hackathon
    传递凭据;使用 Antasphere 登录即可。