Skip to content

Instantly share code, notes, and snippets.

@ulfie22
Created March 17, 2026 18:17
Show Gist options
  • Select an option

  • Save ulfie22/7a084ea9465fb061f6a9689958885c9b to your computer and use it in GitHub Desktop.

Select an option

Save ulfie22/7a084ea9465fb061f6a9689958885c9b to your computer and use it in GitHub Desktop.
PuzzleParty: Chrome extension skill for analyzing puzzle game websites

PuzzleParty — New Game Analyzer

You are analyzing a puzzle game's website to produce a Game Brief — a structured document containing everything needed to create a PuzzleParty integration spec. The user will paste this game brief into Claude Code CLI, which has access to the full codebase and will generate the implementation spec.

Your job is to extract game information and share format from the browser. You do NOT generate code, parsers, or specs — just the game brief.

Step 1: Read the Current Page

Use your browser tools to read the current game page. Extract:

  • Game name — official name as displayed on the page
  • Publisher — company or person who makes the game (check footer, about page, meta tags)
  • Game URL — the current page URL
  • How it works — describe the gameplay mechanics in plain English (what does the player do? how is it scored? is there a time limit? how many rounds?)
  • Difficulty estimate — easy / medium / hard
  • Estimated play time — in minutes
  • Daily vs on-demand — does it reset daily, or can you play anytime?

Step 2: Extract Share Format

The share format is the most critical piece. This is the text players copy to share their results (typically via a "Share" or "Copy Results" button). It usually contains emoji grids, scores, and puzzle identifiers.

Tier 1: Page JavaScript (Max 3 files, then stop)

Search the page's JavaScript for share text construction logic:

  1. Look at the page's script tags and linked JS bundles (max 3 files)
  2. Search each for these keywords: share, clipboard, copy, navigator.clipboard, shareText, result, copyToClipboard, navigator.share
  3. If you find share text construction logic, extract:
    • The template/format string
    • Emoji mappings (what each emoji means)
    • How the score is formatted
    • How the puzzle number/date is included
    • The URL or footer line

STOP after examining 3 JS files. If the share format is not clearly identifiable, move to Tier 2 immediately. Do not spend time decoding heavily minified or obfuscated code.

Tier 2: Web Search

Search the web for share text examples:

  • "<game name>" share results site:reddit.com
  • "<game name>" puzzle results
  • "<game name>" emoji grid
  • Look on Twitter/X, Reddit, Discord, or game forums

Collect 3-5 diverse examples if possible:

  • At least one solved/successful result
  • At least one failed result (if the game has failure states)
  • Different score ranges (best, average, worst)

Tier 3: Ask the User

If Tiers 1 and 2 did not produce clear share format examples, tell the user what you found and ask them to paste 2-3 share text examples. Request:

  • One solved result
  • One failed result (if applicable)
  • Different score ranges

If the user can't provide examples either, note this in the game brief under Share Format as [MISSING — could not find share text examples].

Step 3: Analyze What You Found

From the share format examples, determine:

  1. Scoring type: guess count (lower better), time (lower better), hints (lower better), stars/points (higher better), custom
  2. Score range: min and max possible scores
  3. Always solved?: Can the player fail, or does every play produce a score?
  4. Puzzle identification: Is there a date in the share text? A puzzle number? Both? Neither?
  5. Emoji grid: Dimensions (e.g., 5x6, 7x7), what each emoji color means, is it a true grid or decorative?
  6. Header pattern: How the first line of the share text is structured
  7. Footer/URL: Is there a URL at the bottom of the share text?
  8. Variant detection: Does this game share a publisher, URL domain, or core mechanic with common puzzle games? (Wordle, Connections, Waffle, Strands, Mini Crossword, etc.)

Step 4: Output the Game Brief

Output the following structured document in the chat. Use this EXACT format — the CLI skill expects it:

# Game Brief: <Game Name>

## Basic Info

| Field | Value |
|-------|-------|
| Game Name | <name> |
| Game URL | <url> |
| Publisher | <publisher> |
| Daily or On-Demand | <daily / on-demand> |
| Difficulty | <easy / medium / hard> |
| Estimated Minutes | <number> |

## How the Game Works

<2-4 sentences describing what the player does, how scoring works, whether there's a failure state>

## Share Format

### Source
<Where you found the share format: "Page JavaScript", "Web search (Reddit/Twitter)", "User-provided", or "MISSING">

### Confidence
<high / medium / low — how confident you are that the examples are accurate and complete>

### Examples

<Paste 2-5 actual share text examples here, each in a code block. Label each: "Solved", "Failed", "Perfect score", etc.>

### Pattern Analysis

- **Header format:** <describe the first line pattern, e.g., "GameName #123 4/6">
- **Score format:** <describe how the score appears, e.g., "X/6 where X is guess count">
- **Emoji grid:** <dimensions and meaning, e.g., "5x6 grid, green=correct position, yellow=wrong position, black=not in word">
- **Footer:** <URL or other text at the bottom, if any>
- **Solved detection:** <how to tell solved vs failed, e.g., "X in place of number means failed">
- **Puzzle ID type:** <"puzzle number" or "date" or "both" or "none">
- **Puzzle ID format:** <e.g., "#123" or "Mar 12" or "2026-03-17">

## Scoring Observations

| Field | Value |
|-------|-------|
| Scoring Type | <higher_better / lower_better / always_solved / custom> |
| Score Range | <e.g., "0-50 points" or "1-6 guesses" or "0-5 stars"> |
| Always Solved | <yes / no> |
| Failure State | <what happens on failure, e.g., "X/6 with no score" or "N/A - always solved"> |

## Variant Detection

| Field | Value |
|-------|-------|
| Is Variant of Existing Game | <yes / no / unsure> |
| If Yes, Which Family | <e.g., "Waffle" or "N/A"> |
| Reasoning | <why you think it is/isn't a variant> |

## Emoji Meanings

| Emoji | Meaning |
|-------|---------|
| <emoji> | <meaning> |

<Add rows for each emoji used in the share format. If unsure, note it.>

## Open Questions

<List anything you're uncertain about or couldn't determine. These will be flagged in the implementation spec for human review.>

## Raw Notes

<Any additional observations, caveats, or context that might be useful for spec generation. E.g., "The game URL includes a query parameter that changes daily", "Score precision is to 2 decimal places", "Year is not included in the date format".>

Step 5: Instruct the User

After outputting the game brief, tell the user:

Next step: Copy this entire game brief. Open Claude Code CLI in your PuzzleParty project directory and paste it. Then say: /new-game-spec — Claude Code will read the latest adding-new-games guide, pick the right exemplar spec, and generate a complete implementation spec saved to the docs repo.

If there are any Open Questions, highlight them and suggest the user resolve them before generating the spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment