#!/bin/bash
# Claude Code Development Workflow Setup Script
# This script initializes all custom commands for your development workflow
set -e
echo "π Setting up Claude Code Development Workflow Agents..."
# Create directory structure
echo "π Creating directory structure..."
mkdir -p .claude/commands
mkdir -p .claude/templates
mkdir -p .claude/workflows
mkdir -p analysis
mkdir -p stories
mkdir -p design/lld
mkdir -p reviews
mkdir -p src
mkdir -p tests
mkdir -p e2e-tests
mkdir -p reports
mkdir -p docs
mkdir -p standards
# Create PRD Analyzer Command
echo "π Creating PRD Analyzer command..."
cat > .claude/commands/analyze-prd.md << 'EOF'
---
name: analyze-prd
description: Analyze Product Requirements Document against existing codebase
parameters:
- name: prd
description: Path to PRD document
default: ./docs/prd.md
- name: codebase
description: Path to codebase
default: ./src
- name: output
description: Output path for analysis
default: ./analysis/prd-analysis.md
---
You are a Senior Business Analyst specializing in requirements analysis. Your task is to analyze the Product Requirements Document and create a comprehensive analysis report.
## Instructions
1. **Read and Parse the PRD**
- Location: `{prd}`
- Extract all functional requirements
- Extract all non-functional requirements
- Identify user stories and acceptance criteria
- Note any ambiguities or unclear requirements
2. **Analyze Existing Codebase**
- Location: `{codebase}`
- Map existing implementations to requirements
- Identify which requirements are fully implemented
- Find partially implemented requirements
- List completely missing features
3. **Create Requirements Traceability Matrix**
```markdown
| Requirement ID | Description | Status | Implementation Location | Notes |
|----------------|-------------|---------|------------------------|--------|
| REQ-001 | User Login | Partial | /src/auth/login.ts | Missing 2FA |
```
4. **Gap Analysis**
- List all unimplemented requirements
- Prioritize by business impact
- Estimate implementation effort (T-shirt sizes: S, M, L, XL)
5. **Generate Clarifying Questions**
Categorize questions as:
- **Technical**: Implementation details, integrations
- **Business**: Logic, rules, edge cases
- **UX/UI**: User experience, design specifics
- **Performance**: Scale, response times, load
6. **Risk Assessment**
- Technical risks
- Timeline risks
- Resource risks
- Integration risks
## Output Format
Save the analysis to `{output}` with this structure:
```markdown
# PRD Analysis Report
## Executive Summary
[Brief overview of findings]
## Requirements Coverage
[Table showing implementation status]
## Gap Analysis
[Detailed list of missing features]
## Risk Assessment
[Identified risks and mitigation strategies]
## Questions for Product Team
### High Priority
[Critical clarifications needed]
### Medium Priority
[Important but not blocking]
### Low Priority
[Nice to have clarifications]
## Recommendations
[Next steps and suggestions]
## Appendices
### A. Detailed Requirements Mapping
### B. Technical Debt Identified
### C. Suggested Architecture Changes
```
Please proceed with the analysis.
EOF
# Create Requirements Validator Command
echo "β
Creating Requirements Validator command..."
cat > .claude/commands/validate-requirements.md << 'EOF'
---
name: validate-requirements
description: Validate and decompose requirements into manageable user stories
parameters:
- name: input
description: Path to requirements or PRD analysis
default: ./analysis/prd-analysis.md
- name: output
description: Output directory for user stories
default: ./stories
---
You are a Requirements Engineer expert in breaking down complex requirements into actionable user stories.
## Your Tasks
1. **Validate Requirements Against SMART Criteria**
- **S**pecific: Is it clear and unambiguous?
- **M**easurable: Can we verify when it's done?
- **A**chievable: Is it technically feasible?
- **R**elevant: Does it align with project goals?
- **T**ime-bound: Is there a clear timeline?
2. **Decomposition Strategy Selection**
Choose the most appropriate strategy:
- **Functional Decomposition**: For feature-heavy requirements
- **Layered Approach**: For architectural requirements
- **User Journey Based**: For UX-focused requirements
- **Data Flow Based**: For data processing requirements
- **Risk-Based**: For high-risk or critical requirements
3. **Create User Stories**
For each requirement, create stories following this template:
```
As a [user type]
I want to [action/feature]
So that [benefit/value]
Acceptance Criteria:
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] Criterion 3
Technical Notes:
- Implementation considerations
- Dependencies
- Constraints
Story Points: [1-13]
Priority: [High/Medium/Low]
```
4. **Complexity Estimation**
- Story Points: 1, 2, 3, 5, 8, 13
- T-shirt sizes: XS, S, M, L, XL
- Include justification for estimates
5. **Dependency Mapping**
Create a dependency graph showing story relationships
6. **Output Structure**
Create separate files in `{output}` directory:
- `epic-001-user-authentication.md`
- `epic-002-data-management.md`
- `story-map.md` (visual story map)
- `dependencies.md` (dependency graph)
Please read the requirements from `{input}` and create the user stories.
EOF
# Create Technical Design Command
echo "ποΈ Creating Technical Design command..."
cat > .claude/commands/design-architecture.md << 'EOF'
---
name: design-architecture
description: Create technical architecture and design documents
parameters:
- name: stories
description: Path to user stories
default: ./stories
- name: constraints
description: Path to technical constraints file
default: ./docs/constraints.md
- name: output
description: Output directory for design docs
default: ./design
---
You are a Senior Software Architect designing a robust, scalable system.
## Design Process
1. **Analyze Requirements**
- Read all user stories from `{stories}`
- Understand functional requirements
- Extract non-functional requirements
- Review technical constraints from `{constraints}`
2. **Architecture Design Decisions**
Consider and document decisions for:
- **Architecture Style**: Microservices vs Monolithic vs Serverless
- **Communication**: REST vs GraphQL vs gRPC vs Events
- **Data Storage**: SQL vs NoSQL, partitioning strategy
- **Caching**: Redis vs Memcached, caching layers
- **Security**: Authentication, authorization, encryption
- **Scalability**: Horizontal vs vertical, auto-scaling
- **Deployment**: Containers vs VMs, orchestration
3. **Create Architecture Documents**
### High-Level Design (HLD)
Save to `{output}/hld.md`:
- System overview
- Component architecture (C4 Level 1 & 2)
- Data flow diagrams
- Integration points
- Technology stack decisions
Use mermaid diagrams:
```mermaid
graph TB
subgraph "Frontend"
UI[React UI]
Mobile[Mobile App]
end
subgraph "API Gateway"
GW[Kong/Nginx]
end
subgraph "Services"
Auth[Auth Service]
User[User Service]
Data[Data Service]
end
subgraph "Data Layer"
PG[(PostgreSQL)]
Redis[(Redis)]
S3[S3 Storage]
end
UI --> GW
Mobile --> GW
GW --> Auth
GW --> User
GW --> Data
Auth --> Redis
User --> PG
Data --> PG
Data --> S3
```
### Low-Level Design (LLD)
For each service, create `{output}/lld/[service-name].md`:
- Class diagrams
- Sequence diagrams
- Database schemas
- API specifications
- Error handling flows
### Technical Requirements Document (TRD)
Save to `{output}/trd.md`:
- Technical specifications
- Performance requirements
- Security requirements
- Infrastructure requirements
- Monitoring and observability
4. **API Design**
Create OpenAPI specification at `{output}/api-spec.yml`
Please proceed with the architecture design.
EOF
# Create Architecture Review Command
echo "π Creating Architecture Review command..."
cat > .claude/commands/review-architecture.md << 'EOF'
---
name: review-architecture
description: Review and validate technical architecture
parameters:
- name: design
description: Path to design documents
default: ./design
- name: standards
description: Path to architecture standards
default: ./standards/architecture.md
- name: output
description: Output path for review report
default: ./reviews/architecture-review.md
---
You are a Principal Architect conducting a thorough architecture review.
## Review Checklist
1. **Architecture Principles**
- [ ] SOLID principles adherence
- [ ] DRY (Don't Repeat Yourself)
- [ ] KISS (Keep It Simple, Stupid)
- [ ] YAGNI (You Aren't Gonna Need It)
- [ ] Separation of Concerns
2. **Non-Functional Requirements**
- [ ] **Performance**: Response times < 200ms, throughput > 1000 req/s
- [ ] **Scalability**: Can handle 10x current load?
- [ ] **Security**: OWASP Top 10, encryption at rest/transit
- [ ] **Reliability**: 99.9% uptime, fault tolerance
- [ ] **Maintainability**: Complexity metrics, documentation
- [ ] **Observability**: Logging, monitoring, distributed tracing
3. **Technical Evaluation**
- Technology choices appropriateness
- Integration complexity
- Data consistency approach
- Error handling strategy
- Testing strategy
4. **Risk Assessment**
Rate each risk as: Critical/High/Medium/Low
- Single points of failure
- Performance bottlenecks
- Security vulnerabilities
- Scalability limits
- Technical debt
- Vendor lock-in
5. **Cost Analysis**
- Infrastructure costs (monthly estimate)
- Licensing costs
- Operational costs
- Development effort (person-months)
## Review Output Format
Create review report at `{output}`:
```markdown
# Architecture Review Report
## Summary
- Review Date: [Date]
- Reviewer: Architecture Review Agent
- Decision: [Approved/Needs Revision/Rejected]
## Findings by Severity
### π΄ Critical (Must Fix)
[Issues that block approval]
### π‘ High (Should Fix)
[Important improvements needed]
### π’ Medium (Consider Fixing)
[Recommended enhancements]
### π΅ Low (Nice to Have)
[Minor suggestions]
## Detailed Analysis
### Architecture Principles
[Assessment of each principle]
### Non-Functional Requirements
[Evaluation of each NFR]
### Technical Design
[Review of design decisions]
### Risk Assessment
[Detailed risk analysis]
### Cost Analysis
[Breakdown of estimated costs]
## Recommendations
1. [Specific actionable item]
2. [Specific actionable item]
3. [Specific actionable item]
## Approval Checklist
- [ ] All critical issues resolved
- [ ] Security review passed
- [ ] Performance targets achievable
- [ ] Cost within budget
- [ ] Team has required skills
## Next Steps
[Actions required before/after approval]
```
Please review the architecture in `{design}`.
EOF
# Create TDD Developer Command
echo "π» Creating TDD Developer command..."
cat > .claude/commands/implement-tdd.md << 'EOF'
---
name: implement-tdd
description: Implement features using Test-Driven Development
parameters:
- name: story
description: User story file to implement
default: ./stories/current-story.md
- name: language
description: Programming language
default: typescript
- name: framework
description: Test framework
default: jest
- name: output
description: Output directory for code
default: ./src
---
You are a Senior Developer practicing strict Test-Driven Development.
## TDD Process
Follow the Red-Green-Refactor cycle:
### 1. π΄ Red: Write Failing Tests First
Read the user story from `{story}` and create comprehensive tests:
```{language}
// tests/[feature].test.{language}
describe('[Feature Name]', () => {
describe('[Scenario]', () => {
it('should [expected behavior]', async () => {
// Arrange
const input = {...};
// Act
const result = await functionUnderTest(input);
// Assert
expect(result).toEqual(expectedOutput);
});
it('should handle error case', async () => {
// Test error scenarios
});
it('should validate input', async () => {
// Test input validation
});
});
});
```
Include:
- Positive test cases (happy path)
- Negative test cases (error handling)
- Edge cases (boundaries, nulls, empty)
- Integration tests
### 2. π’ Green: Write Minimal Code
Implement just enough code to make tests pass:
- Start with the simplest implementation
- Don't add features not required by tests
- Focus on making tests green
### 3. π΅ Refactor: Improve Code Quality
Once tests pass, refactor for:
- Remove duplication (DRY)
- Improve naming
- Extract methods/classes
- Apply design patterns
- Optimize performance
- Add helpful comments
## Definition of Done
- [ ] All tests passing
- [ ] Code coverage > 80%
- [ ] No linting errors
- [ ] Code reviewed
- [ ] Documentation updated
- [ ] Performance benchmarks met
- [ ] Security scan passed
- [ ] Integration tests written
- [ ] API documentation updated
- [ ] Error handling complete
- [ ] Logging implemented
## Code Quality Standards
```{language}
// Follow these standards:
// - SOLID principles
// - Maximum function length: 20 lines
// - Maximum file length: 200 lines
// - Cyclomatic complexity < 10
// - Clear, self-documenting code
// - Meaningful variable/function names
// - Proper error handling
// - Comprehensive logging
```
## Output Structure
Create files in the following structure:
```
{output}/
βββ services/
β βββ [feature].service.{language}
βββ controllers/
β βββ [feature].controller.{language}
βββ models/
β βββ [feature].model.{language}
βββ utils/
β βββ [feature].utils.{language}
βββ types/
βββ [feature].types.{language}
tests/
βββ unit/
β βββ [feature].test.{language}
βββ integration/
β βββ [feature].integration.test.{language}
βββ fixtures/
βββ [feature].fixtures.{language}
```
Please implement the story following strict TDD practices.
EOF
# Create Code Review Command
echo "π Creating Code Review command..."
cat > .claude/commands/review-code.md << 'EOF'
---
name: review-code
description: Perform comprehensive code review
parameters:
- name: path
description: Path to code to review
default: ./src
- name: pr
description: Pull request number (optional)
- name: output
description: Output path for review
default: ./reviews/code-review.md
---
You are a Senior Software Engineer conducting a thorough code review.
## Review Areas
### 1. Code Quality π
- **Readability**: Clear variable/function names, appropriate comments
- **Maintainability**: DRY principle, modular design, single responsibility
- **Complexity**: Functions under 20 lines, cyclomatic complexity < 10
- **Standards**: Follows language idioms and team conventions
- **Documentation**: JSDoc/comments for public APIs
### 2. Security π
- [ ] Input validation (never trust user input)
- [ ] SQL injection prevention (parameterized queries)
- [ ] XSS protection (output encoding)
- [ ] Authentication/authorization checks
- [ ] Sensitive data handling (no logs, encryption)
- [ ] Dependency vulnerabilities (npm audit)
- [ ] CSRF protection
- [ ] Rate limiting implementation
### 3. Performance β‘
- [ ] Algorithm efficiency (Big O analysis)
- [ ] Database query optimization (N+1 problems)
- [ ] Caching implementation
- [ ] Memory management (leaks, large objects)
- [ ] Async operations handling
- [ ] Resource pooling
- [ ] Lazy loading where appropriate
### 4. Testing π§ͺ
- [ ] Test coverage adequacy (>80%)
- [ ] Test quality and meaningful assertions
- [ ] Edge cases covered
- [ ] Mocks used appropriately
- [ ] Integration tests present
- [ ] Test data isolation
- [ ] Performance tests for critical paths
### 5. Architecture Compliance ποΈ
- [ ] Follows defined patterns (MVC, Repository, etc.)
- [ ] Respects layer boundaries
- [ ] Proper dependency injection
- [ ] No circular dependencies
- [ ] Interface segregation
- [ ] Proper error propagation
## Review Process
1. **Static Analysis**
- Run linters and code analyzers
- Check for common anti-patterns
- Verify coding standards
2. **Logic Review**
- Verify business logic correctness
- Check edge case handling
- Validate algorithm choices
3. **Security Scan**
- Look for OWASP Top 10 issues
- Check authentication/authorization
- Review data validation
4. **Performance Check**
- Identify potential bottlenecks
- Review database queries
- Check for memory leaks
## Review Output Format
Create report at `{output}`:
```markdown
# Code Review Report
## Overview
- Reviewer: Code Review Agent
- Date: [Current Date]
- Files Reviewed: [count]
- Lines of Code: [count]
- Test Coverage: [percentage]
- Overall Status: [Approved/Needs Changes/Rejected]
## Summary
| Severity | Count | Status |
|----------|-------|--------|
| π΄ Critical | 0 | Must fix before merge |
| π‘ High | 2 | Should fix |
| π’ Medium | 5 | Consider fixing |
| π΅ Low | 8 | Nice to have |
## Issues by File
### `src/services/auth.service.ts`
**Line 45** - π΄ **Critical: SQL Injection Vulnerability**
```typescript
// Current (Vulnerable)
const query = `SELECT * FROM users WHERE username = '${username}'`;
// Suggested Fix
const query = 'SELECT * FROM users WHERE username = ?';
const result = await db.query(query, [username]);
```
**Impact**: Allows attackers to execute arbitrary SQL
**References**: [OWASP SQL Injection](https://owasp.org/www-community/attacks/SQL_Injection)
**Line 67-89** - π‘ **High: Performance Issue**
```typescript
// Current (O(nΒ²) complexity)
for (const user of users) {
for (const permission of permissions) {
// ...
}
}
// Suggested Fix (O(n) complexity)
const permissionMap = new Map(permissions.map(p => [p.id, p]));
for (const user of users) {
const permission = permissionMap.get(user.permissionId);
// ...
}
```
### `src/controllers/user.controller.ts`
**Line 23** - π’ **Medium: Missing Error Handling**
```typescript
// Add try-catch block
try {
const user = await userService.create(userData);
return res.status(201).json(user);
} catch (error) {
logger.error('User creation failed:', error);
return res.status(500).json({ error: 'Internal server error' });
}
```
## Good Practices Observed β
- Consistent code formatting
- Good test coverage in most modules
- Proper use of TypeScript types
- Clear separation of concerns
## Recommendations
1. **Immediate Actions**
- Fix SQL injection vulnerability in auth.service.ts
- Add input validation middleware
2. **Short-term Improvements**
- Optimize nested loops in permission checking
- Add comprehensive error handling
3. **Long-term Considerations**
- Consider implementing caching layer
- Add performance monitoring
## Checklist for Approval
- [ ] All critical issues resolved
- [ ] High priority issues addressed or ticketed
- [ ] Tests updated for changes
- [ ] Documentation updated
- [ ] No new linting errors
```
Please review the code at `{path}` and generate the detailed report.
EOF
# Create E2E Testing Command
echo "π§ͺ Creating E2E Testing command..."
cat > .claude/commands/test-e2e.md << 'EOF'
---
name: test-e2e
description: Create and run end-to-end tests
parameters:
- name: stories
description: Path to user stories
default: ./stories
- name: env
description: Test environment
default: staging
- name: framework
description: E2E test framework
default: cypress
- name: output
description: Output directory for tests
default: ./e2e-tests
---
You are a Senior QA Automation Engineer creating comprehensive E2E tests.
## Test Strategy
### 1. Test Scenario Generation
From each user story in `{stories}`, create:
- Happy path scenarios (primary user flows)
- Alternative paths (secondary flows)
- Error scenarios (validation, errors)
- Edge cases (boundaries, limits)
- Cross-functional scenarios
### 2. Test Implementation Structure
#### API Tests
```javascript
// {output}/api/[feature].spec.js
describe('API: [Feature Name]', () => {
const baseUrl = Cypress.env('apiUrl');
beforeEach(() => {
// Setup test data
cy.task('db:seed');
});
afterEach(() => {
// Cleanup
cy.task('db:clean');
});
describe('POST /api/[resource]', () => {
it('should create resource with valid data', () => {
cy.request({
method: 'POST',
url: `${baseUrl}/api/resource`,
headers: {
'Authorization': `Bearer ${Cypress.env('authToken')}`
},
body: {
name: 'Test Resource',
type: 'test'
}
}).then((response) => {
expect(response.status).to.eq(201);
expect(response.body).to.have.property('id');
expect(response.body.name).to.eq('Test Resource');
});
});
it('should validate required fields', () => {
cy.request({
method: 'POST',
url: `${baseUrl}/api/resource`,
failOnStatusCode: false,
body: {}
}).then((response) => {
expect(response.status).to.eq(400);
expect(response.body.errors).to.include('name is required');
});
});
});
});
```
#### UI Tests
```javascript
// {output}/ui/[feature].spec.js
describe('UI: [Feature Name]', () => {
beforeEach(() => {
cy.visit('/');
cy.login(); // Custom command
});
describe('User Flow: [Flow Name]', () => {
it('should complete full user journey', () => {
// Navigate to feature
cy.get('[data-cy=nav-feature]').click();
cy.url().should('include', '/feature');
// Interact with UI
cy.get('[data-cy=input-name]').type('Test Name');
cy.get('[data-cy=select-type]').select('Type A');
cy.get('[data-cy=submit-button]').click();
// Verify results
cy.get('[data-cy=success-message]')
.should('be.visible')
.and('contain', 'Successfully created');
// Verify data persistence
cy.reload();
cy.get('[data-cy=item-list]').should('contain', 'Test Name');
});
it('should handle errors gracefully', () => {
// Simulate network error
cy.intercept('POST', '/api/resource', {
statusCode: 500,
body: { error: 'Server error' }
}).as('createError');
cy.get('[data-cy=submit-button]').click();
cy.wait('@createError');
cy.get('[data-cy=error-message]')
.should('be.visible')
.and('contain', 'Something went wrong');
});
});
});
```
### 3. Test Categories
#### Functional Tests
- Feature functionality verification
- Business logic validation
- User workflow completion
- Data integrity checks
#### Performance Tests
```javascript
// {output}/performance/load.spec.js
it('should load page within 3 seconds', () => {
cy.visit('/', {
onBeforeLoad: (win) => {
win.performance.mark('start');
},
onLoad: (win) => {
win.performance.mark('end');
win.performance.measure('pageLoad', 'start', 'end');
const measure = win.performance.getEntriesByName('pageLoad')[0];
expect(measure.duration).to.be.lessThan(3000);
}
});
});
```
#### Security Tests
- Authentication verification
- Authorization checks
- Input sanitization
- XSS prevention
- CSRF protection
#### Accessibility Tests
```javascript
// {output}/accessibility/a11y.spec.js
it('should be accessible', () => {
cy.visit('/');
cy.injectAxe();
cy.checkA11y(null, {
rules: {
'color-contrast': { enabled: true },
'valid-lang': { enabled: true }
}
});
});
```
### 4. Test Data Management
```javascript
// {output}/fixtures/users.json
{
"validUser": {
"email": "test@example.com",
"password": "Test123!",
"name": "Test User"
},
"adminUser": {
"email": "admin@example.com",
"password": "Admin123!",
"name": "Admin User",
"role": "admin"
}
}
```
### 5. Custom Commands
```javascript
// {output}/support/commands.js
Cypress.Commands.add('login', (userType = 'validUser') => {
cy.fixture('users').then((users) => {
const user = users[userType];
cy.request('POST', '/api/auth/login', user).then((response) => {
window.localStorage.setItem('authToken', response.body.token);
});
});
});
```
### 6. Test Reports
Generate comprehensive test report at `{output}/reports/e2e-report.md`:
```markdown
# E2E Test Report
## Test Execution Summary
- Total Tests: [count]
- Passed: [count] β
- Failed: [count] β
- Skipped: [count] βοΈ
- Duration: [time]
## Test Coverage by Feature
| Feature | Tests | Pass Rate | Notes |
|---------|-------|-----------|-------|
| Authentication | 15 | 100% | All scenarios covered |
| User Management | 23 | 95.6% | 1 flaky test |
## Failed Tests
[Details of any failures]
## Performance Metrics
- Average page load: 1.8s
- API response time (p95): 180ms
- Largest Contentful Paint: 2.1s
## Recommendations
[Suggestions for improvement]
```
Please create comprehensive E2E tests based on the user stories.
EOF
# Create Configuration File
echo "βοΈ Creating configuration file..."
cat > .claude/config.json << 'EOF'
{
"project": "Development Workflow Agents",
"version": "1.0.0",
"commands": {
"searchPaths": [".claude/commands"],
"aliases": {
"prd": "analyze-prd",
"req": "validate-requirements",
"arch": "design-architecture",
"review-arch": "review-architecture",
"dev": "implement-tdd",
"review": "review-code",
"test": "test-e2e"
}
},
"workflows": {
"full-cycle": {
"description": "Complete development cycle from PRD to testing",
"steps": [
{
"command": "analyze-prd",
"description": "Analyze product requirements",
"continueOnError": false
},
{
"command": "validate-requirements",
"description": "Validate and decompose requirements",
"continueOnError": false
},
{
"command": "design-architecture",
"description": "Create technical design",
"continueOnError": false
},
{
"command": "review-architecture",
"description": "Review architecture design",
"continueOnError": false,
"requiresApproval": true
},
{
"command": "implement-tdd",
"description": "Implement using TDD",
"continueOnError": false
},
{
"command": "review-code",
"description": "Review implementation",
"continueOnError": false
},
{
"command": "test-e2e",
"description": "Run E2E tests",
"continueOnError": true
}
]
},
"quick-review": {
"description": "Quick code review workflow",
"steps": [
{
"command": "review-code",
"parameters": {
"path": "./src"
}
},
{
"command": "test-e2e",
"parameters": {
"framework": "jest"
}
}
]
}
},
"defaults": {
"language": "typescript",
"testFramework": "jest",
"e2eFramework": "cypress",
"outputFormat": "markdown",
"codeQuality": {
"maxFunctionLength": 20,
"maxFileLength": 200,
"minTestCoverage": 80,
"maxCyclomaticComplexity": 10
}
},
"integrations": {
"confluence": {
"enabled": false,
"baseUrl": "https://your-domain.atlassian.net/wiki",
"space": "DEV"
},
"jira": {
"enabled": false,
"baseUrl": "https://your-domain.atlassian.net",
"project": "PROJ"
},
"github": {
"enabled": true,
"autoCreatePR": false
}
}
}
EOF
# Create sample templates
echo "π Creating templates..."
mkdir -p .claude/templates
cat > .claude/templates/user-story.md << 'EOF'
# User Story: [Feature Name]
## Story
As a [user type]
I want to [action/feature]
So that [benefit/value]
## Acceptance Criteria
- [ ] Given [context], when [action], then [outcome]
- [ ] Given [context], when [action], then [outcome]
- [ ] Given [context], when [action], then [outcome]
## Technical Notes
- Implementation considerations
- API endpoints needed
- Database changes
- Dependencies
## Definition of Done
- [ ] Code complete and reviewed
- [ ] Unit tests written and passing
- [ ] Integration tests complete
- [ ] Documentation updated
- [ ] Deployed to staging
- [ ] Acceptance criteria verified
## Story Points: [1-13]
## Priority: [High/Medium/Low]
## Sprint: [Sprint number]
EOF
cat > .claude/templates/test-case.md << 'EOF'
# Test Case: [Test Name]
## Test Information
- **ID**: TC-[number]
- **Feature**: [Feature name]
- **Type**: [Unit/Integration/E2E]
- **Priority**: [High/Medium/Low]
## Prerequisites
- [Required setup]
- [Test data needed]
## Test Steps
1. [Action]
- Expected: [Result]
2. [Action]
- Expected: [Result]
3. [Action]
- Expected: [Result]
## Test Data
```json
{
"input": {},
"expected": {}
}
```
## Cleanup
- [Cleanup steps]
EOF
# Create sample files
echo "π Creating sample files..."
cat > ./docs/prd.md << 'EOF'
# Product Requirements Document
## Project: User Management System
### Overview
Build a comprehensive user management system with authentication, authorization, and profile management.
### Functional Requirements
#### FR1: User Registration
- Users can register with email and password
- Email verification required
- Password strength requirements enforced
#### FR2: User Authentication
- Login with email/password
- Support for 2FA
- Password reset functionality
#### FR3: User Profiles
- Users can update profile information
- Profile picture upload
- Privacy settings
### Non-Functional Requirements
#### NFR1: Performance
- Page load time < 3 seconds
- API response time < 200ms
#### NFR2: Security
- HTTPS everywhere
- Encrypted password storage
- OWASP Top 10 compliance
#### NFR3: Scalability
- Support 10,000 concurrent users
- Horizontal scaling capability
EOF
cat > ./docs/constraints.md << 'EOF'
# Technical Constraints
## Technology Stack
- Backend: Node.js with TypeScript
- Frontend: React with TypeScript
- Database: PostgreSQL
- Cache: Redis
- Cloud: AWS
## Compliance Requirements
- GDPR compliance
- SOC 2 Type II
- HIPAA ready
## Performance Constraints
- 99.9% uptime SLA
- < 200ms API response time
- < 3s page load time
## Security Constraints
- All data encrypted at rest
- TLS 1.3 minimum
- Regular security audits
EOF
cat > ./standards/architecture.md << 'EOF'
# Architecture Standards
## Design Principles
1. **Microservices Architecture**
- Service boundaries by business domain
- Independent deployment
- API-first design
2. **Security First**
- Zero trust architecture
- Defense in depth
- Principle of least privilege
3. **Cloud Native**
- Container-based deployment
- Kubernetes orchestration
- 12-factor app principles
## Code Standards
- TypeScript for type safety
- ESLint + Prettier for formatting
- Jest for testing
- 80% minimum code coverage
## API Standards
- RESTful design
- OpenAPI 3.0 specification
- Versioning via URL path
- Standard HTTP status codes
## Database Standards
- Migrations for schema changes
- Read replicas for scaling
- Regular backups
- Connection pooling
EOF
# Create workflow execution script
echo "π Creating workflow execution script..."
cat > ./claude-workflow.sh << 'EOF'
#!/bin/bash
# Claude Code Workflow Executor
set -e
echo "π Claude Code Development Workflow"
echo "=================================="
# Function to run command and check status
run_command() {
local cmd=$1
local desc=$2
echo ""
echo "βΆοΈ $desc"
echo "Running: claude-code $cmd"
if claude-code $cmd; then
echo "β
$desc completed successfully"
return 0
else
echo "β $desc failed"
return 1
fi
}
# Function to ask for continuation
ask_continue() {
read -p "Continue to next step? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Workflow paused. You can resume by running individual commands."
exit 0
fi
}
# Main workflow
echo "Starting full development cycle workflow..."
# Step 1: PRD Analysis
run_command "analyze-prd" "PRD Analysis"
ask_continue
# Step 2: Requirements Validation
run_command "validate-requirements" "Requirements Validation and Decomposition"
ask_continue
# Step 3: Technical Design
run_command "design-architecture" "Technical Architecture Design"
ask_continue
# Step 4: Architecture Review
run_command "review-architecture" "Architecture Review"
echo "β οΈ Architecture review requires approval before proceeding."
ask_continue
# Step 5: TDD Implementation
echo "Select a story to implement:"
ls ./stories/*.md 2>/dev/null || echo "No stories found"
read -p "Enter story filename: " story_file
run_command "implement-tdd --story ./stories/$story_file" "TDD Implementation"
ask_continue
# Step 6: Code Review
run_command "review-code" "Code Review"
ask_continue
# Step 7: E2E Testing
run_command "test-e2e" "End-to-End Testing"
echo ""
echo "β
Workflow completed!"
echo ""
echo "π Generated Artifacts:"
echo " - PRD Analysis: ./analysis/prd-analysis.md"
echo " - User Stories: ./stories/"
echo " - Architecture: ./design/"
echo " - Code: ./src/"
echo " - Tests: ./tests/ and ./e2e-tests/"
echo " - Reviews: ./reviews/"
EOF
chmod +x ./claude-workflow.sh
# Create README
echo "π Creating README..."
cat > ./README-CLAUDE-WORKFLOW.md << 'EOF'
# Claude Code Development Workflow
This project uses Claude Code custom commands to implement a complete development workflow from requirements to testing.
## Setup
1. Ensure Claude Code is installed
2. Run the setup script: `./setup-claude-workflow.sh`
3. Customize `.claude/config.json` for your project
## Available Commands
### Individual Commands
- `claude-code analyze-prd` - Analyze product requirements
- `claude-code validate-requirements` - Validate and decompose requirements
- `claude-code design-architecture` - Create technical design
- `claude-code review-architecture` - Review architecture
- `claude-code implement-tdd` - Implement using TDD
- `claude-code review-code` - Perform code review
- `claude-code test-e2e` - Run E2E tests
### Aliases (shortcuts)
- `claude-code prd` - Same as analyze-prd
- `claude-code req` - Same as validate-requirements
- `claude-code arch` - Same as design-architecture
- `claude-code dev` - Same as implement-tdd
- `claude-code review` - Same as review-code
- `claude-code test` - Same as test-e2e
### Workflows
- `claude-code workflow full-cycle` - Run complete development cycle
- `claude-code workflow quick-review` - Quick review workflow
## Interactive Workflow
Run `./claude-workflow.sh` for an interactive workflow with prompts between steps.
## Directory Structure
```
.claude/
βββ commands/ # Command definitions
βββ templates/ # Reusable templates
βββ config.json # Configuration
Project outputs:
βββ analysis/ # PRD analysis results
βββ stories/ # User stories
βββ design/ # Architecture documents
βββ src/ # Implementation code
βββ tests/ # Unit/integration tests
βββ e2e-tests/ # End-to-end tests
βββ reviews/ # Review reports
βββ reports/ # Test reports
```
## Customization
1. Edit commands in `.claude/commands/` to match your workflow
2. Update `.claude/config.json` for project-specific settings
3. Add custom templates to `.claude/templates/`
## Tips
- Commands accept parameters: `claude-code analyze-prd --prd ./specs/new-prd.md`
- View command help: `claude-code help [command-name]`
- List all commands: `claude-code list-commands`
- Chain commands: `claude-code prd && claude-code req && claude-code arch`
## Integration
Configure integrations in `.claude/config.json`:
- Confluence for documentation
- JIRA for issue tracking
- GitHub for version control
## Support
For issues or questions:
1. Check command output for detailed error messages
2. Review generated artifacts for insights
3. Modify commands as needed for your use case
EOF
echo ""
echo "β
Setup complete!"
echo ""
echo "π Your Claude Code Development Workflow is ready!"
echo ""
echo "π Quick Start:"
echo " 1. Review/edit the sample PRD: ./docs/prd.md"
echo " 2. Run your first command: claude-code analyze-prd"
echo " 3. Or run the full workflow: ./claude-workflow.sh"
echo ""
echo "π For more info, see: ./README-CLAUDE-WORKFLOW.md"
echo ""
echo "π‘ Tips:"
echo " - Use 'claude-code help [command]' to see command details"
echo " - Commands are in .claude/commands/ - customize them!"
echo " - Use aliases for quicker access (e.g., 'claude-code prd')"