| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 1 | 9 | 0% |
| Commands | 0 | 0 | 2 | 0% |
| Section tags | 0 | 1 | 3 | 0% |
What each file covers
Sections
0 shared · 1 only in A · 9 only in B- − ClickHouse Conventions
- + AGENTS.md
- + Cursor Cloud specific instructions
- + Build
- + AI Boundaries
- + Always
- + Ask First
- + Never
- + Developer-local agent config
- + Novu Distribution
Commands
0 shared · 0 only in A · 2 only in B- + pnpm setup:agent
- + pnpm build
Section tags
0 shared · 1 only in A · 3 only in B- − code-style
- + build
- + do-not
- + agent-behaviour
Line diff
novuhq/novu · .cursor/rules/clickhouse.mdc
@@ −1 @@
1---
2description: Rules for working with ClickHouse analytics and trace logging
3globs:
4 - "**/analytic-logs/**"
5 - "**/clickhouse-migrations/**"
6alwaysApply: false
7---
8
9### ClickHouse Conventions
10
11**Service layer**
12- Use `ClickHouseService` for single queries/inserts and `ClickHouseBatchService` for high-throughput writes.
13- Both are registered as custom providers (`clickHouseService`, `clickHouseBatchService`) in each app's `shared.module.ts`.
14- Never instantiate ClickHouse clients directly — always inject the providers.
15
16**Repositories**
17- All ClickHouse repositories extend `LogRepository` in `libs/application-generic/src/services/analytic-logs/`.
18- Each repository has a corresponding schema file defining the table columns and types.
19- Always include `_environmentId` and `_organizationId` in queries for tenant isolation (same pattern as MongoDB DAL).
20
21**Migrations**
22- ClickHouse migrations are numbered `.sql` files in `apps/api/migrations/clickhouse-migrations/`.
23- Run locally with `cd apps/api && pnpm run clickhouse:migrate:local`.
24- New migrations must be additive — never alter or drop columns that existing queries depend on. Use temp tables and exchange patterns for schema refactors (see migration 4/5 for the established pattern).
25
26**Feature flags**
27- Gate new ClickHouse-dependent behavior behind a feature flag (see `packages/shared/src/types/feature-flags.ts` for existing flags like `IS_CLICKHOUSE_BATCHING_ENABLED`).
28
novuhq/novu · AGENTS.md
@@ +1 @@
1# AGENTS.md
2
3## Cursor Cloud specific instructions
4
5`pnpm setup:agent` has already been run. Do not run it again. The environment is fully configured: dependencies installed, enterprise packages linked, project built, `.env` files in place, Docker services running, and a default user/org seeded. The dashboard auto signs in the pre-seeded agent user when opened in the browser (no manual login unless auto sign-in fails).
6
7## Build
8
9Run `pnpm build` after changes to `packages/` or `enterprise/`. Direct changes to `apps/` do not require a rebuild.
10
11## AI Boundaries
12
13### Always
14- Work within: `apps/api`, `apps/dashboard`, `apps/worker`, `apps/ws`
15- Use shared packages: `packages/shared`, `packages/framework`, `packages/js`, `packages/react`
16- Follow `libs/dal` for data access, `libs/application-generic` for business logic
17
18### Ask First
19- Before creating new UI components not in `apps/dashboard/src/components/`
20- Before adding npm dependencies
21- Before modifying MongoDB models, ClickHouse table definitions, or anything in `enterprise/` or `packages/providers/`
22
23### Never
24- Inactive apps — do not touch, unless monorepo wide refactor: `apps/webhook`
25- Auto-generated — never edit: `libs/internal-sdk`
26- UI: reuse existing Radix/shadcn components only; do not copy patterns from `playground/` into production code
27- If doing a monorepo wide refactor, you can touch the read only, but only when necessary.
28
29
30## Developer-local agent config
31
32If a **`.agents-local/`** directory exists in your working copy, read **`.agents-local/README.md`** first for personal, git-ignored agent configuration, skills and rules. Absence of the directory is normal.
33
34## Novu Distribution
35Novu is distributed in 3 modes, Community Edition, Enterprise Cloud Edition, and On-Prem Enterprise Edition.
36
37When making changes targeted to the Enterprise distribution, we need to make sure that the changes are not breaking the Community edition, and are properly gated behind a flag, or the novu enterpise env variables. Similarly when some changes are only targeting the Cloud, self-hosted on prem should not be affected.
38
39<!-- Infrastructure & services: see .cursor/rules/infrastructure.mdc -->
40<!-- Dependency graph: see .cursor/rules/dependency-graph.mdc -->
41<!-- Testing: see .cursor/rules/testing.mdc -->
42<!-- PR format: see .cursor/rules/pullrequest.mdc -->
43<!-- Enterprise submodule: see .cursor/skills/enterprise-submodule/SKILL.md -->
44
@@ −1 +1 @@
1−---
2−description: Rules for working with ClickHouse analytics and trace logging
3−globs:
4− - "**/analytic-logs/**"
5− - "**/clickhouse-migrations/**"
6−alwaysApply: false
7−---
1+# AGENTS.md
82
9−### ClickHouse Conventions
3+## Cursor Cloud specific instructions
104
11−**Service layer**
12−- Use `ClickHouseService` for single queries/inserts and `ClickHouseBatchService` for high-throughput writes.
13−- Both are registered as custom providers (`clickHouseService`, `clickHouseBatchService`) in each app's `shared.module.ts`.
14−- Never instantiate ClickHouse clients directly — always inject the providers.
5+`pnpm setup:agent` has already been run. Do not run it again. The environment is fully configured: dependencies installed, enterprise packages linked, project built, `.env` files in place, Docker services running, and a default user/org seeded. The dashboard auto signs in the pre-seeded agent user when opened in the browser (no manual login unless auto sign-in fails).
156
16−**Repositories**
17−- All ClickHouse repositories extend `LogRepository` in `libs/application-generic/src/services/analytic-logs/`.
18−- Each repository has a corresponding schema file defining the table columns and types.
19−- Always include `_environmentId` and `_organizationId` in queries for tenant isolation (same pattern as MongoDB DAL).
7+## Build
208
21−**Migrations**
22−- ClickHouse migrations are numbered `.sql` files in `apps/api/migrations/clickhouse-migrations/`.
23−- Run locally with `cd apps/api && pnpm run clickhouse:migrate:local`.
24−- New migrations must be additive — never alter or drop columns that existing queries depend on. Use temp tables and exchange patterns for schema refactors (see migration 4/5 for the established pattern).
9+Run `pnpm build` after changes to `packages/` or `enterprise/`. Direct changes to `apps/` do not require a rebuild.
2510
26−**Feature flags**
27−- Gate new ClickHouse-dependent behavior behind a feature flag (see `packages/shared/src/types/feature-flags.ts` for existing flags like `IS_CLICKHOUSE_BATCHING_ENABLED`).
11+## AI Boundaries
12+
13+### Always
14+- Work within: `apps/api`, `apps/dashboard`, `apps/worker`, `apps/ws`
15+- Use shared packages: `packages/shared`, `packages/framework`, `packages/js`, `packages/react`
16+- Follow `libs/dal` for data access, `libs/application-generic` for business logic
17+
18+### Ask First
19+- Before creating new UI components not in `apps/dashboard/src/components/`
20+- Before adding npm dependencies
21+- Before modifying MongoDB models, ClickHouse table definitions, or anything in `enterprise/` or `packages/providers/`
22+
23+### Never
24+- Inactive apps — do not touch, unless monorepo wide refactor: `apps/webhook`
25+- Auto-generated — never edit: `libs/internal-sdk`
26+- UI: reuse existing Radix/shadcn components only; do not copy patterns from `playground/` into production code
27+- If doing a monorepo wide refactor, you can touch the read only, but only when necessary.
28+
29+
30+## Developer-local agent config
31+
32+If a **`.agents-local/`** directory exists in your working copy, read **`.agents-local/README.md`** first for personal, git-ignored agent configuration, skills and rules. Absence of the directory is normal.
33+
34+## Novu Distribution
35+Novu is distributed in 3 modes, Community Edition, Enterprise Cloud Edition, and On-Prem Enterprise Edition.
36+
37+When making changes targeted to the Enterprise distribution, we need to make sure that the changes are not breaking the Community edition, and are properly gated behind a flag, or the novu enterpise env variables. Similarly when some changes are only targeting the Cloud, self-hosted on prem should not be affected.
38+
39+<!-- Infrastructure & services: see .cursor/rules/infrastructure.mdc -->
40+<!-- Dependency graph: see .cursor/rules/dependency-graph.mdc -->
41+<!-- Testing: see .cursor/rules/testing.mdc -->
42+<!-- PR format: see .cursor/rules/pullrequest.mdc -->
43+<!-- Enterprise submodule: see .cursor/skills/enterprise-submodule/SKILL.md -->
2844
