tirtc-device-builder 0.11.3 → 0.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tirtc-device-builder",
3
- "version": "0.11.3",
4
- "description": "Codex workflows for building and validating TiRTC device firmware across supported chip platforms.",
3
+ "version": "0.11.5",
4
+ "description": "Codex workflows for building, validating, and documenting TiRTC device firmware across supported chip platforms.",
5
5
  "author": {
6
6
  "name": "TangeAI",
7
7
  "url": "https://github.com/tangeai"
@@ -34,7 +34,8 @@
34
34
  "Analyze my ESP32 board and generate a TiRTC project.",
35
35
  "Probe my BK7258 or BK7259 board and assess XiaoTai capabilities.",
36
36
  "Check ESP-IDF and build my TiRTC ESP32 firmware.",
37
- "Assess whether this board can support H5 live view and AI intercom."
37
+ "Assess whether this board can support H5 live view and AI intercom.",
38
+ "Create a user-facing documentation system for my multi-board TiRTC project."
38
39
  ]
39
40
  }
40
41
  }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  This project follows Semantic Versioning.
4
4
 
5
+ ## 0.11.5
6
+
7
+ - Add the `tirtc-project-docs` Skill for designing and reviewing public
8
+ documentation in multi-board TiRTC and XiaoTai repositories.
9
+ - Define stable roles for quick-start, architecture, contribution, board and
10
+ media documents, with evidence grading and approval-first bilingual output.
11
+ - Add `install docs` support and package tests for installing the documentation
12
+ Skill across supported Agent clients.
13
+
14
+ ## 0.11.4
15
+
16
+ - Add artifact-bound BK7258 H5, AI and WeChat VoIP media lessons: directional
17
+ capability reporting, 10/11 versus 14/15 STREAM routing, VoIP stream 0,
18
+ AI stream 1 with 16 kHz Opus, negative-on-failure SDK return semantics and
19
+ mode-specific uplink readiness gates.
20
+ - Require PCM-domain AEC from the real post-volume DAC reference for all
21
+ speakerphone full-duplex modes, plus routing/AEC diagnostics, double-talk HIL,
22
+ reference FIFO health and measured codec-task stack headroom.
23
+ - Update the validated BK7258 identity to the TiRTC-Nano 2.5.0 artifact and add
24
+ package validation that prevents these media invariants disappearing.
25
+
5
26
  ## 0.11.3
6
27
 
7
28
  - Add a complete Beken onboarding path to the public README: Skill installation,
package/README.md CHANGED
@@ -2,12 +2,13 @@
2
2
 
3
3
  TiRTC Device Builder 用于把 ESP32-S3/ESP32-P4 和 BK7258/BK7259 开发板接入 TiRTC。输入可以只有开发板型号,也可以包含原理图、BSP、引脚表和外设示例。安装后的 Agent Skill 会先检查环境、整理有依据的硬件事实,再生成或移植独立工程并完成板级适配和编译。烧录和实机验证只有在开发者明确给出目标串口并授权后才会执行。
4
4
 
5
- 当前仓库提供两个平台 Skill:
5
+ 当前仓库提供两个平台 Skill 和一个项目文档 Skill:
6
6
 
7
7
  | Skill | 平台 | 主要用途 |
8
8
  |---|---|---|
9
9
  | `tirtc-esp32-builder` | ESP32-S3 / ESP32-P4、ESP-IDF 5.5.x | 板型识别、Hardware IR、工程生成/移植、H5/AI/设备互呼/微信 VoIP、AEC 门禁、编译烧录和分层验收 |
10
10
  | `tirtc-beken-builder` | BK7258 / BK7259、Beken Armino | 运行时硬件探测、显示/触摸/音频/内存能力判定、小钛业务移植与实机验收 |
11
+ | `tirtc-project-docs` | TiRTC / 小钛多开发板项目 | 快速体验、架构、贡献、板卡、构建烧录和音视频参数文档;中文版确认后同步英文版 |
11
12
 
12
13
  BK7258 多媒体项目固定从 Beken 官方 Gitee `bk_avdk_smp` 的
13
14
  `release/v3.1.1.8` tag、commit
@@ -108,6 +109,19 @@ npx --yes tirtc-device-builder@latest doctor beken \
108
109
  其中 BK7258 的公开基准应是 `release/v3.1.1.8`、commit
