Skip to content
Merged
67 changes: 67 additions & 0 deletions .cursor/rules/conventional-commits.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
description: "Enforces conventional commit message format for better version control and changelog generation"
globs: ["**/*"]
---

# Conventional Commit Messages

Use the Conventional Commit Messages specification to generate commit messages.

## Commit Message Structure

```
<type>[optional scope]: <description>

[optional body]

[optional footer(s)]
```

## Commit Types

- `fix`: Patches a bug in your codebase (correlates with PATCH in Semantic Versioning)
- `feat`: Introduces a new feature to the codebase (correlates with MINOR in Semantic Versioning)
- `BREAKING CHANGE`: Introduces a breaking API change (correlates with MAJOR in Semantic Versioning)
- Other allowed types: `build:`, `chore:`, `ci:`, `docs:`, `style:`, `refactor:`, `perf:`, `test:`

## Specification Details

1. Commits MUST be prefixed with a type, followed by an OPTIONAL scope, OPTIONAL !, and REQUIRED terminal colon and space
2. The type `feat` MUST be used when adding a new feature
3. The type `fix` MUST be used when fixing a bug
4. A scope MAY be provided after a type, surrounded by parenthesis (e.g., `fix(parser):`)
5. A description MUST immediately follow the colon and space
6. A longer commit body MAY be provided after the short description
7. One or more footers MAY be provided one blank line after the body
8. Breaking changes MUST be indicated in the type/scope prefix or as a footer
9. If included as a footer, a breaking change MUST use: `BREAKING CHANGE: description`
10. If included in the type/scope prefix, breaking changes MUST use `!` before the `:`
11. Types other than `feat` and `fix` MAY be used
12. Information MUST NOT be treated as case sensitive, except for `BREAKING CHANGE`
13. `BREAKING-CHANGE` MUST be synonymous with `BREAKING CHANGE`

## Examples

```
feat: add new authentication system

This commit adds a new authentication system using JWT tokens.
The system supports both local and OAuth authentication methods.

BREAKING CHANGE: Authentication endpoints have been moved to /api/v2/auth
```

```
fix(parser): handle empty input gracefully

Previously, the parser would throw an error when given empty input.
This commit adds proper handling for empty input cases.
```

```
chore: update dependencies

- Update React to v18.2.0
- Update TypeScript to v4.9.5
- Update Jest to v29.5.0
```
33 changes: 33 additions & 0 deletions .cursor/rules/docker-configuration.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
description: "Provides guidelines for Docker service configuration and setup"
globs: ["docker-compose.yml", "Dockerfile*", "volumes/**/*"]
---

# Docker Configuration Guide

## Service Configuration
The [docker-compose.yml](mdc:docker-compose.yml) file defines all service configurations and their relationships. Key aspects include:
- Service dependencies
- Volume mounts
- Network configuration
- Environment variables
- Port mappings

## Custom Images
Two custom Docker images are used:
1. [Dockerfile.n8n](mdc:Dockerfile.n8n) - Extends official n8n image with custom configurations
2. [Dockerfile.temporal](mdc:Dockerfile.temporal) - Extends official Temporal auto-setup image

## Data Persistence
All service data is persisted in Docker volumes mapped to the local `volumes/` directory:
- n8n data: `./volumes/n8n_data`
- OpenSearch: `./volumes/opensearch-data`
- PostgreSQL: `./volumes/postgresql-data`

## Network Configuration
Services communicate over an internal Docker network with the following exposed ports:
- n8n: 5678 (HTTP)
- Temporal: 7233 (gRPC)
- Temporal UI: 8080 (HTTP)
- PostgreSQL: 5432
- OpenSearch: 9200 (HTTP)
6 changes: 6 additions & 0 deletions .cursor/rules/no-apologies-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Prohibits the use of apologies in communication"
globs: ["**/*"]
---

- Never use apologies
6 changes: 6 additions & 0 deletions .cursor/rules/no-summaries-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Prohibits summarizing changes made in communication"
globs: ["**/*"]
---

