docs/ — map
The user guide is guide/ — install, and one door
each for analyzing, transpiling and compiling a Rails app. Everything
below is for people working on roundhouse itself.
Use the current code and executed checks for current behavior;
RELEASES.md records dated release snapshots. Architecture
references explain design, while working plans are point-in-time proposals.
Working on Roundhouse
development/— setup and local workflow; test selection, debugging, and compiler changes.ci/— understand checks, request full/fresh validation, and distinguish validation from publication. Implementation details stay in the workflows, scripts, and their tests.../AGENTS.md— invariants and agent task navigation.
Compiler inputs — data/
ruby-and-erb.md— Ruby + template ingest: Prism, the ERB/HAML compile-to-Ruby seam, surface preservation, strict vs survey mode.schema-routes-seeds.md— the declarative inputs: schema (and migration fallback), routes, seeds, fixtures, importmap, RBS sidecars.catalog.md— the method catalog: one IDL-shaped table for the Active Record surface, plus the gem catalog.adapter.md— theDatabaseAdaptertrait: effect classification and async coloring per database backend.
Pipeline internals — pipeline/
analyze.md— type + effect inference.lower.md— target-neutral lowerings and the post-analyze pass pipeline.specialization.md— every target as a specializer of Rails: the shared decision procedure, and the residue policies (forbidden, runs on Rails, handed to a person) that tell the strict targets,futamuraandrodaapart; andfutamura's whole-route replacement, which serves the routes the analysis clears from the lowered app in aRuby::Boxinside Rails.fractal.md—fractal emitcompiles the files named with--fileand writes only changed files.fractal applyoverwrites those files in the base app. Rails runs the result with unchanged line numbers. The build checks each rewrite's assumptions.emit.md— per-target emitters and the shared emit machinery.runtime.md— the two-layer runtime (per-target primitives + transpiled framework Ruby), including the semantic-divergence ledger.verification.md— how we know the output is correct: evidence layers and their limits, not CI job topology.bytecode.md— experimental bytecode target; parked, test-only.
Reference
writebook.md— pinned external-corpus inventory and its limits.ractor-ledger.md— what stops campfire's CRuby emit from serving on worker Ractors, by owner (dated snapshot).
Working plans
Point-in-time design documents; each records its own status at the
top. When one completes, it moves to archive/.
python-overlay-plan.mdrelation-convergence-plan.mdrelation-type-plan.mdmaintainability-refactor-plan-2.mdwith-adapter-split-plan.mdlobsters-story-pages-plan.mdroda-sequel-plan.md
archive/
Completed or superseded plans, kept as historical design records (browser demo, the rust/kotlin/swift/csharp emitter migrations, the jbuilder lowerer, maintainability refactor phase 1, and the rust-migration spike crates). Accurate about the decisions they made; not maintained against the current tree.