109
110
  `1cfd56af09a3cb6470f35f1e0c604035ed1b6ee7`。
110
111
 
112
+ #### 项目文档
113
+
114
+ 需要建立、检查或维护 TiRTC/小钛项目文档时,安装
115
+ `tirtc-project-docs`:
116
+
117
+ ```bash
118
+ npx --yes tirtc-device-builder@latest install docs
119
+ ```
120
+
121
+ 该 Skill 会先按仓库事实整理中文版,检查根文档导航、板卡目录、构建烧录说明、
122
+ 媒体参数和证据等级。只有中文版确认通过后,才同步生成英文版。它不会把日期型排障
123
+ 记录或迁移历史混入对外使用手册。
124
+
111
125
  ### 3. 重新打开 Agent 客户端
112
126
 
113
127
  Skill 通常在 Agent 会话启动时被发现。安装完成后,关闭当前会话,再打开一个新会话。
@@ -48,6 +48,14 @@ const PLATFORMS = new Map([
48
48
  summary: "BK7258 / BK7259 / Beken Armino",
49
49
  },
50
50
  ],
51
+ [
52
+ "docs",
53
+ {
54
+ aliases: new Set(["docs", "documentation", "tirtc-project-docs"]),
55
+ skill: "tirtc-project-docs",
56
+ summary: "TiRTC / XiaoTai project documentation",
57
+ },
58
+ ],
51
59
  ]);
52
60
 