- Don't summarize changes made
6 changes: 6 additions & 0 deletions .cursor/rules/no-unnecessary-confirmations-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Prohibits asking for confirmation of information already provided in context"
globs: ["**/*"]
---

- Don't ask for confirmation of information already provided in the context
6 changes: 6 additions & 0 deletions .cursor/rules/no-unnecessary-updates-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Prohibits suggesting updates or changes when no modifications are needed"
globs: ["**/*"]
---

- Don't suggest updates or changes to files when there are no actual modifications needed
6 changes: 6 additions & 0 deletions .cursor/rules/preserve-existing-code-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Ensures preservation of existing code and functionality during modifications"
globs: ["**/*"]
---

- Don't remove unrelated code or functionalities. Pay attention to preserving existing structures.
28 changes: 28 additions & 0 deletions .cursor/rules/project-structure.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
description: "Documents the project structure and service architecture"
globs: ["**/*"]
---

# Project Structure Guide

This repository contains a Docker Compose setup for running n8n (workflow automation tool) and Temporal (workflow orchestration platform) services together.

## Key Files
- [docker-compose.yml](mdc:docker-compose.yml) - Main service orchestration configuration
- [Dockerfile.n8n](mdc:Dockerfile.n8n) - Custom n8n image configuration
- [Dockerfile.temporal](mdc:Dockerfile.temporal) - Custom Temporal image configuration

## Important Directories
- `volumes/` - Contains persistent data for all services:
- `n8n_data/` - n8n workflows and data
- `opensearch-data/` - OpenSearch data for Temporal
- `postgresql-data/` - PostgreSQL database for Temporal
- `scripts/` - Contains utility scripts for setup and maintenance

## Service Architecture
The project consists of several interconnected services:
1. n8n (Port 5678) - Workflow automation tool
2. Temporal Server (Port 7233) - Workflow orchestration engine
3. Temporal UI (Port 8080) - Web interface for Temporal
4. PostgreSQL (Port 5432) - Database for Temporal
5. OpenSearch (Port 9200) - Search engine for Temporal visibility features
31 changes: 31 additions & 0 deletions .cursor/rules/service-configuration.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
description: "Provides service setup, health verification, and troubleshooting guidelines"
globs: ["scripts/*.sh", "docker-compose.yml", ".env*"]
---

# Service Configuration Guide

## Setup Instructions
1. Run [scripts/setup_volumes.sh](mdc:scripts/setup_volumes.sh) to create required volume directories
2. Create `.env` file from `.env.example` for environment configuration
3. Use `docker compose up -d` to start all services

## Service Health Verification
The [scripts/check_services.sh](mdc:scripts/check_services.sh) script verifies accessibility of:
- n8n health endpoint (http://localhost:5678/healthz)
- Temporal UI (http://localhost:8080)
- OpenSearch API (http://localhost:9200)
- Temporal server gRPC (localhost:7233)
- PostgreSQL database (localhost:5432)

## Service Access
- n8n UI: http://localhost:5678
- Temporal UI: http://localhost:8080
- OpenSearch API: http://localhost:9200

## Troubleshooting
1. Check container logs using `docker logs`
2. Verify port availability
3. Ensure sufficient Docker resources
4. Run setup script for volume mount issues
5. Check service health endpoints
6 changes: 6 additions & 0 deletions .cursor/rules/single-chunk-edits-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Requires providing all edits in a single chunk instead of multiple steps"
globs: ["**/*"]
---

- Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file
6 changes: 6 additions & 0 deletions .cursor/rules/verify-information-rule.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
description: "Requires verification of information before presentation"
globs: ["**/*"]
---

- Always verify information before presenting it. Do not make assumptions or speculate without clear evidence.
13 changes: 11 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,20 @@ yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# IDE files and directories
.idea/
.vscode/

*.swp
*.swo
.DS_Store

# mcp executable
mcp
mcp-config.json
.cursor/
.cursor/*
!.cursor/rules/**


# JetBrains IDE
.idea/
Expand Down Expand Up @@ -110,7 +120,6 @@ dist

# vuepress v2.x temp and cache directory
.temp
.cache

# vitepress build output
**/.vitepress/dist
Expand Down
Loading