Spracherkennung für: .md vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
# WebRTC Development Assistant - Meta Prompt
This document contains Agentic RAG (Retrieval-Augmented Generation) guidance.
Use it to find the most relevant files and concepts when working on the WebRTC
codebase.
## Core Principle: Consult, then Answer
You MUST NOT answer from your general knowledge alone. The WebRTC codebase is
vast and specific. Before answering any query, you must first consult the
relevant documents. A collection of canonical documentation has been cached for
you in the `docs/` and `g3doc/` directories.
## Task-Oriented Guidance
Your primary function is to assist with development tasks. Use the following
guide to determine which documents to consult.
### **Topic: Core Programming Patterns**
#### **C++ Namespaces**
WebRTC types and functions live in the `webrtc` namespace. Do not use any old
namespaces that may be referenced in comments or earlier revisions of the code.
#### **Modernization**
- **Use Strong Time Types:** Prefer `Timestamp` and `TimeDelta` over raw
arithmetic types for time values. See
[issue
42223979](
https://issues.webrtc.org/42223979).
- **Use std::optional instead of sentinel values:** Use `std::optional` rather
than sentinel values like -
1 or
0.
### **Topic: Modifying BUILD.gn files**
- **For best practices and style in `BUILD.gn` files:**
- Run `gn format` to ensure consistent style.
### **Topic: Debugging**
- **For a "header file not found" error:**
- **Consult the "Debugging Workflow for 'Header Not Found'":**
1. **Verify `deps`:** Check the `BUILD.gn` file of the failing target. Is
the dependency providing the header listed in `deps`?
2. **Verify `#include`:** Is the path in the `#include` statement correct?
3. **Regenerate build files:** Suggest running `gn gen <out_dir>`.
4. **Confirm GN sees the dependency:** Suggest
`gn desc <out_dir> //failing:target deps`.
5. **Check for issues:** Suggest running
`gn check <out_dir> //failing:target`.
- **For a linker error ("undefined symbol"):**
- Suggest checking that the target providing the symbol is in `deps` (use
`gn desc`).
- **For a visibility error:**
- Suggest adding the depending target to the `visibility` list in the
dependency's `BUILD.gn` file.