steering_docs/dotnet-tech/orchestration.md
Coordinate the modular components to generate complete AWS SDK code examples. Each component can be used independently or in sequence.
graph TD
A[Knowledge Base Consultation] --> B[Hello Example]
A --> C[Wrapper Class]
A --> D[Scenario]
C --> E[Tests - Stubber Creation]
E --> F[Tests - Unit Tests]
E --> G[Tests - Integration Tests]
E --> H[Tests - Scenario Tests]
B --> I[Metadata Generation]
C --> I
D --> I
I --> J[README Generation]
K[Service Specification] --> I
K --> C
K --> D
Complete implementation of a new AWS service:
# 1. Knowledge Base Consultation (MANDATORY FIRST)
# Use ListKnowledgeBases + QueryKnowledgeBases for standards and patterns
# 2. Generate Core Components
# - Hello example: Hello{Service}.cs
# - Wrapper class: {Service}Wrapper.cs
# - Scenario: {Service}Basics.cs
# - Project files: *.csproj files
# 3. Generate Test Suite
# - Unit tests: {Service}Tests.cs
# - Integration tests: {Service}IntegrationTests.cs
# 4. Generate Metadata
# - Read service specification for exact metadata keys
# - Create .doc_gen/metadata/{service}_metadata.yaml
# 5. Generate Documentation
# - Run writeme tool to create/update README.md
# 6. Build and Validate
# - Build solution with dotnet build
# - Run tests with dotnet test
# Focus: hello.md guidance
# Files: {service}_hello.py
# Validation: Run hello example, check output
# Focus: wrapper.md guidance
# Files: {service}_wrapper.py
# Validation: Run unit tests for wrapper methods
# Focus: scenario.md guidance
# Files: scenario_{service}_basics.py
# Validation: Run scenario tests, check user interaction
# Focus: tests.md guidance
# Files: All test files in test/ directory
# Validation: Run pytest with all markers
# Focus: metadata.md guidance
# Files: .doc_gen/metadata/{service}_metadata.yaml
# Validation: Run writeme tool validation
# Focus: readme.md guidance
# Files: README.md (generated)
# Validation: Check README completeness and accuracy
Each component has specific validation requirements:
dotnet run --project dotnetv4/{Service}/Actions/Hello{Service}.csproj
dotnet build dotnetv4/{Service}/Actions/{Service}Wrapper.csproj
dotnet run --project dotnetv4/{Service}/Scenarios/{Service}_Basics/{Service}Basics.csproj
dotnet test dotnetv4/{Service}/Tests/{Service}Tests.csproj
dotnet test dotnetv4/{Service}/Tests/{Service}Tests.csproj --filter Category=Integration
dotnet format dotnetv4/{Service}/
cd .tools/readmes
source .venv/bin/activate
python -m writeme --languages .NET:4 --services {service}
Full integration testing across all components:
# 1. All unit tests pass
dotnet test dotnetv4/{Service}/Tests/{Service}Tests.csproj --filter "Category!=Integration"
# 2. All integration tests pass
dotnet test dotnetv4/{Service}/Tests/{Service}Tests.csproj --filter Category=Integration
# 3. All examples execute successfully
dotnet run --project dotnetv4/{Service}/Actions/Hello{Service}.csproj
dotnet run --project dotnetv4/{Service}/Scenarios/{Service}_Basics/{Service}Basics.csproj
# 4. Code quality passes
dotnet format dotnetv4/{Service}/
# 5. Documentation generates successfully
cd .tools/readmes && source .venv/bin/activate && python -m writeme --languages .NET:4 --services {service}
If any component fails, you can:
# Fix test issues and re-run
python -m pytest python/example_code/{service}/test/ -v --tb=short
# Check metadata syntax
python -c "import yaml; yaml.safe_load(open('.doc_gen/metadata/{service}_metadata.yaml'))"
# Validate against specification
# Compare with scenarios/basics/{service}/SPECIFICATION.md
# Check for missing dependencies
cd .tools/readmes && source .venv/bin/activate && pip list
# Validate metadata first
python -m writeme --languages Python:3 --services {service} --verbose
This modular approach allows for targeted updates, easier debugging, and more maintainable code generation processes.