ITADN
metadatastician/688-attack-hub
README.md

688 Attack Hub

AS688 · 10BASE-T · Unmanaged repeater · 20 port

A browser idle/strategy toy about quietly spreading a rogue network repeater across the world's real internet exchange points, one leaked segment at a time — while the NOC's attention meter climbs toward "the Great Deswitching."


What this is

You are AS688: an unmanaged 20-port repeater with delusions of grandeur. Each tick, you install at real-world internet exchange points — LINX, DE-CIX, AMS-IX, Equinix SG, HKIX, and 15 others, laid out at their actual longitude/latitude — and link them across real backbone routes. Every link costs port points, contributes throughput, and raises NOC ATTENTION. Eighteen upgrades across four trees (Physical, Timing, Stealth, Spread) trade off speed, stealth, and reach. Attention crosses six thresholds, each firing a real-sounding countermeasure message (port security, a vendor switch refresh, BCP38 filtering, RPKI ROA enforcement, a MANRS compliance audit) culminating at 100% in THE GREAT DESWITCHING.

Everything is flavour. There is no real target, no real exploit, and no network call of any kind — see AUDIT.adoc for what was actually checked.

Run it

  • Play in your browser: https://metadatastician.github.io/688-attack-hub/
  • Play locally: open 688-attack-hub.html — self-contained, no server, no build step, nothing to install.
  • Serve it over http:// if you'd rather: bun run serve. You almost never need this; the file opens fine from disk.

Any modern browser. No dependencies — nothing to install.

Two query parameters

?seed=NReplays a run exactly, including across restart.
?fast=NRuns the clock N× faster (capped at 40), so a whole game takes under a minute.

?seed= matters more than it looks. Five Math.random() sites used to mean no two runs were comparable, so "this feels too fast" could never be checked against anything — balance was assessable only by feel. With a seed, "the Pacific went dark on tick 40 at seed 7" is a reproducible observation.

They combine: https://metadatastician.github.io/688-attack-hub/?seed=7&fast=20

The footer carries a FLAT / GLOBE toggle. Flat is the plate-carrée world map and the default; globe is a rotating orthographic projection of the same data, hand-rolled in SVG with no 3D library. Both are the same game — the projection is the only thing that changes.

In globe view you can drag to rotate, or use the left/right arrow keys (hold Shift for a bigger step). The globe also turns on its own, unless your system asks for reduced motion — in which case it stays still and the drag and key controls are how you reach the far side.

Documentation

DocumentWhat it answers
ARCHITECTURE.mdThe single-file structure: data (nodes/edges/upgrades), state, the render loop, and how the flat and globe projections share one project() seam.
EXPLAINME.adocWhat's actually true about this repo, mapped to the file/line that backs each claim.
AUDIT.adocWhat is verified (grep-checked), what is merely asserted, and what is explicitly not claimed — there is no formal proof ledger here, unlike this repo's sibling f19-stealth-glider.
AFFIRMATION.adocWhat was checkably true at one stamped commit.
CONTRIBUTING.mdHow to work on this repo.
GOVERNANCE.mdThe (small) set of invariants this project won't trade away.
SECURITY.mdThe deliberately small threat model and how to report an issue.
DEBT.adocKnown debt by kind — licence, docs, code, tests, CI/CD — with evidence for each, and what is deliberately not being fixed.
MAINTAINERS.adocWho maintains this and how decisions get made.
CODE_OF_CONDUCT.mdExpected conduct and how to report a problem.
CHANGELOG.mdProject history.

Machine-readable metadata for agents lives in 0-AI-MANIFEST.a2ml and .machine_readable/.

Tests

tests/differential/run.sh runs the game's simulation against a git baseline under a fixed seed and diffs the state trajectory tick by tick. It answers one question — did this change alter how the game plays? — which is exactly what the Phase C refactors need and nothing more.

It is not a gate and not coverage. It needs bun and a baseline ref, and choosing the baseline is a judgement, so CI does not run it. AUDIT.adoc records what it can and cannot see — including one measured blind spot: a change smaller than the RNG can resolve is invisible to it.

bun --version                        # needs bun
tests/differential/run.sh            # against HEAD
tests/differential/run.sh origin/main

Licence

Three licences are in use here, and the split is deliberate:

LicenceCovers
AGPL-3.0-or-laterthe game and the workflows
CC-BY-SA-4.0the human documentation
MPL-2.0scripts and launchers

AGPL matches this repository's siblings in the metadatastician org. See LICENSES/ for the full text of all three.

Two gaps are known and recorded in DEBT.adoc: the game file itself carries no SPDX header, and there is no REUSE.toml/dep5 mapping — so files that cannot hold a comment (package.json, CITATION.cff) are covered by nothing. Both are flagged rather than fixed, because licence changes here are deliberately manual.

Origin

This game is original fictional content — not derived from, and not a copy of, the 1997 commercial submarine simulator "688(I) Hunter/Killer" / "688 Attack Sub". The name is coincidental wordplay on the AS688 fictional autonomous-system number used in-game.