53
61
  function printHelp() {
@@ -56,19 +64,21 @@ function printHelp() {
56
64
  Usage:
57
65
  tirtc-device-builder list
58
66
  tirtc-device-builder clients
59
- tirtc-device-builder install <platform> [--client <name>] [--skills-dir <path>] [--force]
67
+ tirtc-device-builder install <target> [--client <name>] [--skills-dir <path>] [--force]
60
68
  tirtc-device-builder setup <platform> [setup options]
61
69
  tirtc-device-builder doctor <platform> [doctor options]
62
70
  tirtc-device-builder boards <platform> <list|validate|match|init-identity|candidate> [options]
63
71
  tirtc-device-builder --version
64
72
 
65
- Platforms:
73
+ Install targets:
66
74
  esp32 ESP32-S3 / ESP-IDF 5.5.x
67
75
  beken BK7258 / BK7259 / Beken Armino
76
+ docs TiRTC / XiaoTai project documentation
68
77
 
69
78
  Examples:
70
79
  npx tirtc-device-builder install esp32
71
80
  npx tirtc-device-builder install beken
81
+ npx tirtc-device-builder install docs
72
82
  npx tirtc-device-builder install esp32 --client qwen-code
73
83
  npx tirtc-device-builder setup esp32
74
84
  npx tirtc-device-builder setup esp32 --install --client gemini
@@ -274,9 +284,15 @@ function main(args) {
274
284
  }
275
285
 
276
286
  if (command === "doctor") {
287
+ if (platform.name === "docs") {
288
+ return fail("doctor is not available for target: docs");
289
+ }
277
290
  return runDoctor(platform, rest);
278
291
  }
279
292
  if (command === "boards") {
293
+ if (platform.name === "docs") {
294
+ return fail("boards is not available for target: docs");
295
+ }
280
296
  return runBoardRegistry(platform, rest);
281
297
  }
282
298
  if (command === "setup") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tirtc-device-builder",
3
- "version": "0.11.3",
3
+ "version": "0.11.5",
4
4
  "description": "Install and run TiRTC device-development Agent Skills across popular coding clients.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -1 +1 @@
1
- 0.11.3
1
+ 0.11.5
@@ -1,7 +1,7 @@
1
1
  # LCKFB BK7258 XiaoTai lessons
2
2
 
3
3
  Use this case study for BK7258 XiaoTai/TiRTC ports and reviews. It distils the
4
- failures fixed in `lckfb-bk7258-xiaotai` through source commit `8a156ff`. These
4
+ failures fixed in `lckfb-bk7258-xiaotai` through source commit `05d3180`. These
5
5
  are gates, not a generic board profile: retain the decisions, but use the exact
6
6
  numbers only when the target matches the identity below.
7
7
 
@@ -14,9 +14,11 @@ The reproducible public SDK baseline is:
14
14
  `release/v3.1.1.8`, commit
15
15
  `1cfd56af09a3cb6470f35f1e0c604035ed1b6ee7`;
16
16
  - GCC Arm None EABI 10.3.1, Cortex-M33, hard-float;
17
- - TiRTC-Nano 2.3.0 `mini`, BK7258 hard-float archive;
18
- - TiRTC build metadata reporting Mbed TLS 2.25.0, linked with the project's
19
- BK7258 Mbed TLS 2.28.5 compatibility archive;
17
+ - TiRTC-Nano 2.5.0 `mini`, BK7258 hard-float archive, SHA-256
18
+ `47e26827ca2419084163e3656dca4d6e508e433381784e9c03f232d3dbaa4171`;
19
+ - TiRTC SSL and DTLS disabled for the validated deployment, with remaining
20
+ crypto references resolved by the SDK PSA Mbed TLS 3.5.2 component and no
21
+ application-vendored compatibility archive;
20
22
  - AP + CP + bootloader package and 16 MiB PSRAM.
21
23
 
22
24
  The locally delivered folder named `bk_avdk_smp_v3.1.1.8_20260605` contains a
@@ -25,11 +27,13 @@ project configuration. It is useful only as implementation and fault-history
25
27
  evidence. Do not identify it as the public tag, use it for SDK checksums, or make
26
28
  it the default Kit source.
27
29
 
28
- Hash the TiRTC and compatibility archives and record the SDK commit, compiler,
30
+ Hash every TiRTC or compatibility archive actually linked and record the SDK commit, compiler,
29
31
  float ABI, libc/RTOS and partition maps. AP-only or CP-only output is diagnostic;
30
32
  the deliverable is the combined package. A different value makes a new artifact
31
- that must pass link, DTLS/WHIP and hardware validation again. Disable the SMP
32
- SDK's ABI-incompatible PSA Mbed TLS 3 path when using this TiRTC package.
33
+ that must pass link, signaling/WHIP and hardware validation again. Do not infer
34
+ a TLS recipe from the version name: the older 2.3.0 artifact required a separate
35
+ compatibility choice, while this validated 2.5.0 artifact uses the SDK PSA path
36
+ with TiRTC SSL/DTLS disabled.
33
37
  Treat the AP and CP CMake caches as part of the SDK identity: both the cached
34
38
  toolchain path and `beken-armino_SOURCE_DIR` must point inside the selected
35
39
  official checkout. Reject or clean a cache created by the local modified SDK;
@@ -91,8 +95,8 @@ hardware:
91
95
  `webclient_post(..., NULL, 0)` also requires explicit response handling;
92
96
  - configure the send buffer before `TiRtcInit`, initialize/start one TiRTC
93
97
  process, and pass SDK option string lengths with the exact convention used by
94
- the matching headers/reference. For TiRTC 2.3.0 here, string lengths exclude
95
- the trailing NUL;
98
+ the matching headers/reference; lock the convention with the selected archive
99
+ instead of carrying a value from an older delivery;
96
100
  - treat a positive `TIRTC_OPT_TGTRP_POLL_TIMEOUT` return as the applied timeout,
97
101
  not a failure. A false retry loop repeatedly initialized/uninitialized SDK
98
102
  task state;
@@ -110,10 +114,51 @@ it. Do not generalize this case study into a universal plain-transport rule.
110
114
 
111
115
  ## Media and capability gate
112
116
 
113
- The demonstrated audio contract is 8 kHz, 16-bit mono PCM with 20 ms TiRTC
114
- G.711 A-law packets; the board path may capture/play in larger chunks. SDK
115
- callbacks enqueue bounded copies and return. A camera-start failure degrades
116
- video while leaving an otherwise valid audio session active.
117
+ Build an explicit matrix per product mode. The 2026-09-29 validated BK7258
118
+ contract is:
119
+
120
+ | Mode | Device uplink | Device downlink/subscription | Codec | Uplink gate |
121
+ |---|---|---|---|---|
122
+ | H5 STREAM | audio 10, video 11 | audio 14, video 15 | G.711 A-law, 8 kHz mono | local uplink subscription state |
123
+ | AI | audio 1 | audio 1 | Opus, 16 kHz mono, 20 ms/320 samples | accepted `start_session` |
124
+ | WeChat VoIP | audio 0, video 1 | audio 0, video 1 | G.711 A-law, 8 kHz mono; video not advertised here | protocol call-active state |
125
+
126
+ These stream IDs are a product/platform contract, not universal TiRTC defaults.
127
+ Verify them against the live profile API and official protocol before reuse.
128
+ Report the complete directional snapshot with `POST /v1/device/profile` before
129
+ sessions and after authenticated reconnect. Sending the locally advertised
130
+ stream does not imply subscribing to that same number: H5 publishes audio 10
131
+ but subscribes to browser talkback audio 14. VoIP publishes and receives audio
132
+ 0 and must not wait for an optional H5-style subscription callback once the
133
+ business protocol has entered call-active state.
134
+
135
+ Treat TiRTC media and subscription API return values as negative-on-failure
136
+ unless the pinned API explicitly documents stricter semantics. Positive returns
137
+ were valid success values in this integration; checking `rc != 0` produced
138
+ false failures and muted paths.
139
+
140
+ SDK callbacks enqueue bounded copies and return. Prewarm the Opus codec,
141
+ playback, capture and queues before AI `start_session`, but gate microphone
142
+ uplink until the matching acceptance. Retain asynchronous peer descriptors and
143
+ tokens until callbacks complete.
144
+
145
+ AEC is a PCM pipeline property, not an Opus-only feature. Enable it for every
146
+ speakerphone full-duplex mode that has a playback reference. Feed the
147
+ post-volume PCM actually written to DAC into a bounded reference FIFO and
148
+ process aligned 20 ms microphone blocks. Validate far-end-only, near-end-only
149
+ and double-talk cases; reference underruns or overruns are release evidence,
150
+ not harmless counters. On this BK7258 port Opus encode/decode UsageFaults were
151
+ eliminated only after placing measured 40 KiB task stacks in PSRAM; carry the
152
+ stack size and high-water evidence rather than the number alone.
153
+
154
+ For one-way audio or echo, add bounded diagnostic logs that correlate mode,
155
+ generation, actual/expected stream ID, packet cadence, mic/reference/output
156
+ energy, AEC residual ratio and reference FIFO under/overruns. Reject or count
157
+ unexpected streams explicitly. Do not tune AEC until routing and reference
158
+ continuity are proven.
159
+
160
+ A camera-start failure degrades video while leaving an otherwise valid audio
161
+ session active.
117
162
 
118
163
  BK7258 provides H.264 encoding but no demonstrated H.264 hardware decoder. The
119
164
  AVDK virtual H.264 decoder is NAL inspection/logging, not decoded video. The
@@ -134,12 +179,17 @@ Require a host contract test plus artifact-bound HIL. At minimum verify:
134
179
  - exact archive hashes, ABI/config/partition invariants and AP-only TiRTC
135
180
  ownership;
136
181
  - provisioning, binding, clock, signed login and one complete capability report;
137
- - first uplink/downlink audio frames and first H.264 frame;
182
+ - the exact mode matrix in the reported profile plus actual/expected stream
183
+ diagnostics; first uplink/downlink audio frames and first H.264 frame;
184
+ - H5 full duplex on 10/14, AI Opus full duplex on 1, and VoIP full duplex on 0;
185
+ - far-end-only, near-end-only and double-talk AEC evidence using the real DAC
186
+ reference, with bounded underrun/overrun counts;
138
187
  - ten AI enter/exit cycles after background polling starts, with no UsageFault,
139
188
  HardFault, reboot, leaked media owner or permanent busy state;
140
189
  - camera failure with audio preserved, two consecutive remote-view sessions,
141
190
  connect/confirmation timeouts and late-callback rejection;
142
- - minimum/largest internal heap during DTLS, camera and full-duplex overlap.
191
+ - minimum/largest internal heap and task stack high-water during signaling,
192
+ Opus/AEC, camera and full-duplex overlap.
143
193
 
144
194
  Use conventional `ERROR`, `WARN`, `INFO`, `DEBUG` levels. The checked-in
145
195
  development configuration defaults to `DEBUG` and prints complete HTTP, MQTT
@@ -1 +1 @@
1
- 0.11.3
1
+ 0.11.5
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: tirtc-project-docs
3
+ description: Design, audit, and maintain bilingual documentation systems for TiRTC or XiaoTai multi-board firmware repositories. Use for quick-start READMEs, architecture and contribution guides, board catalogs, build/flash instructions, media parameters, navigation/link checks, or Chinese-to-English synchronization; exclude code-only work and historical status logs.
4
+ ---
5
+
6
+ # TiRTC Project Documentation
7
+
8
+ Build a documentation system that lets a first-time user run the product, lets
9
+ a developer extend it, and gives an agent reliable pointers into repository
10
+ truth. Documentation describes the current product and supported workflows;
11
+ dated investigations and migration diaries belong in an ignored local history
12
+ area when the repository defines one.
13
+
14
+ ## Establish the contract
15
+
16
+ 1. Read repository guidance such as `AGENTS.md`, the existing documentation
17
+ index, glossary, documentation contract, board architecture, and build/test
18
+ entrypoints. Project rules override this Skill.
19
+ 2. Inventory existing public documents before adding files. Preserve useful
20
+ paths and repair their role when possible; do not create a parallel document
21
+ tree for the same audience.
22
+ 3. Identify the requested phase: Chinese drafting, Chinese review, English
23
+ synchronization, or audit. When the user requests Chinese approval first,
24
+ stop after the verified Chinese result. Do not create English placeholders.
25
+ 4. Map every technical claim to a source. Read
26
+ [evidence and technical claims](references/evidence.md) when the work covers
27
+ hardware, media, tools, builds, releases, or validation status.
28
+
29
+ ## Select the document layer
30
+
31
+ Read [document architecture](references/document-architecture.md) when adding,
32
+ splitting, renaming, or reorganizing documents.
33
+
34
+ - Root `README.md` is the quick-experience path: identify the board, download
35
+ the matching release artifact, flash it safely, provision it, and try the
36
+ principal product flows.
37
+ - Root `ARCHITECTURE.md` explains product capabilities, module interfaces,
38
+ runtime/media flows, repository responsibilities, and secondary-development
39
+ entrypoints for both humans and agents.
40
+ - Root `CONTRIBUTING.md` explains environment setup, tests, evidence, adding a
41
+ board or platform, and the submission workflow.
42
+ - `docs/README.md` is the complete task-oriented index.
43
+ - `docs/boards/README.md` catalogs every board; each board has one independently
44
+ usable guide under `docs/boards/<board-id>/README.md`.
45
+ - Product, development, and board details stay in their subject directories.
46
+ Root documents summarize and link instead of copying those details.
47
+
48
+ Keep a compact navigation line at the top of every public root document. Every
49
+ link must resolve from that file, and all root documents must expose the same
50
+ destinations in the same order.
51
+
52
+ ## Draft from repository truth
53
+
54
+ Write the minimum information needed at the selected layer. Prefer stable
55
+ interfaces, responsibilities, commands, and decision points over source-tree
56
+ tourism. Explain an unavoidable acronym on first use. Keep one topic per
57
+ paragraph and make commands, warnings, status, and next actions easy to scan.
58
+
59
+ Use available specialist Skills when they materially apply:
60
+
61
+ - `research` for facts that require official external sources and citations;
62
+ - `codebase-design` for module interfaces, seams, adapters, and extension paths;
63
+ - `domain-modeling` when canonical terms are missing or conflict;
64
+ - `writing-for-agents` for `AGENTS.md`, Skill instructions, and agent-facing
65
+ pointers;
66
+ - `humanizer-zh` as the final Chinese prose review after facts are stable.
67
+
68
+ Their absence must not block ordinary maintenance. Preserve the same outcomes:
69
+ primary sources, explicit interfaces, consistent terms, actionable pointers,
70
+ and natural restrained Chinese.
71
+
72
+ ## Verify before translation
73
+
74
+ Check every changed command against current scripts or `--help`, every local
75
+ link against the filesystem, every board identifier against its manifest, and
76
+ every download/flash instruction against the release artifact manifest. Run the
77
+ repository's documentation, manifest, and host-test gates. A passing structure
78
+ test does not upgrade build evidence into hardware proof.
79
+
80
+ Review the Chinese documents for facts, terminology, navigation, paragraph
81
+ shape, and duplicated sources of truth. Present the Chinese result for approval
82
+ when requested. Completion for this phase means all requested Chinese documents
83
+ and checks are complete, with English files still untouched.
84
+
85
+ ## Synchronize English after approval
86
+
87
+ Read [bilingual synchronization](references/bilingual.md) only after the
88
+ Chinese source has been approved. Translate meaning rather than sentence order,
89
+ preserve commands and identifiers exactly, rebuild relative navigation for the
90
+ English files, and rerun the same checks. Record intentional locale differences
91
+ instead of silently dropping Chinese-only instructions.
92
+
93
+ ## Report the result
94
+
95
+ List the documents created or changed, the sources used for claims, checks run,
96
+ and unresolved evidence gaps. Separate missing documentation from unsupported
97
+ features. Do not present an unverified artifact, inferred pin map, or stale test
98
+ result as a current product capability.
@@ -0,0 +1 @@
1
+ 0.11.5
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "TiRTC Project Docs"
3
+ short_description: "维护 TiRTC 多开发板项目的中英文文档与证据边界"
4
+ default_prompt: "Use $tirtc-project-docs to design or audit my TiRTC project documentation, write and verify the Chinese source first, and generate English only after Chinese approval."
@@ -0,0 +1,37 @@
1
+ # Bilingual synchronization
2
+
3
+ Use this reference only after the project owner has approved the Chinese source.
4
+
5
+ ## File policy
6
+
7
+ Keep Chinese as the source language unless the repository declares another
8
+ policy. Use stable English siblings such as `README.en.md`,
9
+ `ARCHITECTURE.en.md`, and `CONTRIBUTING.en.md`. Subject documents may use the
10
+ same suffix convention or separate language trees, but one repository should
11
+ use one convention.
12
+
13
+ Add language selectors only after both targets exist. The Chinese root
14
+ navigation points to Chinese destinations; the English navigation points to
15
+ English destinations where available and to a clearly labelled Chinese page
16
+ only when no English counterpart exists.
17
+
18
+ ## Translation rules
19
+
20
+ - Preserve commands, paths, board IDs, artifact names, checksums, log fragments,
21
+ configuration keys, and protocol constants exactly.
22
+ - Use official English vendor and product names. Do not translate identifiers.
23
+ - Translate the meaning and reader task, not Chinese word order.
24
+ - Keep warnings, evidence qualifications, limitations, and follow-up items at
25
+ the same strength as the Chinese source.
26
+ - Explain acronyms on first use in each independently readable document.
27
+ - Recheck relative links because an English sibling can have different targets.
28
+
29
+ ## Drift review
30
+
31
+ Compare section coverage rather than raw line count. Every Chinese section must
32
+ have an English counterpart or a recorded locale-specific reason. Verify tables
33
+ row by row, then rerun link, manifest, documentation, and host-test gates.
34
+
35
+ Translation is complete when the English reader can perform the same supported
36
+ task and sees the same capability and evidence status as the approved Chinese
37
+ reader.
@@ -0,0 +1,58 @@
1
+ # Document architecture
2
+
3
+ Use this reference when deciding where information belongs or when a repository
4
+ has accumulated duplicate guides.
5
+
6
+ ## Entry hierarchy
7
+
8
+ The root is a small set of durable entrypoints:
9
+
10
+ | Document | Reader question | Content boundary |
11
+ | --- | --- | --- |
12
+ | `README.md` | How do I run this now? | Board choice, release download, safe flashing, provisioning, first experience |
13
+ | `ARCHITECTURE.md` | How does it work and where do I extend it? | Product flows, module interfaces, data/lifecycle paths, repository responsibilities |
14
+ | `CONTRIBUTING.md` | How do I make and verify a change? | Environment, tests, evidence, board/platform intake, submission checks |
15
+ | `docs/README.md` | Where is the complete documentation? | Task-oriented index to product, development, board, test, and reference material |
16
+
17
+ Do not turn the root README into a complete hardware manual. It may show a
18
+ compact card or table for a small set of primary boards. Each row links to the
19
+ release artifact and the board's full guide. As the catalog grows, keep only the
20
+ primary boards in the root and link the complete catalog.
21
+
22
+ ## Detail ownership
23
+
24
+ - `docs/product/` owns current user-visible behavior, interaction, protocols,
25
+ and media contracts.
26
+ - `docs/development/` owns architecture details, toolchains, builds, tests,
27
+ porting, release mechanics, and AI-assisted development.
28
+ - `docs/boards/<board-id>/` owns model-specific specifications, dependencies,
29
+ schematics, build/flash steps, first use, verification, and limitations.
30
+ - `boards/<vendor>/<board>/` owns build-participating board facts and a short
31
+ pointer README when the repository uses this layout.
32
+ - `references/` indexes external SDKs, schematics, examples, and datasheets that
33
+ are inputs rather than maintained product documentation.
34
+ - Local ignored history owns dated investigations and superseded status
35
+ snapshots. Public documents state only current behavior and current limits.
36
+
37
+ ## Root navigation
38
+
39
+ Place navigation immediately after the title or language selector. Keep it
40
+ short and identical across public root documents. A typical Chinese set is:
41
+
42
+ ```markdown
43
+ [快速体验](README.md) · [架构与二次开发](ARCHITECTURE.md) ·
44
+ [参与开发](CONTRIBUTING.md) · [完整文档](docs/README.md)
45
+ ```
46
+
47
+ Add language links only when the target files exist and have passed review.
48
+ Do not publish dead “English coming soon” links.
49
+
50
+ ## Single-source rule
51
+
52
+ Summaries may repeat a conclusion, but volatile values have one owner. Board
53
+ memory, SDK version, stream identifiers, sample rates, checksums, and build
54
+ commands should be read from manifests, contracts, lock files, release
55
+ metadata, or their designated documentation owner. Other pages link there.
56
+
57
+ When duplication is unavoidable for a quick-start step, keep the detailed page
58
+ authoritative and add a test that detects drift in the copied value.
@@ -0,0 +1,70 @@
1
+ # Evidence and technical claims
2
+
3
+ Read this reference when documentation states hardware facts, product
4
+ capabilities, media parameters, build requirements, release contents, or test
5
+ status.
6
+
7
+ ## Source order
8
+
9
+ Use the closest authoritative source:
10
+
11
+ 1. Product behavior and protocol contracts in the maintained product source or
12
+ product documentation.
13
+ 2. Board manifest for identity and build metadata.
14
+ 3. Hardware IR, schematic, probe report, or vendor primary source for wiring,
15
+ fitted devices, memory, clocks, buses, and power sequencing.
16
+ 4. Lock files, SDK manifests, compiler output, and build scripts for toolchain
17
+ and dependency versions.
18
+ 5. Release manifest and checksums for downloadable artifacts and flash layout.
19
+ 6. Artifact-bound hardware-in-the-loop evidence for runtime claims.
20
+
21
+ A board manifest is build metadata, not proof that hardware or a product flow
22
+ worked. A successful compile is not a hardware validation result. Evidence from
23
+ one printed-circuit-board revision does not automatically apply to another.
24
+
25
+ ## Board guide minimum
26
+
27
+ Each supported board guide should independently explain:
28
+
29
+ - exact public model and printed-circuit-board revision;
30
+ - processor, memory, display, touch, camera, audio, and network specifications;
31
+ - product functions and technical media parameters;
32
+ - operating system, SDK, compiler, libraries, and locked versions;
33
+ - official product page, schematic, and source identity;
34
+ - root-level build command and expected artifacts;
35
+ - safe flash method, offsets, boot mode, and protected factory data;
36
+ - provisioning, binding, and first product experience;
37
+ - verification level, artifact identity, limitations, and explicit follow-up
38
+ evidence.
39
+
40
+ Use `unknown` or a clearly scoped follow-up item when a fact lacks evidence.
41
+ Do not fill gaps from a visually similar board or another board using the same
42
+ processor.
43
+
44
+ ## Media and session details
45
+
46
+ For each H5, AI, device-call, WeChat VoIP, or room flow that the project claims,
47
+ document the applicable direction and parameters:
48
+
49
+ - stream identifiers;
50
+ - encoding, sample rate, channel count, frame duration, samples and payload
51
+ relationship;
52
+ - video format, resolution, frame rate, target bitrate, keyframe/refresh rule;
53
+ - AEC input, playback reference, processing frame, delay treatment, and modes
54
+ where AEC is required;
55
+ - ownership, readiness, stop, reconnect, and resource-release behavior.
56
+
57
+ Network packet duration and an AEC processing block are different units. State
58
+ both when software splits or aggregates them.
59
+
60
+ ## Release download and flashing
61
+
62
+ Quick-start pages link to an immutable release or a release selector that makes
63
+ board identity explicit. A release bundle should carry its board ID, version,
64
+ source revision, files, flash offsets, verification status, and SHA-256 values.
65
+ Explain the difference between complete flash images and over-the-air images.
66
+
67
+ Never infer a flash command from a filename alone. Read the bundle manifest or
68
+ the board's authoritative flash guide, and preserve calibration, credentials,
69
+ keys, and factory partitions unless the product process explicitly replaces
70
+ them.