aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
278 lines (203 loc) • 5.83 kB
Markdown
name: run-tests
agent: qa
requires:
- jest
- coderabbit
# Run Tests (with Code Quality Gate)
Execute test suite and validate code quality before marking tests complete.
## Execution Modes
**Choose your execution mode:**
### 1. YOLO Mode - Fast, Autonomous (0-1 prompts)
- Autonomous decision making with logging
- Minimal user interaction
- **Best for:** Simple, deterministic tasks
### 2. Interactive Mode - Balanced, Educational (5-10 prompts) **[DEFAULT]**
- Explicit decision checkpoints
- Educational explanations
- **Best for:** Learning, complex decisions
### 3. Pre-Flight Planning - Comprehensive Upfront Planning
- Task analysis phase (identify all ambiguities)
- Zero ambiguity execution
- **Best for:** Ambiguous requirements, critical work
**Parameter:** `mode` (optional, default: `interactive`)
## Task Definition (AIOS Task Format V1.0)
```yaml
task: qaRunTests()
responsável: Quinn (Guardian)
responsavel_type: Agente
atomic_layer: Config
**Entrada:**
- campo: target
tipo: string
origem: User Input
obrigatório: true
validação: Must exist
- campo: criteria
tipo: array
origem: config
obrigatório: true
validação: Non-empty validation criteria
- campo: strict
tipo: boolean
origem: User Input
obrigatório: false
validação: Default: true
**Saída:**
- campo: validation_result
tipo: boolean
destino: Return value
persistido: false
- campo: errors
tipo: array
destino: Memory
persistido: false
- campo: report
tipo: object
destino: File (.ai/*.json)
persistido: true
```
## Pre-Conditions
**Purpose:** Validate prerequisites BEFORE task execution (blocking)
**Checklist:**
```yaml
pre-conditions:
- [ ] Validation rules loaded; target available for validation
tipo: pre-condition
blocker: true
validação: |
Check validation rules loaded; target available for validation
error_message: "Pre-condition failed: Validation rules loaded; target available for validation"
```
## Post-Conditions
**Purpose:** Validate execution success AFTER task completes
**Checklist:**
```yaml
post-conditions:
- [ ] Validation executed; results accurate; report generated
tipo: post-condition
blocker: true
validação: |
Verify validation executed; results accurate; report generated
error_message: "Post-condition failed: Validation executed; results accurate; report generated"
```
## Acceptance Criteria
**Purpose:** Definitive pass/fail criteria for task completion
**Checklist:**
```yaml
acceptance-criteria:
- [ ] Validation rules applied; pass/fail accurate; actionable feedback
tipo: acceptance-criterion
blocker: true
validação: |
Assert validation rules applied; pass/fail accurate; actionable feedback
error_message: "Acceptance criterion not met: Validation rules applied; pass/fail accurate; actionable feedback"
```
## Tools
**External/shared resources used by this task:**
- **Tool:** validation-engine
- **Purpose:** Rule-based validation and reporting
- **Source:** .aios-core/utils/validation-engine.js
- **Tool:** schema-validator
- **Purpose:** JSON/YAML schema validation
- **Source:** ajv or similar
## Scripts
**Agent-specific code for this task:**
- **Script:** run-validation.js
- **Purpose:** Execute validation rules and generate report
- **Language:** JavaScript
- **Location:** .aios-core/scripts/run-validation.js
## Error Handling
**Strategy:** retry
**Common Errors:**
1. **Error:** Validation Criteria Missing
- **Cause:** Required validation rules not defined
- **Resolution:** Ensure validation criteria loaded from config
- **Recovery:** Use default validation rules, log warning
2. **Error:** Invalid Schema
- **Cause:** Target does not match expected schema
- **Resolution:** Update schema or fix target structure
- **Recovery:** Detailed validation error report
3. **Error:** Dependency Missing
- **Cause:** Required dependency for validation not found
- **Resolution:** Install missing dependencies
- **Recovery:** Abort with clear dependency list
## Performance
**Expected Metrics:**
```yaml
duration_expected: 2-10 min (estimated)
cost_estimated: $0.001-0.008
token_usage: ~800-2,500 tokens
```
**Optimization Notes:**
- Validate configuration early; use atomic writes; implement rollback checkpoints
## Metadata
```yaml
story: N/A
version: 1.0.0
dependencies:
- N/A
tags:
- quality-assurance
- testing
updated_at: 2025-11-17
```
## Steps
### 1. Run Unit Tests
```bash
cd api
npm run test
```
**Expected**: All tests pass, coverage >= 80%
### 2. Run Integration Tests
```bash
npm run test:integration
```
### 3. Code Quality Review
```bash
# Review code that was tested
coderabbit --prompt-only -t uncommitted
```
**Parse output**:
- If CRITICAL or HIGH issues found → FAIL
- If only MEDIUM/LOW → WARN but PASS
### 4. Generate QA Report
Use template: `qa-gate-tmpl.yaml`
Include:
- Test results (pass/fail, coverage %)
- CodeRabbit summary (issues by severity)
- Recommendation (approve/reject story)
### 5. Update Story Status
If all pass:
- [ ] Mark story testing complete
- [ ] Add QA approval comment
- [ ] Move to "Ready for Deploy"
If failures:
- [ ] Document failures in story
- [ ] Create tech debt issues for MEDIUM
- [ ] Request fixes from @dev
## Integration with CodeRabbit
**CodeRabbit helps @qa agent**:
- Catch issues tests might miss (logic errors, race conditions)
- Validate security patterns (SQL injection, hardcoded secrets)
- Enforce coding standards automatically
- Generate quality metrics
## Config
```yaml
codeRabbit:
enabled: true
severity_threshold: high
auto_fix: false # QA reviews but doesn't auto-fix
report_location: docs/qa/coderabbit-reports/
```