Replaces `type: default` — one value across every document, read by nothing,
so it discriminated nothing. Types are now reference, guidelines, plan and
report, applied to every markdown file with no exceptions for the hub.
Plans carry status and updated, reports carry date. REPOS.md already noted
that plans go stale and reports do not, but nothing made that visible: a plan
from months ago looked identical to one written today.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
No template repo: fork-at-create cannot reach existing repos, and the
scaffolding is three markdown files. Records what every component repo carries
instead, and the frontmatter rule inferred from orin-nano-env-setup — living
documents carry it, historical reports do not, the hub carries none.
ORIN-RUNTIME.md had frontmatter no other hub document uses. Removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
Utterances cross as chunks with an explicit terminator, so whole-utterance is
a stream of one chunk and a streaming TTS needs no protocol change. Records
what must not be built — a single-body download-then-play player — since that
forecloses streaming silently.
Also notes the transport is fully exercisable with espeak-ng or a canned WAV,
so audio transport need not wait on GPT-SoVITS.
The provider-behind-an-interface shape has now been picked three times
independently, so it is named as the project idiom rather than re-derived.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
The earlier decision assumed the Orin would be the media source. It is not —
the tablet is the music player and that role is staying put, so it holds the
aux cable regardless. Giving the Orin its own aux line would have added a
second permanent cable rather than freeing the display unit.
TTS therefore crosses the boundary as discrete utterances over the reliable
channel rather than a real-time stream, and ducking moves to Android audio
focus, which handles cross-application ducking natively.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
arm64 is no longer a risk: verified end to end on mikkeli-orin-nano-2
(L4T R36.4.7). The official image publishes linux/arm64, runs natively, and
the full pipeline works including a served route.
Corrects the Japan guidance. Advising a regional extract was wrong for the
admin build: driving side is a country-level property, and a Shikoku extract
produces no country row and drive_on_right=1, silently giving right-hand
traffic routing. Admins must come from the full extract; routing tiles may
still come from a region.
Decision 14 closed: recordings bounded with rotation, enforced by the writer.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ
Navigation: self-hosted MapLibre + Valhalla + PMTiles, offline-first, with
Japan specifics (left-hand traffic via valhalla_build_admins, data volume,
CJK labels). Map matching pulled forward as Phase 2 ground truth.
Orin runtime: new document covering the 8 GB shared-memory budget,
capture-first startup tiers, failure isolation, storage and the audio graph.
Data flow: direction belongs to topics inside the Orin; the display boundary
is two simplex channels rather than one duplex socket; cloud links are
outbound-initiated only; services mock themselves rather than having separate
stub implementations.
Naming: repositories are <group>-<thing> with no project prefix, so lexical
order matches semantic grouping. Indexes the five new repos.
Decisions 8-19 recorded; 14 (recording retention) left open.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013kj58Jugkic783b8ZrtTVZ