Project Configuration
How Orchestre projects are configured and managed.
Overview
Orchestre uses a distributed, lightweight approach to project configuration:
- Environment Variables - Runtime settings and API keys
- Template Metadata - Initial project structure from
template.json - Memory System - Project context in
CLAUDE.mdfiles - Model Configuration - Optional
models.config.jsonfor LLM preferences
Configuration Philosophy
Unlike traditional frameworks with complex configuration files, Orchestre embraces:
- Convention over configuration - Smart defaults that just work
- Distributed knowledge - Configuration lives with the code it affects
- Natural language - Describe what you want, not how to configure it
Project Initialization
When you create a new project:
bash
/create "my-app" using makerkit-nextjsOrchestre:
- Copies the template structure
- Installs template-specific commands
- Creates initial CLAUDE.md with project context
- Sets up memory templates for documentation
Environment Configuration
Required Settings
bash
# .env - At least one LLM provider key required
ANTHROPIC_API_KEY=sk-ant-xxx
# or
OPENAI_API_KEY=sk-xxx
# or
GEMINI_API_KEY=AIzaSyxxxOptional Settings
bash
# Debug and logging
ORCHESTRE_DEBUG=true
ORCHESTRE_LOG_LEVEL=debug # error, warn, info, debug, verbose
# Performance tuning
ORCHESTRE_PARALLEL_AGENTS=3 # 1-10, default: 3
ORCHESTRE_TIMEOUT=60000 # milliseconds, default: 30000
# Feature flags
ORCHESTRE_AUTO_REVIEW=true # Auto-review after changes
ORCHESTRE_DISTRIBUTED_MEMORY=true # Use CLAUDE.md systemModel Configuration
Optionally configure LLM preferences in models.config.json:
json
{
"primary": "claude-3-opus",
"planning": "gemini-2.0-flash-thinking-exp",
"review": ["gpt-4o", "claude-3-sonnet"],
"parameters": {
"temperature": 0.7,
"maxTokens": 4096
}
}Template Configuration
Each template includes template.json with metadata:
json
{
"name": "makerkit-nextjs",
"description": "Production-ready SaaS starter kit",
"version": "1.0.0",
"author": "MakerKit",
"commands": [
"add-feature",
"setup-stripe",
"add-team-feature",
// ... more commands
],
"dependencies": {
"required": ["next", "react", "typescript"],
"optional": ["stripe", "resend", "posthog"]
}
}Memory System Configuration
Project knowledge is stored in CLAUDE.md files throughout your project:
Root CLAUDE.md
markdown
# Project: SaaS Platform
## Architecture
- Next.js 14 with App Router
- PostgreSQL with Prisma ORM
- Stripe for subscriptions
- AWS S3 for file storage
## Conventions
- Use server components by default
- Implement auth checks in middleware
- Follow REST API naming conventions
## Key Decisions
- Multi-tenant with team workspaces
- JWT authentication with refresh tokens
- Webhook-driven billing updatesFeature-specific CLAUDE.md
markdown
# Authentication System
## Implementation
- NextAuth.js with custom adapter
- JWT tokens with 7-day expiry
- Refresh tokens in httpOnly cookies
## Security Measures
- Rate limiting on auth endpoints
- Email verification required
- 2FA optional per userProject Metadata
Orchestre automatically tracks:
- Template used for initialization
- Commands available for the project
- Memory structure and documentation
- Creation timestamp and context
This information helps Orchestre provide context-aware assistance.
Configuration by Convention
Many aspects don't require explicit configuration:
File Structure
- Orchestre understands common patterns
- Adapts to your project's structure
- No need to configure paths
Dependencies
- Reads from package.json
- Understands framework conventions
- Suggests compatible packages
Workflows
- Learns from your command usage
- Adapts to your development style
- No workflow configuration needed
Dynamic Adaptation
Orchestre discovers and adapts to your project:
bash
# Discover existing project context
/discover-context
# Document new architectural decisions
/document-feature "Switched to GraphQL API"
# Orchestre learns and adapts
/orchestrate "Add a new API endpoint"
# Now suggests GraphQL resolver instead of RESTBest Practices
1. Document Early and Often
bash
# After major decisions
/document-feature "Chose PostgreSQL for JSONB support"
# After solving complex problems
/document-feature "Rate limiting: 100 req/min per user"2. Keep Secrets Secure
bash
# Never commit .env files
echo ".env*" >> .gitignore
# Use platform-specific secret management in production3. Let Templates Guide You
bash
# Templates include best practices
/create "my-app" using makerkit-nextjs
# Follow template conventions for consistency4. Leverage Natural Language
bash
# Instead of complex config
/orchestrate "Configure the app for production deployment"
# Orchestre understands context and intentTroubleshooting
Missing API Keys?
bash
# Check environment
env | grep "_API_KEY"
# Ensure .env is loaded
source .envCommands Not Working?
bash
# Verify template
cat template.json
# Check available commands
/statusNeed Different Models?
bash
# Create models.config.json
echo '{"primary": "gpt-4o"}' > models.config.json