Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 31 additions & 8 deletions .cursor/rules/sdk/commit-and-pr-format.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: Commit message and PR title format requirements
globs:
- packages/qvac-sdk/**
- packages/qvac-docs/**
- packages/docs/**
- packages/qvac-lib-rag/**
- packages/qvac-lib-logging/**
- packages/qvac-lib-error-base/**
Expand All @@ -14,11 +14,13 @@ alwaysApply: false
## When suggesting or creating commits

**ALWAYS use this format:**

```
prefix[tags]?: subject
```

**Allowed prefixes:**

- `feat` - New features or capabilities
- `fix` - Bug fixes
- `doc` - Documentation changes
Expand All @@ -27,13 +29,15 @@ prefix[tags]?: subject
- `infra` - CI/CD, tooling, infrastructure

**Allowed tags (optional, cannot be combined):**

- `[api]` - API changes (non-breaking)
- `[bc]` - Breaking changes (including breaking API changes)
- `[mod]` - Model changes (requires Models section with Added/Removed subsections)
- `[notask]` - (PRs) allows omitting the ticket in the title
- `[skiplog]` - skip changelog generation for the PR

**Examples:**

- `feat: add RAG support for LanceDB`
- `fix[api]: fix completion stream error handling`
- `doc: update installation instructions`
Expand All @@ -45,6 +49,7 @@ prefix[tags]?: subject
## When suggesting or creating PRs

**ALWAYS use this format for PR titles:**

```
TICKET prefix[tags]: subject
```
Expand All @@ -54,6 +59,7 @@ Where TICKET follows the pattern: `PROJECT-123` (e.g., `QVAC-123`, `SDK-456`)
Use `[notask]` when omitting the ticket: `prefix[notask]: subject`.

**Examples:**

- `QVAC-123 feat: add RAG support for LanceDB`
- `QVAC-456 fix[api]: fix completion stream error handling`
- `QVAC-789 doc: update installation instructions`
Expand All @@ -63,37 +69,47 @@ Use `[notask]` when omitting the ticket: `prefix[notask]: subject`.
## Required PR Body Content

**When using `[bc]` tag:**

- MUST include BEFORE/AFTER code examples in the PR body
- Use either format:
1. Explicit markers:
```

````
**BEFORE:**
```typescript
// old code
```
````

**AFTER:**

```typescript
// new code
```

```

```

2. Inline comments:

````
```typescript
// old
const model = await loadModel("model-path");

// new
const modelId = await loadModel("model-path", { modelType: "llm" });
```
````

**When using `[api]` tag (non-breaking):**

- MUST include at least one fenced code block showing the new API usage
- Example:

````
## New API

```typescript
// New completion API with streaming support
for await (const token of completion({
Expand All @@ -106,15 +122,17 @@ Use `[notask]` when omitting the ticket: `prefix[notask]: subject`.
````

**When using `[mod]` tag:**

- MUST include a Models section with at least one subsection: Added models or Removed models
- Each subsection MUST contain a fenced code block listing model constant names (one per line)
- Delete empty subsections instead of using `(none)`
- Example:

````
## 📦 Models

### Added models

```
WHISPER_LARGE_V3_Q5_K
LLAMA_3_8B_INST_Q4_K_M
Expand All @@ -136,29 +154,34 @@ Use `[notask]` when omitting the ticket: `prefix[notask]: subject`.
## PR Description Quality Guidelines

**General principles:**

- Be concise - prefer bullet points over prose
- Focus on "why" not "what" - the diff shows what changed
- Delete template sections that don't apply
- Avoid vague statements like "improved performance" without specifics

**"What problem does this PR solve?"**

- Describe the user-facing issue, bug, or need - NOT implementation details
- Good: "Users couldn't load models larger than 4GB on Windows"
- Bad: "The buffer allocation in loadModel was incorrect"

**"How does it solve it?"**

- High-level approach, not line-by-line changes
- Mention key design decisions if non-obvious
- Good: "Switch to memory-mapped file loading with chunked reads"
- Bad: "Changed line 45 to use mmap instead of readFile"

**"How was it tested?"**

- Actual test scenarios, not just "I ran the tests"
- Include: OS, model size, edge cases if relevant
- Good: "Tested 8GB model on Windows 11, memory stayed under 1GB"
- Bad: "Unit tests pass"

**Avoid:**

- Implementation details obvious from the diff
- Repeating commit messages verbatim
- Unnecessary context the reviewer doesn't need
Expand Down
5 changes: 3 additions & 2 deletions .cursor/rules/sdk/sdk-pod-packages.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The following packages belong to the SDK pod:

- `packages/qvac-sdk`
- `packages/qvac-cli`
- `packages/qvac-docs`
- `packages/docs`
- `packages/qvac-lib-rag`
- `packages/qvac-lib-logging`
- `packages/qvac-lib-error-base`
Expand All @@ -24,7 +24,7 @@ For rules that need glob patterns:
globs:
- packages/qvac-sdk/**
- packages/qvac-cli/**
- packages/qvac-docs/**
- packages/docs/**
- packages/qvac-lib-rag/**
- packages/qvac-lib-logging/**
- packages/qvac-lib-error-base/**
Expand All @@ -33,6 +33,7 @@ globs:
## Skill Naming Convention

Skills for SDK pod should use the `sdk-` prefix:

- `sdk-pr-create`
- `sdk-changelog`
- `sdk-release`
Loading
Loading