Skill Consultation Index
Use this page as a compact lookup table for future Codex skills or developer questions. It is intentionally direct: question, owner, and what to read first.
Start Here by Question
| Question | First owner | Read first |
|---|---|---|
| How does an event reach ClickHouse? | gtm-proxy and gtm-fabric | Tracking Flow, gtm-proxy, gtm-fabric |
| How is a GTM created? | node-api | node-api, GTM Setup Flow |
| Why is tracking async but preview sync? | gtm-proxy | Tracking Flow, gateway + gtm-proxy |
| Where are users and workspaces handled? | node-api | Business Logic, node-api |
| Where is Angular auth state? | ui | ui, ui-angular |
| Who owns dynamic SSL? | gtm-proxy, gtm-fabric, node-api | gtm-proxy, gtm-fabric |
| Where is custom loader behavior? | gtm-proxy | Tagging and Obfuscation, gtm-proxy |
| Where are CRM contacts created? | node-api and gtm-fabric | CRM Capture Flow, Business Logic |
| Where are offline conversions sent? | node-api | Offline Conversions Flow, node-api |
| Where does the inspector create rules? | crimoo-inspector, ui, node-api | crimoo-inspector, CRM Capture Flow |
| Which old edge service should I ignore for production tagging? | gateway | Project Map, gateway |
Change Triage
Before changing code, classify the request:
| Change type | Likely files | Risk |
|---|---|---|
| UI-only copy/layout/state | ui/src/app | Low to medium |
| UI endpoint contract | ui, node-api | Medium |
| Entity/schema change | node-api/src/core/entities, migrations | High |
| GTM lifecycle | node-api, gtm-fabric, maybe gtm-proxy | High |
| Public tracking request behavior | gtm-proxy, gtm-fabric | High |
| Certificate behavior | gtm-proxy, gtm-fabric, node-api | High |
| Analytics storage/query | gtm-fabric, node-api, ClickHouse | High |
| CRM capture rules | ui, node-api, gtm-fabric, crimoo-inspector | High |
| Billing | node-api, Stripe config | High |
| Docs only | crimoo-internal-docs or crimoo-docs | Low |
Debugging Lookup
| Symptom | Check |
|---|---|
| Dashboard cannot call API | gtm-proxy routing for api.crimoo.com, CORS whitelist, node-api health, cookies. |
| Tracking request returns 404 | Host route missing in proxy cache, domain inactive, direct IP request, bot/scanner handling. |
| Tracking request returns 503 | Route exists but inactive, loader requested without enabled custom loader, backend unavailable. |
| GTM preview does not work | Preview headers/cookies/query params, route type, sync proxy target, container preview port. |
| Events do not appear in analytics | Pub/Sub publish, fabric subscription, container forward status, parser chain, ClickHouse batch flush. |
| Custom domain SSL fails | DNS verification, ACME challenge, certificate persisted in node-api, proxy cert fetch/cache, SNI host. |
| CRM contact missing | Identity cookies, capture config, rule match, fabric contact batch, node-api batch endpoint. |
| Offline conversion not delivered | Trigger config enabled, credential valid, event generated, delivery adapter logs, retry status. |
| Copilot iframe blocks page clicks | CrimooCopilot-front click passthrough and loader postMessage handling. |
What to Read Before Touching Each Project
| Project | Read first |
|---|---|
ui | ui Project, ui-angular Service |
node-api | node-api Project, node-api Service |
gtm-proxy | gtm-proxy Project, gateway + gtm-proxy Service |
gtm-fabric | gtm-fabric Project, gtm-fabric Service |
crimoo-inspector | crimoo-inspector Project, crimoo-inspector Service |
CrimooCopilot-Backend | CrimooCopilot Backend Project, Copilot Session Flow |
CrimooCopilot-front | CrimooCopilot Front Project |
gateway, agent, dudamel | Project Map and project-specific page before assuming production relevance. |
Future Skill Prompt Pattern
When asking a skill or Codex about Crimoo, include:
Use crimoo-internal-docs/docs/learning/skill-consultation-index.md first.
Then inspect the project page for the affected folder.
Preserve current production boundaries: node-api is control plane, gtm-proxy is public edge, gtm-fabric is stateless data-plane worker.