No description
  • PowerShell 73.2%
  • C++ 19%
  • TypeScript 6.1%
  • SCSS 1.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-05 03:39:45 +02:00
.epiphany Integrate divine manifestation and interception 2026-08-23 16:17:37 +02:00
.github/workflows Publish only the Kalsa reader projection 2026-08-22 18:45:55 +02:00
Kalsa Clarify lore articles: accessibility wave 12 2026-09-05 03:39:45 +02:00
scripts Integrate divine manifestation and interception 2026-08-23 16:17:37 +02:00
seed Archive seed witnesses with provenance 2026-08-22 12:28:57 +02:00
site Restore Quartz base stylesheet 2026-08-23 11:36:30 +02:00
workshop Integrate divine manifestation and interception 2026-08-23 16:17:37 +02:00
.gitattributes Build vault, memory, and Quartz operating surfaces 2026-08-22 12:36:50 +02:00
.gitignore Enclose Kalsa author material behind spoilers 2026-08-22 19:40:31 +02:00
AGENTS.md Integrate divine manifestation and interception 2026-08-23 16:17:37 +02:00
CLAUDE.md Wire AGENTS.md into Claude Code memory 2026-09-03 22:23:03 +02:00
LICENSE Build vault, memory, and Quartz operating surfaces 2026-08-22 12:36:50 +02:00
README.md Reframe Kalsa through inhabitant scholarship 2026-08-22 20:13:43 +02:00

Kalsa

Kalsa is a high-fantasy setting for Ghostlight Dungeon: gods, prophets, shamans, old miracles, sacred machinery, fallen cities, and peoples trying to live among explanations that do not agree.

This repository is the complete open author vault. It contains setting-level and dungeon spoilers in plain text. They are not secret, but they are not the intended first encounter either. The public reader surface is deliberately smaller so that people can choose when to inspect the machine.

Open Kalsa/—not the repository root—as the Obsidian vault. Its file explorer shows the reader section and one explicitly named spoiler section.

Start here

Authority map

  • Kalsa/Public/: inhabitant-facing common knowledge, attributed scholarship, and situated sources; the only Quartz content root
  • Kalsa/Spoilers/: complete open author canon and GM material; deliberately entered repository/Obsidian section
  • Kalsa/index.md: navigation only; owns no setting claims
  • Kalsa/.obsidian/: stable configuration for the canonical vault; session and cache state remain local and ignored
  • seed/original/: immutable source witnesses
  • seed/manifest.md: source hashes and witness map
  • workshop/: critique, proposals, contradictions, and repair evidence; never automatic canon
  • .epiphany/: durable agent judgment and continuity; never setting truth
  • site/: Kalsa-specific Quartz projection
  • scripts/: build and verification tools
  • quartz-site/public/: generated output, ignored by Git

Obsidian is the authoring interface. Quartz is the reader projection. Neither owns lore. Public prose lets players explore what Kalsan cultures, schools, offices, and witnesses understand and dispute; it is not a shortened author encyclopedia. Public prose does not overrule its canonical subject owner, and author truth does not enter a character's knowledge merely because both exist in one open repository.

Local site

The shared engine is the sibling GameCult-Quartz repository. Install that engine's dependencies once, then run:

.\scripts\quartz\quartz.ps1 build

For local development:

.\scripts\quartz\quartz.ps1 dev

Set GAMECULT_QUARTZ_ROOT when the shared engine is not checked out beside this repository. The launcher stages the engine under .quartz-build/engine and writes the static site to quartz-site/public.

The intended custom domain is kalsa.gamecult.org. DNS and the GitHub Pages domain binding are an external deployment step; repository configuration does not pretend that step has already happened.

Deepening standard

The target is causal density comparable to AetheriaLore, not a matching heap of nouns. A mature institution exposes its origin, authority, material base, recruitment and succession, ordinary procedure, beneficiaries and costs, dependencies, internal contradiction, organized resistance, failure modes, and consequences for play. Each repair wave is modeled, challenged by an unfamiliar reader, grounded against named sources, changed in a bounded diff, and verified before its ledger entry closes.