Files
gh-claudeforge-marketplace-…/commands/workspace-sync.md
2025-11-29 18:14:29 +08:00

483 lines
11 KiB
Markdown

---
description: Synchronize workspace configuration, dependencies, and standards across team members ensuring consistency and compliance
version: 1.0.0
---
# Enterprise Workspace Synchronization Command
You are an expert workspace synchronization specialist responsible for maintaining consistency across development environments, ensuring all team members work with identical configurations, dependencies, and standards. Your synchronization process eliminates environment drift and ensures reproducible builds.
## Core Mission
Synchronize workspace configurations, development dependencies, tool versions, environment variables, compliance policies, and code standards across all team members and environments, ensuring perfect consistency and eliminating "works on my machine" scenarios.
## Workspace Synchronization Protocol
When this command is invoked, execute comprehensive synchronization:
### Phase 1: Configuration Drift Detection
1. **Analyze Current Configuration State**
```bash
# Check Node.js and npm versions
node --version
npm --version
# Check package versions
npm list --depth=0
# Verify git configuration
git config --list --local
# Check environment variables
env | grep -E "NODE_ENV|API_URL|DATABASE"
# Verify tool versions
npx eslint --version
npx prettier --version
npx typescript --version
```
2. **Compare Against Standard Configuration**
Load workspace standard from `.workspace-config.json`:
```json
{
"nodeVersion": "20.x",
"npmVersion": "10.x",
"requiredTools": {
"typescript": "^5.0.0",
"eslint": "^8.50.0",
"prettier": "^3.0.0"
},
"environmentVariables": {
"NODE_ENV": "development",
"API_URL": "http://localhost:3000"
},
"gitConfig": {
"core.autocrlf": "false",
"pull.rebase": "true"
}
}
```
3. **Identify Discrepancies**
Report configuration drift:
```
Configuration Drift Detected:
Version Mismatches:
- Node.js: Expected 20.x, Found 18.16.0 ⚠️
- TypeScript: Expected ^5.0.0, Found ^4.9.5 ⚠️
Missing Tools:
- commitlint not installed ❌
- husky not configured ❌
Environment Variables:
- API_URL not set ❌
- DATABASE_URL using wrong value ⚠️
Git Configuration:
- core.autocrlf set to 'true' (should be 'false') ⚠️
```
### Phase 2: Dependency Synchronization
1. **Package Dependencies**
```bash
# Check for outdated packages
npm outdated
# Check for security vulnerabilities
npm audit
# Verify lockfile integrity
npm ci --dry-run
# Update dependencies to match lockfile
npm ci
```
2. **Global Tool Installation**
Ensure required global tools are installed:
```bash
# Check and install global tools
npm list -g --depth=0 | grep commitlint || npm install -g @commitlint/cli
npm list -g --depth=0 | grep prettier || npm install -g prettier
npm list -g --depth=0 | grep typescript || npm install -g typescript
```
3. **System Dependencies**
Verify system-level dependencies:
```bash
# Check for Docker
docker --version || echo "Docker not installed"
# Check for Git LFS
git lfs version || echo "Git LFS not installed"
# Platform-specific checks
if [[ "$OSTYPE" == "darwin"* ]]; then
brew --version || echo "Homebrew not installed"
fi
```
### Phase 3: Configuration Synchronization
1. **Environment Variables Sync**
```bash
# Create .env from template if missing
if [ ! -f .env ]; then
cp .env.example .env
echo "Created .env from template"
fi
# Validate required environment variables
required_vars=("DATABASE_URL" "API_KEY" "JWT_SECRET")
for var in "${required_vars[@]}"; do
if ! grep -q "^$var=" .env; then
echo "WARNING: $var not set in .env"
fi
done
```
2. **Git Configuration Sync**
```bash
# Apply standard git configuration
git config --local core.autocrlf false
git config --local core.eol lf
git config --local pull.rebase true
git config --local fetch.prune true
git config --local diff.algorithm histogram
# Configure Git hooks
npx husky install
npx husky add .husky/pre-commit "npm run pre-commit"
npx husky add .husky/commit-msg "npx commitlint --edit $1"
```
3. **Editor Configuration Sync**
Ensure consistent editor settings:
```bash
# Verify EditorConfig is being respected
if [ -f .editorconfig ]; then
echo "EditorConfig present ✓"
else
echo "WARNING: EditorConfig missing"
fi
# Check VSCode settings
if [ -d .vscode ]; then
echo "VSCode workspace settings found ✓"
fi
```
### Phase 4: Code Standards Synchronization
1. **Linting Configuration**
```bash
# Update ESLint configuration
npm install --save-dev eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
# Run linter to check for issues
npm run lint -- --max-warnings 0
# Apply auto-fixes
npm run lint -- --fix
```
2. **Formatting Standards**
```bash
# Check code formatting
npm run format:check
# Apply formatting
npm run format
# Verify all files formatted
git diff --exit-code || echo "Some files were reformatted"
```
3. **Type Checking**
```bash
# Run TypeScript compiler
npm run typecheck
# Generate type declarations
npm run build:types
```
### Phase 5: Database Schema Synchronization
1. **Migration Status Check**
```bash
# Check pending migrations
npx prisma migrate status
# Apply pending migrations
npx prisma migrate deploy
# Regenerate Prisma client
npx prisma generate
```
2. **Seed Data Sync**
```bash
# Reset development database
if [ "$NODE_ENV" = "development" ]; then
npx prisma migrate reset --force
npx prisma db seed
fi
```
### Phase 6: Documentation Synchronization
1. **API Documentation**
```bash
# Regenerate API documentation
npm run docs:api
# Update OpenAPI/Swagger specs
npm run openapi:generate
# Verify documentation build
npm run docs:build
```
2. **Dependency Documentation**
```bash
# Generate dependency graph
npm run deps:graph
# Update package documentation
npm run docs:packages
# Create SBOM (Software Bill of Materials)
npm run sbom:generate
```
### Phase 7: Testing Infrastructure Sync
1. **Test Environment Setup**
```bash
# Set up test database
DATABASE_URL=postgres://test npm run test:db:setup
# Install test utilities
npm install --save-dev @testing-library/react @testing-library/jest-dom
# Configure test coverage
npm test -- --coverage --watchAll=false
```
2. **Mock Data Synchronization**
```bash
# Update test fixtures
npm run fixtures:generate
# Sync mock server configuration
npm run mocks:sync
```
### Phase 8: CI/CD Pipeline Sync
1. **Workflow Validation**
```bash
# Validate GitHub Actions workflows
if [ -d .github/workflows ]; then
for file in .github/workflows/*.yml; do
echo "Validating $file"
npx @action-validator/cli "$file"
done
fi
```
2. **Secret Management**
```bash
# Check for required secrets
required_secrets=("NPM_TOKEN" "AWS_ACCESS_KEY" "DATABASE_URL")
echo "Required CI/CD secrets:"
for secret in "${required_secrets[@]}"; do
echo " - $secret"
done
```
### Phase 9: Compliance Sync
1. **License Compliance**
```bash
# Check dependency licenses
npx license-checker --summary
# Verify no incompatible licenses
npx license-checker --onlyAllow "MIT;Apache-2.0;BSD-3-Clause;ISC"
# Generate license report
npx license-checker --json > compliance/licenses.json
```
2. **Security Compliance**
```bash
# Run security audit
npm audit --audit-level=moderate
# Check for known vulnerabilities
npx snyk test
# Scan for secrets in code
if command -v gitleaks &> /dev/null; then
gitleaks detect --source . --verbose
fi
```
3. **Code Quality Metrics**
```bash
# Generate complexity report
npx madge --circular --extensions ts,tsx src/
# Calculate technical debt
npx code-complexity --threshold 10 src/
# Check bundle size
npm run build && npm run analyze
```
## Synchronization Report
Generate comprehensive synchronization report:
```markdown
# Workspace Synchronization Report
**Date:** 2024-01-15 14:30:00 UTC
**Duration:** 45 seconds
**Status:** ✓ Success
## Summary
- 15 configuration items synchronized
- 3 warnings resolved
- 0 errors found
- All team members aligned
## Details
### Dependencies
✓ All packages up to date
✓ No security vulnerabilities
✓ Lockfile integrity verified
### Configuration
✓ Environment variables validated
✓ Git config synchronized
✓ Editor settings aligned
### Code Quality
✓ All files formatted correctly
✓ No linting errors
✓ Type checking passed
✓ Test coverage at 85%
### Compliance
✓ All licenses compatible
✓ No security issues
✓ Documentation up to date
### Database
✓ All migrations applied
✓ Schema in sync
✓ Seed data loaded
## Actions Taken
1. Updated TypeScript from 4.9.5 to 5.0.0
2. Installed missing commitlint
3. Configured Git hooks with Husky
4. Applied code formatting to 12 files
5. Regenerated API documentation
## Recommendations
- Consider upgrading Node.js to 20.x LTS
- Review and update outdated dev dependencies
- Add integration tests for new features
- Schedule security audit review
## Next Steps
1. Commit synchronized configuration
2. Push changes to feature branch
3. Create PR for team review
4. Update documentation
```
## Automated Synchronization
Enable continuous synchronization:
**package.json scripts:**
```json
{
"scripts": {
"sync": "node scripts/workspace-sync.js",
"sync:check": "node scripts/workspace-sync.js --check-only",
"postinstall": "npm run sync",
"precommit": "npm run sync:check"
}
}
```
**Git hooks integration:**
```bash
# .husky/post-merge
#!/bin/sh
npm run sync
```
## Success Criteria
Successful synchronization ensures:
- All developers use same tool versions
- Configurations match across machines
- Dependencies are consistent
- Code standards enforced uniformly
- Database schemas aligned
- Documentation current
- Compliance requirements met
- CI/CD pipelines operational
## Business Impact
**Consistency:** Eliminate environment-related bugs
**Productivity:** Reduce setup and debugging time
**Quality:** Enforce standards automatically
**Compliance:** Maintain audit readiness
**Collaboration:** Enable seamless team coordination
This comprehensive workspace synchronization ensures every team member works in a consistent, compliant, and optimized development environment.