Files
2025-11-30 09:03:57 +08:00

2.6 KiB

description: Create a new debate with interactive setup argument-hint: [slug] (optional)

Create New Debate

Step 1: Motion

"What's your debate motion?

You can write it in any of these formats:

Formal styles:

  • This house believes that [proposition] — British Parliamentary
  • This house would [action] — Policy debate
  • Resolved: [statement] — American Parliamentary

Or state it directly (we'll keep it as-is)

Your motion:"

Step 2: Slug

If $1 argument provided:

  1. Use $1 as the slug
  2. Validate format (lowercase, numbers, hyphens only)
  3. Check it doesn't exist as a directory
  4. If valid: skip to Step 3
  5. If invalid format: explain requirements and ask for new slug
  6. If exists: list existing debates and ask for different name

If no argument provided:

  1. After receiving motion, auto-generate 2-3 slug suggestions from motion keywords

  2. Present: "Suggested slugs:

    1. [auto-generated-1]
    2. [auto-generated-2]
    3. [auto-generated-3]

    Pick a number, or type your own (lowercase, hyphens only):"

  3. Validate chosen/custom slug:

    • Check format (lowercase, numbers, hyphens only)
    • Check doesn't exist as a directory
    • If format invalid: explain and ask again
    • If exists: list existing debates and ask for different name

Step 3: Definitions & Scope (Optional)

"Optional refinements:

Type 'definitions' to define key terms, 'scope' to set debate focus, or 'skip' to continue:"

If user types 'definitions':

  • Suggest 2-3 key terms from the motion that might need defining
  • For each term: "Define '[term]':" (record definition)

If user types 'scope':

  • Ask: "Specify the debate's scope or focus:"
  • Record scope

If user types 'skip':

  • Proceed to creation

Step 4: Create Debate

Once all information is gathered:

  1. Create directory: {slug}/
  2. Create {slug}/arguments/ directory
  3. Create {slug}/debate.md with JSON frontmatter:
{
  "debate_id": "{slug}",
  "current_exchange": 0,
  "current_phase": "awaiting_arguments",
  "cumulative_scores": {
    "proposition": {"total": 0, "count": 0},
    "opposition": {"total": 0, "count": 0}
  }
}

# Motion

{formalized motion}

## Definitions

{if any definitions were provided:}
- **{term}**: {definition}

## Scope

{scope if provided}
  1. Create {slug}/scores.json:
{}
  1. Confirm to user:

"✓ Debate '{slug}' created successfully!

Motion: {full formalized motion} {if definitions: Definitions: {count} terms defined} {if scope: Scope: {scope}}

Run /debate-run {slug} 8 to start the debate. Exchange 0 (opening statements) runs automatically, then specify how many rebuttal exchanges to run."