Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Orchestrates the Voyager game development process.
.claude/skills/bilal140202-orchestration/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 15% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -35% | 0% |
| case-17 | ✗→✓ | ▲ Improved | -39% | 0% |
Voyager is a "Retro-Future" arcade space exploration game. Players pilot a craft, as Astronaut 311-C, to connect stars in Zodiac constellations within a shrinking time limit. If they connect all 12 constellations in time, they make friends with Zarg 966-Z, from Zargaborg. Players' completion times are scored in a leaderboard.
Three agents will collaborate to build this game. Agent A will build the game engine. Agent B will build the leaderboard. Agent C will validate their code by testing gameplay.
Voyager is built on the following tech stack:
To prevent file collisions, the project is split into three primary functional domains:
public/game.js. Responsible for the game loop, physics, constellation data, and local state.public/leaderboard.js. Responsible for Firebase initialization, Firestore queries, and high-score UI management.public/index.html and public/style.css): Agent A creates these files. All agents are authorized to read and write to these files.Agents A and B must use a shared global object, window.Voyager, to coordinate state transitions without direct file dependency.
START, PLAYING, FAIL, WIN, LEADERBOARD.game.js will call window.Voyager.showLeaderboard(score).leaderboard.js will call window.Voyager.resetGame() to trigger a fresh start in the engine.#000033 (Deep Space Blue).#00ffff (Neon Cyan).#ff00bb (Neon Pink).#start-screen, #fail-screen, #win-screen, and #leaderboard-screen.Agent B must adhere to the following Firestore structure to ensure compatibility with future analysis or curriculum metrics:
scores.name: String (3 uppercase initials).score: Number (integer).timestamp: serverTimestamp.uid: String (from Firebase Anonymous Auth).firebaseConfig object. Instead, use Firebase Hosting's reserved URLs in index.html for SDK loading and automatic initialization.<script defer src="/__/firebase/12.8.0/firebase-app-compat.js"></script> and subsequent feature scripts (auth, firestore).<script defer src="/__/firebase/init.js"></script> to handle the firebase.initializeApp() call automatically.const app = firebase.app();.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 17,447 | 14,512 | -17% | 1 | 1 | 0% | 4,110 | 4,406 | +7% | 0 | 0 | — |
case-02 | fail→pass | 24,112 | 26,297 | +9% | 1 | 1 | 0% | 6,227 | 7,170 | +15% | 0 | 0 | — |
case-03 | fail→pass | 28,229 | 25,983 | -8% | 1 | 1 | 0% | 6,217 | 7,160 | +15% | 0 | 0 | — |
case-04 | fail→pass | 8,882 | 1,822 | -79% | 1 | 1 | 0% | 1,855 | 1,199 | -35% | 0 | 0 | — |
case-17 | fail→pass | 10,828 | 1,349 | -88% | 1 | 1 | 0% | 1,999 | 1,218 | -39% | 0 | 0 | — |
case-05 | fail→pass | 8,279 | 1,455 | -82% | 1 | 1 | 0% | 1,473 | 1,188 | -19% | 0 | 0 | — |
case-06 | fail→pass | 14,693 | 2,346 | -84% | 1 | 1 | 0% | 2,405 | 1,344 | -44% | 0 | 0 | — |
case-07 | fail→pass | 8,814 | 1,867 | -79% | 1 | 1 | 0% | 1,496 | 1,330 | -11% | 0 | 0 | — |
case-08 | fail→pass | 11,338 | 2,544 | -78% | 1 | 1 | 0% | 1,935 | 1,484 | -23% | 0 | 0 | — |
case-09 | fail→pass | 11,020 | 1,355 | -88% | 1 | 1 | 0% | 1,930 | 1,184 | -39% | 0 | 0 | — |
case-10 | fail→pass | 10,336 | 1,438 | -86% | 1 | 1 | 0% | 1,817 | 1,193 | -34% | 0 | 0 | — |
case-11 | fail→pass | 7,522 | 2,147 | -71% | 1 | 1 | 0% | 1,359 | 1,369 | +1% | 0 | 0 | — |
case-12 | fail→pass | 7,892 | 1,942 | -75% | 1 | 1 | 0% | 1,512 | 1,322 | -13% | 0 | 0 | — |
case-13 | pass→pass | 11,685 | 4,245 | -64% | 1 | 1 | 0% | 2,317 | 1,860 | -20% | 0 | 0 | — |
case-14 | fail→pass | 21,514 | 3,026 | -86% | 1 | 1 | 0% | 2,149 | 1,376 | -36% | 0 | 0 | — |
case-15 | fail→pass | 12,033 | 4,364 | -64% | 1 | 1 | 0% | 2,138 | 1,711 | -20% | 0 | 0 | — |
case-16 | pass→pass | 9,401 | 1,458 | -84% | 1 | 1 | 0% | 1,612 | 1,200 | -26% | 0 | 0 | — |
case-18 | fail→pass | 9,886 | 2,016 | -80% | 1 | 1 | 0% | 2,215 | 1,303 | -41% | 0 | 0 | — |
case-19 | fail→pass | 10,112 | 1,474 | -85% | 1 | 1 | 0% | 1,591 | 1,216 | -24% | 0 | 0 | — |
case-20 | pass→pass | 8,958 | 6,670 | -26% | 1 | 1 | 0% | 1,653 | 2,315 | +40% | 0 | 0 | — |
case-21 | pass→pass | 10,084 | 10,559 | +5% | 1 | 1 | 0% | 2,007 | 3,000 | +49% | 0 | 0 | — |
case-22 | pass→pass | 15,227 | 11,225 | -26% | 1 | 1 | 0% | 3,300 | 3,116 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +77 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.