Files
trail-mate/docs/specification/TARGET_MANIFEST_SPEC.md
T
vicliuandGitHub bf7068b02b 0.1.26-alpha release
* refactor: render chat rows from presentation state

* Fix Meshtastic channel sync and add MeshCore CN preset

* Add granular chat notification settings

* Add SD settings backup and restore

* Prepare 0.1.26-alpha release

---------

Co-authored-by: vicliu624 <vicliu@outlook.com>
2026-05-19 16:04:42 +08:00

2.7 KiB

Target Manifest Specification

Target manifests describe product composition. They are review artifacts and migration guides in Phase 1; they are not runtime configuration files.

File Location

Target manifests live under:

docs/targets/*.capabilities.yaml

The template lives at:

docs/targets/TARGET_MANIFEST_TEMPLATE.yaml

Required Top-Level Fields

target
status
product
platform
board
runtime
ui
execution
authorities
capabilities
capability_bindings
protocols
storage
race_policy
build

Semantics

target is the product target id, such as esp-t-lora-pager-lvgl.

status is draft, reviewed, or active. Phase 1 manifests are drafts.

product describes product family, form factor, and interaction class.

platform describes the selected platform kind, SDK, memory tier, filesystem, and allocation policy.

board identifies the board variant and board package. It may summarize board facts for review, but detailed hardware truth belongs in the board manifest.

runtime declares scheduler, owner tasks/threads, ISR policy, and lock policy.

ui declares shell, renderer, presentation model host, layout profile, and input model.

execution declares where major cores execute.

authorities declares where mutable truth lives.

capabilities declares capability state, endpoint host, stack, role, and link mode.

capability_bindings connects target capabilities to board providers, platform drivers, runtime owners, and protocol consumers.

protocols declares enabled protocol cores and where protocol semantics are implemented.

storage declares backend and authority-backed stores.

race_policy declares event, command, snapshot, ISR, storage, and UI-thread rules.

build points to the current build entrypoint and intended modules for this target. It must reflect the current repo state rather than inventing a future layout.

Review Requirements

Every target manifest must answer:

Which platform is used?
Which board is used?
Which UI shell is used?
Where does mesh core run?
Where does phone core run?
Where does GPS core run?
Where is identity authority?
Where is peer key authority?
Where are location/time/config authorities?
Is LoRa local_radio, packet_proxy, command_proxy, or none?
Is UI LVGL, ASCII, GTK, CLI, or headless?
What is the concurrency policy?

Not Runtime Configuration

Phase 1 target manifests are deliberately not loaded by firmware or Linux processes. Later phases may generate constants or build metadata from them only after a separate design decision.

Change Rule

If a PR changes product composition, capability binding, authority ownership, runtime ownership, or UI shell choice, update the relevant target manifest in the same PR.