Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aviz85 avatar

Ten By Ten

  • 11 installs
  • 44 repo stars
  • Updated July 8, 2026
  • aviz85/claude-skills-library

ten-by-ten is a Claude skill that applies the 10x10 method: generate ten different directions, let a human pick one, then converge with ten more variations of the winner.

About

ten-by-ten applies the 10x10 method: generate breadth (ten genuinely different directions), let a human pick the winner via a bundled grid picker, then converge by generating ten variations of the chosen one. Variations stay in an isolated sandbox until a winner is picked, and rejected-but-good directions go to a persistent keep bank. A developer uses it when a single AI output will not nail it and quality matters for design, copy, naming, or code approaches.

  • Generate 10 genuinely different directions, let a human pick, then converge with 10 more
  • Variations are generated in an isolated sandbox until the pick is made
  • Bundles an interactive grid picker that returns the selection via PICK_RESULT

Ten By Ten by the numbers

  • 11 all-time installs (skills.sh)
  • Ranked #2,174 of 3,280 Productivity & Planning skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

ten-by-ten capabilities & compatibility

Free; runs a local Node picker server with no external API keys.

Capabilities
review skill
Use cases
planning · copywriting · ui design
Pricing
Free
From the docs

What ten-by-ten says it does

generate breadth, let a human pick, then converge.
SKILL.md
**The variations are always generated in an isolated sandbox, never by mutating the real target.**
SKILL.md
Generate **10 variations that differ in direction, not in trivial tweaks.**
SKILL.md
npx skills add https://github.com/aviz85/claude-skills-library --skill ten-by-ten

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs11
repo stars44
Last updatedJuly 8, 2026
Repositoryaviz85/claude-skills-library

What it does

Generate ten varied options, pick one with human judgment, then refine when a single AI output will not land the result.

Who is it for?

Getting a great result when one AI output is unlikely to land it and quality matters, for design, copy, naming, or code approaches.

Skip if: Tasks where a single shot is reliably good enough and breadth adds no value.

When should I use this skill?

A single AI output won't nail it and quality matters, or the user says 10x10, give me 10 options, or show me variations.

What you get

A chosen winning direction applied to the real artifact, with strong rejected directions preserved in a keep bank.

  • Sandbox grid of options
  • Selected winning direction
  • Keep bank of rejected-but-good directions

By the numbers

  • Generate 10 variations per round
  • Picker default port 8777, auto-picks next free port

Files

SKILL.mdMarkdownGitHub ↗

10x10 — breadth then judgment

The fastest way to get a great result out of an AI that is not 100% reliable. Instead of fighting one mediocre output with round after round of corrections ("add this word, move that line") — which is slow because each round costs a full generation — you generate breadth, let a human pick, then converge. Human judgment is fast and high-value; spend the model on options, not on arguing.

Apply it by default whenever output quality matters and one shot is unlikely to land it.

Sandbox first — never touch the real thing until the pick is made

The variations are always generated in an isolated sandbox, never by mutating the real target. Copy the relevant slice into a throwaway space (a sandbox/ dir, /tmp, scratch files), generate all N options there, render/present them, and let the human choose. Only after a winner is picked do you apply that one change to the real data — the live deck, file, DB, document, etc. The real artifact is never in a half-edited state, and nothing is lost if a direction is rejected. This is non-negotiable: breadth is exploratory, so it stays quarantined until judgment lands.

The loop

1. Diverge — 10 genuinely different directions. Generate 10 variations that differ in direction, not in trivial tweaks. Crucially: you (the agent) propose the directions — don't ask the user to specify them. Breadth is the point. Keep each lightweight so all 10 are cheap to scan.

"Give me 10 ads in different directions that all carry the campaign's message — you throw
the directions."

2. Select — human picks the winner (fast), via the grid picker. Present all N together for a quick side-by-side scan. The default selection UI is the interactive grid picker bundled with this skill — offer it immediately and launch it without waiting to be asked; it raises a local server and opens the UI in the browser for you:

