Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
364efa7
docs(supabase): add branch setup note for Prisma migration
JSONbored Dec 14, 2025
b9c72b2
fix(supabase): create content_unified view to fix mv_content_stats de…
JSONbored Dec 14, 2025
1f75ba8
fix(db): migration schema for missing prod updates
JSONbored Dec 14, 2025
03a4085
feat(AST): new ast-grep-rules patterns
JSONbored Dec 14, 2025
2239d1e
refactor(prisma): prisma types + zod schema generation
JSONbored Dec 14, 2025
196f345
refactor(prisma): prisma types + zod schema migration pt2
JSONbored Dec 14, 2025
5d95df6
refactor(prisma): prisma types + zod migration pt 3
JSONbored Dec 16, 2025
f352006
refactor(database): migrate RPC functions to Prisma direct queries
JSONbored Dec 16, 2025
cb8281f
refactor(prisma): migrate RPC functions to Prisma direct queries
JSONbored Dec 16, 2025
762e0b8
refactor(prisma): fix broken migration
JSONbored Dec 16, 2025
fe2fd9a
refactor(prisma): fix broken migration #2
JSONbored Dec 16, 2025
8116b7b
refactor(prisma): migrate RPC functions + fix broken supabase migrations
JSONbored Dec 16, 2025
c1f45b2
refactor(ui): migrate to centralized design tokens and remove unused …
JSONbored Dec 18, 2025
3c5fc90
refactor(data): migrate to Prisma ORM and unify data function factory
JSONbored Dec 18, 2025
646504f
refactor(database): migrate from Supabase RPC to Prisma service layer
JSONbored Dec 19, 2025
82a91f7
perf(database): optimize Prisma queries with select clauses
JSONbored Dec 19, 2025
851d538
feat(api): add OpenAPI specification generation and API client
JSONbored Dec 19, 2025
2cafe75
fix(testing): various build + prismock test fixes
JSONbored Dec 19, 2025
488b44b
fix(builds): fix build issues
JSONbored Dec 19, 2025
b55cbad
refactor(database): migration for adding regular views for materializ…
JSONbored Dec 20, 2025
797d284
refactor(database): migration for adding regular views for materializ…
JSONbored Dec 20, 2025
b8521bf
feat(MCP): heyclaude-mcp refactor/migration to cloudflare workers
JSONbored Dec 20, 2025
077548b
feat(test): add comprehensive test coverage across web-runtime
JSONbored Dec 21, 2025
a92f1d2
feat(mcp): add heyclaude-mcp beta package for programmatic directory …
JSONbored Dec 21, 2025
4d01be5
refactor(tests): significant test refactoring + prismocker package cr…
JSONbored Dec 22, 2025
d0f4a10
refactor(tests): additional jest test migrations/refactors
JSONbored Dec 22, 2025
8f60b4c
refactor(tests): additional jest testing / comprehensive prismocker i…
JSONbored Dec 23, 2025
13b956f
refactor(tests): additional jest testing / comprehensive prismocker i…
JSONbored Dec 23, 2025
7b45c9c
refactor(tests): additional jest testing for hooks
JSONbored Dec 23, 2025
a520f60
refactor(tests): enhance jest testing with safemocker integration and…
JSONbored Dec 23, 2025
b453ce8
refactor(tests): enhance jest testing with safemocker integration and…
JSONbored Dec 23, 2025
4e1fd3e
refactor(prismocker): update module entry points to use .cjs extensio…
JSONbored Dec 23, 2025
b890805
refactor(prismocker): fix cjs module build issue
JSONbored Dec 23, 2025
92696a0
refactor(safemocker): next-safe-action test implementation
JSONbored Dec 23, 2025
6152bb3
refactor(tests): migrate tests from Vitest to Jest and enhance integr…
JSONbored Dec 24, 2025
5a1eb7b
refactor(tests): migrate tests from Vitest to Jest, enhance integrati…
JSONbored Dec 24, 2025
bd0c1e7
refactor(tests): update API route tests to use real implementations f…
JSONbored Dec 24, 2025
9f42fdd
refactor(tests): migrate tests from Vitest to Jest, enhance linting a…
JSONbored Dec 24, 2025
5e5ba49
refactor(rules): update AST-grep rules and configurations for improve…
JSONbored Dec 24, 2025
f12636e
fix(lint): resolved outstanding linting/formatting, testing issues
JSONbored Dec 25, 2025
db202f8
chore(prismocker): update package name to @jsonbored/prismocker, enha…
JSONbored Dec 25, 2025
d662f16
chore(cleanup): remove deprecated configuration files and scripts fro…
JSONbored Dec 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 4 additions & 4 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ reviews:
- Unsanitized user input in HTML
- Dangerous eval() or Function() usage
- SQL/NoSQL injection risks

