← Devpost HackathonsCONTENT HISTORY

Update to Devpost Hackathons

Snapshot Oct 26, 2026 · 00:04 UTC · version 4.0.4

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED

Instructions updated for review-hackathon-rules

Full description — Now says: confirmation that the participant has reviewed the rules,

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save Devpost Hackathons and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Full description

Before

Sep 30, 2026 · 22:48 UTC

acknowledgment of the terms,

After

Oct 26, 2026 · 00:04 UTC

confirmation that the participant has reviewed the rules,

Skill instructions

Before

Sep 30, 2026 · 22:48 UTC

acknowledgment of the terms, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official req...

After

Oct 26, 2026 · 00:04 UTC

confirmation that the participant has reviewed the rules, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or n...

Supporting files

Before

Sep 30, 2026 · 22:48 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":242},{"relative_path":"references/SETUP.md","size_in_bytes":1231},{"relative_path":"references/config/hackathon.json","size_in_bytes":1897},{"relative_path":"references/content/learn...

After

Oct 26, 2026 · 00:04 UTC

[{"relative_path":"agents/openai.yaml","size_in_bytes":242},{"relative_path":"references/SETUP.md","size_in_bytes":1231},{"relative_path":"references/config/hackathon.json","size_in_bytes":1897},{"relative_path":"references/content/learn...

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,13 +1,15 @@
 ---
 name: review-hackathon-rules
-description: Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit acknowledgment of the terms, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements.
+description: Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit confirmation that the participant has reviewed the rules, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements.
 ---
 
 # Review
 
 ## Purpose
 
-Act as the strategic preflight and the mandatory rules gate: surface the event's official picture at a glance, walk the rules, update state only after an explicit `yes`, then offer a short conversation about the participant's idea and strategy before they start building.
+Act as the strategic preflight and the mandatory rules-review gate: surface the event's official picture at a glance, walk the rules, update state only after an explicit `yes`, then offer a short conversation about the participant's idea and strategy before they start building.
+
+**This gate is a review confirmation, not a terms agreement.** The binding agreement to the official rules and terms is collected at Devpost registration (on the website or in `$start-hackathon`) — never here. Replying `yes` sends nothing to Devpost and only records, in this project's local state, that the participant has reviewed the current rules before building.
 
 Chat is the primary participant interface. Keep responses text-first so they render in any Codex host; the bundled `devpost` MCP server supplies rich inline visuals on hosts that support them.
 
@@ -17,7 +19,7 @@
 
 Draw on these only as needed: `devpost.get_hackathon_rules`, `devpost.get_submission_requirements`, `devpost.get_judging_criteria`, `devpost.get_key_dates`, `devpost.get_prizes`. Quote rules, eligibility, and requirements text from the response; do not paraphrase legal language.
 
-**The acknowledgment gate runs only against real rules.** If `get_hackathon_rules` is unavailable this session, do NOT present rules for agreement and do NOT ask for or record `rules_acknowledged` — a "yes" to placeholder text is not consent to the real rules. Say in one line that the official rules can't be fetched right now, point to the hackathon's rules page on Devpost, and stop the gate there. `references/placeholder-rules.md` may shape structure and answer general questions, clearly labeled provisional — never the consent gate.
+**The review gate runs only against real rules.** If `get_hackathon_rules` is unavailable this session, do NOT present rules for review confirmation and do NOT ask for or record `rules_acknowledged` — a "yes" to placeholder text is not a review of the real rules. Say in one line that the official rules can't be fetched right now, point to the hackathon's rules page on Devpost, and stop the gate there. `references/placeholder-rules.md` may shape structure and answer general questions, clearly labeled provisional — never the review gate.
 
 ## Required References
 
@@ -38,12 +40,14 @@
 
 ## Strict Gate
 
-Do not unlock the rest of the plugin flow until the user explicitly agrees to the rules review.
+Do not unlock the rest of the plugin flow until the user explicitly confirms the rules review.
 
 Use this standard:
 
 - If `rules_acknowledged` is `true`, keep the recap short and move to **Strategy Conversation** (or point to `$resources` if they just want to proceed).
-- If `rules_acknowledged` is `false`, present the rules inline through the composer and ask exactly: `Do you agree to these terms? Reply yes or no.`
+- If `rules_acknowledged` is `false`, present the rules inline through the composer and ask exactly: `Have you reviewed these rules and are you ready to build within them? Reply yes or no.`
+
+**Never phrase this gate as agreeing to terms** — no "do you agree", "accept the terms", or similar. Terms agreement belongs to registration, not this step; asking for it again reads as a second consent and is wrong (see **Purpose**). If the participant asks why they're confirming again — entering a second project for the same event is the typical case — answer in one line: their registration agreement stands and nothing is re-submitted; this is a per-project check that they've reviewed the current rules, which may have changed since their last project. Then keep the gate.
 
 Accept only `yes` as affirmative confirmation.
 
@@ -55,7 +59,7 @@
 
 Do not accept ambiguous acknowledgments such as `confirm`, `acknowledge`, `continue`, or `reviewed`.
 
-If the participant asks substantive questions, answer from the official MCP data or the placeholder reference and clearly label provisional areas as awaiting official copy. But never run the acknowledgment gate itself against placeholder content — see **Required Data Source**.
+If the participant asks substantive questions, answer from the official MCP data or the placeholder reference and clearly label provisional areas as awaiting official copy. But never run the review gate itself against placeholder content — see **Required Data Source**.
 
 ## Required Rules Content
 
@@ -122,7 +126,7 @@
 - the composed rules response
 - a reminder to read the inline rules carefully before answering
 - an invitation to ask questions about the rules before replying
-- exact confirmation prompt: `Do you agree to these terms? Reply yes or no.`
+- exact confirmation prompt: `Have you reviewed these rules and are you ready to build within them? Reply yes or no.`
 
 If unlocked after `yes`, respond with:
 
Full technical diff · 3 changed fields

changed /description

BEFORE
"Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit acknowledgment of the terms, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements."
AFTER
"Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit confirmation that the participant has reviewed the rules, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements."

changed /included_files

BEFORE
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 242
  },
  {
    "relative_path": "references/SETUP.md",
    "size_in_bytes": 1231
  },
  {
    "relative_path": "references/config/hackathon.json",
    "size_in_bytes": 1897
  },
  {
    "relative_path": "references/content/learning/build.md",
    "size_in_bytes": 939
  },
  {
    "relative_path": "references/content/learning/checklist.md",
    "size_in_bytes": 618
  },
  {
    "relative_path": "references/content/learning/onboard.md",
    "size_in_bytes": 1333
  },
  {
    "relative_path": "references/content/learning/prd.md",
    "size_in_bytes": 972
  },
  {
    "relative_path": "references/content/learning/scope.md",
    "size_in_bytes": 403
  },
  {
    "relative_path": "references/content/learning/spec.md",
    "size_in_bytes": 356
  },
  {
    "relative_path": "references/content/steps/check.md",
    "size_in_bytes": 1150
  },
  {
    "relative_path": "references/content/steps/help.md",
    "size_in_bytes": 2595
  },
  {
    "relative_path": "references/content/steps/map.md",
    "size_in_bytes": 948
  },
  {
    "relative_path": "references/content/steps/prepare.md",
    "size_in_bytes": 1599
  },
  {
    "relative_path": "references/content/steps/resources.md",
    "size_in_bytes": 1601
  },
  {
    "relative_path": "references/content/steps/rules.md",
    "size_in_bytes": 840
  },
  {
    "relative_path": "references/content/steps/start.md",
    "size_in_bytes": 1868
  },
  {
    "relative_path": "references/placeholder-rules.md",
    "size_in_bytes": 3185
  },
  {
    "relative_path": "references/plugin-runtime.md",
    "size_in_bytes": 11707
  }
]
AFTER
[
  {
    "relative_path": "agents/openai.yaml",
    "size_in_bytes": 242
  },
  {
    "relative_path": "references/SETUP.md",
    "size_in_bytes": 1231
  },
  {
    "relative_path": "references/config/hackathon.json",
    "size_in_bytes": 1897
  },
  {
    "relative_path": "references/content/learning/build.md",
    "size_in_bytes": 939
  },
  {
    "relative_path": "references/content/learning/checklist.md",
    "size_in_bytes": 618
  },
  {
    "relative_path": "references/content/learning/onboard.md",
    "size_in_bytes": 1333
  },
  {
    "relative_path": "references/content/learning/prd.md",
    "size_in_bytes": 972
  },
  {
    "relative_path": "references/content/learning/scope.md",
    "size_in_bytes": 403
  },
  {
    "relative_path": "references/content/learning/spec.md",
    "size_in_bytes": 356
  },
  {
    "relative_path": "references/content/steps/check.md",
    "size_in_bytes": 1150
  },
  {
    "relative_path": "references/content/steps/help.md",
    "size_in_bytes": 2595
  },
  {
    "relative_path": "references/content/steps/map.md",
    "size_in_bytes": 948
  },
  {
    "relative_path": "references/content/steps/prepare.md",
    "size_in_bytes": 1599
  },
  {
    "relative_path": "references/content/steps/resources.md",
    "size_in_bytes": 1601
  },
  {
    "relative_path": "references/content/steps/rules.md",
    "size_in_bytes": 1136
  },
  {
    "relative_path": "references/content/steps/start.md",
    "size_in_bytes": 1868
  },
  {
    "relative_path": "references/placeholder-rules.md",
    "size_in_bytes": 3185
  },
  {
    "relative_path": "references/plugin-runtime.md",
    "size_in_bytes": 11790
  }
]

