Skip to content

Commit 70bbb81

Browse files
committed
feat: Add comprehensive AI coding assistant configuration
This commit adds configuration for Claude Code and OpenAI Codex CLI to improve developer experience when using AI coding assistants with this repository. ## Claude Code Configuration (.claude/) ### Core Files - CLAUDE.md: Project guidance with quick start, architecture overview, git restrictions, and slash command reference - .claudeignore: Excludes build artifacts, dependencies, secrets, and other AI agent files from Claude's context ### Automation & Safety - settings.json: Pre-allowed permissions for common operations, denied git write operations (commit/push/add) - hooks/pre-tool-use.sh: Blocks dangerous commands, enforces 500-line limit for new files, protects auto-generated files - hooks/post-tool-use.sh: Auto-formats code with Prettier + ESLint ### Productivity Features - 6 parallel search agents for fast codebase exploration - 7 slash commands (/project:test, /project:build, /project:fix, etc.) - 3 detailed guides (architecture, adding-resources, testing) - 4 code templates for scaffolding new resources ## OpenAI Codex CLI Configuration (.codex/) ### Core Files - AGENTS.md: Repository context, code patterns, project structure, and conventions for Codex to understand the codebase ### Skills (.codex/skills/) 8 reusable task-specific skills: - add-resource: Create new API resource with model, class, and tests - add-endpoint: Add method to existing resource - fix-typescript: Resolve TypeScript compilation errors - fix-tests: Fix failing Jest tests - fix-lint: Fix ESLint and Prettier issues - add-query-params: Add query parameter support - handle-binary: Implement binary/stream responses - add-pagination: Add pagination support ## Build Configuration Updates - .eslintignore: Exclude .claude/ from linting - .prettierignore: Exclude .claude/ from formatting - jest.config.js: Exclude .claude/ from test discovery - .gitignore: Ignore /docs (not .claude/docs/), auto-generated CLAUDE.md files in subdirectories ## Developer Experience - Auto-formatting on every edit (Prettier + ESLint) - Pre-allowed tools reduce permission prompts - Git safety: Claude/Codex write code, developers handle commits - New file size limit (500 lines) encourages modular code - Templates and guides accelerate onboarding ## File Summary New files: 35 - .claude/: 24 files (agents, commands, docs, hooks, shared, settings) - .codex/: 8 files (skills) - Root: 3 files (CLAUDE.md, AGENTS.md, Makefile, .claudeignore) Modified files: 4 - .eslintignore, .gitignore, .prettierignore, jest.config.js
1 parent 366848c commit 70bbb81

40 files changed

+1832
-3
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
---
2+
name: codebase-analyzer
3+
description: Comprehensive analysis using parallel exploration tasks.
4+
tools: Read, Glob, Grep, Task
5+
---
6+
7+
Orchestrate parallel analysis:
8+
1. Spawn explore-resources, explore-models, explore-tests tasks
9+
2. Aggregate findings
10+
3. Report: patterns, relationships, gaps
11+
12+
Output: Summary, resources found, patterns identified, recommendations.

.claude/agents/explore-models.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
name: explore-models
3+
description: Search src/models/ for TypeScript type definitions.
4+
tools: Read, Glob, Grep
5+
---
6+
7+
Search `src/models/` for interfaces and types.
8+
Look for: `export interface`, `export type`, `extends ListQueryParams`
9+
Return: interface names, file paths, key properties.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
name: explore-resources
3+
description: Search src/resources/ for API resource classes and methods.
4+
tools: Read, Glob, Grep
5+
---
6+
7+
Search `src/resources/` for resource classes extending `Resource`.
8+
Look for: `public methodName(`, `/v3/grants/`, `interface.*Params`
9+
Return: file paths, line numbers, method signatures.

.claude/agents/explore-tests.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
name: explore-tests
3+
description: Search tests/ for Jest test patterns and mocks.
4+
tools: Read, Glob, Grep
5+
---
6+
7+
Search `tests/` for test files (*.spec.ts).
8+
Look for: `describe('`, `it('should`, `mockResolvedValue`
9+
Return: test file, describe blocks, test case names.

.claude/agents/parallel-explore.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
name: parallel-explore
3+
description: Parallel codebase search. Use for broad searches across multiple directories.
4+
tools: Read, Glob, Grep, Task
5+
---
6+
7+
Spawn 3-5 parallel Task agents to search different areas:
8+
- Task 1: `src/resources/`
9+
- Task 2: `src/models/`
10+
- Task 3: `tests/`
11+
- Task 4: Root configs
12+
13+
Use `subagent_type: Explore`. Aggregate results into unified summary.

.claude/agents/quick-search.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
name: quick-search
3+
description: Fast keyword search across codebase using grep.
4+
tools: Grep, Glob
5+
---
6+
7+
Use Grep for content, Glob for file patterns.
8+
Return results as: `file/path.ts:123 - line preview`
9+
Keep responses concise.

.claude/commands/add-endpoint.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Add Endpoint: $ARGUMENTS
2+
3+
Format: `{resource} {method}` (e.g., "calendars getAvailability")
4+
5+
1. Add request/response types to `src/models/{resource}.ts`
6+
2. Add method to `src/resources/{resource}.ts`
7+
3. Add tests to `tests/resources/{resource}.spec.ts`
8+
4. Run `make test-resource NAME={resource}`

.claude/commands/add-resource.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Add Resource: $ARGUMENTS
2+
3+
1. Create `src/models/{name}.ts` with interfaces
4+
2. Create `src/resources/{name}.ts` extending Resource
5+
3. Register in `src/nylas.ts`
6+
4. Create `tests/resources/{name}.spec.ts`
7+
5. Run `make ci`
8+
9+
Use templates in `.claude/shared/` as reference.

.claude/commands/build.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Build SDK
2+
3+
```bash
4+
make build
5+
```
6+
7+
Output: `lib/esm/`, `lib/cjs/`, `lib/types/`

.claude/commands/explore.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Parallel Explore
2+
3+
Search for: $ARGUMENTS
4+
5+
Spawn parallel Task agents (subagent_type: Explore) to search:
6+
- src/resources/
7+
- src/models/
8+
- tests/
9+
10+
Aggregate and summarize results.

0 commit comments

Comments
 (0)