- mode: error
name: Client/Server Boundary Validation
instructions: |-
Expand Down Expand Up @@ -156,7 +156,7 @@ reviews:
tools:
ast-grep:
rule_dirs:
- config/coderabbit/ast-grep-rules
- .trunk/rules/ast-grep
util_dirs:
- config/coderabbit/ast-grep-utils
github-checks:
Expand Down Expand Up @@ -260,7 +260,7 @@ code_generation:
- path: packages/data-layer/src/services/**/*.ts
instructions: ' Use vitest for testing framework. Mock SupabaseClient using vi.mock(). Test RPC error handling, input validation, and return types. Use @heyclaude/database-types for type assertions. Test edge cases: empty results, null values, database errors. Follow the pattern from packages/edge-runtime/src/utils/integrations/resend.test.ts for mocking structure. Co-locate tests: content.ts → content.test.ts (same directory). NEVER create test files, summary files, report files, or any files in the repository root directory. All test files must be co-located with their source files in the same directory.'
- path: packages/web-runtime/src/actions/**/*.ts
instructions: ' Use vitest for testing framework. Test Zod schema validation (invalid inputs should fail). Mock authentication context (authedAction vs optionalAuthAction). Test rate limiting behavior. Mock data layer services (don''t call real RPCs). Test error handling and logging. Verify action metadata is correct. Mock next/headers and next/cache (already set up in vitest.setup.ts). Co-locate tests: content.ts → content.test.ts (same directory). NEVER create test files, summary files, report files, or any files in the repository root directory. All test files must be co-located with their source files in the same directory.'
instructions: " Use vitest for testing framework. Test Zod schema validation (invalid inputs should fail). Mock authentication context (authedAction vs optionalAuthAction). Test rate limiting behavior. Mock data layer services (don't call real RPCs). Test error handling and logging. Verify action metadata is correct. Mock next/headers and next/cache (already set up in vitest.setup.ts). Co-locate tests: content.ts → content.test.ts (same directory). NEVER create test files, summary files, report files, or any files in the repository root directory. All test files must be co-located with their source files in the same directory."
- path: packages/web-runtime/src/rpc/**/*.ts
instructions: ' Use vitest for testing framework. Mock SupabaseClient and test error scenarios. Verify error normalization and logging context. Test timeout handling if applicable. Co-locate tests: run-rpc.ts → run-rpc.test.ts (same directory).'
- path: packages/web-runtime/src/cache/**/*.ts
Expand All @@ -270,7 +270,7 @@ code_generation:
- path: packages/web-runtime/src/data/**/*.ts
instructions: ' Use vitest for testing framework. Mock SupabaseClient and data layer services. Test caching behavior (fetchCached wrapper). Test error handling and fallback values. Test input validation and type safety. Co-locate tests: content.ts → content.test.ts (same directory). NEVER create test files, summary files, report files, or any files in the repository root directory. All test files must be co-located with their source files in the same directory.'
- path: packages/generators/src/commands/**/*.ts
instructions: ' Use vitest for testing framework. Test command-line argument parsing. Mock file system operations (vi.mock(''fs'')). Test error handling and user feedback. Mock external API calls and database operations. Co-locate tests: mcp-login.ts → mcp-login.test.ts (same directory).'
instructions: " Use vitest for testing framework. Test command-line argument parsing. Mock file system operations (vi.mock('fs')). Test error handling and user feedback. Mock external API calls and database operations. Co-locate tests: mcp-login.ts → mcp-login.test.ts (same directory)."
- path: packages/edge-runtime/src/**/*.ts
instructions: ' Use vitest for testing framework. Test Deno-compatible code (no Node.js-specific APIs). Mock Supabase and external services. Test error handling and logging. Follow existing test patterns from packages/edge-runtime/src/utils/integrations/resend.test.ts. Co-locate tests: resend.ts → resend.test.ts (same directory).'
- path: packages/shared-runtime/src/**/*.ts
Expand Down
82 changes: 0 additions & 82 deletions .gitattributes