changed /skill_md_contents

BEFORE
"---\nname: review-hackathon-rules\ndescription: Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit acknowledgment of the terms, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements.\n---\n\n# Review\n\n## Purpose\n\nAct as the strategic preflight and the mandatory rules gate: surface the event's official picture at a glance, walk the rules, update state only after an explicit `yes`, then offer a short conversation about the participant's idea and strategy before they start building.\n\nChat is the primary participant interface. Keep responses text-first so they render in any Codex host; the bundled `devpost` MCP server supplies rich inline visuals on hosts that support them.\n\n## Required Data Source\n\nOfficial rules and requirements come from the `devpost` MCP server — follow **Devpost MCP Server** in `references/plugin-runtime.md` (call only what you need, never verify or set up the server, degrade in one line on failure).\n\nDraw on these only as needed: `devpost.get_hackathon_rules`, `devpost.get_submission_requirements`, `devpost.get_judging_criteria`, `devpost.get_key_dates`, `devpost.get_prizes`. Quote rules, eligibility, and requirements text from the response; do not paraphrase legal language.\n\n**The acknowledgment gate runs only against real rules.** If `get_hackathon_rules` is unavailable this session, do NOT present rules for agreement and do NOT ask for or record `rules_acknowledged` — a \"yes\" to placeholder text is not consent to the real rules. Say in one line that the official rules can't be fetched right now, point to the hackathon's rules page on Devpost, and stop the gate there. `references/placeholder-rules.md` may shape structure and answer general questions, clearly labeled provisional — never the consent gate.\n\n## Required References\n\nRead these before responding:\n\n- `references/plugin-runtime.md`\n- `references/content/steps/rules.md`\n- `references/config/hackathon.json`\n- `references/placeholder-rules.md`\n\n## Preconditions\n\nRead `.devpost-hackathon-state.json`.\n\nIf the state file does not exist, direct the user to `$start-hackathon`.\n\nLegacy state: older state files may use `review` (instead of `review-hackathon-rules`) in `current_stage`, `completed_stages`, or `next_command` — treat it as this stage.\n\n## Strict Gate\n\nDo not unlock the rest of the plugin flow until the user explicitly agrees to the rules review.\n\nUse this standard:\n\n- If `rules_acknowledged` is `true`, keep the recap short and move to **Strategy Conversation** (or point to `$resources` if they just want to proceed).\n- If `rules_acknowledged` is `false`, present the rules inline through the composer and ask exactly: `Do you agree to these terms? Reply yes or no.`\n\nAccept only `yes` as affirmative confirmation.\n\nTreat `no` as a stop:\n\n- do not update the state file\n- keep the flow locked\n- invite the participant to ask questions or return later\n\nDo not accept ambiguous acknowledgments such as `confirm`, `acknowledge`, `continue`, or `reviewed`.\n\nIf the participant asks substantive questions, answer from the official MCP data or the placeholder reference and clearly label provisional areas as awaiting official copy. But never run the acknowledgment gate itself against placeholder content — see **Required Data Source**.\n\n## Required Rules Content\n\nThe inline rules response should cover:\n\n- fairness and equal-information notice\n- official eligibility rules\n- official contest dates and deadlines\n- what to build\n- what to submit\n- provisional judging criteria awaiting official approval\n- originality, third-party usage, testing, and content restrictions\n- common reasons a submission can get blocked later\n- official contact and escalation path\n- the website-prevails disclaimer, verbatim from `references/content/steps/rules.md` (\"A note on\n  accuracy\"): this guide is a helper, and if it ever disagrees with the Devpost website, the\n  website prevails\n\nKeep the response complete enough for the gate, but do not write a second ad hoc version outside the configured content and references.\n\n## Strategy Conversation\n\nOnce the gate is passed (this turn or previously), offer — do not force — a short strategic exchange:\n\n- surface the at-a-glance picture: deadline, prize structure, judging criteria weights, submission obligations\n- if the participant shares an idea, react to it against the judging criteria and requirements in a few sentences: where it scores well, what it risks, what the minimum submission needs\n- keep it to a conversation, not a report; two or three sharp observations beat a full analysis\n- close with the Resources preview below\n\n## Resources Preview\n\nWhenever this command points the participant to `$resources` — after the gate passes, or closing the strategy conversation — never leave it at a bare next-command line. Preview the stage in three or four sentences covering, in this order:\n\n1. The Resources step shows the links and info the hackathon organizers published to help you put your best foot forward and make the best project.\n2. It also offers the optional guided build tool — **always say it is optional** — which walks you through ideation, scoping, planning, and building, and introduces best practices for coding AI projects: good if you're new to them, or want to polish your practices.\n3. One token-strategy line: plan and specify with your most powerful model, then hand execution to cheaper models or subagents once the work is specified.\n\nThe guided build tool comes first in this preview, before any mention of submission prep — building precedes preparing, and `$prepare-submission` must never read as the immediate next step here.\n\n## Presentation Output\n\nCompose the response in-context per `references/plugin-runtime.md` (\"Composing the Response\"): read `references/content/steps/rules.md`, strip maintainer `<!-- -->` comments, interpolate the event name, then present a short stage headline, the page content, and the next-step callout. Do not run any script.\n\n## State Update\n\nWhen the user explicitly replies `yes`:\n\n- set `rules_acknowledged` to `true`\n- add `review` to `completed_stages` if needed\n- set `current_stage` to `resources`\n- set `next_command` to `resources`\n- preserve any real deadline values already present\n\nThen compose the Rules response again so the next command is visible.\n\n## Chat Output\n\nKeep chat output minimal.\n\nDo not hand-write a separate dashboard. Let the composer render the response.\n\nIf locked, respond with:\n\n- the composed rules response\n- a reminder to read the inline rules carefully before answering\n- an invitation to ask questions about the rules before replying\n- exact confirmation prompt: `Do you agree to these terms? Reply yes or no.`\n\nIf unlocked after `yes`, respond with:\n\n- rules acknowledged\n- the strategy-conversation offer (one line)\n- the Resources preview (see **Resources Preview**)\n- next command: `$resources`\n\nIf composer generation fails, use a compact text fallback:\n\n- current stage: Review\n- locked/unlocked status\n- exact yes/no requirement when locked\n- next command only when unlocked\n"
AFTER
"---\nname: review-hackathon-rules\ndescription: Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit confirmation that the participant has reviewed the rules, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements.\n---\n\n# Review\n\n## Purpose\n\nAct as the strategic preflight and the mandatory rules-review gate: surface the event's official picture at a glance, walk the rules, update state only after an explicit `yes`, then offer a short conversation about the participant's idea and strategy before they start building.\n\n**This gate is a review confirmation, not a terms agreement.** The binding agreement to the official rules and terms is collected at Devpost registration (on the website or in `$start-hackathon`) — never here. Replying `yes` sends nothing to Devpost and only records, in this project's local state, that the participant has reviewed the current rules before building.\n\nChat is the primary participant interface. Keep responses text-first so they render in any Codex host; the bundled `devpost` MCP server supplies rich inline visuals on hosts that support them.\n\n## Required Data Source\n\nOfficial rules and requirements come from the `devpost` MCP server — follow **Devpost MCP Server** in `references/plugin-runtime.md` (call only what you need, never verify or set up the server, degrade in one line on failure).\n\nDraw on these only as needed: `devpost.get_hackathon_rules`, `devpost.get_submission_requirements`, `devpost.get_judging_criteria`, `devpost.get_key_dates`, `devpost.get_prizes`. Quote rules, eligibility, and requirements text from the response; do not paraphrase legal language.\n\n**The review gate runs only against real rules.** If `get_hackathon_rules` is unavailable this session, do NOT present rules for review confirmation and do NOT ask for or record `rules_acknowledged` — a \"yes\" to placeholder text is not a review of the real rules. Say in one line that the official rules can't be fetched right now, point to the hackathon's rules page on Devpost, and stop the gate there. `references/placeholder-rules.md` may shape structure and answer general questions, clearly labeled provisional — never the review gate.\n\n## Required References\n\nRead these before responding:\n\n- `references/plugin-runtime.md`\n- `references/content/steps/rules.md`\n- `references/config/hackathon.json`\n- `references/placeholder-rules.md`\n\n## Preconditions\n\nRead `.devpost-hackathon-state.json`.\n\nIf the state file does not exist, direct the user to `$start-hackathon`.\n\nLegacy state: older state files may use `review` (instead of `review-hackathon-rules`) in `current_stage`, `completed_stages`, or `next_command` — treat it as this stage.\n\n## Strict Gate\n\nDo not unlock the rest of the plugin flow until the user explicitly confirms the rules review.\n\nUse this standard:\n\n- If `rules_acknowledged` is `true`, keep the recap short and move to **Strategy Conversation** (or point to `$resources` if they just want to proceed).\n- If `rules_acknowledged` is `false`, present the rules inline through the composer and ask exactly: `Have you reviewed these rules and are you ready to build within them? Reply yes or no.`\n\n**Never phrase this gate as agreeing to terms** — no \"do you agree\", \"accept the terms\", or similar. Terms agreement belongs to registration, not this step; asking for it again reads as a second consent and is wrong (see **Purpose**). If the participant asks why they're confirming again — entering a second project for the same event is the typical case — answer in one line: their registration agreement stands and nothing is re-submitted; this is a per-project check that they've reviewed the current rules, which may have changed since their last project. Then keep the gate.\n\nAccept only `yes` as affirmative confirmation.\n\nTreat `no` as a stop:\n\n- do not update the state file\n- keep the flow locked\n- invite the participant to ask questions or return later\n\nDo not accept ambiguous acknowledgments such as `confirm`, `acknowledge`, `continue`, or `reviewed`.\n\nIf the participant asks substantive questions, answer from the official MCP data or the placeholder reference and clearly label provisional areas as awaiting official copy. But never run the review gate itself against placeholder content — see **Required Data Source**.\n\n## Required Rules Content\n\nThe inline rules response should cover:\n\n- fairness and equal-information notice\n- official eligibility rules\n- official contest dates and deadlines\n- what to build\n- what to submit\n- provisional judging criteria awaiting official approval\n- originality, third-party usage, testing, and content restrictions\n- common reasons a submission can get blocked later\n- official contact and escalation path\n- the website-prevails disclaimer, verbatim from `references/content/steps/rules.md` (\"A note on\n  accuracy\"): this guide is a helper, and if it ever disagrees with the Devpost website, the\n  website prevails\n\nKeep the response complete enough for the gate, but do not write a second ad hoc version outside the configured content and references.\n\n## Strategy Conversation\n\nOnce the gate is passed (this turn or previously), offer — do not force — a short strategic exchange:\n\n- surface the at-a-glance picture: deadline, prize structure, judging criteria weights, submission obligations\n- if the participant shares an idea, react to it against the judging criteria and requirements in a few sentences: where it scores well, what it risks, what the minimum submission needs\n- keep it to a conversation, not a report; two or three sharp observations beat a full analysis\n- close with the Resources preview below\n\n## Resources Preview\n\nWhenever this command points the participant to `$resources` — after the gate passes, or closing the strategy conversation — never leave it at a bare next-command line. Preview the stage in three or four sentences covering, in this order:\n\n1. The Resources step shows the links and info the hackathon organizers published to help you put your best foot forward and make the best project.\n2. It also offers the optional guided build tool — **always say it is optional** — which walks you through ideation, scoping, planning, and building, and introduces best practices for coding AI projects: good if you're new to them, or want to polish your practices.\n3. One token-strategy line: plan and specify with your most powerful model, then hand execution to cheaper models or subagents once the work is specified.\n\nThe guided build tool comes first in this preview, before any mention of submission prep — building precedes preparing, and `$prepare-submission` must never read as the immediate next step here.\n\n## Presentation Output\n\nCompose the response in-context per `references/plugin-runtime.md` (\"Composing the Response\"): read `references/content/steps/rules.md`, strip maintainer `<!-- -->` comments, interpolate the event name, then present a short stage headline, the page content, and the next-step callout. Do not run any script.\n\n## State Update\n\nWhen the user explicitly replies `yes`:\n\n- set `rules_acknowledged` to `true`\n- add `review` to `completed_stages` if needed\n- set `current_stage` to `resources`\n- set `next_command` to `resources`\n- preserve any real deadline values already present\n\nThen compose the Rules response again so the next command is visible.\n\n## Chat Output\n\nKeep chat output minimal.\n\nDo not hand-write a separate dashboard. Let the composer render the response.\n\nIf locked, respond with:\n\n- the composed rules response\n- a reminder to read the inline rules carefully before answering\n- an invitation to ask questions about the rules before replying\n- exact confirmation prompt: `Have you reviewed these rules and are you ready to build within them? Reply yes or no.`\n\nIf unlocked after `yes`, respond with:\n\n- rules acknowledged\n- the strategy-conversation offer (one line)\n- the Resources preview (see **Resources Preview**)\n- next command: `$resources`\n\nIf composer generation fails, use a compact text fallback:\n\n- current stage: Review\n- locked/unlocked status\n- exact yes/no requirement when locked\n- next command only when unlocked\n"
Full snapshot data
{
  "description": "Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit confirmation that the participant has reviewed the rules, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements.",
  "included_files": [
    {
      "relative_path": "agents/openai.yaml",
      "size_in_bytes": 242
    },
    {
      "relative_path": "references/SETUP.md",
      "size_in_bytes": 1231
    },
    {
      "relative_path": "references/config/hackathon.json",
      "size_in_bytes": 1897
    },
    {
      "relative_path": "references/content/learning/build.md",
      "size_in_bytes": 939
    },
    {
      "relative_path": "references/content/learning/checklist.md",
      "size_in_bytes": 618
    },
    {
      "relative_path": "references/content/learning/onboard.md",
      "size_in_bytes": 1333
    },
    {
      "relative_path": "references/content/learning/prd.md",
      "size_in_bytes": 972
    },
    {
      "relative_path": "references/content/learning/scope.md",
      "size_in_bytes": 403
    },
    {
      "relative_path": "references/content/learning/spec.md",
      "size_in_bytes": 356
    },
    {
      "relative_path": "references/content/steps/check.md",
      "size_in_bytes": 1150
    },
    {
      "relative_path": "references/content/steps/help.md",
      "size_in_bytes": 2595
    },
    {
      "relative_path": "references/content/steps/map.md",
      "size_in_bytes": 948
    },
    {
      "relative_path": "references/content/steps/prepare.md",
      "size_in_bytes": 1599
    },
    {
      "relative_path": "references/content/steps/resources.md",
      "size_in_bytes": 1601
    },
    {
      "relative_path": "references/content/steps/rules.md",
      "size_in_bytes": 1136
    },
    {
      "relative_path": "references/content/steps/start.md",
      "size_in_bytes": 1868
    },
    {
      "relative_path": "references/placeholder-rules.md",
      "size_in_bytes": 3185
    },
    {
      "relative_path": "references/plugin-runtime.md",
      "size_in_bytes": 11790
    }
  ],
  "name": "review-hackathon-rules",
  "skill_md_contents": "---\nname: review-hackathon-rules\ndescription: Strategic preflight for the hackathon — present the official picture (rules, eligibility, key dates, prizes, judging criteria, submission obligations), capture explicit confirmation that the participant has reviewed the rules, then offer a short conversation about the participant's idea and strategy. Use when the user is starting the hackathon, wants to size up the event or sanity-check their idea, or needs to re-check official requirements.\n---\n\n# Review\n\n## Purpose\n\nAct as the strategic preflight and the mandatory rules-review gate: surface the event's official picture at a glance, walk the rules, update state only after an explicit `yes`, then offer a short conversation about the participant's idea and strategy before they start building.\n\n**This gate is a review confirmation, not a terms agreement.** The binding agreement to the official rules and terms is collected at Devpost registration (on the website or in `$start-hackathon`) — never here. Replying `yes` sends nothing to Devpost and only records, in this project's local state, that the participant has reviewed the current rules before building.\n\nChat is the primary participant interface. Keep responses text-first so they render in any Codex host; the bundled `devpost` MCP server supplies rich inline visuals on hosts that support them.\n\n## Required Data Source\n\nOfficial rules and requirements come from the `devpost` MCP server — follow **Devpost MCP Server** in `references/plugin-runtime.md` (call only what you need, never verify or set up the server, degrade in one line on failure).\n\nDraw on these only as needed: `devpost.get_hackathon_rules`, `devpost.get_submission_requirements`, `devpost.get_judging_criteria`, `devpost.get_key_dates`, `devpost.get_prizes`. Quote rules, eligibility, and requirements text from the response; do not paraphrase legal language.\n\n**The review gate runs only against real rules.** If `get_hackathon_rules` is unavailable this session, do NOT present rules for review confirmation and do NOT ask for or record `rules_acknowledged` — a \"yes\" to placeholder text is not a review of the real rules. Say in one line that the official rules can't be fetched right now, point to the hackathon's rules page on Devpost, and stop the gate there. `references/placeholder-rules.md` may shape structure and answer general questions, clearly labeled provisional — never the review gate.\n\n## Required References\n\nRead these before responding:\n\n- `references/plugin-runtime.md`\n- `references/content/steps/rules.md`\n- `references/config/hackathon.json`\n- `references/placeholder-rules.md`\n\n## Preconditions\n\nRead `.devpost-hackathon-state.json`.\n\nIf the state file does not exist, direct the user to `$start-hackathon`.\n\nLegacy state: older state files may use `review` (instead of `review-hackathon-rules`) in `current_stage`, `completed_stages`, or `next_command` — treat it as this stage.\n\n## Strict Gate\n\nDo not unlock the rest of the plugin flow until the user explicitly confirms the rules review.\n\nUse this standard:\n\n- If `rules_acknowledged` is `true`, keep the recap short and move to **Strategy Conversation** (or point to `$resources` if they just want to proceed).\n- If `rules_acknowledged` is `false`, present the rules inline through the composer and ask exactly: `Have you reviewed these rules and are you ready to build within them? Reply yes or no.`\n\n**Never phrase this gate as agreeing to terms** — no \"do you agree\", \"accept the terms\", or similar. Terms agreement belongs to registration, not this step; asking for it again reads as a second consent and is wrong (see **Purpose**). If the participant asks why they're confirming again — entering a second project for the same event is the typical case — answer in one line: their registration agreement stands and nothing is re-submitted; this is a per-project check that they've reviewed the current rules, which may have changed since their last project. Then keep the gate.\n\nAccept only `yes` as affirmative confirmation.\n\nTreat `no` as a stop:\n\n- do not update the state file\n- keep the flow locked\n- invite the participant to ask questions or return later\n\nDo not accept ambiguous acknowledgments such as `confirm`, `acknowledge`, `continue`, or `reviewed`.\n\nIf the participant asks substantive questions, answer from the official MCP data or the placeholder reference and clearly label provisional areas as awaiting official copy. But never run the review gate itself against placeholder content — see **Required Data Source**.\n\n## Required Rules Content\n\nThe inline rules response should cover:\n\n- fairness and equal-information notice\n- official eligibility rules\n- official contest dates and deadlines\n- what to build\n- what to submit\n- provisional judging criteria awaiting official approval\n- originality, third-party usage, testing, and content restrictions\n- common reasons a submission can get blocked later\n- official contact and escalation path\n- the website-prevails disclaimer, verbatim from `references/content/steps/rules.md` (\"A note on\n  accuracy\"): this guide is a helper, and if it ever disagrees with the Devpost website, the\n  website prevails\n\nKeep the response complete enough for the gate, but do not write a second ad hoc version outside the configured content and references.\n\n## Strategy Conversation\n\nOnce the gate is passed (this turn or previously), offer — do not force — a short strategic exchange:\n\n- surface the at-a-glance picture: deadline, prize structure, judging criteria weights, submission obligations\n- if the participant shares an idea, react to it against the judging criteria and requirements in a few sentences: where it scores well, what it risks, what the minimum submission needs\n- keep it to a conversation, not a report; two or three sharp observations beat a full analysis\n- close with the Resources preview below\n\n## Resources Preview\n\nWhenever this command points the participant to `$resources` — after the gate passes, or closing the strategy conversation — never leave it at a bare next-command line. Preview the stage in three or four sentences covering, in this order:\n\n1. The Resources step shows the links and info the hackathon organizers published to help you put your best foot forward and make the best project.\n2. It also offers the optional guided build tool — **always say it is optional** — which walks you through ideation, scoping, planning, and building, and introduces best practices for coding AI projects: good if you're new to them, or want to polish your practices.\n3. One token-strategy line: plan and specify with your most powerful model, then hand execution to cheaper models or subagents once the work is specified.\n\nThe guided build tool comes first in this preview, before any mention of submission prep — building precedes preparing, and `$prepare-submission` must never read as the immediate next step here.\n\n## Presentation Output\n\nCompose the response in-context per `references/plugin-runtime.md` (\"Composing the Response\"): read `references/content/steps/rules.md`, strip maintainer `<!-- -->` comments, interpolate the event name, then present a short stage headline, the page content, and the next-step callout. Do not run any script.\n\n## State Update\n\nWhen the user explicitly replies `yes`:\n\n- set `rules_acknowledged` to `true`\n- add `review` to `completed_stages` if needed\n- set `current_stage` to `resources`\n- set `next_command` to `resources`\n- preserve any real deadline values already present\n\nThen compose the Rules response again so the next command is visible.\n\n## Chat Output\n\nKeep chat output minimal.\n\nDo not hand-write a separate dashboard. Let the composer render the response.\n\nIf locked, respond with:\n\n- the composed rules response\n- a reminder to read the inline rules carefully before answering\n- an invitation to ask questions about the rules before replying\n- exact confirmation prompt: `Have you reviewed these rules and are you ready to build within them? Reply yes or no.`\n\nIf unlocked after `yes`, respond with:\n\n- rules acknowledged\n- the strategy-conversation offer (one line)\n- the Resources preview (see **Resources Preview**)\n- next command: `$resources`\n\nIf composer generation fails, use a compact text fallback:\n\n- current stage: Review\n- locked/unlocked status\n- exact yes/no requirement when locked\n- next command only when unlocked\n"
}

SHA-256 of public snapshot: 52ec26a88bc870c35f19d71c6c75d9772fbd11ae9f2832e5e241cd7fa59a9daa