3.0 KiB
3.0 KiB
AGENTS.md
Project Purpose
This repository is a plugin-based C++ video analytics system for RK3588. Development should follow the existing DAG + plugin architecture instead of adding feature-specific shortcuts into the main process.
Build and Verification Constraints
- This repository does not use local cross-compilation in the current workflow.
- Final build, link, runtime verification, and hardware-dependent testing must be executed on the RK3588 target device.
- Do not assume the current workstation can build or run RKNN, RGA, MPP, ZLMediaKit, or full media pipelines.
- Do not run full project builds by default on the current workstation unless the task explicitly requires it and the needed dependencies are confirmed to exist locally.
- Prefer static inspection and targeted platform-independent tests over speculative local builds.
- If a task depends on RK3588-only capabilities, state clearly what was reviewed locally and what still must be verified on the device.
- Do not claim that a hardware-related change is verified unless it was actually built and exercised on RK3588.
Local Development Expectations
- Local work should focus on architecture, plugin boundaries, data structures, configuration, documentation, code review, and platform-independent tests.
- Local build attempts are allowed only when they are clearly useful and do not depend on missing RK3588 runtime libraries or device-only features.
- If local compilation is attempted, keep it scoped to the smallest useful target.
- Do not distort production code to satisfy the local machine environment.
- Do not remove or weaken RK3588-specific paths just because they are not runnable on the current workstation.
Plugin and Architecture Rules
- New analytics capabilities should be implemented as plugins when they represent pipeline nodes.
- Reuse existing shared frame metadata and plugin interfaces where possible.
- If a new feature introduces a new semantic output type, define an explicit data model instead of encoding it into unrelated existing fields.
- Keep node responsibilities narrow. Detection, tracking, event reasoning, visualization, and alarming should remain separated unless there is a strong architectural reason not to.
Testing and Validation Rules
- Prefer targeted unit tests for platform-independent logic.
- For RK3588-only features, document a device-side validation checklist instead of pretending local validation is sufficient.
- When a test or build cannot run locally because of platform constraints, say so explicitly in the final report.
- Separate validation into two buckets:
- local code-level validation
- RK3588 device-side validation
- Do not merge those two buckets into a single vague statement such as "verified" or "tested" without saying where verification happened.
Communication Rules for Agents
- Say what is known from code inspection versus what still requires RK3588 device verification.
- Favor root-cause fixes over environment-specific patches.
- Keep recommendations aligned with the shortest path that preserves the architecture.