Files
interactive-story/planning/archive/phase0/PHASE-0B-BASELINE.md
JesseMarkowitzandClaude Opus 5 d27ee34901 Docs: consolidate active planning and archive historical material
The planning package had grown to where a new agent could not tell what was
authoritative. Phase 0 execution prompts sat beside the specification; four
completed milestone reports sat beside the current one; and upstream AI-DnD's
own `plan/` build log and `docs/` project site still described a hosted,
scripted, multi-user product with accounts — every screenshot in it showed a
Scripts tab and a Sign up button, none of which has existed since M2.

`planning/archive/` now holds the history and says so in its own README:
`phase0/` for the research that chose AI-DnD, `milestone-reports/` for M1 and
M2, `decisions/` for ADR 008, the Phase-0-before-build gate Phase 0 satisfied.
`planning/reports/` holds only the current milestone's report, because that is
the one M4 planning has to read; it moves to the archive when M4's replaces it.

Deleted rather than archived: the Phase 0B execution prompts and the
handoff/status/summary documents, the Phase 0A discovery and triage reports,
upstream's `plan/` and `docs/` trees, and `frontend/README.md`, which was Vite's
template boilerplate. All of it is in Git history, and the two recommendation
reports carry every conclusion the deleted research reached.

Archived documents are kept verbatim. Paths written inside them point at where
those files were when the document was written, which is the point: an evidence
record that has been quietly edited is no longer evidence.

Active documentation is corrected where it pointed at the removed trees or
described removed capability as present. `DEVELOPMENT.md`'s "things M1 did not
touch" list had gone stale at M2 and claimed QuickJS scripting was still tested;
its test count was 604 against an actual 638. `README.md` loses the upstream CI
badge, which reported upstream's pipeline rather than this fork's, and a
reference to `backend/app/worldstate/engine.py`, a file that does not exist.
`planning/README.md` is rewritten as the documentation index.

New: `planning/PROJECT-SOURCES.md` and `planning/project-sources.txt`, the
manifest of what belongs in the ChatGPT project's Sources.

Source comments referring to the deleted trees are reworded; no behaviour
changes. 638 backend tests pass, frontend lints and builds, and a reference scan
over all 48 tracked Markdown files reports no unresolved path in active
documentation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NCbwH7yLGKsj1rhXXzKSCu
2026-09-03 14:33:07 -04:00

2.7 KiB

Phase 0B — Baseline Results

Date: 2026-09-01. Host: Linux, 4 cores, 15 GB RAM, no GPU, Python 3.12.3, Node 22.23.1. Inference: Ollama in Docker (ollama/ollama:latest) on 127.0.0.1:11434, models qwen2.5:0.5b, qwen2.5:3b-instruct, nomic-embed-text.

AI-DnD Open Dungeon ai-adventure
SHA d72f7c1b b0a79f96 873ea918
License MIT MIT Apache-2.0
Repo age / commits / authors created 2026-07-20, 172, 3 2026-06-12, 45, 1 2026-07-20, 20, 1
Code size ~30.7k LOC ~9.1k LOC ~4.5k LOC
Stack FastAPI + SQLAlchemy + React/Vite Next.js 16 + React 19 Python stdlib + pydantic, CLI
Storage SQLite (Postgres option via AIDND_DATABASE_URL) SQLite (better-sqlite3) SQLite + FTS5
Install pip install -r requirements*.txt, npm install — clean npm install — clean, 7 advisories (6 high) pip install -r requirements.txt — clean
Dependencies 41 pip + 39 npm 335 npm 6 pip (1 direct: pydantic)
Tests 632 passed / 236s none — no script, no framework 76 passed / 1.9s
Ports 8000 (prod/docker), 5173 + 8000 (dev) 3000 (app), 7869 (FLUX worker), 8188 (ComfyUI) none (CLI)
Model assumption any OpenAI-compatible; defaults to http://localhost:11434/v1 Ollama native API, or OpenAI-compatible "custom" OpenAI-compatible; base_url in world.toml
Docker build docker build succeeds (3-stage, builds SPA) not attempted (npm path used) n/a
Runtime failures none once running; offline blocker, see offline report none typed-event validation fails on a weak model (by design)
Cloud/hosted surface render.yaml, multi-user auth, demo key, analytics, Postgres, OpenRouter default OpenRouter preset, Next telemetry on by default, donation links none

Notes

  • AI-DnD ran its whole suite green on the first attempt with no fixes. Its default settings already point at Ollama; POST /api/settings/test returned {"ok":true,"models":["qwen2.5:0.5b"]} with no configuration beyond selecting a model name.
  • Open Dungeon has lint and several Windows/image smoke scripts, but no unit or integration tests of any kind. Its local provider only offers five hard-coded Gemma 4 QAT builds (src/lib/text-models.ts), so a non-Gemma local model must go through the "custom" OpenAI-compatible provider; that is how it was driven here.
  • ai-adventure is the only candidate whose full dependency closure is one third-party package. python -m local_adventure doctor is a genuine environment self-check (Python version, writable runtime dir, SQLite version, FTS5 availability, schema version, world validity, endpoint reachability, model visibility).