This file was deleted.

28 changes: 18 additions & 10 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Thank you for your interest in contributing to ClaudePro Directory! This guide w
**Option 1: Web Submission Form** (Recommended - Easiest)

Visit [claudepro.directory/submit](https://claudepro.directory/submit) to submit through our database-driven form:

- ✅ Dynamic field validation based on content type
- ✅ Auto-complete from curated database templates
- ✅ Real-time duplicate detection
Expand All @@ -21,16 +22,16 @@ Visit [claudepro.directory/submit](https://claudepro.directory/submit) to submit

## 🎯 Content Types We Accept

| Type | Description | Browse Live Examples |
| --------------- | ------------------------------------- | ----------------------------------------------------- |
| **Agents** | Specialized AI personas | [claudepro.directory/agents](https://claudepro.directory/agents) |
| **MCP Servers** | Model Context Protocol integrations | [claudepro.directory/mcp](https://claudepro.directory/mcp) |
| **Commands** | Quick automation slash commands | [claudepro.directory/commands](https://claudepro.directory/commands) |
| **Rules** | System prompts & behavior guidelines | [claudepro.directory/rules](https://claudepro.directory/rules) |
| **Hooks** | Event-driven automation scripts | [claudepro.directory/hooks](https://claudepro.directory/hooks) |
| **Statuslines** | Custom CLI status displays | [claudepro.directory/statuslines](https://claudepro.directory/statuslines) |
| **Collections** | Curated bundles of related configs | [claudepro.directory/collections](https://claudepro.directory/collections) |
| **Skills** | Task-focused capability guides | [claudepro.directory/skills](https://claudepro.directory/skills) |
| Type | Description | Browse Live Examples |
| --------------- | ------------------------------------ | -------------------------------------------------------------------------- |
| **Agents** | Specialized AI personas | [claudepro.directory/agents](https://claudepro.directory/agents) |
| **MCP Servers** | Model Context Protocol integrations | [claudepro.directory/mcp](https://claudepro.directory/mcp) |
| **Commands** | Quick automation slash commands | [claudepro.directory/commands](https://claudepro.directory/commands) |
| **Rules** | System prompts & behavior guidelines | [claudepro.directory/rules](https://claudepro.directory/rules) |
| **Hooks** | Event-driven automation scripts | [claudepro.directory/hooks](https://claudepro.directory/hooks) |
| **Statuslines** | Custom CLI status displays | [claudepro.directory/statuslines](https://claudepro.directory/statuslines) |
| **Collections** | Curated bundles of related configs | [claudepro.directory/collections](https://claudepro.directory/collections) |
| **Skills** | Task-focused capability guides | [claudepro.directory/skills](https://claudepro.directory/skills) |

**Submit any content type at:** [claudepro.directory/submit](https://claudepro.directory/submit)

Expand Down Expand Up @@ -73,16 +74,19 @@ Visit [claudepro.directory/submit](https://claudepro.directory/submit) to submit
If you're contributing **code changes** (not content submissions):

1. **Install dependencies:**

```bash
pnpm install
```

2. **Run dev server:**

```bash
pnpm dev
```

3. **Build:**

```bash
pnpm build
```
Expand All @@ -101,23 +105,27 @@ Add [Type]: [Your Content Title]
```

Examples:

- `Add Agent: TypeScript Code Reviewer`
- `Add MCP: PostgreSQL Server`
- `Add Rule: React Best Practices`

Or for code changes:

- `fix: resolve build error in submit form`
- `feat: add new validation rule`

### Checklist Before Submitting

**For Content Submissions:**

- [ ] Tested your configuration and it works
- [ ] Removed all API keys, secrets, and personal information
- [ ] Content is original or properly attributed
- [ ] No spam or promotional content

**For Code Changes:**

- [ ] Build passes (`pnpm build`)
- [ ] Linting passes (`pnpm lint`)
- [ ] Type checking passes (`pnpm type-check`)
Expand Down
114 changes: 114 additions & 0 deletions .github/actions/package-ci/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
# Composite Action: Package CI
#
# Reusable CI steps for standalone packages in the monorepo.
# Provides consistent CI pipeline for packages that need independent
# testing and building.
#
# **Purpose:**
# This composite action standardizes the CI workflow for standalone
# packages (like mcp-server, prismocker, safemocker) within the
# monorepo. It handles checkout, dependency installation, type
# checking, building, and testing in a consistent, reusable way.
#
# **What It Does:**
# 1. Checks out repository (optional, can skip if already checked out)
# 2. Sets up pnpm package manager
# 3. Sets up Node.js with pnpm caching
# 4. Installs dependencies (frozen lockfile for reproducibility)
# 5. Runs type-check in package directory
# 6. Builds the package
# 7. Runs tests in package directory
#
# **Usage:**
# ```yaml
# - uses: ./.github/actions/package-ci
# with:
# package-path: packages/mcp-server
# node-version: '20'
# pnpm-version: '10'
# ```
#
# **Benefits:**
# - Reduces duplication across package workflows
# - Ensures consistent CI steps for all packages
# - Easy to update: change once, applies to all packages
# - Maintains package isolation (each package has its own workflow)
#
# **Integration:**
# Used by package-specific workflows (e.g.,
# packages/mcp-server/.github/workflows/ci.yml) to provide consistent
# CI behavior while maintaining package-level workflow files.
#
# @see {@link ../package-release/action.yml | Package Release Action}
# @see {@link ../../packages/mcp-server/.github/workflows/ci.yml | Example}
name: 'Package CI'
description: >-
Reusable CI steps for standalone packages (type-check, build, test)

inputs:
package-path:
description: >-
Path to package directory (e.g., packages/mcp-server).
Must be relative to repository root.
required: true
node-version:
description: >-
Node.js version to use (e.g., "20", "22"). Defaults to "20".
required: false
default: '20'
pnpm-version:
description: 'pnpm version to use (e.g., "10", "9"). Defaults to "10".'
required: false
default: '10'
fetch-depth:
description: >-
Git fetch depth (0 for full history, 1 for shallow clone).
Defaults to "1" for faster CI.
required: false
default: '1'
skip-checkout:
description: >-
Skip checkout step (use "true" when repository is already checked out).
Defaults to "false".
required: false
default: 'false'

runs:
using: 'composite'
steps:
- name: Checkout repository
if: inputs.skip-checkout != 'true'
uses: actions/checkout@v6
with:
fetch-depth: ${{ inputs.fetch-depth }}

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ inputs.pnpm-version }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ inputs.node-version }}
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile
shell: bash

- name: Type check
working-directory: ${{ inputs.package-path }}
run: pnpm type-check
shell: bash

- name: Build
working-directory: ${{ inputs.package-path }}
run: pnpm build
shell: bash

- name: Run tests
working-directory: ${{ inputs.package-path }}
run: pnpm test
shell: bash
Loading