rproj 0.15.0

Guided bootstrap-to-game-dev CLI for Roblox: takes a fresh Windows PC to a working Roblox/Luau setup, then scaffolds projects on it
# rproj Working Agreement

Read this file at the start of every task. These are persistent maintainer rules,
not just context from an earlier chat.

## Ownership And Releases

- The repository owner alone runs `cargo publish --locked`. Never run Cargo
  publication for them. Treat "publish" as a request to prepare and give the
  command, unless the owner explicitly changes this ownership rule.
- The agent owns version preparation, Cargo.toml/Cargo.lock alignment, current
  documentation, branches, commits, pushes, PRs, CodeRabbit review, merging,
  post-merge CI verification, and deletion of fully merged local/remote branches.
- Use `codex/` branches and reviewed PRs; do not push runtime changes directly
  to main. Verify checks on the actual reviewed head and then on merged main.
- For meaningful runtime, CI, or release changes, run CodeRabbit locally before
  opening the PR: use `cr review --agent --base main` for the final branch and
  `cr review --agent --uncommitted` while iterating. Do not spend a review on a
  documentation-only correction; inspect that small diff directly instead.
- Do not create or push a release tag before crates.io confirms publication.
  Verify the published archive's Git identity, create an annotated tag at that
  commit, and create a matching GitHub alpha prerelease. Never move a shipped tag.
- Read `docs/releasing.md` before release work. No version bump or publication
  is required for each test/docs/refactor PR. Unreleased runtime changes need a
  new version when their release candidate is prepared.

## Scope And Continuity

- Read `docs/plan.md` and `docs/release-audit.md` for current priorities and
  evidence. Consult architecture/UX sections relevant to the change, not every
  document in full. Verify Git/PR state rather than trusting an old chat summary.
- Ratatui is the UI direction. Reuse existing project graph, catalogs, and
  scaffolding. Keep direct commands and external Rojo, Selene, StyLua, luau-lsp,
  Rokit, Wally, Git, Lute, and test-runner boundaries.
- Tauri, embedded lint/format/parser migrations, and model-to-template import are
  dropped. The owner permanently retired the model-import experiment on September
  9, 2026; its branch was deleted. Do not restore or plan it as future work.
- Keep comments for non-obvious invariants. Put broader rationale in docs;
  do not add comments just to satisfy a docstring-percentage advisory.
- Missing prerequisites and ignored tests are not passes. Do not provision
  machine-wide applications or replace user data merely to complete an audit.
- When `.codegraph/` exists, use CodeGraph before searching unfamiliar code.
  Fall back to focused source reads if its results are missing or stale.

## Communication

- Lead with the next action or current state. Keep explanations concise,
  practical, and accessible; use at most five numbered steps when needed.
- "What's next?" means rproj development, not instructions to develop a Roblox
  game. Own authorized work end to end instead of asking the owner to repeat it.
- Recommend model/reasoning/mode changes only when the next task warrants them.
  Do not enable goals or create separate tasks without an explicit request.
- Before recommending a new chat, update the durable state and provide a short
  handoff naming these rules, current branch/release, and one next task. A new
  chat is not a usage reset; keep tool output and repeated reads bounded.