Files
tool-mock/docs/impl/plans/INITIAL.md
T
mikkeli d4bd72ab83 Adopt designed front matter: typed, with staleness on plans
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
2026-09-04 14:14:19 +09:00

1.6 KiB

type, status, updated
type status updated
plan active 2026-09-04

Initial plan

What actually needs building

Need Answer Ours?
A CAN bus that isn't a car vcan — kernel module, no bitrate to configure No
Replay real captures canplayer, with frame mapping so a log recorded on can1 plays onto vcan0 No
Traffic before any capture exists ICSim — simulated cluster with speed, doors, indicators No
GNSS fix GPX or synthetic track → yukart/gnss/fix Yes, small
Local broker a mosquitto config for the workstation Trivial
App boundary peer only if the full stack proves too heavy for Flutter iteration Deferred

Two of the three fixtures are configuration, not code.

Why ICSim matters more than it looks

Phase 2 is the hard part of this project: correlating observed frames against a written event log to work out what the Z27AG is saying. ICSim is built for exactly that exercise — a simulated cluster with controllable speed, doors and indicators, and four noise levels where level 0 is clean packets and level 3 randomises arbitration IDs and byte positions.

So the whole decode workflow can be practised, and the decoder written and tested, before a single real capture exists. That is worth doing while the PCBs are unassembled.

Order

  1. vcan bring-up script — everything else needs a bus.
  2. ICSim, vendored or documented, driving vcan0.
  3. GNSS fixture publishing yukart/gnss/fix.
  4. Local mosquitto config, and a single entry point that brings the whole fake car up.
  5. canplayer wrappers — only useful once Phase 1 has produced real captures.