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
28 changes: 26 additions & 2 deletions .claude/skills/development-workflow/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: development-workflow
description: Build, development, and code quality commands for StackOne SDK
description: Build commands, testing, linting, git workflow, commit conventions, and file naming standards. (project)
globs: ""
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The globs field is set to an empty string, but for Cursor compatibility, it should either specify file patterns or be omitted. Since this skill is about development workflow (commands, testing, linting, git), consider using globs: "**/*" to apply to all files, or just remove the field entirely if alwaysApply: true is sufficient.

Suggested change
globs: ""

Copilot uses AI. Check for mistakes.
alwaysApply: true
---

# Development Workflow
Expand Down Expand Up @@ -107,7 +109,29 @@ feat(parser): add support for custom parameter transformers
4. Verify with `git status` before committing

### TypeScript Issues
Use the TypeScript exhaustiveness pattern (`satisfies never`) when branching on unions. See `openapi-architecture` skill for examples.
Use the TypeScript exhaustiveness pattern (`satisfies never`) when branching on unions. See `typescript-patterns` skill for examples.

## Pull Request Guidelines

### PR Title Format
Use the same format as commit messages: `type(scope): description`

Types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`, `ci`, `perf`

Examples:
- `feat(tools): add support for custom OpenAPI specs`
- `fix(parser): handle empty response bodies`
- `refactor(skills): unify cursor rules and claude skills`

### PR Body
Include:
- **Summary**: 1-3 bullet points describing changes
- **Test plan**: How to verify the changes work
- Reference related issues with `Closes #123` or `Fixes #123`

## File Naming Conventions

- Use `.yaml` extension instead of `.yml` for all YAML files (e.g., `lefthook.yaml`, GitHub Actions workflows)

## Working with Tools

Expand Down
4 changes: 3 additions & 1 deletion .claude/skills/file-operations/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: file-operations
description: HTTP request standards for StackOne SDK
description: Use when making HTTP requests. Covers native fetch API patterns and error handling. (project)
globs: "*.ts"
alwaysApply: false
---

# HTTP Request Standards
Expand Down
4 changes: 3 additions & 1 deletion .claude/skills/orama-integration/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: orama-integration
description: Orama API integration reference for StackOne
description: Use when integrating with Orama. Links to official docs for search, indexing, answer engine. (project)
globs: ""
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The globs field is set to an empty string, which may not be handled correctly by Cursor. Since this skill applies to Orama integration code, consider specifying relevant file patterns (e.g., globs: "*.ts") or removing the field entirely since you have alwaysApply: false.

Suggested change
globs: ""

Copilot uses AI. Check for mistakes.
alwaysApply: false
---

# Orama Integration
Expand Down
28 changes: 19 additions & 9 deletions .claude/skills/typescript-patterns/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
---
name: typescript-patterns
description: TypeScript patterns and best practices for StackOne SDK
description: Use when writing or reviewing TypeScript code. Covers type safety, exhaustiveness checks, avoiding any/non-null assertions, clean code practices. (project)
globs: "*.ts"
alwaysApply: false
---

# TypeScript Patterns and Best Practices

This skill provides guidance on TypeScript patterns and best practices for writing clean, type-safe code in the StackOne SDK.
Guidelines for writing clean, type-safe TypeScript code in this repository.

## Exhaustiveness Checking with `satisfies never`

Expand Down Expand Up @@ -207,12 +209,20 @@ function removeProperty(obj: Record<string, JSONSchema7Definition>): void {
}
```

## Recommendations
## Remove Unused Code

1. Use `satisfies never` for all union type switches
2. Prefer `unknown` over `any` and use type guards
3. Use optional chaining (`?.`) and nullish coalescing (`??`)
After refactoring, always remove unused code:
- Delete unused variables, parameters, functions, classes, imports
- Don't comment out old code - delete it (git history preserves it)
- Remove unreachable code paths

## Quick Reference

1. Use `satisfies never` for union type switches
2. Prefer `unknown` over `any` with type guards
3. Use `?.` and `??` instead of non-null assertions
4. Always specify return types
5. Use destructuring for immutable property removal
6. Write functions as simple exports, not class static methods
7. Create new variables instead of reassigning parameters
5. Use destructuring for property removal
6. Use simple exports instead of static-only classes
7. Don't reassign parameters - create new variables
8. Remove unused code after refactoring
4 changes: 3 additions & 1 deletion .claude/skills/typescript-testing/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
name: typescript-testing
description: Vitest test runner and MSW-based testing patterns for StackOne SDK
description: Use when writing or running tests. Covers Vitest commands, MSW HTTP mocking, fs-fixture for file system tests. (project)
globs: "*.spec.ts"
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Dec 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Glob pattern *.spec.ts won't match test files in subdirectories. Use **/*.spec.ts for recursive matching since all test files are in paths like src/tests/ and src/.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .claude/skills/typescript-testing/SKILL.md, line 4:

<comment>Glob pattern `*.spec.ts` won&#39;t match test files in subdirectories. Use `**/*.spec.ts` for recursive matching since all test files are in paths like `src/tests/` and `src/`.</comment>

<file context>
@@ -1,6 +1,8 @@
 name: typescript-testing
-description: Vitest test runner and MSW-based testing patterns for StackOne SDK
+description: Use when writing or running tests. Covers Vitest commands, MSW HTTP mocking, fs-fixture for file system tests. (project)
+globs: &quot;*.spec.ts&quot;
+alwaysApply: false
 ---
</file context>
Suggested change
globs: "*.spec.ts"
globs: "**/*.spec.ts"
Fix with Cubic

alwaysApply: false
---

# TypeScript Testing with Vitest and MSW
Expand Down
119 changes: 0 additions & 119 deletions .cursor/rules/clean-code.mdc

This file was deleted.

75 changes: 0 additions & 75 deletions .cursor/rules/cursor-rules-location.mdc

This file was deleted.

1 change: 1 addition & 0 deletions .cursor/rules/development-workflow.mdc
Loading
Loading