← All examples

01 / A small game

Target Tap

Catch as many targets as you can before the clock runs out. Play with a pointer or a keyboard.

Play now ↓

Your first minute

  1. Start a 20-second round.
  2. Click the target, or focus it and press Enter or Space.
  3. When time is up, start again.

Small on purpose

No saved best score or online leaderboard. Refreshing starts a new game.

The app needs JavaScript. There is no account or server connection.

Open it. Run it. Change it.

A whole little project.

Source, focused tests, build scripts and a README. MIT licensed. Nothing depends on a private repository.

AFTER EXTRACTING THE SOURCE ZIP

cd target-tap
bun install --frozen-lockfile
bun run test
bun run typecheck
bun run build
bun run start

Install Bun first. Setup downloads the pinned development compiler; the built app runs locally. Read the README for its local URL.

Verify the download hashes

Compare SHA-256 with shasum -a 256 filename.

Source ZIP
87b575a3b67c1b67a27c94b055f429fdd5a604738e15c1032e7f897c23f6742c
Git bundle
4541f20a15eeeb442c6de9a95897bd07a4df3bc1546b8aa02ef631acd35b2f23

The build story

From an idea
to something you can use.

A tiny rule can matter a lot: a hit after the deadline must never count.

  1. 01

    PRODUCT · INTENT

    Say what should happen.

    A person approved five small examples that visitors can try, download and learn from. HI keeps the agreed intent in plain sentences.

  2. 02

    DESIGN · EXPERIENCE

    Make the idea visible.

    The gallery and five visual directions were reviewed before implementation. The approved design pairs a clear first action with a usable mobile layout.

  3. 03

    DEVELOPMENT · PLAN & BUILD

    Agree on the rules, then build.

    Each target counts once. Expired rounds cannot score, even before the screen repaints.

    SpecSync records the contract. A Sol coding agent writes the implementation in an assigned directory. chough records the stage and handoff.

  4. 04

    QA · TEST & REPAIR

    Check what actually happens.

    Tests were written against explicit unimplemented functions first. That failure is a development starting point, not a regression in a working app. Fledge runs the real tests again after implementation.

    8 behavioral tests / 56 assertions passed. An independent agent freshly extracted this source ZIP, installed its pinned dependencies, and passed the documented tests, strict source typecheck and build. Browser interaction was checked separately by the coordinator.

    Browser interaction, accessibility and fresh source extraction are checked separately. A structural SpecSync pass alone cannot prove those behaviors.

  5. 05

    EVERYONE · ACCEPT & RELEASE

    Review the result together.

    The project owner approved the design, scope and finished implementation (site revision d1ad28a3). Merge, publication and deployment are separate decisions.

The actual trail

Read the commits.

This is a project-only export of real development history. Filtering removes unrelated workspace files and redacts author email addresses, so these public commit IDs differ from the originals. Commit times describe saved revisions, not hours of agent effort. The saved Git name is the workspace identity; it does not establish human authorship or review.

  1. a83f0c7fb
    test(examples): add failing behavioral tests before app implementation
  2. 09b7c07d4
    feat(examples): implement five standalone browser games and apps
Open the Git history on your machine
git clone target-tap.bundle target-tap-history
cd target-tap-history
git log --oneline
git show HEAD

The history retains the apps/target-tap/ project path. The source ZIP starts directly at the project root. No private remote is needed.

A closer look.

Target Tap running in the browser
Actual browser capture · Actual running round after one pointer hit.. Source and capture identity are recorded in the verification package.

Make your own small thing

What would you change?

Start with one sentence about what you want. Keep the change small enough to try, explain and check.

Meet the workflow ↗Try another example →