Files
blackroad-operating-system/.templates
Claude c50abba250 Add comprehensive Test Orchestrator pattern for monorepo testing
This commit implements a unified test orchestration system that coordinates
all test suites across the BlackRoad Operating System monorepo, providing
consistent testing behavior between local development and CI/CD environments.

## Core Components

### 1. Test Orchestrator Script (test_all.sh)
- Unified interface to run all test suites
- Smart suite detection with existence checks
- Two operational modes:
  * Best-effort: Run all suites, report summary (default)
  * Strict mode: Fail-fast on first error (--strict)
- Color-coded, structured output with summary table
- Modular suite functions for easy extension
- Result tracking with pass/fail/skip status and duration
- Verbose mode for detailed test output

Supported test suites:
- Backend (FastAPI + pytest)
- Agents (200+ AI agent ecosystem)
- Operator Engine (GitHub automation)
- Python SDK (pytest)
- TypeScript SDK (Jest)
- Frontend (structure validation)

### 2. GitHub Actions Workflow (.github/workflows/test-orchestrator.yml)
- Runs orchestrator in CI using same script as local dev
- Service containers (Postgres, Redis) for integration tests
- Multi-language runtime setup (Python 3.11, Node 20)
- Dependency caching for faster builds
- Test artifact uploads (coverage, reports)
- Manual workflow dispatch with suite selection
- Coverage reporting for PRs (Codecov integration)
- Automatic PR status comments

### 3. Comprehensive Documentation (TESTING.md)
- Complete testing guide for developers and AI assistants
- Quick start examples
- Suite-by-suite documentation
- Local development setup instructions
- CI/CD integration guide
- Test writing best practices
- Troubleshooting FAQ with common issues and solutions
- Framework-specific examples

## Reusable Templates (.templates/test-orchestrator/)

Created generic templates for use in other repositories:

### Template Files
- test_all.sh.template - Generic orchestrator script
- test-orchestrator.yml.template - Generic CI workflow
- TESTING.md.template - Generic testing documentation
- PROMPTS.md - AI assistant prompts for implementation
- README.md - Template usage guide and customization instructions

### Key Features
- Clear placeholders ({{REPO_NAME}}, {{PROJECT_DESCRIPTION}}, etc.)
- Comprehensive inline comments
- Framework-agnostic design (Python/Node/Go/Rust examples)
- Adaptation guides for different project structures
- AI assistant prompts for Claude, Copilot, ChatGPT

### Use Cases
- Multi-language monorepos
- Microservices architectures
- Data science projects
- Infrastructure projects
- Any project needing unified test orchestration

## Benefits

1. **Consistency**: Same test experience locally and in CI
2. **Discoverability**: New contributors know exactly how to run tests
3. **Maintainability**: Single pattern to learn and maintain
4. **Extensibility**: Easy to add new test suites
5. **CI-Friendly**: Optimized for GitHub Actions
6. **Reusability**: Templates can be copied to any repo

## Usage

Local development:
  ./test_all.sh                    # Run all suites
  ./test_all.sh --strict           # Fail-fast mode
  ./test_all.sh --suite backend    # Run specific suite
  ./test_all.sh --verbose          # Detailed output

CI triggers automatically on:
  - Push to main, claude/**, copilot/**, codex/** branches
  - Pull requests to main
  - Manual workflow dispatch

## Migration Notes

This implementation:
- Preserves existing test scripts (scripts/run_backend_tests.sh)
- Works alongside existing CI workflows
- Can be adopted gradually or all at once
- Requires no changes to existing test code

## Future Enhancements

Potential additions:
- Matrix testing across Python/Node versions
- Performance benchmarking suite
- Flaky test detection
- Test result caching
- Slack/Discord notifications

---

Pattern adapted for: BlackRoad Operating System monorepo
Designed for: Maximum reusability across projects
Target audience: Developers, DevOps engineers, AI assistants
2025-11-18 07:42:01 +00:00
..

BlackRoad Templates

Reusable patterns and templates from BlackRoad Operating System

This directory contains battle-tested templates and patterns that can be copied to other projects.


Available Templates

🧪 Test Orchestrator

Purpose: Unified test orchestration for monorepos

What's Included:

  • test_all.sh.template - Universal test orchestrator script
  • test-orchestrator.yml.template - GitHub Actions workflow
  • TESTING.md.template - Comprehensive testing documentation
  • PROMPTS.md - AI assistant prompts for implementation
  • README.md - Usage guide and customization instructions

When to Use:

  • Multi-language monorepos
  • Projects with multiple test suites
  • Teams wanting consistent test execution
  • CI/CD pipelines needing orchestration

Quick Start:

# Copy to your repo
cp -r .templates/test-orchestrator/* /path/to/your/repo/

# Customize for your project
# See test-orchestrator/README.md for details

Used In:

  • BlackRoad Operating System (this repo)
  • Can be adapted for any project

Future Templates

Plans to add:

  • CI/CD Pipeline Templates - Reusable GitHub Actions workflows
  • Docker Compose Stacks - Development environment templates
  • API Documentation - OpenAPI/Swagger templates
  • Project Structure - New project scaffolding
  • Release Automation - Semantic versioning and changelog generation

Contributing Templates

When adding new templates to this directory:

  1. Create a subdirectory: .templates/my-template/
  2. Include these files:
    • README.md - Usage guide
    • Template files with .template extension
    • PROMPTS.md - AI assistant prompts (optional)
    • Examples (optional)
  3. Document in this README: Add section above
  4. Test thoroughly: Ensure it works in multiple scenarios
  5. Keep generic: Use placeholders like {{REPO_NAME}}

Template Quality Standards

Good Template:

  • Clear placeholders (e.g., {{TODO}}, {{REPLACE_ME}})
  • Comprehensive comments
  • Works out of the box after customization
  • Includes usage documentation
  • Provides examples

Poor Template:

  • Hardcoded values
  • Missing documentation
  • Assumes specific tools without checks
  • No examples or guidance

Usage Philosophy

These templates embody BlackRoad's core principles:

  1. Consistency: Same patterns across all projects
  2. Discoverability: Clear documentation and examples
  3. Extensibility: Easy to customize and extend
  4. Simplicity: No unnecessary complexity
  5. Practicality: Battle-tested in production

When using these templates:

  • Don't blindly copy: Understand what they do
  • Customize thoughtfully: Adapt to your needs
  • Maintain quality: Keep the same standards
  • Share improvements: Contribute back when you find better approaches

Template Versioning

Templates follow semantic versioning:

  • Major: Breaking changes to structure or API
  • Minor: New features, backwards compatible
  • Patch: Bug fixes, documentation updates

Current versions:

  • test-orchestrator: v1.0.0 (2025-11-18)

Support

  • Documentation: Each template has its own README
  • Issues: Report in BlackRoad Operating System repo
  • Questions: Open a discussion in the main repo
  • AI Assistance: Use PROMPTS.md files with Claude/Copilot

License

Templates are provided as-is from BlackRoad Operating System. Use freely in your own projects, commercial or personal.

Attribution appreciated but not required.


Build amazing things! 🚀