ejlewis 2b3a18f208
ci/woodpecker/push/woodpecker Pipeline was successful
ci: add Cloudflare Pages deploy + split success/failure notify
Mirrors the ethanjlewis.com pipeline structure:

- single combined build step (npm ci + test + build)
- deploy via npx wrangler to project halfstreet-io
- notify-success at priority 0, notify-failure at priority 1
- triggers on push to main + manual

Secret names are lowercase (cloudflare_api_token, cloudflare_account_id,
pushover_token, pushover_user) to match what's configured on the
halfstreet repo in Woodpecker.
2026-05-09 11:56:38 -05:00

Halfstreet

A gothic text adventure. Second person, present tense, sparse — never explains.

Style anchors: Le Fanu's Carmilla, Shirley Jackson's The Haunting of Hill House, M.R. James's ghost stories.

Played at halfstreet.io.

Stack

  • Astro static site
  • TypeScript engine — pure (no DOM, Date, Math.random, or console)
  • World content authored in markdown (rooms, items, encounters, endings) under src/world/
  • Vitest for tests

Development

npm install
npm test          # engine + world tests
npm run dev       # local dev server
npm run build     # type-check + production build

Layout

  • src/engine/ — parser, dispatcher, encounter logic
  • src/ui/ — terminal renderer, theme, chips
  • src/world/ — markdown content (rooms, items, encounters, endings)
  • src/pages/index.astro — entry page

Design docs

  • docs/superpowers/specs/halfstreet-bible.md — content bible (canonical world)
  • docs/superpowers/specs/2026-05-08-mystery-text-adventure-design.md — engine/UI architecture
  • docs/superpowers/specs/halfstreet-followon-notes.md — pending engine work before authoring more rooms
  • docs/superpowers/specs/2026-05-09-mystery-markdown-migration-design.md — markdown content migration design
  • docs/superpowers/plans/2026-05-09-mystery-markdown-migration.md — migration plan that was executed

License

GPL-3.0-or-later. See LICENSE.

S
Description
An old-school text adventure straight out of 1985.
https://halfstreet.io
Readme GPL-3.0 3.3 MiB
Languages
TypeScript 92.3%
CSS 4.5%
Astro 3.1%