mikkeli 34140cc666
/ crosscheck (push) Successful in 1s
Rust consumers (L4T) / Clippy, test, build, glibc for every service that compiles contracts in (push) Failing after 6s
Decoded Z27AG signals: layouts in signals.json can blocks, the only source
engine_rpm moves to source z27ag (no OBD-II on this car's CAN). Ten more:
accelerator, brake, handbrake, indicators, side lights, dipped beam, doors,
A/C compressor. Guideline 6: no service writes a CAN ID of its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
2026-10-13 21:31:51 +09:00

type
type
reference

Contracts

Part of Project Yukart, making an old 2008 Mitsubishi Z27AG a bit smarter with modern technologies.
This file serves as the minimalist portal to other docs

What this repo is about

The topic namespace, payload schemas and signal registry that every other repo depends on. Rust services, Python tooling and the Dart client all read the same definitions from here.

File Holds
schema/topics.json Topic namespace: payload kind, retention, rate, publisher
schema/envelope.json JSON Schema for the decoded-signal envelope
schema/signals.json Signal registry — the single source for name, unit, type and range, and for where each decoded Z27AG signal sits in its CAN frame (can block)
docs/BOUNDARY.md Display boundary protocol: what crosses between svc-gw and the app
checklists/ Recording checklists as data; the app bundles exact copies (its Captures page)

Decoded Z27AG signals (source z27ag) carry their frame layout in signals.json itself, so name, unit and bits cannot drift apart. A DBC for tools like SavvyCAN or cantools, if one is wanted, is generated from it, never edited by hand. Findings behind each layout: docs/impl/reports/.

  • For implementation practice guidelines, refer to the guidelines;
  • For implementation plans and history, refer to them;
S
Description
Topic namespace, payload schemas and signal registry
Readme 146 KiB