A plaintext creative workflow built on YAML files, a brief-decision loop, and a small set of inspection tools. The core idea: describe a project as data — its grammar, state model, instruments, and actions — before writing any implementation code.

Architecture

Four layers working together:

The Method — a loop that every project follows: brief, proposal, smoke, experiment, metrics, decision, archive. No work without a brief. No next step without a decision. The loop is the same regardless of domain; what changes is the content at each stage.

The Templates — structural skeletons for games (file-first: state, instruments, actions, observations), visual systems (tokens, components, render), research experiments (hypothesis, method, run, metrics), and software tools (spec, implementation, tests).

The Inspector — a Python CLI that reads YAML/Markdown project files and produces indexes, validation reports, relationship graphs (exported as Mermaid, DOT, D2, Excalidraw), and a terminal UI. It treats project YAML as a schema: modules declare what state they read and write, screens map to instruments, flows define multi-step sequences. The inspector catches structural errors — dangling references, missing fields, orphan entities — before any runtime code exists.

The Governance Layer — a registry tracking every repository’s type, migration status, visibility, and publication posture. Repos move through a lifecycle (audit, docs-only, metadata-standardized, site-integrated) one at a time, with validation at each step.

The Gate System (Games)

Six gates prevent premature engine work:

Gate Name Passed when
A Grammar Game described as state + instruments + actions
B Loop One loop completable in text
C Validation Loop creates meaningful decisions
D Screens Screens correspond to instruments
E Flows Multi-step sequences defined
F Engine Engine reproduces the approved loop

No runtime, UI, or visual work before Gate F.

Design Principles

  1. Plain files first — Markdown, YAML, shell. No databases, no web apps, no frameworks.
  2. Small tools over big systems — 20-line scripts over frameworks. Manual review over automated enforcement.
  3. Concepts before engines — Define the grammar before choosing the technology.
  4. Evidence before acceptance — A phase is complete when files exist and a decision references them.
  5. Visual languages as plugins — Optional constraint systems (grid drawing, pixel, terminal) that shape output by limiting choices.
  6. One legal next move — The project state file always shows the single next authorized action.
  7. Archive instead of erase — Failed experiments are evidence. Abandoned directions are decisions.

Influence

Heavily influenced by Hundred Rabbits — small tools, plain files, durable formats, explicit constraints. The insight: constraints are not limitations on creativity, they are the mechanism by which creativity becomes productive.

Status

In active use across multiple game, research, and software projects. The reference implementation — a radio telescope observatory game — completed nine phases from grammar through visual artifact mapping without choosing an engine.

Read the full writeup