Files
yovision/docs/00-ai-start-here.md
QiuSW 4be2386421
Harness governance / validate (push) Has been cancelled
Harness governance / validate (pull_request) Has been cancelled
feat: deliver Sense audits to Bell (T-016)
2026-08-11 00:24:32 +08:00

6.4 KiB
Raw Permalink Blame History

AI 开发入口

YoVision 的固定开工入口。硬性编码规则见 05-coding-rules.md。

一句话定位

YoVision 将 IP 摄像头和后续异构传感器统一接入,通过推理、规则、事件留证与 ack 升级链,把“看到异常”变成“有人确认处理”的闭环。

MVP 以默认 16 路跑通一个场景的端到端闭环;架构、数据和 UI 从第一版兼容单站点 128 路横向扩展,但不承诺一台服务器或一块 GPU 承载 128 路。

每轮开工

  1. 确认位于仓库根目录并读取 ../AGENTS.md。
  2. 读取 agent-context.json、05-coding-rules.md 和 current-state.md。
  3. 从 Gitea 读取当前分配的 Issue,并读取其映射的 docs/tasks/T-<编号>.md。
  4. 记录默认分支头为 context_ref,按任务类型读取 agent-context.json.routes。
  5. 查看 git log --oneline -5 与 git status --short,确认最近变更和工作区归属。
  6. 运行 ./init.ps1;非 Windows 环境运行 ./init.sh。
  7. 基线失败时先记录并修复基线,不在坏的起点上叠功能。
  8. 仅在 Issue、任务文件、claim/工作分支和 write_paths 全部一致后开始修改。

没有已分配 Issue 时,不自行领取。由 dispatcher 按 gitea-collaboration.md 串行检查依赖和写路径后分配。

首次完整上下文

首次接入、上下文清单缺失或校验失败时,依次完整读取:

  1. 01-vision.md
  2. 02-requirements.md
  3. 03-tech-stack.md
  4. 04-architecture.md
  5. 05-coding-rules.md
  6. 06-tasks.md
  7. tasks/README.md
  8. current-state.md

涉及 UI 时再读 07-user-stories.md、08-interaction-checklist.md、routes.md 和关联的 docs/design/ 原型。

需要追溯“为什么这样决定”时读取 docs/raw/ 对应章节;不要把历史参考项目当作当前事实。

当前阶段

当前为 M0 指定型号实机准入、M1 Sense 五路混合源集成和 M2 本地 16 路软件基线均已完成,M3 已建立 Bell 不可变事件存储及 Sense→Bell 全局审计 relay 基础。后续本地开发统一使用已准入的一台海康样机,多路软件闭环使用独立合成 RTSP 源补足;真实多设备证据延后到客户/借用/租赁条件具备时执行。客户网络尚未提供,T-013 WireGuard 继续后置,不阻塞 Brain/Bell 本地事件链开发。

优先路径:

  1. M0:已用一台真实样机完成首期指定“型号 + 硬件版本 + 固件”ONVIF/RTSP 准入;结论不外推为多品牌兼容,真实断网恢复证据按负责人豁免留痕。
  2. M1:只在 Sense/ 建立 MediaMTX 生产接入骨架,以 1 路准入实机 + 至少 4 路独立合成源完成五路自动建 path、探活和断线重建。
  3. M2:Control API、多租户投影、调和 fencing、孤儿安全闸和本地 16 路批量收敛/30 分钟稳定基线已完成;WireGuard 等客户网络条件具备后补验。
  4. M3:Brain + Bell 起步,默认 16 路端到端事件、预警、ack 与误报反馈。
  5. M4–M5:64/128 路分片、管理端和第二/第三场景包。

任务领取与状态

  • Gitea Issue 是实时状态权威,状态标签为 status/waiting、status/todo、status/doing、status/blocked、status/review、status/done;waiting 表示尚未领取且因依赖或外部条件不可领取。
  • 任务文件保存不可变规格、依赖、写路径、验证门禁和执行证据。
  • 一个 agent 同时最多一个活跃任务;一个任务同时只有一个写入者。
  • dispatcher 创建 claims/T-<编号> 和 agent/<agent-id>/T-<编号> 后,worker 必须读回确认。
  • 任务完成前在任务文件记录实际命令和结果;PR 合并后再关闭 Issue。
  • Gitea 断连时可继续已确认归属的本地工作,不可领取、释放或抢占任务。

完整协议见 gitea-collaboration.md。

硬边界

  • site.max_video_channels 默认 16、上限 128;不得把 16 写成业务上限。
  • 128 路靠媒体分片和推理 worker 横向扩展,容量必须分别验收带宽、解码、推理和证据存储。
  • M0 的 MiBeeNvr 仅为隔离实验室测试台;M1 生产数据面必须使用 MediaMTX,不把完整 MiBeeNvr 当生产基线。
  • 事件与预警是独立实体;Brain 产出事件,Bell 校验、存储并派发预警。
  • 人脸识别默认关闭且按租户授权;不可用或未命中时必须降级,不能漏报。
  • 事件契约 v0.1 已冻结,字段变更必须走版本升级,不得私加字段。
  • _reference/ 只读且不入 Git;禁止提交真实视频、人脸、凭据或客户数据。

任务类型路由

  • Sense/设备/媒体:02-requirements.md → 03-tech-stack.md → 04-architecture.md → api.md。
  • Brain/推理/契约:上述文档 + raw/07-事件契约比对-silver_pose.md + raw/contracts/。
  • Bell/规则/预警/租户:02-requirements.md → 04-architecture.md → api.md → 用户故事和交互清单。
  • UI:需求 → 用户故事 → 交互清单 → routes → architecture → 关联原型。
  • Gitea/任务治理:tasks/README.md → gitea-collaboration.md → clean-state-checklist.md。

当前验证入口

python scripts/validate_agent_context.py
python -m unittest discover -s tests -p "test_*.py"
python scripts/validate_harness_governance.py
go -C Sense generate ./internal/mtx ./internal/controlapi
go -C Sense test ./...
go -C Sense vet ./...
go -C Sense build ./...
go -C Bell test ./...
go -C Bell vet ./...
go -C Bell build ./...

日常优先运行根目录 ./init.ps1 或 ./init.sh,它会执行上述治理、生成、测试、静态检查和构建门禁。Sense 本地启动为 go -C Sense run ./cmd/sense-api;默认只监听回环地址,具体配置、MediaMTX 版本与校验方法见 03-tech-stack.md 和 ../Sense/README.md。

本机 16 路软件容量基线使用 ./Sense/scripts/t014-capacity.ps1 -PgRoot D:\pgsql17;正式证据必须使用默认 30 分钟窗口,且只证明固定低码率合成负载。结果与限制见 research/sense-16-stream-capacity.md。