1. Build a sandbox sheet — one HTML doc with the N options as a grid of .wrap > .cell elements (in order = option 1..N). For visuals, render each option faithfully; for text, a labeled card is enough. 2. Launch the picker — run it as a normal terminal command: npx tsx <skill-dir>/scripts/pick-server.ts <sheet.html> It opens the browser automatically and prints PICKER_READY <url>. If port 8777 is busy it auto-picks the next free port and reports it — always use the URL it prints, never assume 8777. (<skill-dir> = where this skill is installed. Needs Node + npx; tsx runs the TypeScript directly — no Python.) 3. In the browser: click = primary pick (exactly one, solid cyan), Shift+click = secondary picks (many, dashed amber — these go to the keep bank), then "Confirm". 4. How the choice comes back to you — read this, it's the part agents miss. The command stays running the whole time the human is picking. The moment they click Confirm, the server shuts itself down and the process exits on its own, and its final stdout line is the answer: PICK_RESULT {"primary": N, "secondaries": [...]} That line is the selection — read it straight from the command's own output. (It's also written to <sheet dir>/pick-result.json, which you can cat as a fallback.) Do not ask the user what they picked — you already have it from PICK_RESULT.

  • Codex / a terminal that blocks until exit: just run the command and wait; when it

returns, read the PICK_RESULT line it printed. That's the whole round-trip.

  • Claude Code: run it in the background; you're notified when it exits, then read its

stdout (or pick-result.json). No manual polling. 5. Apply the primary to the real data; route the secondaries to the keep bank (3b).

Human judgment here takes seconds — that's the whole efficiency gain. (Falling back to "just tell me the number" is fine if the browser isn't available.)

3. Converge — 10 from the chosen one. Generate 10 variations of the selected direction to refine within the winner. Optionally narrow further (10 → pick → 4 → 3 → 2 → 1). Each round tightens around what already works.

3b. Keep bank — never let breadth evaporate. Breadth surfaces gems that aren't the winner but are worth keeping for something else — a different slide, a poster, a campaign, a name, a future idea. The throwaway sandbox is deleted; a keep bank is permanent. Before discarding the sandbox, move the interesting-but-rejected directions into a persistent keep bank, each captured with: a snapshot/snippet, one line of "what's good here," and a tag for where it might fit. Store it inside the project so it accumulates and stays searchable; promote cross-project gems to a shared/global bank. Good work compounds instead of resetting to zero. Offer this proactively whenever a 10x10 round produces more than one strong direction.

4. Lock it — make the winner deterministic. Re-generation drifts: ask for "the same poster with a different number" and the model quietly changes other things. When you need the exact same result every time, convert the winner to code — HTML→PDF, SVG, or a small script with the variable parts as parameters. Now it's pixel-exact and reproducible, not re-rolled each time.

Why it works

  • No correction hell. Round-after-round on one output is slow and frustrating; breadth +

selection reaches "great" far faster.

  • Human judgment, applied fast. People are excellent at picking and slow at specifying.

10x10 leans on the fast skill (choosing) and offloads the slow one (articulating) to breadth.

  • It compensates for imperfection. The AI isn't 100%. Generating 10 and selecting turns an

unreliable single shot into a reliable pick.

How to run it well

  • Make the 10 actually diverse. If they look like 10 copies with one word changed, you

failed step 1. Push for different angles, tones, structures, layouts, mechanisms.

  • Present for fast comparison. Visuals → render all 10 and show them in one grid/contact

sheet (or send as a batch). Text → a compact numbered list. Don't dribble them out one at a time.

  • Default count is 10, but scale to the task — 5 for a quick call, 10 standard, more when

the space is wide. Say what you did.

  • Then converge, don't restart. Round 2 is variations of the winner, not a fresh 10 from

scratch.

  • Reach for determinism at the end, once the direction is locked and exactness matters.

Beyond design

10x10 is not just for posters. Use it for naming, headlines, copy, email drafts, strategy options, architectural approaches, prompts, schemas — anywhere the solution space is wide and a single attempt is a coin flip. Diverge → select → converge → (lock).

Related skills

FAQ

Where are the variations generated?

Always in an isolated sandbox; the real target is never mutated until a winner is picked.

How does the selection come back to the agent?

The bundled picker prints a PICK_RESULT line with the primary and secondary picks, also written to pick-result.json.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.