clay-local-dev-loop
Configure Clay local development with hot reload and testing. Use when setting up a development environment, configuring test workflows, or establishing a fast iteration cycle with Clay. Trigger with phrases like "clay dev setup", "clay local development", "clay dev environment", "develop with cl...
SKILL.md
Full skill instructions
Clay Local Dev Loop
Overview
Set up a fast, reproducible local development workflow for Clay.
Prerequisites
- Completed
clay-install-authsetup - Node.js 18+ with npm/pnpm
- Code editor with TypeScript support
- Git for version control
Instructions
Step 1: Create Project Structure
my-clay-project/
├── src/
│ ├── clay/
│ │ ├── client.ts # Clay client wrapper
│ │ ├── config.ts # Configuration management
│ │ └── utils.ts # Helper functions
│ └── index.ts
├── tests/
│ └── clay.test.ts
├── .env.local # Local secrets (git-ignored)
├── .env.example # Template for team
└── package.json
Step 2: Configure Environment
# Copy environment template
cp .env.example .env.local
# Install dependencies
npm install
# Start development server
npm run dev
Step 3: Setup Hot Reload
{
"scripts": {
"dev": "tsx watch src/index.ts",
"test": "vitest",
"test:watch": "vitest --watch"
}
}
Step 4: Configure Testing
import { describe, it, expect, vi } from 'vitest';
import { ClayClient } from '../src/clay/client';
describe('Clay Client', () => {
it('should initialize with API key', () => {
const client = new ClayClient({ apiKey: 'test-key' });
expect(client).toBeDefined();
});
});
Output
- Working development environment with hot reload
- Configured test suite with mocking
- Environment variable management
- Fast iteration cycle for Clay development
Error Handling
| Error | Cause | Solution |
|---|---|---|
| Module not found | Missing dependency | Run npm install |
| Port in use | Another process | Kill process or change port |
| Env not loaded | Missing .env.local | Copy from .env.example |
| Test timeout | Slow network | Increase test timeout |
Examples
Mock Clay Responses
vi.mock('@clay/sdk', () => ({
ClayClient: vi.fn().mockImplementation(() => ({
// Mock methods here
})),
}));
Debug Mode
# Enable verbose logging
DEBUG=CLAY=* npm run dev
Resources
Next Steps
See clay-sdk-patterns for production-ready code patterns.
