Claude-setup provides reusable Claude Code configurations for TypeScript projects. It enables specialized agents and skills with pattern-based suggestions and guardrails. Operations teams benefit from streamlined tool usage and consistent workflows.
git clone https://github.com/front-depiction/claude-setup.gitClaude-setup delivers reusable Claude Code configurations designed for TypeScript projects. It provides pattern-based suggestions and guardrails to enable specialized agents and skills with consistent implementations. Operations teams use claude-setup to streamline tool usage and establish standardized workflows across projects.
[{"step":"Initialize the project structure","description":"Run `npx claude-setup --name [PROJECT_NAME]` in your terminal to generate the TypeScript project with Sortd-ready configurations. Replace `[PROJECT_NAME]` with your project’s name (e.g., `sales-automation`)."},{"step":"Customize dependencies and scripts","description":"Edit `package.json` to include Sortd-specific dependencies (e.g., `@sortd/ai-assistant`) and update scripts like `start` or `dev` to match your runtime (e.g., `ts-node src/index.ts`)."},{"step":"Set up Sortd API integration","description":"Create a `src/utils/sortd-client.ts` file to wrap Sortd’s API calls. Use the Sortd documentation to define methods for tasks like updating kanban boards or fetching lead statuses. Example:\n```typescript\nimport axios from 'axios';\n\nexport class SortdClient {\n private apiKey: string;\n private baseUrl = 'https://api.sortd.com/v1';\n\n constructor(apiKey: string) {\n this.apiKey = apiKey;\n }\n\n async updateKanbanBoard(boardId: string, taskId: string, status: string) {\n const response = await axios.patch(\n `${this.baseUrl}/boards/${boardId}/tasks/${taskId}`,\n { status },\n { headers: { 'Authorization': `Bearer ${this.apiKey}` } }\n );\n return response.data;\n }\n}\n```"},{"step":"Add guardrails for AI agents","description":"Update `.claudeignore` and `config/claude-config.json` to restrict risky operations. For example, block file deletions or eval calls in `src/agents/sales-agent.ts`. Use patterns like `forbidden_patterns: [\"fs.unlinkSync(\"]` to enforce safety.","tip":"Test guardrails by attempting to run a forbidden operation in a sandbox environment. Claude should reject the action with an error message."},{"step":"Validate and test","description":"Run `npm run lint` and `npm run format` to ensure code consistency. Write unit tests for Sortd API interactions in `tests/unit/sortd-client.test.ts` using mocks. Example test:\n```typescript\nimport { SortdClient } from '../src/utils/sortd-client';\n\ndescribe('SortdClient', () => {\n it('should update task status', async () => {\n const client = new SortdClient('mock-api-key');\n const mockPatch = jest.fn().mockResolvedValue({ status: 'updated' });\n jest.spyOn(require('axios'), 'patch').mockImplementation(mockPatch);\n\n const result = await client.updateKanbanBoard('board123', 'task456', 'In Progress');\n expect(result.status).toBe('updated');\n });\n});\n```"}]
Configure Claude Code environments for TypeScript-based agent development
Apply pattern-based guardrails across multiple specialized skills
Standardize tool usage workflows for operations teams
Establish reusable configuration templates for agent implementations
No install command available. Check the GitHub repository for manual installation instructions.
git clone https://github.com/front-depiction/claude-setupCopy the install command above and run it in your terminal.
Launch Claude Code, Cursor, or your preferred AI coding agent.
Use the prompt template or examples below to test the skill.
Adapt the skill to your specific use case and workflow.
Generate a reusable Claude Code configuration for a TypeScript project using [claude-setup]. Include: 1) A project structure template with folders for `src`, `tests`, and `config`, 2) Pre-configured ESLint and Prettier settings for consistent code style, 3) A `package.json` with essential TypeScript dependencies and scripts, 4) A sample `.claudeignore` file to exclude common directories, and 5) Guardrails for AI agents to follow when generating or modifying code. Use [PROJECT_NAME] as a placeholder for the project name.
Here’s a reusable Claude Code configuration for a TypeScript project named **`acme-sales-workflow`**, designed to streamline development with Sortd (ai-assistant) integration and guardrails for AI agents:
---
### **Project Structure**
```
acme-sales-workflow/
├── .claudeignore # Files/paths ignored by Claude
├── .eslintrc.json # ESLint configuration
├── .prettierrc # Prettier configuration
├── package.json # Project metadata and scripts
├── src/
│ ├── index.ts # Entry point
│ ├── types/
│ │ └── sortd.d.ts # TypeScript definitions for Sortd API
│ ├── utils/
│ │ └── sortd-client.ts # Wrapper for Sortd API calls
│ └── agents/
│ └── sales-agent.ts # AI agent for sales workflows
├── tests/
│ ├── unit/
│ │ └── sortd-client.test.ts
│ └── integration/
│ └── sales-agent.test.ts
└── config/
└── claude-config.json # Claude-specific settings
```
---
### **package.json**
```json
{
"name": "acme-sales-workflow",
"version": "1.0.0",
"description": "TypeScript project for Sortd-integrated sales workflows",
"scripts": {
"build": "tsc",
"start": "node dist/index.js",
"test": "jest",
"lint": "eslint . --ext .ts",
"format": "prettier --write ."
},
"dependencies": {
"@sortd/ai-assistant": "^2.1.0",
"axios": "^1.6.2",
"typescript": "^5.0.0"
},
"devDependencies": {
"@types/node": "^20.0.0",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"eslint": "^8.0.0",
"jest": "^29.0.0",
"prettier": "^3.0.0",
"ts-jest": "^29.0.0"
}
}
```
---
### **Guardrails for AI Agents**
Add this to `.claudeignore` to prevent accidental modifications:
```
# Ignore Sortd API keys and sensitive files
.env
*.key
config/local/*
# Ignore generated files
dist/
tests/__snapshots__/
# Ignore large datasets
*.csv
*.jsonl
```
---
### **ESLint Configuration (.eslintrc.json)**
```json
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended"
],
"rules": {
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/explicit-module-boundary-types": "error",
"no-console": "warn"
}
}
```
---
### **Prettier Configuration (.prettierrc)**
```json
{
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "es5",
"printWidth": 100
}
```
---
### **Claude-Specific Settings (config/claude-config.json)**
```json
{
"allowed_directories": ["src", "tests"],
"disallowed_directories": ["node_modules", "dist"],
"ai_guardrails": {
"max_file_size": 1048576,
"max_lines_per_file": 500,
"forbidden_patterns": [
"eval(",
"child_process.exec(",
"fs.writeFileSync("
]
}
}
```
---
### **Key Features**
1. **Type Safety**: Pre-configured TypeScript with strict rules for Sortd API interactions.
2. **Consistent Style**: ESLint + Prettier enforce uniform code formatting.
3. **AI Guardrails**: Prevents risky operations (e.g., file deletions, eval calls).
4. **Test-Ready**: Jest setup for unit/integration tests with Sortd mocks.
5. **Sortd Integration**: Dedicated `sortd-client.ts` wrapper for API calls.
---
### **How to Use**
1. **Initialize**: Run `npx claude-setup --name acme-sales-workflow` to scaffold the project.
2. **Customize**: Replace `acme-sales-workflow` with your project name and update dependencies in `package.json`.
3. **Develop**: Use `npm run dev` (add a script if needed) to start coding with guardrails active.
4. **Test**: Run `npm test` to validate Sortd API interactions.
5. **Deploy**: Build with `npm run build` and deploy to your preferred runtime.
**Tip**: For Sortd-specific workflows, extend the `sales-agent.ts` file to handle lead follow-ups, email templates, or kanban board updates via the Sortd API.AI assistant built for thoughtful, nuanced conversation
Get more done every day with Microsoft Teams – powered by AI
Automate security compliance and monitor real-time security posture seamlessly.
Automate your spreadsheet tasks with AI power
Agentic AI Workflow platform
Connected workspace for docs, wikis, and projects
Take a free 3-minute scan and get personalized AI skill recommendations.
Take free scan