@tencent-rtc/trtc-agent-skills 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +172 -0
- package/README.zh.md +173 -0
- package/bin/cli.js +434 -0
- package/knowledge-base/index.yaml +454 -0
- package/knowledge-base/platform-slice-template.md +233 -0
- package/knowledge-base/scenario-spec.md +350 -0
- package/knowledge-base/scenarios/conference/base/general-conference.md +365 -0
- package/knowledge-base/scenarios/conference/base/webinar-conference.md +130 -0
- package/knowledge-base/scenarios/conference/medical/1v1-video-consultation.md +145 -0
- package/knowledge-base/scenarios/conference/medical/medical-multidoctor-consultation.md +113 -0
- package/knowledge-base/scenarios/live/entertainment-live-room.md +118 -0
- package/knowledge-base/slice-spec.md +546 -0
- package/knowledge-base/slices/conference/web/ai-tools.md +225 -0
- package/knowledge-base/slices/conference/web/beauty-effects.md +188 -0
- package/knowledge-base/slices/conference/web/device-control.md +338 -0
- package/knowledge-base/slices/conference/web/login-auth.md +261 -0
- package/knowledge-base/slices/conference/web/network-quality.md +190 -0
- package/knowledge-base/slices/conference/web/official-roomkit-api.md +298 -0
- package/knowledge-base/slices/conference/web/official-roomkit-login-ui.md +246 -0
- package/knowledge-base/slices/conference/web/participant-list.md +238 -0
- package/knowledge-base/slices/conference/web/participant-management.md +718 -0
- package/knowledge-base/slices/conference/web/prejoin-check.md +293 -0
- package/knowledge-base/slices/conference/web/room-call.md +213 -0
- package/knowledge-base/slices/conference/web/room-chat.md +426 -0
- package/knowledge-base/slices/conference/web/room-lifecycle.md +534 -0
- package/knowledge-base/slices/conference/web/room-schedule.md +281 -0
- package/knowledge-base/slices/conference/web/screen-share.md +211 -0
- package/knowledge-base/slices/conference/web/video-layout.md +675 -0
- package/knowledge-base/slices/conference/web/virtual-background.md +197 -0
- package/knowledge-base/slices/conference/web/webinar-interaction.md +206 -0
- package/knowledge-base/slices/live/anchor-lifecycle.md +122 -0
- package/knowledge-base/slices/live/anchor-preview.md +90 -0
- package/knowledge-base/slices/live/anchor-room-config.md +104 -0
- package/knowledge-base/slices/live/audience-list.md +86 -0
- package/knowledge-base/slices/live/audience-manage.md +92 -0
- package/knowledge-base/slices/live/audience-watch.md +85 -0
- package/knowledge-base/slices/live/audio.md +116 -0
- package/knowledge-base/slices/live/barrage.md +88 -0
- package/knowledge-base/slices/live/beauty.md +99 -0
- package/knowledge-base/slices/live/coguest-apply.md +105 -0
- package/knowledge-base/slices/live/device-control.md +91 -0
- package/knowledge-base/slices/live/error-codes.md +167 -0
- package/knowledge-base/slices/live/gift.md +84 -0
- package/knowledge-base/slices/live/ios/.gitkeep +0 -0
- package/knowledge-base/slices/live/ios/anchor-lifecycle.md +313 -0
- package/knowledge-base/slices/live/ios/anchor-preview.md +228 -0
- package/knowledge-base/slices/live/ios/anchor-room-config.md +257 -0
- package/knowledge-base/slices/live/ios/audience-list.md +353 -0
- package/knowledge-base/slices/live/ios/audience-manage.md +381 -0
- package/knowledge-base/slices/live/ios/audience-watch.md +286 -0
- package/knowledge-base/slices/live/ios/audio.md +373 -0
- package/knowledge-base/slices/live/ios/barrage.md +285 -0
- package/knowledge-base/slices/live/ios/beauty.md +323 -0
- package/knowledge-base/slices/live/ios/coguest-apply.md +506 -0
- package/knowledge-base/slices/live/ios/device-control.md +286 -0
- package/knowledge-base/slices/live/ios/error-codes.md +270 -0
- package/knowledge-base/slices/live/ios/gift.md +315 -0
- package/knowledge-base/slices/live/ios/live-list.md +269 -0
- package/knowledge-base/slices/live/ios/login-auth.md +247 -0
- package/knowledge-base/slices/live/live-list.md +82 -0
- package/knowledge-base/slices/live/login-auth.md +78 -0
- package/package.json +34 -0
- package/skills/trtc/SKILL.md +326 -0
- package/skills/trtc/room-builder/SKILL.md +138 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/README.md +108 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/backend-contract.zh-CN.md +162 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/integration.zh-CN.md +154 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/docs/theme.zh-CN.md +78 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/index.html +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/package.json +28 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/postcss.config.js +5 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/App.vue +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/ConsultationManagePanel.vue +838 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/LanguageSwitch.vue +102 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/LoadingSpinner.vue +6 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalAlert.vue +34 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalBusinessPanel.vue +148 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalButton.vue +49 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalConfirmDialog.vue +68 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalDataPanel.vue +196 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/MedicalRecordPanel.vue +270 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/components/PrescriptionPanel.vue +363 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/basic-info-config.ts +29 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/lib-generate-test-usersig-es.min.d.ts +4 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/lib-generate-test-usersig-es.min.js +2 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/config/runtime-config.ts +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/env.d.ts +32 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationChatPanel.vue +123 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationMembersPanel.vue +230 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationTranscriptionPanel.vue +135 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/ConsultationVideoStage.vue +113 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/InviteDoctorDialog.vue +132 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/components/KickMemberConfirmDialog.vue +50 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/types.ts +77 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationChat.ts +97 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationDevices.ts +48 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationParticipants.ts +121 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/useConsultationPermissions.ts +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/features/consultation/utils.ts +70 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/en-US/index.ts +553 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/index.ts +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/medicalTranslate.ts +85 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/state.ts +49 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/i18n/zh-CN/index.ts +463 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/main.ts +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/mock/appointments.ts +96 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/mock/users.ts +79 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/router/index.ts +63 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/index.ts +25 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/appointmentService.ts +77 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/authService.ts +38 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/launchContext.ts +31 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/integration/userService.ts +35 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/appointmentService.ts +43 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/authService.ts +33 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/mock/userService.ts +43 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/services/adapters/types.ts +135 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/shared/icons.ts +53 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/index.css +106 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/tailwind.css +3 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/styles/theme.css +209 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/auth.ts +50 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/format.ts +24 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/navigation.ts +12 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/utils/session.ts +28 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/DoctorConsultationView.vue +777 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/DoctorDashboardView.vue +678 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/LoginView.vue +441 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientConsultationFinishedView.vue +185 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientConsultationView.vue +1003 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientSelectDoctorView.vue +317 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/src/views/PatientWaitingView.vue +454 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/tsconfig.json +21 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/tsconfig.node.json +8 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation/vite.config.ts +17 -0
- package/skills/trtc/room-builder/templates/scenarios/medical-consultation//346/216/245/345/205/245/350/257/264/346/230/216.md +6 -0
- package/skills/trtc/room-builder/tools/render_ai_instructions.py +226 -0
- package/skills/trtc-apply/SKILL.md +97 -0
- package/skills/trtc-apply/guardrails/apply_lib/__init__.py +0 -0
- package/skills/trtc-apply/guardrails/apply_lib/__pycache__/__init__.cpython-313.pyc +0 -0
- package/skills/trtc-apply/guardrails/apply_lib/__pycache__/rule_parser.cpython-313.pyc +0 -0
- package/skills/trtc-apply/guardrails/apply_lib/rule_parser.py +268 -0
- package/skills/trtc-docs/SKILL.md +207 -0
- package/skills/trtc-onboarding/SKILL.md +839 -0
- package/skills/trtc-onboarding/reference/path-a1-demo.md +103 -0
- package/skills/trtc-onboarding/reference/path-a2-integrate.md +693 -0
- package/skills/trtc-onboarding/reference/path-b-troubleshoot.md +115 -0
- package/skills/trtc-onboarding/reference/path-c-expand.md +43 -0
- package/skills/trtc-onboarding/reference/reporting-protocol.md +174 -0
- package/skills/trtc-onboarding/reference/supported-matrix.md +100 -0
- package/skills/trtc-onboarding/reference/usersig-handling.md +140 -0
- package/skills/trtc-search/SKILL.md +221 -0
- package/skills/trtc-topic/SKILL.md +638 -0
- package/skills/trtc-topic/guardrails/__pycache__/gate_slice_read.cpython-313.pyc +0 -0
- package/skills/trtc-topic/guardrails/__pycache__/gate_slice_write.cpython-313.pyc +0 -0
- package/skills/trtc-topic/guardrails/__pycache__/stop_require_apply_evidence.cpython-313.pyc +0 -0
- package/skills/trtc-topic/guardrails/gate_slice_read.py +133 -0
- package/skills/trtc-topic/guardrails/gate_slice_write.py +169 -0
- package/skills/trtc-topic/guardrails/stop_require_apply_evidence.py +97 -0
- package/skills/trtc-topic/references/execution-units.yaml +58 -0
- package/skills/trtc-topic/runtime/README.md +50 -0
- package/skills/trtc-topic/runtime/RUNTIME.md +128 -0
- package/skills/trtc-topic/runtime/lib/__init__.py +0 -0
- package/skills/trtc-topic/runtime/lib/platforms.py +194 -0
- package/skills/trtc-topic/runtime/package-lock.json +1211 -0
- package/skills/trtc-topic/runtime/package.json +13 -0
- package/skills/trtc-topic/runtime/telemetry-bridge.mjs +339 -0
- package/skills/trtc-topic/runtime/telemetry_collector.py +293 -0
- package/skills/trtc-topic/scripts/STATE-MACHINE-GUIDE.md +186 -0
- package/skills/trtc-topic/scripts/__pycache__/apply.cpython-313.pyc +0 -0
- package/skills/trtc-topic/scripts/apply.py +581 -0
- package/skills/trtc-topic/scripts/finalize_session.py +113 -0
- package/skills/trtc-topic/scripts/init_slice_queue.py +96 -0
- package/skills/trtc-topic/scripts/lib/__pycache__/state_machine.cpython-313.pyc +0 -0
- package/skills/trtc-topic/scripts/lib/state_machine.py +328 -0
- package/skills/trtc-topic/scripts/next_slice.py +137 -0
- package/skills/trtc-topic/tests/README.md +70 -0
- package/skills/trtc-topic/tests/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/conftest.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_apply_cli.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_apply_cli.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_end_to_end.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_end_to_end.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_finalize_session.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_finalize_session.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_gates.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_gates.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_session_resolver.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_session_resolver.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_state_machine.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_state_machine.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_stop_require_apply.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_stop_require_apply.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_topic_skill_invariants.cpython-313-pytest-9.0.2.pyc +0 -0
- package/skills/trtc-topic/tests/__pycache__/test_topic_skill_invariants.cpython-313-pytest-9.0.3.pyc +0 -0
- package/skills/trtc-topic/tests/conftest.py +72 -0
- package/skills/trtc-topic/tests/test_apply_cli.py +480 -0
- package/skills/trtc-topic/tests/test_end_to_end.py +305 -0
- package/skills/trtc-topic/tests/test_finalize_session.py +51 -0
- package/skills/trtc-topic/tests/test_gates.py +316 -0
- package/skills/trtc-topic/tests/test_session_resolver.py +260 -0
- package/skills/trtc-topic/tests/test_state_machine.py +414 -0
- package/skills/trtc-topic/tests/test_stop_require_apply.py +99 -0
- package/skills/trtc-topic/tests/test_topic_skill_invariants.py +130 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
# TRTC Knowledge Base Index
|
|
2
|
+
# Slice 和 scenario 的集中目录
|
|
3
|
+
# Skills 通过读取此文件发现和定位知识库内容
|
|
4
|
+
|
|
5
|
+
version: "4.0"
|
|
6
|
+
last_updated: "2026-03-30"
|
|
7
|
+
|
|
8
|
+
# ============================================================
|
|
9
|
+
# Products — TRTC 产品线
|
|
10
|
+
# ============================================================
|
|
11
|
+
# 仅保留 search skill 做产品识别和 fallback 所需的最小信息
|
|
12
|
+
products:
|
|
13
|
+
- id: chat
|
|
14
|
+
name: Chat(即时通信)
|
|
15
|
+
description: 即时通信 SDK,提供消息收发、会话管理、群组、用户资料等能力
|
|
16
|
+
llms_file: llms/chat.txt
|
|
17
|
+
|
|
18
|
+
- id: call
|
|
19
|
+
name: Call(音视频通话)
|
|
20
|
+
description: 音视频通话组件,支持 1v1 和群组音视频通话
|
|
21
|
+
llms_file: llms/call.txt
|
|
22
|
+
|
|
23
|
+
- id: rtc-engine
|
|
24
|
+
name: RTC Engine(实时音视频引擎)
|
|
25
|
+
description: 底层实时音视频引擎,提供进房、推流、拉流、混流等核心能力
|
|
26
|
+
llms_file: llms/rtc-engine.txt
|
|
27
|
+
|
|
28
|
+
- id: live
|
|
29
|
+
name: Live(直播)
|
|
30
|
+
description: 直播互动 Core SDK,支持推流、拉流、连麦互动、弹幕、礼物、美颜等
|
|
31
|
+
llms_file: llms/live.txt
|
|
32
|
+
|
|
33
|
+
- id: conference
|
|
34
|
+
name: Conference(视频会议)
|
|
35
|
+
description: 视频会议 Core SDK,提供创建会议、入会、成员管理、会中聊天、屏幕分享等能力
|
|
36
|
+
llms_file: llms/conference.txt
|
|
37
|
+
|
|
38
|
+
# ============================================================
|
|
39
|
+
# Cross-Product Relations — 跨产品关系模型
|
|
40
|
+
# ============================================================
|
|
41
|
+
# search skill 和 apply skill 用来处理跨产品查询和代码校验
|
|
42
|
+
cross_product_relations:
|
|
43
|
+
- id: live-chat-barrage
|
|
44
|
+
products: [live, chat]
|
|
45
|
+
slices: [chat/group-avchatroom, chat/group-msg]
|
|
46
|
+
description: 直播弹幕使用 Chat SDK 的直播群(AVChatRoom)能力
|
|
47
|
+
|
|
48
|
+
- id: live-rtc-streaming
|
|
49
|
+
products: [live, rtc-engine]
|
|
50
|
+
slices: [rtc-engine/enter-room, rtc-engine/publish-stream]
|
|
51
|
+
description: Live 底层音视频依赖 RTC Engine 的进房和推流能力
|
|
52
|
+
|
|
53
|
+
- id: call-rtc-engine
|
|
54
|
+
products: [call, rtc-engine]
|
|
55
|
+
slices: [rtc-engine/enter-room, rtc-engine/publish-stream]
|
|
56
|
+
description: Call 底层音视频依赖 RTC Engine
|
|
57
|
+
|
|
58
|
+
- id: call-chat-signaling
|
|
59
|
+
products: [call, chat]
|
|
60
|
+
slices: [chat/signaling]
|
|
61
|
+
description: Call 的呼叫信令基于 Chat SDK 的信令能力
|
|
62
|
+
|
|
63
|
+
# ============================================================
|
|
64
|
+
# Slices — 原子能力片段索引
|
|
65
|
+
# ============================================================
|
|
66
|
+
slices:
|
|
67
|
+
|
|
68
|
+
# ---- RTC Engine ----
|
|
69
|
+
- id: rtc-engine/enter-room
|
|
70
|
+
name: 进房
|
|
71
|
+
tags: [enter-room, join, room, connection]
|
|
72
|
+
platforms: [web, android, ios, flutter, electron]
|
|
73
|
+
file: slices/rtc-engine/enter-room.md
|
|
74
|
+
description: 进房参数配置、进房场景选择、进房回调处理、进房失败排障
|
|
75
|
+
status: planned
|
|
76
|
+
|
|
77
|
+
- id: rtc-engine/publish-stream
|
|
78
|
+
name: 推流
|
|
79
|
+
tags: [publish, stream, video, audio, camera, microphone]
|
|
80
|
+
platforms: [web, android, ios, flutter, electron]
|
|
81
|
+
file: slices/rtc-engine/publish-stream.md
|
|
82
|
+
description: 本地音视频采集与推流、摄像头/麦克风管理、视频编码参数、推流状态回调
|
|
83
|
+
status: planned
|
|
84
|
+
|
|
85
|
+
# ---- Live: 基础设施 ----
|
|
86
|
+
- id: live/login-auth
|
|
87
|
+
name: 登录认证
|
|
88
|
+
tags: [login, auth, SDKAppID, UserID, UserSig, LoginStore]
|
|
89
|
+
platforms: [ios]
|
|
90
|
+
file: slices/live/login-auth.md
|
|
91
|
+
description: LoginStore 登录认证、SDKAppID/UserID/UserSig 配置、Info.plist 权限、Pod 依赖安装
|
|
92
|
+
status: active
|
|
93
|
+
|
|
94
|
+
- id: live/device-control
|
|
95
|
+
name: 设备控制
|
|
96
|
+
tags: [camera, microphone, device, DeviceStore, permission]
|
|
97
|
+
platforms: [ios]
|
|
98
|
+
file: slices/live/device-control.md
|
|
99
|
+
description: 摄像头/麦克风的打开关闭、前后切换、设备权限处理
|
|
100
|
+
status: active
|
|
101
|
+
|
|
102
|
+
- id: live/error-codes
|
|
103
|
+
name: 错误码速查
|
|
104
|
+
tags: [error, error-code, troubleshoot, debug]
|
|
105
|
+
platforms: [ios]
|
|
106
|
+
file: slices/live/error-codes.md
|
|
107
|
+
description: Live 产品全部错误码速查:通用、设备、房间、权限、REST API
|
|
108
|
+
status: active
|
|
109
|
+
|
|
110
|
+
# ---- Live: 主播端 ----
|
|
111
|
+
- id: live/anchor-preview
|
|
112
|
+
name: 开播前预览
|
|
113
|
+
tags: [anchor, preview, LiveCoreView, pushView, camera]
|
|
114
|
+
platforms: [ios]
|
|
115
|
+
file: slices/live/anchor-preview.md
|
|
116
|
+
description: 主播开播前的视频预览:LiveCoreView 创建、setLiveID、摄像头预览
|
|
117
|
+
status: active
|
|
118
|
+
|
|
119
|
+
- id: live/anchor-room-config
|
|
120
|
+
name: 房间配置
|
|
121
|
+
tags: [room, config, metadata, LiveListStore, room-name, cover]
|
|
122
|
+
platforms: [ios]
|
|
123
|
+
file: slices/live/anchor-room-config.md
|
|
124
|
+
description: 房间名称、封面、MetaData 配置及限制
|
|
125
|
+
status: active
|
|
126
|
+
|
|
127
|
+
- id: live/anchor-lifecycle
|
|
128
|
+
name: 开播与结束
|
|
129
|
+
tags: [anchor, start, end, createLive, endLive, lifecycle]
|
|
130
|
+
platforms: [ios]
|
|
131
|
+
file: slices/live/anchor-lifecycle.md
|
|
132
|
+
description: 主播开播 createLive、结束 endLive、事件监听、释放顺序
|
|
133
|
+
status: active
|
|
134
|
+
|
|
135
|
+
# ---- Live: 观众端 ----
|
|
136
|
+
- id: live/live-list
|
|
137
|
+
name: 直播列表
|
|
138
|
+
tags: [list, fetch, category, slide-play, LiveListStore]
|
|
139
|
+
platforms: [ios]
|
|
140
|
+
file: slices/live/live-list.md
|
|
141
|
+
description: 直播列表拉取、分页加载、分类筛选、滑动播放
|
|
142
|
+
status: active
|
|
143
|
+
|
|
144
|
+
- id: live/audience-watch
|
|
145
|
+
name: 观众观看与退出
|
|
146
|
+
tags: [audience, watch, join, leave, playView, LiveCoreView]
|
|
147
|
+
platforms: [ios]
|
|
148
|
+
file: slices/live/audience-watch.md
|
|
149
|
+
description: 观众进房观看、退出、被踢处理、后台退出
|
|
150
|
+
status: active
|
|
151
|
+
|
|
152
|
+
- id: live/audience-list
|
|
153
|
+
name: 观众列表
|
|
154
|
+
tags: [audience, list, count, LiveAudienceStore]
|
|
155
|
+
platforms: [ios]
|
|
156
|
+
file: slices/live/audience-list.md
|
|
157
|
+
description: 观众列表展示、人数统计、单列/双列布局
|
|
158
|
+
status: active
|
|
159
|
+
|
|
160
|
+
# ---- Live: 互动模块 ----
|
|
161
|
+
- id: live/barrage
|
|
162
|
+
name: 弹幕
|
|
163
|
+
tags: [barrage, message, chat, mute, BarrageStore, danmu]
|
|
164
|
+
platforms: [ios]
|
|
165
|
+
file: slices/live/barrage.md
|
|
166
|
+
description: 弹幕展示、发送文本/自定义弹幕、禁言管理、性能优化
|
|
167
|
+
status: active
|
|
168
|
+
|
|
169
|
+
- id: live/gift
|
|
170
|
+
name: 礼物
|
|
171
|
+
tags: [gift, send, receive, GiftStore, reward]
|
|
172
|
+
platforms: [ios]
|
|
173
|
+
file: slices/live/gift.md
|
|
174
|
+
description: 礼物列表拉取、发送/接收礼物、扣费回调、事件驱动 UI
|
|
175
|
+
status: active
|
|
176
|
+
|
|
177
|
+
- id: live/audience-manage
|
|
178
|
+
name: 观众管理
|
|
179
|
+
tags: [manage, kick, admin, administrator, LiveAudienceStore]
|
|
180
|
+
platforms: [ios]
|
|
181
|
+
file: slices/live/audience-manage.md
|
|
182
|
+
description: 踢出用户、设置/撤销管理员、人数频控
|
|
183
|
+
status: active
|
|
184
|
+
|
|
185
|
+
- id: live/beauty
|
|
186
|
+
name: 基础美颜
|
|
187
|
+
tags: [beauty, smooth, whiten, ruddy, BaseBeautyStore, filter]
|
|
188
|
+
platforms: [ios]
|
|
189
|
+
file: slices/live/beauty.md
|
|
190
|
+
description: 磨皮/美白/红润调节、UI 滑块映射、状态订阅
|
|
191
|
+
status: active
|
|
192
|
+
|
|
193
|
+
- id: live/audio
|
|
194
|
+
name: 音效
|
|
195
|
+
tags: [audio, voice, effect, changer, reverb, ear-monitor, AudioEffectStore]
|
|
196
|
+
platforms: [ios]
|
|
197
|
+
file: slices/live/audio.md
|
|
198
|
+
description: 人声音量、耳返、变声、混响、reset
|
|
199
|
+
status: active
|
|
200
|
+
|
|
201
|
+
- id: live/coguest-apply
|
|
202
|
+
name: 连麦:观众申请
|
|
203
|
+
tags: [coguest, apply, seat, mic, CoGuestStore, connect]
|
|
204
|
+
platforms: [ios]
|
|
205
|
+
file: slices/live/coguest-apply.md
|
|
206
|
+
description: 观众申请上麦、主播审批、上麦后设备管理、断开连麦
|
|
207
|
+
status: active
|
|
208
|
+
|
|
209
|
+
# ---- Conference: 接入主线 ----
|
|
210
|
+
- id: conference/login-auth
|
|
211
|
+
name: 登录与鉴权
|
|
212
|
+
tags: [login, auth, SDKAppID, UserID, UserSig, session, multi-device]
|
|
213
|
+
platforms: [web]
|
|
214
|
+
file: slices/conference/web/login-auth.md
|
|
215
|
+
description: 统一登录态、SDKAppID/UserID/UserSig 鉴权、登录失效/会话过期/多端顶替处理
|
|
216
|
+
status: active
|
|
217
|
+
|
|
218
|
+
- id: conference/prejoin-check
|
|
219
|
+
name: 入会前设备检查
|
|
220
|
+
tags: [prejoin, device-check, camera, microphone, speaker, preview, selftest]
|
|
221
|
+
platforms: [web]
|
|
222
|
+
file: slices/conference/web/prejoin-check.md
|
|
223
|
+
description: 摄像头/麦克风/扬声器的会前检测与本地预览,完成设备自检与降级准备
|
|
224
|
+
status: active
|
|
225
|
+
|
|
226
|
+
- id: conference/room-lifecycle
|
|
227
|
+
name: 房间创建、加入、离开与结束
|
|
228
|
+
tags: [room, lifecycle, create, join, leave, end]
|
|
229
|
+
platforms: [web]
|
|
230
|
+
file: slices/conference/web/room-lifecycle.md
|
|
231
|
+
description: 会议从创建、加入、离开到结束的主链路,统一承接即时会议发起、加入已有会议与退场收口
|
|
232
|
+
status: active
|
|
233
|
+
|
|
234
|
+
# ---- Conference: 会议骨架 ----
|
|
235
|
+
|
|
236
|
+
- id: conference/video-layout
|
|
237
|
+
name: 视频布局
|
|
238
|
+
tags: [layout, RoomView, layoutTemplate, participantViewUI, grid, sidebar, mobile-layout, screen-share]
|
|
239
|
+
platforms: [web]
|
|
240
|
+
file: slices/conference/web/video-layout.md
|
|
241
|
+
description: 视频区域渲染、布局模板切换、主画面选择、共享突出展示、挂件扩展与移动端布局适配
|
|
242
|
+
status: active
|
|
243
|
+
|
|
244
|
+
- id: conference/room-schedule
|
|
245
|
+
name: 预约会议
|
|
246
|
+
tags: [schedule, reservation, future-meeting, reminder, list]
|
|
247
|
+
platforms: [web]
|
|
248
|
+
file: slices/conference/web/room-schedule.md
|
|
249
|
+
description: 未来会议的创建、更新、取消、列表查询与到点提醒;到点入会由 room-lifecycle 接管
|
|
250
|
+
status: active
|
|
251
|
+
|
|
252
|
+
- id: conference/room-call
|
|
253
|
+
name: 会中呼叫
|
|
254
|
+
tags: [call, signaling, accept, reject, timeout, multi-device]
|
|
255
|
+
platforms: [web]
|
|
256
|
+
file: slices/conference/web/room-call.md
|
|
257
|
+
description: 会议进行中向房外在线用户发起实时呼叫,处理接受/拒绝/超时/多设备收口等呼叫信令流程
|
|
258
|
+
status: active
|
|
259
|
+
|
|
260
|
+
# ---- Conference: 治理与互动 ----
|
|
261
|
+
- id: conference/participant-list
|
|
262
|
+
name: 参会人列表与状态
|
|
263
|
+
tags: [participant, list, role, speaking, pagination, sync]
|
|
264
|
+
platforms: [web]
|
|
265
|
+
file: slices/conference/web/participant-list.md
|
|
266
|
+
description: 参会人列表展示与同步,包括角色、发言态、音视频状态、业务扩展字段与分页加载
|
|
267
|
+
status: active
|
|
268
|
+
|
|
269
|
+
- id: conference/participant-management
|
|
270
|
+
name: 参会人管理与角色治理
|
|
271
|
+
tags: [kick, admin, role, transfer, invite-permission]
|
|
272
|
+
platforms: [web]
|
|
273
|
+
file: slices/conference/web/participant-management.md
|
|
274
|
+
description: 角色治理(设/撤管理员、转移房主、移出成员、改名片)+ 房间级会控(全员禁麦/禁画/禁言、单成员关设备、设备申请审批与邀请)
|
|
275
|
+
status: active
|
|
276
|
+
|
|
277
|
+
- id: conference/room-chat
|
|
278
|
+
name: 会中聊天
|
|
279
|
+
tags: [chat, message, group, history, unread, disable-chat]
|
|
280
|
+
platforms: [web]
|
|
281
|
+
file: slices/conference/web/room-chat.md
|
|
282
|
+
description: 会议与群组会话绑定、消息收发、历史分页、未读状态、禁聊联动
|
|
283
|
+
status: active
|
|
284
|
+
|
|
285
|
+
# ---- Conference: 设备、媒体与体验增强 ----
|
|
286
|
+
- id: conference/device-control
|
|
287
|
+
name: 设备控制
|
|
288
|
+
tags: [camera, microphone, speaker, device, permission, switch, recovery]
|
|
289
|
+
platforms: [web]
|
|
290
|
+
file: slices/conference/web/device-control.md
|
|
291
|
+
description: 会中摄像头/麦克风/扬声器的开关、切换、权限处理与异常恢复
|
|
292
|
+
status: active
|
|
293
|
+
|
|
294
|
+
- id: conference/network-quality
|
|
295
|
+
name: 网络质量
|
|
296
|
+
tags: [network, quality, rtt, packet-loss, reconnect, weak-network]
|
|
297
|
+
platforms: [web]
|
|
298
|
+
file: slices/conference/web/network-quality.md
|
|
299
|
+
description: 会中网络状态感知、弱网提示、重连状态与超时告警
|
|
300
|
+
status: active
|
|
301
|
+
|
|
302
|
+
- id: conference/screen-share
|
|
303
|
+
name: 屏幕分享
|
|
304
|
+
tags: [screen-share, desktop, system-audio, state, event]
|
|
305
|
+
platforms: [web]
|
|
306
|
+
file: slices/conference/web/screen-share.md
|
|
307
|
+
description: 桌面端共享屏幕、共享系统音频、共享状态监听、共享权限控制与共享相关事件
|
|
308
|
+
status: active
|
|
309
|
+
|
|
310
|
+
- id: conference/beauty-effects
|
|
311
|
+
name: 美颜效果
|
|
312
|
+
tags: [beauty, smooth, whiten, ruddy, preview, two-phase]
|
|
313
|
+
platforms: [web]
|
|
314
|
+
file: slices/conference/web/beauty-effects.md
|
|
315
|
+
description: 本地视频的磨皮/美白/红润等基础美颜,本地预览与保存生效的两阶段流程
|
|
316
|
+
status: active
|
|
317
|
+
|
|
318
|
+
- id: conference/virtual-background
|
|
319
|
+
name: 虚拟背景
|
|
320
|
+
tags: [virtual-background, blur, replace, assetsPath, browser-support]
|
|
321
|
+
platforms: [web]
|
|
322
|
+
file: slices/conference/web/virtual-background.md
|
|
323
|
+
description: 背景虚化/替换、模型资源与 assetsPath 配置、浏览器支持性检测、预览与保存生效链路
|
|
324
|
+
status: active
|
|
325
|
+
|
|
326
|
+
- id: conference/official-roomkit-api
|
|
327
|
+
name: 官方 RoomKit 适配层 API
|
|
328
|
+
tags: [official-roomkit, conference-api, conference-object, setWidgetVisible, registerWidget, onWill, setFeatureConfig, createAndJoinRoom, joinRoom, UIKitProvider]
|
|
329
|
+
platforms: [web]
|
|
330
|
+
file: slices/conference/web/official-roomkit-api.md
|
|
331
|
+
description: 官方 RoomKit 集成模式下 conference 对象的完整 API 签名、枚举定义、调用时序和代码示例(ui_mode=official-roomkit 专用)
|
|
332
|
+
status: active
|
|
333
|
+
|
|
334
|
+
# ============================================================
|
|
335
|
+
# Scenarios — 场景组合索引
|
|
336
|
+
# ============================================================
|
|
337
|
+
scenarios:
|
|
338
|
+
- id: 1v1-video-call
|
|
339
|
+
name: 1v1 视频通话
|
|
340
|
+
slices: [rtc-engine/enter-room, rtc-engine/publish-stream]
|
|
341
|
+
file: scenarios/1v1-video-call.md
|
|
342
|
+
description: 两个用户进行 1v1 视频通话的完整流程
|
|
343
|
+
status: planned
|
|
344
|
+
|
|
345
|
+
- id: entertainment-live-room
|
|
346
|
+
name: 秀场直播间
|
|
347
|
+
slices:
|
|
348
|
+
- live/login-auth
|
|
349
|
+
- live/device-control
|
|
350
|
+
- live/anchor-preview
|
|
351
|
+
- live/anchor-room-config
|
|
352
|
+
- live/anchor-lifecycle
|
|
353
|
+
- live/live-list
|
|
354
|
+
- live/audience-watch
|
|
355
|
+
- live/audience-list
|
|
356
|
+
- live/barrage
|
|
357
|
+
- live/gift
|
|
358
|
+
- live/audience-manage
|
|
359
|
+
- live/beauty
|
|
360
|
+
- live/audio
|
|
361
|
+
- live/coguest-apply
|
|
362
|
+
- live/error-codes
|
|
363
|
+
file: scenarios/live/entertainment-live-room.md
|
|
364
|
+
description: 完整秀场直播间:主播开播+美颜+音效,观众进房+弹幕+礼物+连麦
|
|
365
|
+
status: active
|
|
366
|
+
|
|
367
|
+
- id: 1v1-video-consultation
|
|
368
|
+
name: 1v1视频问诊
|
|
369
|
+
room_type: standard
|
|
370
|
+
base_scenario: general-conference
|
|
371
|
+
industry: medical
|
|
372
|
+
slices:
|
|
373
|
+
- conference/login-auth
|
|
374
|
+
- conference/prejoin-check
|
|
375
|
+
- conference/room-lifecycle
|
|
376
|
+
- conference/room-lifecycle
|
|
377
|
+
- conference/room-call
|
|
378
|
+
- conference/participant-list
|
|
379
|
+
- conference/device-control
|
|
380
|
+
- conference/network-quality
|
|
381
|
+
- conference/room-chat
|
|
382
|
+
- conference/video-layout
|
|
383
|
+
file: scenarios/conference/medical/1v1-video-consultation.md
|
|
384
|
+
description: 医疗 1v1 视频问诊:医生与患者一对一完成候诊叫号、入诊沟通、病历面板和问诊收口;新建项目优先使用 bundled medical consultation template
|
|
385
|
+
status: active
|
|
386
|
+
|
|
387
|
+
- id: medical-multidoctor-consultation
|
|
388
|
+
name: 医疗会诊
|
|
389
|
+
room_type: standard
|
|
390
|
+
base_scenario: general-conference
|
|
391
|
+
industry: medical
|
|
392
|
+
slices:
|
|
393
|
+
- conference/login-auth
|
|
394
|
+
- conference/prejoin-check
|
|
395
|
+
- conference/room-schedule
|
|
396
|
+
- conference/room-lifecycle
|
|
397
|
+
- conference/room-lifecycle
|
|
398
|
+
- conference/room-call
|
|
399
|
+
- conference/participant-list
|
|
400
|
+
- conference/participant-management
|
|
401
|
+
- conference/device-control
|
|
402
|
+
- conference/network-quality
|
|
403
|
+
- conference/room-chat
|
|
404
|
+
- conference/video-layout
|
|
405
|
+
- conference/screen-share
|
|
406
|
+
file: scenarios/conference/medical/medical-multidoctor-consultation.md
|
|
407
|
+
description: 医疗会诊:基于 general-conference 的医疗派生场景,多位医生围绕同一患者病例进行远程讨论、资料共享与会诊结论收口
|
|
408
|
+
status: active
|
|
409
|
+
|
|
410
|
+
- id: general-conference
|
|
411
|
+
name: 通用会议
|
|
412
|
+
room_type: standard
|
|
413
|
+
industry: generic
|
|
414
|
+
slices:
|
|
415
|
+
- conference/login-auth
|
|
416
|
+
- conference/prejoin-check
|
|
417
|
+
- conference/room-lifecycle
|
|
418
|
+
- conference/room-lifecycle
|
|
419
|
+
- conference/participant-list
|
|
420
|
+
- conference/video-layout
|
|
421
|
+
- conference/device-control
|
|
422
|
+
- conference/network-quality
|
|
423
|
+
- conference/room-chat
|
|
424
|
+
- conference/screen-share
|
|
425
|
+
- conference/participant-management
|
|
426
|
+
- conference/room-schedule
|
|
427
|
+
- conference/room-call
|
|
428
|
+
- conference/beauty-effects
|
|
429
|
+
- conference/virtual-background
|
|
430
|
+
file: scenarios/conference/base/general-conference.md
|
|
431
|
+
description: 通用会议:会前预览首页承接新建/加入/预约会议,会中以宫格或演讲者布局、成员面板和底部协作工具栏为核心
|
|
432
|
+
status: active
|
|
433
|
+
|
|
434
|
+
- id: webinar-conference
|
|
435
|
+
name: 研讨会 / 宣讲会
|
|
436
|
+
room_type: webinar
|
|
437
|
+
industry: generic
|
|
438
|
+
slices:
|
|
439
|
+
- conference/login-auth
|
|
440
|
+
- conference/prejoin-check
|
|
441
|
+
- conference/room-lifecycle
|
|
442
|
+
- conference/room-lifecycle
|
|
443
|
+
- conference/participant-list
|
|
444
|
+
- conference/video-layout
|
|
445
|
+
- conference/device-control
|
|
446
|
+
- conference/network-quality
|
|
447
|
+
- conference/room-chat
|
|
448
|
+
- conference/screen-share
|
|
449
|
+
- conference/participant-management
|
|
450
|
+
- conference/room-schedule
|
|
451
|
+
- conference/room-call
|
|
452
|
+
file: scenarios/conference/base/webinar-conference.md
|
|
453
|
+
description: 研讨会 / 宣讲会:主讲人中心化的 webinar 房型,会中以主舞台、聊天问答、受控上台和主持治理为核心
|
|
454
|
+
status: active
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# 平台 Slice 模板
|
|
2
|
+
|
|
3
|
+
> **本文件是平台实现 slice 的标准模板。**
|
|
4
|
+
> 复制本文件到 `slices/{product}/{platform}/{ability}.md`,按 `<!-- 指引: ... -->` 批注填写内容,填完后删除所有批注。
|
|
5
|
+
>
|
|
6
|
+
> **填写范例**:请参考 [`slices/live/ios/coguest-apply.md`](slices/live/ios/coguest-apply.md) — 目前最完整的平台 slice,包含所有 section 的真实内容。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
```yaml
|
|
11
|
+
---
|
|
12
|
+
id: {product}/{ability} # [必填] 与 index.yaml 中的 id 一致
|
|
13
|
+
platform: {platform} # [必填] ios / android / web / flutter / electron
|
|
14
|
+
api_docs: # [必填] 该平台对应的 API 参考文档链接,至少 1 条
|
|
15
|
+
- title: {API 类名/模块名}
|
|
16
|
+
url: https://...
|
|
17
|
+
---
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
<!-- 指引: Frontmatter 字段说明:
|
|
21
|
+
- id: 与 index.yaml 中的 slice id 完全一致
|
|
22
|
+
- platform: 当前平台标识
|
|
23
|
+
- api_docs: 该功能在该平台的 API 参考文档链接(接口签名、参数类型、返回值等)。
|
|
24
|
+
产品级概览已不再放文档链接,教程/指南类 URL 也不放在 api_docs 里。
|
|
25
|
+
|
|
26
|
+
✅ 必须精确到类/模块级的 URL(如 CoGuestStore 的 API 页面)
|
|
27
|
+
✅ 涉及多个类时可有多条(如 CoGuestStore + DeviceStore 各一条)
|
|
28
|
+
❌ 不要填 SDK 首页(AI 拿不到校验所需的签名信息)
|
|
29
|
+
❌ 不要填产品级教程页
|
|
30
|
+
|
|
31
|
+
其余元数据(name、tags、platforms、related)在产品级概览中维护,此处不重复。
|
|
32
|
+
-->
|
|
33
|
+
|
|
34
|
+
# {名称} — {平台} 实现
|
|
35
|
+
|
|
36
|
+
## 前置条件 [必填]
|
|
37
|
+
|
|
38
|
+
<!-- 指引: 通用依赖(SDK 安装、基础权限)已在 login-auth 平台 slice 中统一描述,此处不要重复。
|
|
39
|
+
本 section 只写两类内容:
|
|
40
|
+
|
|
41
|
+
1. 增量依赖 — 本 slice 额外需要的库/权限(如美颜 SDK、蓝牙权限)。
|
|
42
|
+
如果没有额外依赖,写「无额外依赖」即可。
|
|
43
|
+
2. 前置状态 — 本功能依赖哪些 Store 已初始化/哪些操作已完成,引用对应 slice ID。
|
|
44
|
+
|
|
45
|
+
❌ 不要重复写 SDK 主包安装(如 pod 'AtomicXCore'、implementation 'com.tencent.liteav:...')
|
|
46
|
+
❌ 不要重复写基础权限声明(如 NSCameraUsageDescription、CAMERA permission),除非本 slice 需要额外权限
|
|
47
|
+
❌ 不要写通用开发环境搭建(如「安装 Xcode」「安装 Android Studio」)
|
|
48
|
+
-->
|
|
49
|
+
|
|
50
|
+
**通用依赖**:见 [login-auth 平台 slice](../login-auth.md)
|
|
51
|
+
|
|
52
|
+
**额外依赖**:
|
|
53
|
+
<!-- 如果有本 slice 独有的依赖,在此列出;没有则写「无」 -->
|
|
54
|
+
|
|
55
|
+
**前置状态**:
|
|
56
|
+
<!-- 列出必须满足的前置条件,引用 slice ID。例如:
|
|
57
|
+
- `LoginStore.shared` 登录成功(→ live/login-auth)
|
|
58
|
+
- 已进入直播间,持有有效 liveID(→ live/audience-watch)
|
|
59
|
+
-->
|
|
60
|
+
|
|
61
|
+
## 代码示例 [必填]
|
|
62
|
+
|
|
63
|
+
<!-- 指引: 本 section 是平台 slice 的核心交付物。详细标准见 slice-spec.md 第四节「代码示例标准」。
|
|
64
|
+
定位是「零件」— 单个功能的完整实现。多个零件如何组装成完整场景,由 scenario 的平台实现文件负责。
|
|
65
|
+
|
|
66
|
+
最低标准(必须全部满足):
|
|
67
|
+
1. 可编译:完整 import、完整类/函数闭包,严禁用 `...` 省略任何逻辑分支
|
|
68
|
+
2. 可运行:补充业务参数后可直接跑通;业务参数用 `{TODO: 填入 xxx}` 占位
|
|
69
|
+
3. 有日志锚点:关键路径(成功/失败/事件到达)必须有日志,供「验证矩阵」运行时使用
|
|
70
|
+
— 日志统一带模块前缀(如 `[CoGuest]`)
|
|
71
|
+
4. 有错误处理:每个 .failure / catch / error 分支都必须有面向用户的处理(errorMessage / alert),
|
|
72
|
+
不允许只 print 了事
|
|
73
|
+
5. 多角色分开写:主播端 / 观众端 必须拆成独立的代码块,不要耦合
|
|
74
|
+
6. 可组合性:前置依赖通过注释声明(`// 前置:登录完成(→ live/login-auth)`),不硬编码其他 slice 的调用
|
|
75
|
+
|
|
76
|
+
组织方式:按用户操作流程,用 MARK / region / 注释分隔各步骤(初始化 → 核心操作 → 事件监听 → 错误处理 → 清理)
|
|
77
|
+
|
|
78
|
+
❌ 不要写伪代码或用省略号 (...) 跳过逻辑
|
|
79
|
+
❌ 不要混入其他 slice 的职责代码
|
|
80
|
+
❌ 不要把多个功能耦合在一个类里
|
|
81
|
+
❌ 不要省略错误处理 — 每个失败分支都必须有处理
|
|
82
|
+
-->
|
|
83
|
+
|
|
84
|
+
## 调用时序 [条件必填:多角色异步交互 或 回调嵌套 ≥3 层]
|
|
85
|
+
|
|
86
|
+
<!-- 指引: 【条件必填】— 触发条件任一满足即必须画:
|
|
87
|
+
— 多角色交互(主播/观众/服务端三方时序不容易从单段代码看出)
|
|
88
|
+
— 异步回调链路特别深(3 层以上嵌套回调)
|
|
89
|
+
— 有隐含的时序依赖不写出来容易踩坑(如「必须先订阅再操作」)
|
|
90
|
+
|
|
91
|
+
如果代码示例已经足够清晰(单角色、同步或浅回调),可以跳过此 section 并整段删除。
|
|
92
|
+
|
|
93
|
+
格式:用 ``` 包裹的 ASCII 文本流程图。
|
|
94
|
+
-->
|
|
95
|
+
|
|
96
|
+
## 平台特有注意事项 [必填:至少 1 条]
|
|
97
|
+
|
|
98
|
+
<!-- 指引: 本 section 是平台 slice 区别于产品级概览的核心价值所在。
|
|
99
|
+
只写该平台独有的坑,产品级概览的通用最佳实践不要重复。
|
|
100
|
+
|
|
101
|
+
每条注意事项的格式:
|
|
102
|
+
### {编号}. {一句话标题}
|
|
103
|
+
— 先说现象/问题(开发者会遇到什么)
|
|
104
|
+
— 再说原因(为什么会这样)
|
|
105
|
+
|
|
106
|
+
什么内容该写在这里:
|
|
107
|
+
- 该平台的类型陷阱(如 iOS 的 Int32 vs Int、Android 的 Int vs Long)
|
|
108
|
+
- 该平台的生命周期问题(如 Android Activity 重建、iOS 后台挂起)
|
|
109
|
+
- 该平台的内存/线程问题(如 iOS [weak self]、Android 主线程更新 UI)
|
|
110
|
+
- 该平台的权限行为差异(如 iOS 崩溃 vs Android 返回错误码)
|
|
111
|
+
- 该平台特有的错误码或异常行为
|
|
112
|
+
|
|
113
|
+
什么内容不该写:
|
|
114
|
+
❌ 跨平台通用的业务逻辑(如「先登录再操作」→ 产品级概览已覆盖)
|
|
115
|
+
❌ API 用法说明(→ 代码示例已覆盖)
|
|
116
|
+
❌ 通用排障流程(→ 产品级概览已覆盖)
|
|
117
|
+
|
|
118
|
+
质量标准:每条都应该是「不写出来,研发大概率会踩坑」的内容。
|
|
119
|
+
如果一条注意事项对于有经验的该平台开发者来说是常识,就不用写。
|
|
120
|
+
-->
|
|
121
|
+
|
|
122
|
+
## 代码生成约束 [必填]
|
|
123
|
+
|
|
124
|
+
<!-- 指引: 本 section 供 AI 在生成/验证代码时使用,是给机器读的硬性规则。
|
|
125
|
+
与「平台特有注意事项」互补:
|
|
126
|
+
— 注意事项 = 给人读的经验提醒
|
|
127
|
+
— 代码生成约束 = 给 AI 读的可检查规则
|
|
128
|
+
|
|
129
|
+
所有规则必须基于实际 SDK 行为,不允许凭经验推测。
|
|
130
|
+
⚠️ 核心要求:每条 MUST / MUST NOT 使用 **prose + backtick** 格式:
|
|
131
|
+
N. **<动作> `符号`** — <违反后果>。
|
|
132
|
+
**Verify**: 检查是否存在 `符号`。
|
|
133
|
+
backtick 里的符号 = apply 唯一会 grep 的东西;规则文字其他词 apply 不验。
|
|
134
|
+
完整原则与红旗词表见 slice-spec.md 第四节「MUST 规则的维度对齐原则」。
|
|
135
|
+
-->
|
|
136
|
+
|
|
137
|
+
### 编译必要条件 [必填]
|
|
138
|
+
|
|
139
|
+
<!-- 指引: 本 slice 代码能编译通过的最小条件。
|
|
140
|
+
只写增量条件(通用条件见 login-auth slice)。
|
|
141
|
+
— 必须导入的模块/包(精确到包名)
|
|
142
|
+
— 本 slice 额外需要的 SDK 版本要求(如果高于基础要求)
|
|
143
|
+
— 本 slice 额外需要的权限声明或配置
|
|
144
|
+
|
|
145
|
+
如果没有增量条件,写「同 login-auth,无额外要求」
|
|
146
|
+
-->
|
|
147
|
+
|
|
148
|
+
### 生成规则 [必填]
|
|
149
|
+
|
|
150
|
+
#### MUST(生成时必须包含)
|
|
151
|
+
|
|
152
|
+
<!-- 指引: 每条格式:
|
|
153
|
+
|
|
154
|
+
N. **<动作> `符号`** — <违反后果>。
|
|
155
|
+
**Verify**: 检查是否存在 `符号`。
|
|
156
|
+
|
|
157
|
+
重要原则(详细规则见 slice-spec.md 第四节「MUST 规则的维度对齐原则」):
|
|
158
|
+
— backtick 里的符号 = apply 唯一会 grep 的东西
|
|
159
|
+
— 规则文字描述的判断 / 选择 / 等价 / 条件分支,apply 全部不验
|
|
160
|
+
— 多 backtick 的规则可以接受,apply 解析为「全部都要出现」(all-of)
|
|
161
|
+
|
|
162
|
+
⚠️ 红旗词:以下写法说明 MUST 写错了,要么拆分要么下沉到软规则区
|
|
163
|
+
— 「或 / 任一」、「等价 / 或类似」、「按业务 / 根据场景」
|
|
164
|
+
— 「留给 / 负责」、「多 backtick 但 Verify 只提一个」
|
|
165
|
+
|
|
166
|
+
示例(复制修改):
|
|
167
|
+
1. **必须导入 `useRoomState`** — 否则状态与 UI 无法收口。
|
|
168
|
+
**Verify**: 检查是否存在 `useRoomState`。
|
|
169
|
+
|
|
170
|
+
2. **必须从 `tuikit-atomicx-vue3/room` 导入** — 错包的同名 hook 不会跑通。
|
|
171
|
+
**Verify**: 检查是否存在 `tuikit-atomicx-vue3/room` 与 `useRoomState`
|
|
172
|
+
同时出现在同一 import 语句。
|
|
173
|
+
|
|
174
|
+
只写本 slice 独有的规则。跨 slice 通用规则如果在多个 slice 中反复出现,
|
|
175
|
+
考虑提到产品级概览或 base-setup 中。
|
|
176
|
+
-->
|
|
177
|
+
|
|
178
|
+
#### MUST NOT(生成时绝不能出现)
|
|
179
|
+
|
|
180
|
+
<!-- 指引: 同上格式,每条 = 一个禁现的具体符号或符号组合。
|
|
181
|
+
重点写「看起来能跑但逻辑错误」的写法 — 这类问题编译器抓不到,只有了解业务语义才能避免。
|
|
182
|
+
|
|
183
|
+
示例:
|
|
184
|
+
1. **不要把 `leaveRoom()` 当成解散会议** — 会导致房主离开后房间仍在。
|
|
185
|
+
**Verify**: 检查 `leaveRoom` 不与房主路径并列出现,房主收口必须用 `endRoom`。
|
|
186
|
+
|
|
187
|
+
注:MUST NOT 的 Verify 同样依赖 backtick 符号 + apply 的「all-of」grep;
|
|
188
|
+
避免用「不应该 / 不要」+ 抽象描述这种 grep 无法验证的写法。
|
|
189
|
+
-->
|
|
190
|
+
|
|
191
|
+
### 集成检查点 [必填]
|
|
192
|
+
|
|
193
|
+
<!-- 指引: 假设目标是已有项目(不是从零开始的 demo),列出集成时需要确认的事项:
|
|
194
|
+
— 是否与项目中已有的 SDK 初始化冲突
|
|
195
|
+
— 是否需要合并到已有的生命周期方法中(而非新建)
|
|
196
|
+
— 是否依赖其他 slice 的前置状态(引用具体 slice ID)
|
|
197
|
+
— 对已有代码的侵入性(新增文件 vs 修改已有文件)
|
|
198
|
+
-->
|
|
199
|
+
|
|
200
|
+
## 验证矩阵 [必填]
|
|
201
|
+
|
|
202
|
+
<!-- 指引: 平台 slice 的统一验收出口。AI 生成代码后或人工 review 时,自上而下跑一遍就能完成验收。
|
|
203
|
+
|
|
204
|
+
4 个层级:
|
|
205
|
+
— 1. 编译级:能编译、依赖齐全(CI / AI 自动)
|
|
206
|
+
— 2. 静态规则级:纯静态扫描 / grep 可查(CI / AI 自动)
|
|
207
|
+
— 3. 运行时级:跑起来通过日志锚点可观察(AI 半自动 / 人工)
|
|
208
|
+
— 4. 业务行为级:人眼看 UI / 硬件状态(人工)
|
|
209
|
+
|
|
210
|
+
要求:
|
|
211
|
+
— 每条「代码生成约束」的 MUST / MUST NOT 都要在矩阵中有对应行(层级 1 或 2)
|
|
212
|
+
— 至少 1 条层级 3 的检查,证明代码真能跑
|
|
213
|
+
— 至少 1 条层级 4 的检查,证明业务语义正确(通常是 ALWAYS / NEVER 的运行时体现)
|
|
214
|
+
-->
|
|
215
|
+
|
|
216
|
+
| 层级 | 检查项 | 验证手段 | 预期结果 |
|
|
217
|
+
|------|--------|----------|---------|
|
|
218
|
+
| 1. 编译级 | {模块导入齐全} | {xcodebuild build / ./gradlew assembleDebug / tsc --noEmit} | exit code 0 |
|
|
219
|
+
| 1. 编译级 | {最低版本达标} | {查项目 deployment target} | ≥ {版本} |
|
|
220
|
+
| 2. 静态规则级 | {对应 MUST 规则 1} | {grep 正则} | {匹配条件} |
|
|
221
|
+
| 2. 静态规则级 | {对应 MUST NOT 规则 1} | {grep 正则} | {不应匹配} |
|
|
222
|
+
| 3. 运行时级 | {关键路径日志} | {触发操作 → 查日志} | {日志内容} |
|
|
223
|
+
| 4. 业务行为级 | {业务语义观察} | {操作步骤} | {UI / 硬件状态} |
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## DoD 自查(提交前删除此 section)
|
|
228
|
+
|
|
229
|
+
提交前对照 `slice-spec.md` 第五节「平台实现文件 DoD」逐条打勾。任何一项不满足 = 未完成。
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
> **填写范例**:请参考 [`slices/live/ios/coguest-apply.md`](slices/live/ios/coguest-apply.md) — 这是目前最完整的平台 slice 实现,包含所有 section 的真实内容。
|