diff --git a/.forge/role-reviewer-live-1522-001-attempt-2-run-71d436e6354c.md b/.forge/role-reviewer-live-1522-001-attempt-2-run-71d436e6354c.md
deleted file mode 100644
index 5ea9d9c..0000000
--- a/.forge/role-reviewer-live-1522-001-attempt-2-run-71d436e6354c.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# role-reviewer-live-1522-001-attempt-2-run-71d436e6354c
-
-Forge 이슈 작업 브랜치 `forge/role-reviewer-live-1522-001-attempt-2-run-71d436e6354c`.
diff --git a/verification/evidence-report.json b/verification/evidence-report.json
deleted file mode 100644
index a5a5a41..0000000
--- a/verification/evidence-report.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{
- "evidence_report_version": "1.0",
- "generated_at": "2026-07-14T15:22:00Z",
- "source_report": "verification/smoke-test-report.json",
- "summary": {
- "total_checks": 17,
- "passed": 0,
- "failed": 0,
- "warnings": 0,
- "skipped": 0
- },
- "ci_pipeline_checklist": [
- {
- "id": "ci_build",
- "description": "Build stage configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "ci_test",
- "description": "Test stage configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "ci_package",
- "description": "Package stage configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "ci_deploy",
- "description": "Deploy/CI-CD pipeline configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- }
- ],
- "operational_risks_checklist": [
- {
- "id": "risk_deployment",
- "description": "Deployment strategy defined",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_monitoring",
- "description": "Monitoring configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_backup",
- "description": "Backup mechanism in place",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_secret",
- "description": "Secret management configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_health",
- "description": "Health check endpoints defined",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_logging",
- "description": "Logging framework configured",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_error",
- "description": "Error handling implemented",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_rollback",
- "description": "Rollback strategy documented",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "risk_shutdown",
- "description": "Graceful shutdown handling",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- }
- ],
- "core_tests": [
- {
- "id": "compilation",
- "description": "Code compilation",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "unit_tests",
- "description": "Unit test execution",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "role_matrix",
- "description": "Role matrix implementation",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- },
- {
- "id": "runtime",
- "description": "Runtime integration",
- "status": "PENDING",
- "message": "Run smoke-test.sh to populate"
- }
- ]
-}
diff --git a/verification/generate-evidence.sh b/verification/generate-evidence.sh
deleted file mode 100644
index 7bf4563..0000000
--- a/verification/generate-evidence.sh
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/bin/bash
-# Evidence Report Generator
-# Parses smoke-test-report.json and generates evidence-report.json
-
-set -e
-
-SMOKE_REPORT="verification/smoke-test-report.json"
-EVIDENCE_REPORT="verification/evidence-report.json"
-
-echo "=== Generating Evidence Report ==="
-
-# Check if smoke test report exists
-if [ ! -f "$SMOKE_REPORT" ]; then
- echo "Error: $SMOKE_REPORT not found. Run smoke-test.sh first."
- exit 1
-fi
-
-# Check if jq is available
-if ! command -v jq &>/dev/null; then
- echo "Error: jq is required but not installed."
- exit 1
-fi
-
-# Extract summary counts
-TOTAL=$(jq '.summary.total' "$SMOKE_REPORT")
-PASSED=$(jq '.summary.passed' "$SMOKE_REPORT")
-FAILED=$(jq '.summary.failed' "$SMOKE_REPORT")
-WARNED=$(jq '.summary.warned' "$SMOKE_REPORT")
-SKIPPED=$(jq '.summary.skipped' "$SMOKE_REPORT")
-
-# Extract test results using proper JSON array parsing
-get_test_status() {
- local test_name="$1"
- jq -r ".results[] | select(.test == \"$test_name\") | .status" "$SMOKE_REPORT" 2>/dev/null || echo "UNKNOWN"
-}
-
-get_test_message() {
- local test_name="$1"
- jq -r ".results[] | select(.test == \"$test_name\") | .message" "$SMOKE_REPORT" 2>/dev/null || echo "No message"
-}
-
-# CI Pipeline Checklist (4 items)
-CI_BUILD=$(get_test_status "ci_build_stage")
-CI_BUILD_MSG=$(get_test_message "ci_build_stage")
-CI_TEST=$(get_test_status "ci_test_stage")
-CI_TEST_MSG=$(get_test_message "ci_test_stage")
-CI_PACKAGE=$(get_test_status "ci_package_stage")
-CI_PACKAGE_MSG=$(get_test_message "ci_package_stage")
-CI_DEPLOY=$(get_test_status "ci_deploy_stage")
-CI_DEPLOY_MSG=$(get_test_message "ci_deploy_stage")
-
-# Operational Risks Checklist (9 items)
-RISK_DEPLOY=$(get_test_status "risk_deployment_strategy")
-RISK_DEPLOY_MSG=$(get_test_message "risk_deployment_strategy")
-RISK_MONITOR=$(get_test_status "risk_monitoring")
-RISK_MONITOR_MSG=$(get_test_message "risk_monitoring")
-RISK_BACKUP=$(get_test_status "risk_backup")
-RISK_BACKUP_MSG=$(get_test_message "risk_backup")
-RISK_SECRET=$(get_test_status "risk_secret_management")
-RISK_SECRET_MSG=$(get_test_message "risk_secret_management")
-RISK_HEALTH=$(get_test_status "risk_health_check")
-RISK_HEALTH_MSG=$(get_test_message "risk_health_check")
-RISK_LOGGING=$(get_test_status "risk_logging")
-RISK_LOGGING_MSG=$(get_test_message "risk_logging")
-RISK_ERROR=$(get_test_status "risk_error_handling")
-RISK_ERROR_MSG=$(get_test_message "risk_error_handling")
-RISK_ROLLBACK=$(get_test_status "risk_rollback")
-RISK_ROLLBACK_MSG=$(get_test_message "risk_rollback")
-RISK_SHUTDOWN=$(get_test_status "risk_graceful_shutdown")
-RISK_SHUTDOWN_MSG=$(get_test_message "risk_graceful_shutdown")
-
-# Core Tests
-COMPILATION=$(get_test_status "compilation")
-COMPILATION_MSG=$(get_test_message "compilation")
-UNIT_TESTS=$(get_test_status "unit_tests")
-UNIT_TESTS_MSG=$(get_test_message "unit_tests")
-ROLE_MATRIX=$(get_test_status "role_matrix_impl")
-ROLE_MATRIX_MSG=$(get_test_message "role_matrix_impl")
-RUNTIME=$(get_test_status "runtime_integration")
-RUNTIME_MSG=$(get_test_message "runtime_integration")
-
-# Generate evidence report
-cat > "$EVIDENCE_REPORT" << 'EOF'
-{
- "evidence_report_version": "1.0",
- "generated_at": "__TIMESTAMP__",
- "source_report": "verification/smoke-test-report.json",
- "summary": {
- "total_checks": 0,
- "passed": 0,
- "failed": 0,
- "warnings": 0,
- "skipped": 0
- },
- "ci_pipeline_checklist": [],
- "operational_risks_checklist": [],
- "core_tests": []
-}
-EOF
-
-# Build CI pipeline checklist JSON
-CI_CHECKLIST=$(cat << JQEOF
-[
- {"id": "ci_build", "description": "Build stage configured", "status": "$CI_BUILD", "message": "$CI_BUILD_MSG"},
- {"id": "ci_test", "description": "Test stage configured", "status": "$CI_TEST", "message": "$CI_TEST_MSG"},
- {"id": "ci_package", "description": "Package stage configured", "status": "$CI_PACKAGE", "message": "$CI_PACKAGE_MSG"},
- {"id": "ci_deploy", "description": "Deploy/CI-CD pipeline configured", "status": "$CI_DEPLOY", "message": "$CI_DEPLOY_MSG"}
-]
-JQEOF
-)
-
-# Build operational risks checklist JSON
-RISK_CHECKLIST=$(cat << JQEOF
-[
- {"id": "risk_deployment", "description": "Deployment strategy defined", "status": "$RISK_DEPLOY", "message": "$RISK_DEPLOY_MSG"},
- {"id": "risk_monitoring", "description": "Monitoring configured", "status": "$RISK_MONITOR", "message": "$RISK_MONITOR_MSG"},
- {"id": "risk_backup", "description": "Backup mechanism in place", "status": "$RISK_BACKUP", "message": "$RISK_BACKUP_MSG"},
- {"id": "risk_secret", "description": "Secret management configured", "status": "$RISK_SECRET", "message": "$RISK_SECRET_MSG"},
- {"id": "risk_health", "description": "Health check endpoints defined", "status": "$RISK_HEALTH", "message": "$RISK_HEALTH_MSG"},
- {"id": "risk_logging", "description": "Logging framework configured", "status": "$RISK_LOGGING", "message": "$RISK_LOGGING_MSG"},
- {"id": "risk_error", "description": "Error handling implemented", "status": "$RISK_ERROR", "message": "$RISK_ERROR_MSG"},
- {"id": "risk_rollback", "description": "Rollback strategy documented", "status": "$RISK_ROLLBACK", "message": "$RISK_ROLLBACK_MSG"},
- {"id": "risk_shutdown", "description": "Graceful shutdown handling", "status": "$RISK_SHUTDOWN", "message": "$RISK_SHUTDOWN_MSG"}
-]
-JQEOF
-)
-
-# Build core tests JSON
-CORE_TESTS=$(cat << JQEOF
-[
- {"id": "compilation", "description": "Code compilation", "status": "$COMPILATION", "message": "$COMPILATION_MSG"},
- {"id": "unit_tests", "description": "Unit test execution", "status": "$UNIT_TESTS", "message": "$UNIT_TESTS_MSG"},
- {"id": "role_matrix", "description": "Role matrix implementation", "status": "$ROLE_MATRIX", "message": "$ROLE_MATRIX_MSG"},
- {"id": "runtime", "description": "Runtime integration", "status": "$RUNTIME", "message": "$RUNTIME_MSG"}
-]
-JQEOF
-)
-
-# Calculate checklist counts
-CI_PASSED=$(echo "$CI_CHECKLIST" | jq '[.[] | select(.status == "PASS")] | length')
-CI_FAILED=$(echo "$CI_CHECKLIST" | jq '[.[] | select(.status == "FAIL")] | length')
-CI_WARNED=$(echo "$CI_CHECKLIST" | jq '[.[] | select(.status == "WARN")] | length')
-
-RISK_PASSED=$(echo "$RISK_CHECKLIST" | jq '[.[] | select(.status == "PASS")] | length')
-RISK_FAILED=$(echo "$RISK_CHECKLIST" | jq '[.[] | select(.status == "FAIL")] | length')
-RISK_WARNED=$(echo "$RISK_CHECKLIST" | jq '[.[] | select(.status == "WARN")] | length')
-
-CORE_PASSED=$(echo "$CORE_TESTS" | jq '[.[] | select(.status == "PASS")] | length')
-CORE_FAILED=$(echo "$CORE_TESTS" | jq '[.[] | select(.status == "FAIL")] | length')
-CORE_WARNED=$(echo "$CORE_TESTS" | jq '[.[] | select(.status == "WARN")] | length')
-CORE_SKIPPED=$(echo "$CORE_TESTS" | jq '[.[] | select(.status == "SKIP")] | length')
-
-TOTAL_CHECKS=$((4 + 9 + 4))
-TOTAL_PASSED=$((CI_PASSED + RISK_PASSED + CORE_PASSED))
-TOTAL_FAILED=$((CI_FAILED + RISK_FAILED + CORE_FAILED))
-TOTAL_WARNED=$((CI_WARNED + RISK_WARNED + CORE_WARNED))
-TOTAL_SKIPPED=$((0 + 0 + CORE_SKIPPED))
-
-# Update evidence report
-REPORT_CONTENT=$(cat "$EVIDENCE_REPORT")
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | sed "s/__TIMESTAMP__/$(date -Iseconds)/")
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | jq \
- --argjson total "$TOTAL_CHECKS" \
- --argjson passed "$TOTAL_PASSED" \
- --argjson failed "$TOTAL_FAILED" \
- --argjson warned "$TOTAL_WARNED" \
- --argjson skipped "$TOTAL_SKIPPED" \
- '.summary = {"total_checks": $total, "passed": $passed, "failed": $failed, "warnings": $warned, "skipped": $skipped}')
-
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | jq --argjson cil "$CI_CHECKLIST" '.ci_pipeline_checklist = $cil')
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | jq --argjson rcl "$RISK_CHECKLIST" '.operational_risks_checklist = $rcl')
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | jq --argjson ct "$CORE_TESTS" '.core_tests = $ct')
-
-echo "$REPORT_CONTENT" > "$EVIDENCE_REPORT"
-
-echo ""
-echo "=== Evidence Report Summary ==="
-echo "Total Checks: $TOTAL_CHECKS"
-echo "Passed: $TOTAL_PASSED"
-echo "Failed: $TOTAL_FAILED"
-echo "Warnings: $TOTAL_WARNED"
-echo "Skipped: $TOTAL_SKIPPED"
-echo ""
-echo "CI Pipeline (4 items): $CI_PASSED passed, $CI_FAILED failed, $CI_WARNED warnings"
-echo "Operational Risks (9 items): $RISK_PASSED passed, $RISK_FAILED failed, $RISK_WARNED warnings"
-echo "Core Tests (4 items): $CORE_PASSED passed, $CORE_FAILED failed, $CORE_WARNED warnings, $CORE_SKIPPED skipped"
-echo ""
-echo "Evidence report saved to: $EVIDENCE_REPORT"
-
-exit 0
diff --git a/verification/run-verification.sh b/verification/run-verification.sh
deleted file mode 100644
index e5b8bb2..0000000
--- a/verification/run-verification.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-# Complete Verification Runner
-# Runs smoke-test.sh then generate-evidence.sh
-
-set -e
-
-echo "=========================================="
-echo "Runtime Role Matrix - Verification Suite"
-echo "=========================================="
-echo ""
-
-# Step 1: Run smoke tests
-echo ">>> Step 1: Running Smoke Tests..."
-echo ""
-bash verification/smoke-test.sh
-SMOKE_EXIT=$?
-echo ""
-
-# Step 2: Generate evidence report
-echo ">>> Step 2: Generating Evidence Report..."
-echo ""
-bash verification/generate-evidence.sh
-EVIDENCE_EXIT=$?
-echo ""
-
-# Step 3: Display results
-echo "=========================================="
-echo "Verification Complete"
-echo "=========================================="
-echo ""
-echo "Output files:"
-echo " - verification/smoke-test-report.json"
-echo " - verification/evidence-report.json"
-echo ""
-
-# Show evidence report summary if jq available
-if command -v jq &>/dev/null; then
- echo "Evidence Report Summary:"
- jq '.summary' verification/evidence-report.json 2>/dev/null || true
- echo ""
- echo "CI Pipeline Checklist:"
- jq -r '.ci_pipeline_checklist[] | " [\(.status)] \(.description)"' verification/evidence-report.json 2>/dev/null || true
- echo ""
- echo "Operational Risks Checklist:"
- jq -r '.operational_risks_checklist[] | " [\(.status)] \(.description)"' verification/evidence-report.json 2>/dev/null || true
-fi
-
-echo ""
-
-# Exit with appropriate code
-exit $((SMOKE_EXIT || EVIDENCE_EXIT))
diff --git a/verification/smoke-test.sh b/verification/smoke-test.sh
deleted file mode 100644
index 799bd4e..0000000
--- a/verification/smoke-test.sh
+++ /dev/null
@@ -1,259 +0,0 @@
-#!/bin/bash
-# Smoke Test Script for Runtime Role Matrix
-# Validates: Compilation, Unit Tests, CI Pipeline, Operational Risks
-
-REPORT_FILE="verification/smoke-test-report.json"
-
-echo "=== Runtime Role Matrix Smoke Test ==="
-echo "Timestamp: $(date -Iseconds)"
-echo ""
-
-# Initialize results array
-declare -a RESULTS=()
-
-# Test result helper
-add_result() {
- local test_name="$1"
- local status="$2"
- local message="$3"
- RESULTS+=("{\"test\": \"$test_name\", \"status\": \"$status\", \"message\": \"$message\"}")
-}
-
-# CI Pipeline Stage Verification (4 items)
-test_ci_pipeline() {
- echo "--- CI Pipeline Stage Verification ---"
-
- # 1. Build stage
- if [ -f "pom.xml" ] || [ -f "build.gradle" ]; then
- add_result "ci_build_stage" "PASS" "Build configuration exists"
- else
- add_result "ci_build_stage" "FAIL" "No build configuration found"
- fi
-
- # 2. Test stage
- if [ -f "pom.xml" ] && grep -q "maven-surefire-plugin" pom.xml 2>/dev/null; then
- add_result "ci_test_stage" "PASS" "Test stage configured"
- elif [ -f "build.gradle" ] && grep -q "test" build.gradle 2>/dev/null; then
- add_result "ci_test_stage" "PASS" "Test stage configured"
- else
- add_result "ci_test_stage" "WARN" "Test stage configuration unclear"
- fi
-
- # 3. Package stage
- if [ -f "pom.xml" ] && grep -q "jar" pom.xml 2>/dev/null; then
- add_result "ci_package_stage" "PASS" "Package stage configured"
- else
- add_result "ci_package_stage" "WARN" "Package stage configuration unclear"
- fi
-
- # 4. Deploy stage
- if [ -f ".github/workflows" ] || [ -f ".gitlab-ci.yml" ] || [ -f "Jenkinsfile" ]; then
- add_result "ci_deploy_stage" "PASS" "CI/CD pipeline detected"
- else
- add_result "ci_deploy_stage" "WARN" "No CI/CD pipeline configuration found"
- fi
-}
-
-# Operational Risk Checks (9 items)
-test_operational_risks() {
- echo "--- Operational Risk Verification ---"
-
- # 1. Deployment Strategy
- if [ -f "deployment.yaml" ] || [ -f "docker-compose.yml" ] || [ -f "helm/" ]; then
- add_result "risk_deployment_strategy" "PASS" "Deployment configuration exists"
- else
- add_result "risk_deployment_strategy" "WARN" "No explicit deployment strategy found"
- fi
-
- # 2. Monitoring
- if [ -f "monitoring/prometheus.yml" ] || [ -f "monitoring/grafana.json" ] || grep -rq "prometheus\|grafana\|metrics" . 2>/dev/null; then
- add_result "risk_monitoring" "PASS" "Monitoring configuration detected"
- else
- add_result "risk_monitoring" "WARN" "No monitoring configuration found"
- fi
-
- # 3. Backup
- if grep -rq "backup\|restore" . 2>/dev/null; then
- add_result "risk_backup" "PASS" "Backup mechanism referenced"
- else
- add_result "risk_backup" "WARN" "No backup mechanism documented"
- fi
-
- # 4. Secret Management
- if [ -f ".env.example" ] || [ -f "secrets.yaml" ] || grep -rq "vault\|secretsmanager\|k8s-secret" . 2>/dev/null; then
- add_result "risk_secret_management" "PASS" "Secret management approach detected"
- else
- add_result "risk_secret_management" "WARN" "No secret management configuration found"
- fi
-
- # 5. Health Check
- if grep -rq "health\|liveness\|readiness" . 2>/dev/null; then
- add_result "risk_health_check" "PASS" "Health check endpoints defined"
- else
- add_result "risk_health_check" "WARN" "No health check configuration found"
- fi
-
- # 6. Logging
- if grep -rq "logging\|logback\|log4j\|slf4j" . 2>/dev/null; then
- add_result "risk_logging" "PASS" "Logging framework configured"
- else
- add_result "risk_logging" "WARN" "No logging configuration found"
- fi
-
- # 7. Error Handling
- if grep -rq "exception\|error\|try-catch" . 2>/dev/null; then
- add_result "risk_error_handling" "PASS" "Error handling patterns detected"
- else
- add_result "risk_error_handling" "WARN" "No explicit error handling found"
- fi
-
- # 8. Rollback Strategy
- if grep -rq "rollback\|revert\|undo" . 2>/dev/null; then
- add_result "risk_rollback" "PASS" "Rollback strategy documented"
- else
- add_result "risk_rollback" "WARN" "No rollback strategy found"
- fi
-
- # 9. Graceful Shutdown
- if grep -rq "shutdown\|terminate\|destroy\|@PreDestroy" . 2>/dev/null; then
- add_result "risk_graceful_shutdown" "PASS" "Graceful shutdown handling detected"
- else
- add_result "risk_graceful_shutdown" "WARN" "No graceful shutdown handling found"
- fi
-}
-
-# Core Functionality Tests
-test_compilation() {
- echo "--- Test: Compilation ---"
- if [ -f "pom.xml" ]; then
- if command -v mvn &>/dev/null; then
- mvn compile -q 2>/dev/null && add_result "compilation" "PASS" "Maven compilation successful" || add_result "compilation" "FAIL" "Maven compilation failed"
- else
- add_result "compilation" "SKIP" "Maven not installed"
- fi
- elif [ -f "build.gradle" ]; then
- if command -v gradle &>/dev/null; then
- gradle compileJava -q 2>/dev/null && add_result "compilation" "PASS" "Gradle compilation successful" || add_result "compilation" "FAIL" "Gradle compilation failed"
- else
- add_result "compilation" "SKIP" "Gradle not installed"
- fi
- else
- add_result "compilation" "WARN" "No build configuration found"
- fi
-}
-
-test_unit_tests() {
- echo "--- Test: Unit Tests ---"
- if [ -f "pom.xml" ]; then
- if command -v mvn &>/dev/null; then
- mvn test -q 2>/dev/null && add_result "unit_tests" "PASS" "Unit tests passed" || add_result "unit_tests" "FAIL" "Unit tests failed"
- else
- add_result "unit_tests" "SKIP" "Maven not installed"
- fi
- elif [ -f "build.gradle" ]; then
- if command -v gradle &>/dev/null; then
- gradle test -q 2>/dev/null && add_result "unit_tests" "PASS" "Unit tests passed" || add_result "unit_tests" "FAIL" "Unit tests failed"
- else
- add_result "unit_tests" "SKIP" "Gradle not installed"
- fi
- else
- add_result "unit_tests" "WARN" "No build configuration found"
- fi
-}
-
-test_role_matrix() {
- echo "--- Test: Role Matrix Implementation ---"
- if [ -d "src/main/java" ]; then
- if grep -rq "Role\|Permission\|Principal" src/main/java 2>/dev/null; then
- add_result "role_matrix_impl" "PASS" "Role matrix classes detected"
- else
- add_result "role_matrix_impl" "WARN" "Role matrix implementation unclear"
- fi
- else
- add_result "role_matrix_impl" "WARN" "Source directory not found"
- fi
-}
-
-test_runtime_integration() {
- echo "--- Test: Runtime Integration ---"
- if grep -rq "runtime\|dynamic\|reflection" . 2>/dev/null; then
- add_result "runtime_integration" "PASS" "Runtime integration patterns detected"
- else
- add_result "runtime_integration" "WARN" "Runtime integration patterns not found"
- fi
-}
-
-# Run all tests (without set -e to allow WARN/SKIP handling)
-test_ci_pipeline
-test_operational_risks
-test_compilation
-test_unit_tests
-test_role_matrix
-test_runtime_integration
-
-# Generate JSON report
-echo ""
-echo "=== Generating Report ==="
-
-cat > "$REPORT_FILE" << 'EOF'
-{
- "timestamp": "__TIMESTAMP__",
- "summary": {
- "total": 0,
- "passed": 0,
- "failed": 0,
- "warned": 0,
- "skipped": 0
- },
- "results": []
-}
-EOF
-
-# Build results JSON array
-RESULTS_JSON="["
-first=true
-for r in "${RESULTS[@]}"; do
- if [ "$first" = true ]; then
- first=false
- else
- RESULTS_JSON+=", "
- fi
- RESULTS_JSON+="$r"
-done
-RESULTS_JSON+="]"
-
-# Update report with results
-REPORT_CONTENT=$(cat "$REPORT_FILE")
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | sed "s/__TIMESTAMP__/$(date -Iseconds)/")
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | jq --argjson results "$RESULTS_JSON" '.results = $results')
-
-# Calculate summary
-TOTAL=$(echo "$RESULTS_JSON" | jq 'length')
-PASSED=$(echo "$RESULTS_JSON" | jq '[.[] | select(.status == "PASS")] | length')
-FAILED=$(echo "$RESULTS_JSON" | jq '[.[] | select(.status == "FAIL")] | length')
-WARNED=$(echo "$RESULTS_JSON" | jq '[.[] | select(.status == "WARN")] | length')
-SKIPPED=$(echo "$RESULTS_JSON" | jq '[.[] | select(.status == "SKIP")] | length')
-
-REPORT_CONTENT=$(echo "$REPORT_CONTENT" | jq \
- --argjson total "$TOTAL" \
- --argjson passed "$PASSED" \
- --argjson failed "$FAILED" \
- --argjson warned "$WARNED" \
- --argjson skipped "$SKIPPED" \
- '.summary = {"total": $total, "passed": $passed, "failed": $failed, "warned": $warned, "skipped": $skipped}')
-
-echo "$REPORT_CONTENT" > "$REPORT_FILE"
-
-# Print summary
-echo ""
-echo "=== Test Summary ==="
-echo "Total: $TOTAL"
-echo "Passed: $PASSED"
-echo "Failed: $FAILED"
-echo "Warnings: $WARNED"
-echo "Skipped: $SKIPPED"
-echo ""
-echo "Report saved to: $REPORT_FILE"
-
-# Exit with appropriate code
-exit 0