--- name: Reviewing Llama Stack Code description: Use when reviewing code or PRs in the llama-stack repository (llamastack/llama-stack on GitHub). Provides specialized knowledge about Llama Stack's architecture, testing patterns (recordings folders), backward compatibility requirements, distributed system considerations, and code review focus areas specific to this project. --- # Llama Stack Code Review Guidelines This skill provides specialized knowledge for reviewing code in the Llama Stack project (https://github.com/llamastack/llama-stack). ## When to Use This Skill Invoke this skill when: - Reviewing pull requests in the llama-stack repository - Analyzing code changes in llama-stack - Providing feedback on llama-stack contributions - Understanding llama-stack architecture patterns ## Critical: Recordings Folders **MOST IMPORTANT**: Llama Stack uses `recordings/` folders containing JSON response files for CI testing. ### Review Approach for Recordings - **Ignore all content** in `recordings/` folders and any JSON files within them - **Do NOT review** the content of recording files - they are auto-generated test fixtures - **Instead**: Verify that CI checks are passing - **Focus on**: Actual code changes, not recorded responses ### Why This Matters - Recording files can be hundreds or thousands of lines of JSON - They are generated automatically and don't require human review - Reviewing them wastes time and provides no value - CI validates that recordings work correctly ### Example ``` # DO NOT review in detail: tests/recordings/test_foo/response_1.json (500 lines of JSON) tests/recordings/test_bar/response_2.json (800 lines of JSON) # Instead, confirm: ✓ CI checks passing ✓ Test code changes are valid ✓ Actual implementation code is reviewed ``` ## Llama Stack Architecture Patterns ### API Backward Compatibility Llama Stack emphasizes API stability: - Verify new API changes maintain backward compatibility - Check that existing clients won't break - Flag breaking changes explicitly and ensure they're intentional - Validate deprecation paths are provided for removed features ### Distributed System Considerations Llama Stack operates in distributed environments: - **Race conditions**: Check for proper synchronization and locking - **Eventual consistency**: Verify code handles delayed updates correctly - **Network failures**: Ensure retries and timeout handling - **Partial failures**: Check that failures in one component don't cascade ### Error Propagation Errors must flow correctly across component boundaries: - Verify errors include sufficient context for debugging - Check that error types are appropriate for the abstraction level - Ensure errors aren't swallowed or logged without handling - Validate error messages are actionable for users ### Integration Points Llama Stack has well-defined integration patterns: - Verify new integrations follow established patterns - Check that provider interfaces are implemented completely - Ensure configuration handling is consistent - Validate that new components integrate with existing telemetry/logging ### Performance for Distributed Workloads Performance is critical at scale: - Confirm performance impact is acceptable for distributed deployments - Check for N+1 query problems in data access - Verify caching strategies are appropriate - Ensure batch operations are used where possible ## Review Checklist for Llama Stack PRs Use this checklist in addition to standard code review criteria: 1. **Recordings**: Confirmed recordings folders ignored, CI status checked ✓ 2. **Backward Compatibility**: API changes are backward compatible ✓ 3. **Distributed Systems**: Race conditions, consistency, failures handled ✓ 4. **Error Handling**: Errors propagate correctly with context ✓ 5. **Integration Patterns**: Follows established patterns ✓ 6. **Performance**: Acceptable impact for distributed workloads ✓ 7. **Testing**: Tests cover distributed scenarios, not just happy path ✓ ## Common Llama Stack Patterns ### Provider Interface Pattern Llama Stack uses provider interfaces for extensibility: ```python class MyProvider(BaseProvider): async def initialize(self): # Setup logic pass async def execute(self, request): # Implementation pass ``` Verify: - All required methods are implemented - Async patterns are used consistently - Error handling follows provider conventions ### Configuration Pattern Configuration is hierarchical and validated: - Check that new config options are documented - Verify defaults are sensible - Ensure validation happens early with clear error messages ## Anti-Patterns to Flag - **Blocking I/O**: Should use async patterns - **Hardcoded timeouts**: Should be configurable - **Missing telemetry**: New operations should emit metrics/logs - **Tight coupling**: Components should use defined interfaces - **Ignored recordings**: Don't spend time reviewing recording files ## Testing Expectations Llama Stack has specific testing patterns: - Unit tests for individual components - Integration tests using the recordings pattern - Distributed scenario tests for multi-component features - Performance benchmarks for critical paths Verify that: - New features include appropriate test coverage - Tests cover error cases, not just success paths - Recordings are generated for integration tests (but don't review the recordings content) ## Documentation Standards Code changes should include: - API documentation for public interfaces - Architecture decision context for significant changes - Migration guides for breaking changes - Performance characteristics for new features ## Final Recommendation After reviewing a Llama Stack PR using these guidelines: 1. Summarize findings specific to Llama Stack patterns 2. Call out any violations of distributed system best practices 3. Confirm recordings folders were handled correctly (ignored, CI checked) 4. Note any backward compatibility concerns 5. Provide overall recommendation with Llama Stack context Remember: The most common mistake is spending time reviewing recordings folder content. Always check CI status instead.