556 lines
16 KiB
Markdown
556 lines
16 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code when working with the Configuration-Driven Infinite Loop Orchestration variant.
|
|
|
|
## Project Overview
|
|
|
|
This is **Variant 5** of the Infinite Agents project, implementing a **configuration-driven orchestration system** with **chain prompting** patterns.
|
|
|
|
Unlike previous variants with hardcoded parameters, this variant externalizes all orchestration settings to JSON configuration files, enabling flexible, reproducible, and production-ready infinite loop execution.
|
|
|
|
## Core Innovation
|
|
|
|
### Configuration-Driven Architecture
|
|
All orchestration parameters are externalized to configuration files:
|
|
- Defaults in `.claude/config/defaults.json`
|
|
- Profiles in `.claude/config/profiles/{profile}.json`
|
|
- Custom configurations via file paths or inline JSON
|
|
- Hierarchical merging: defaults → profile → custom → runtime overrides
|
|
|
|
### Chain Prompting Implementation
|
|
Implements chain prompting pattern from Anthropic documentation:
|
|
- Workflow decomposed into 7 focused stages
|
|
- State passed between stages via XML tags
|
|
- Each stage has single-task goal for maximum attention
|
|
- Self-correction loops for quality enforcement
|
|
- Complete traceability through workflow audit trail
|
|
|
|
## Key Commands
|
|
|
|
### Primary Command: /project:infinite-config
|
|
|
|
Main orchestration command implementing full chain prompting workflow.
|
|
|
|
**Syntax:**
|
|
```bash
|
|
/project:infinite-config <spec_path> <output_dir> <count> [profile] [config_overrides]
|
|
```
|
|
|
|
**Arguments:**
|
|
- `spec_path`: Path to specification file
|
|
- `output_dir`: Output directory (relative to project root)
|
|
- `count`: Number of iterations or "infinite"
|
|
- `profile` (optional): Configuration profile (development|production|research)
|
|
- `config_overrides` (optional): Path to custom config JSON or inline JSON
|
|
|
|
**Examples:**
|
|
```bash
|
|
# Use defaults
|
|
/project:infinite-config specs/example_spec.md output 5
|
|
|
|
# Use development profile
|
|
/project:infinite-config specs/example_spec.md output_dev 3 development
|
|
|
|
# Use production profile
|
|
/project:infinite-config specs/example_spec.md output_prod 20 production
|
|
|
|
# Use custom config file
|
|
/project:infinite-config specs/example_spec.md output 10 custom examples/custom_config.json
|
|
|
|
# Use inline overrides
|
|
/project:infinite-config specs/example_spec.md output 5 development '{"orchestration":{"max_parallel_agents":8}}'
|
|
|
|
# Infinite mode
|
|
/project:infinite-config specs/example_spec.md infinite_output infinite production
|
|
```
|
|
|
|
### Utility Commands
|
|
|
|
**Configuration Validation:**
|
|
```bash
|
|
/project:validate-config [config_path] [profile]
|
|
```
|
|
|
|
Validates configuration files with:
|
|
- Schema validation (types, required fields, constraints)
|
|
- Semantic validation (logical consistency, value reasonableness)
|
|
- Cross-field validation (relationship checks, compatibility)
|
|
|
|
**Interactive Configuration:**
|
|
```bash
|
|
/project:configure [action] [profile] [output_path]
|
|
```
|
|
|
|
Actions:
|
|
- `create` - Create new custom configuration interactively
|
|
- `edit` - Edit existing configuration
|
|
- `compare` - Compare two configurations
|
|
- `optimize` - Optimize for use case (speed, quality, scale, development, research)
|
|
- `merge` - Merge multiple configurations
|
|
|
|
## Configuration Profiles
|
|
|
|
### Development Profile
|
|
**File:** `.claude/config/profiles/development.json`
|
|
|
|
Optimized for:
|
|
- Quick iteration and testing
|
|
- Debugging and learning
|
|
- Quality over speed
|
|
|
|
Settings:
|
|
- Small batches (3 iterations)
|
|
- 2 parallel agents
|
|
- Verbose logging (debug level)
|
|
- Review stage enabled
|
|
- Lower uniqueness threshold (0.7)
|
|
- Max 10 iterations
|
|
- Web enhancement enabled with caching
|
|
|
|
**Use when:**
|
|
- Testing new specifications
|
|
- Debugging issues
|
|
- Learning the system
|
|
- Developing new features
|
|
|
|
### Production Profile
|
|
**File:** `.claude/config/profiles/production.json`
|
|
|
|
Optimized for:
|
|
- Scale and throughput
|
|
- Efficiency and performance
|
|
- Minimal overhead
|
|
|
|
Settings:
|
|
- Large batches (10 iterations)
|
|
- 5 parallel agents
|
|
- Minimal logging (warn level)
|
|
- Review stage disabled
|
|
- High uniqueness threshold (0.9)
|
|
- Max 1000 iterations
|
|
- Web enhancement enabled, no caching
|
|
- Progressive sophistication enabled
|
|
|
|
**Use when:**
|
|
- Running large batches
|
|
- Production deployments
|
|
- Performance is critical
|
|
- Quality thresholds are well-tested
|
|
|
|
### Research Profile
|
|
**File:** `.claude/config/profiles/research.json`
|
|
|
|
Optimized for:
|
|
- Maximum quality
|
|
- Exploration and experimentation
|
|
- Comprehensive analysis
|
|
|
|
Settings:
|
|
- Medium batches (5 iterations)
|
|
- 3 parallel agents
|
|
- Extensive logging (debug level, verbose)
|
|
- Review stage enabled
|
|
- Very high uniqueness threshold (0.95)
|
|
- Max 50 iterations
|
|
- Extensive web priming (8 URLs)
|
|
- Cross-iteration learning enabled
|
|
- Additional chain prompting stages (11 total)
|
|
|
|
**Use when:**
|
|
- Exploring new domains
|
|
- Maximum quality needed
|
|
- Understanding system behavior
|
|
- Experimenting with techniques
|
|
|
|
## Chain Prompting Workflow
|
|
|
|
The system implements a 7-stage chain prompting workflow (configurable):
|
|
|
|
### Stage 1: Load Configuration
|
|
**Single-Task Goal:** Load and parse all configuration sources
|
|
|
|
Loads configurations in hierarchical order:
|
|
1. defaults.json
|
|
2. profile.json (if specified)
|
|
3. custom config file (if provided)
|
|
4. inline JSON overrides (if provided)
|
|
|
|
### Stage 2: Validate Configuration
|
|
**Single-Task Goal:** Validate all configurations against schema
|
|
|
|
Validates:
|
|
- Schema compliance (types, required fields, constraints)
|
|
- Value ranges and enum values
|
|
- String patterns
|
|
|
|
### Stage 3: Merge Configuration
|
|
**Single-Task Goal:** Merge validated configurations hierarchically
|
|
|
|
Deep merges all configurations, later values override earlier ones.
|
|
|
|
### Stage 4: Analyze Specification
|
|
**Single-Task Goal:** Deeply analyze the specification file
|
|
|
|
Extracts:
|
|
- Content requirements
|
|
- Quality standards
|
|
- Naming conventions
|
|
- Technical requirements
|
|
|
|
### Stage 5: Plan Execution
|
|
**Single-Task Goal:** Create detailed execution plan
|
|
|
|
Plans:
|
|
- Execution mode (batch vs infinite)
|
|
- Wave structure and agent assignments
|
|
- Web enhancement strategy
|
|
- Resource allocation
|
|
|
|
### Stage 6: Execute Generation
|
|
**Single-Task Goal:** Execute parallel agent generation
|
|
|
|
Executes:
|
|
- Initial web priming (if enabled)
|
|
- Parallel agent waves
|
|
- Error handling and retries
|
|
- Limit checking
|
|
|
|
### Stage 7: Validate Output (Optional)
|
|
**Single-Task Goal:** Validate generated outputs
|
|
|
|
Validates:
|
|
- Spec compliance
|
|
- Uniqueness thresholds
|
|
- File size limits
|
|
- Code quality
|
|
|
|
Enables self-correction loops if validation fails.
|
|
|
|
## Configuration System
|
|
|
|
### Configuration Sections
|
|
|
|
**orchestration** - Parallel execution settings
|
|
- `max_parallel_agents` (1-10): Simultaneous sub-agents
|
|
- `batch_size` (1-50): Iterations per batch
|
|
- `infinite_mode_wave_size` (1-20): Iterations per wave
|
|
- `context_budget_per_agent` (10000-200000): Token budget
|
|
- `agent_timeout_ms` (30000-600000): Execution timeout
|
|
- `enable_progressive_sophistication` (boolean): Increase complexity over time
|
|
|
|
**generation** - Output file settings
|
|
- `output_directory`: Save location
|
|
- `naming_pattern`: File naming with placeholders
|
|
- `file_format`: html|markdown|json|text
|
|
- `include_metadata` (boolean): Embed metadata
|
|
- `metadata_format`: html_comment|yaml_frontmatter|json_header
|
|
|
|
**quality** - Quality control
|
|
- `min_uniqueness_threshold` (0.0-1.0): Required uniqueness
|
|
- `enable_validation` (boolean): Validate outputs
|
|
- `enable_review_stage` (boolean): Add review step
|
|
- `max_retry_attempts` (0-5): Retry failures
|
|
- `require_spec_compliance_check` (boolean): Validate spec compliance
|
|
|
|
**web_enhancement** - Web learning
|
|
- `enabled` (boolean): Enable web-enhanced generation
|
|
- `initial_priming_urls` (0-10): Initial knowledge priming
|
|
- `urls_per_iteration` (0-5): URLs per iteration
|
|
- `progressive_difficulty` (boolean): Progressive URL difficulty
|
|
- `enable_web_search_fallback` (boolean): Search when exhausted
|
|
- `cache_web_content` (boolean): Cache fetched content
|
|
- `web_fetch_timeout_ms` (5000-60000): Fetch timeout
|
|
|
|
**logging** - Logging configuration
|
|
- `level`: debug|info|warn|error
|
|
- `log_agent_outputs` (boolean): Log sub-agent outputs
|
|
- `log_web_fetches` (boolean): Log web operations
|
|
- `log_config_loading` (boolean): Log config loading
|
|
- `verbose` (boolean): Maximum detail
|
|
|
|
**chain_prompting** - Chain prompting settings
|
|
- `enabled` (boolean): Enable chain prompting
|
|
- `stages` (array): Workflow stages to execute
|
|
- `enable_self_correction` (boolean): Enable self-correction
|
|
- `pass_state_via_xml` (boolean): Use XML for state
|
|
|
|
**features** - Feature flags
|
|
- `enable_url_strategy` (boolean): URL strategy files
|
|
- `enable_theme_evolution` (boolean): Evolve themes
|
|
- `enable_cross_iteration_learning` (boolean): Learn from previous
|
|
- `enable_automatic_indexing` (boolean): Auto-generate indexes
|
|
|
|
**limits** - Safety limits
|
|
- `max_iterations`: Maximum iterations
|
|
- `max_file_size_kb`: Maximum file size
|
|
- `max_total_output_mb`: Maximum total output
|
|
- `warn_at_iteration`: Warning threshold
|
|
|
|
### Configuration Hierarchy
|
|
|
|
Configurations merge in order (later overrides earlier):
|
|
1. `.claude/config/defaults.json` (base)
|
|
2. `.claude/config/profiles/{profile}.json` (if specified)
|
|
3. Custom config file (if path provided)
|
|
4. Inline JSON overrides (if provided)
|
|
|
|
Example:
|
|
```bash
|
|
# This uses: defaults ← production ← custom_config.json ← inline override
|
|
/project:infinite-config specs/example_spec.md output 20 production examples/custom_config.json '{"logging":{"verbose":true}}'
|
|
```
|
|
|
|
## Typical Workflows
|
|
|
|
### Workflow 1: Quick Test (Development)
|
|
```bash
|
|
# Validate development profile
|
|
/project:validate-config development
|
|
|
|
# Run 3 iterations for testing
|
|
/project:infinite-config specs/example_spec.md test_output 3 development
|
|
```
|
|
|
|
### Workflow 2: Production Batch
|
|
```bash
|
|
# Validate production profile
|
|
/project:validate-config production
|
|
|
|
# Run 50 iterations
|
|
/project:infinite-config specs/example_spec.md prod_output 50 production
|
|
```
|
|
|
|
### Workflow 3: Custom Configuration
|
|
```bash
|
|
# Create custom configuration interactively
|
|
/project:configure create production my_custom.json
|
|
|
|
# Validate it
|
|
/project:validate-config my_custom.json
|
|
|
|
# Run with custom config
|
|
/project:infinite-config specs/example_spec.md output 20 custom my_custom.json
|
|
```
|
|
|
|
### Workflow 4: Optimization
|
|
```bash
|
|
# Create speed-optimized configuration
|
|
/project:configure optimize speed
|
|
|
|
# Or quality-optimized
|
|
/project:configure optimize quality
|
|
|
|
# Compare configurations
|
|
/project:configure compare development production
|
|
```
|
|
|
|
### Workflow 5: Research Exploration
|
|
```bash
|
|
# Use research profile for maximum quality
|
|
/project:infinite-config specs/example_spec.md research_output 20 research
|
|
|
|
# Check results, then continue
|
|
/project:infinite-config specs/example_spec.md research_output 30 research
|
|
```
|
|
|
|
## Best Practices
|
|
|
|
### For Claude Code Agent
|
|
|
|
1. **Always validate configurations before running**
|
|
- Use `/project:validate-config` to check
|
|
- Fix errors before executing
|
|
|
|
2. **Choose appropriate profile for task**
|
|
- Development: testing, debugging, learning
|
|
- Production: scale, efficiency
|
|
- Research: quality, exploration
|
|
|
|
3. **Use inline overrides for one-off changes**
|
|
- Don't create new config file for single parameter change
|
|
- Use inline JSON for temporary overrides
|
|
|
|
4. **Monitor resource usage**
|
|
- Check context budget consumption
|
|
- Monitor output directory size
|
|
- Watch for limit warnings
|
|
|
|
5. **Start small, scale up**
|
|
- Test with small batches first
|
|
- Validate quality before large runs
|
|
- Use development profile for initial tests
|
|
|
|
6. **Leverage chain prompting stages**
|
|
- Each stage focuses on single task
|
|
- State passes via XML tags
|
|
- Self-correction enabled for quality
|
|
|
|
### For Specifications
|
|
|
|
1. **Reference configuration in spec**
|
|
- Specs should note configurable parameters
|
|
- Guide users to appropriate settings
|
|
|
|
2. **Set reasonable defaults**
|
|
- Specs work with default configuration
|
|
- Optimize for common use cases
|
|
|
|
3. **Document quality thresholds**
|
|
- What uniqueness threshold is appropriate?
|
|
- Which validation checks are needed?
|
|
|
|
## File Structure
|
|
|
|
```
|
|
infinite_variant_5/
|
|
├── .claude/
|
|
│ ├── commands/ # Slash commands
|
|
│ │ ├── infinite-config.md
|
|
│ │ ├── validate-config.md
|
|
│ │ └── configure.md
|
|
│ ├── config/ # Configuration system
|
|
│ │ ├── defaults.json
|
|
│ │ ├── schema.json
|
|
│ │ └── profiles/
|
|
│ │ ├── development.json
|
|
│ │ ├── production.json
|
|
│ │ └── research.json
|
|
│ └── settings.json
|
|
├── specs/ # Specifications
|
|
│ └── example_spec.md
|
|
├── examples/ # Example configs
|
|
│ └── custom_config.json
|
|
├── docs/ # Documentation
|
|
│ └── configuration_guide.md
|
|
├── README.md
|
|
└── CLAUDE.md # This file
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Configuration Errors
|
|
**Issue:** Configuration validation fails
|
|
|
|
**Solution:**
|
|
1. Run `/project:validate-config` to see specific errors
|
|
2. Check schema.json for valid values
|
|
3. Compare to working profile configurations
|
|
4. Use `/project:configure edit` to fix interactively
|
|
|
|
### Execution Failures
|
|
**Issue:** Generation fails during execution
|
|
|
|
**Solution:**
|
|
1. Check configured timeouts (agent_timeout_ms)
|
|
2. Verify output directory is writable
|
|
3. Check resource limits (max_iterations, max_total_output_mb)
|
|
4. Enable verbose logging to diagnose
|
|
5. Try smaller batch_size
|
|
|
|
### Uniqueness Issues
|
|
**Issue:** Iterations too similar
|
|
|
|
**Solution:**
|
|
1. Increase `min_uniqueness_threshold`
|
|
2. Enable `enable_theme_evolution`
|
|
3. Check specification diversity requirements
|
|
4. Review existing iterations for patterns
|
|
|
|
### Performance Issues
|
|
**Issue:** Execution too slow
|
|
|
|
**Solution:**
|
|
1. Increase `max_parallel_agents` (up to 10)
|
|
2. Disable `enable_review_stage`
|
|
3. Reduce logging level to `warn` or `error`
|
|
4. Disable web enhancement if not needed
|
|
5. Use production profile as baseline
|
|
|
|
### Web Enhancement Issues
|
|
**Issue:** Web fetches failing or slow
|
|
|
|
**Solution:**
|
|
1. Check `web_fetch_timeout_ms` is sufficient
|
|
2. Enable `enable_web_search_fallback`
|
|
3. Reduce `urls_per_iteration`
|
|
4. Enable `cache_web_content` to reuse fetches
|
|
|
|
## Advanced Usage
|
|
|
|
### Custom Chain Prompting Stages
|
|
|
|
Modify `chain_prompting.stages` array to customize workflow:
|
|
|
|
```json
|
|
{
|
|
"chain_prompting": {
|
|
"stages": [
|
|
"load_config",
|
|
"validate_config",
|
|
"merge_config",
|
|
"analyze_spec",
|
|
"research_existing", // Custom stage
|
|
"plan_execution",
|
|
"execute_generation",
|
|
"review_output", // Optional stage
|
|
"refine_output", // Custom stage
|
|
"validate_output",
|
|
"analyze_results" // Custom stage
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Progressive Sophistication
|
|
|
|
When `enable_progressive_sophistication` is true, infinite mode increases complexity:
|
|
|
|
- Wave 1: Basic implementations
|
|
- Wave 2: Intermediate complexity
|
|
- Wave 3: Advanced techniques
|
|
- Wave 4+: Expert level
|
|
|
|
Configure wave size with `infinite_mode_wave_size`.
|
|
|
|
### Cross-Iteration Learning
|
|
|
|
Enable with `features.enable_cross_iteration_learning`:
|
|
- Later iterations learn from earlier ones
|
|
- Requires additional context budget
|
|
- Improves quality but increases execution time
|
|
|
|
### Automatic Indexing
|
|
|
|
Enable with `features.enable_automatic_indexing`:
|
|
- Generates index.html after each wave
|
|
- Lists all generated iterations
|
|
- Provides navigation and preview
|
|
|
|
## Integration with Other Variants
|
|
|
|
This configuration system can be adapted to other variants:
|
|
|
|
1. **Variant 1 (Original)**: Add configuration layer
|
|
2. **Variant 2 (Web-Enhanced)**: Already supports web enhancement config
|
|
3. **Variant 3 (State-Based)**: Add state management config section
|
|
4. **Variant 4 (Specialized Agents)**: Add agent role configurations
|
|
|
|
## Further Reading
|
|
|
|
- `README.md` - Overview and quick start
|
|
- `docs/configuration_guide.md` - Complete configuration reference
|
|
- `.claude/commands/infinite-config.md` - Full command documentation
|
|
- `.claude/commands/validate-config.md` - Validation documentation
|
|
- `.claude/commands/configure.md` - Interactive utility documentation
|
|
- `.claude/config/schema.json` - Complete schema reference
|
|
- `specs/example_spec.md` - Example specification
|
|
|
|
## Notes
|
|
|
|
- Configuration files use JSON format with JSON Schema validation
|
|
- All file paths should be relative to project root
|
|
- Inline JSON overrides must be valid JSON strings
|
|
- Chain prompting stages execute sequentially
|
|
- Self-correction loops respect `max_retry_attempts`
|
|
- Context budget managed across all stages and agents
|