- Code\rebar_pipeline, review_pipeline, pier-program을 정션에서 실제 폴더로 전환 - Code\rhino_mcp 및 CLAUDE_rhino배경.md 추가, .mcp.json은 PYTHONPATH로 새 위치 사용 - pier-program 내부 .git 제거(이력은 backup\pier-program_20261028.bundle에 보관) - worktree 가이드 반영(CLAUDE.local.md, HANDOFF.md) - D:\Rhino-MCP 경로 참조를 새 위치로 치환 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6.4 KiB
6.4 KiB
Zero Script QA Report
Verification through structured JSON logs and real-time monitoring without test scripts
Project: {{project_name}} Verification Date: {{date}} Scope: {{scope}} Environment: Docker Compose (Local/Staging)
1. Zero Script QA Overview
1.1 Methodology
Traditional: Write test code → Execute → Check results → Maintain
Zero Script: Log infrastructure → Manual UX testing → AI log analysis → Auto issue detection
1.2 Workflow
1. docker compose up -d
2. docker compose logs -f ← Antigravity Platform monitoring
3. User: Manual UX testing in browser
4. Antigravity Platform: Log analysis → Issue detection → Documentation → Fix
2. Logging Infrastructure Check
2.1 Environment Settings
| Item | Setting | Status |
|---|---|---|
| LOG_LEVEL | DEBUG | ✅/❌ |
| LOG_FORMAT | json | ✅/❌ |
| Request ID propagation | X-Request-ID | ✅/❌ |
2.2 Service Logging Status
| Service | JSON Logs | Request ID | Status |
|---|---|---|---|
| API (Backend) | ✅/❌ | ✅/❌ | ✅/⚠️/❌ |
| Web (Frontend) | ✅/❌ | ✅/❌ | ✅/⚠️/❌ |
| Nginx | ✅/❌ | ✅/❌ | ✅/⚠️/❌ |
3. Verification Targets
| Feature | API/Screen | Request ID | Status |
|---|---|---|---|
| {{feature1}} | {{endpoint1}} | req_xxx | ⬜ |
| {{feature2}} | {{endpoint2}} | req_xxx | ⬜ |
4. Verification Results
4.1 {{Feature1}}
Scenario: {{scenarioDescription}}
Request ID: req_{{requestId}}
Log Stream:
{"timestamp":"{{timestamp}}","level":"INFO","service":"web","request_id":"req_{{requestId}}","message":"API Request started","data":{"method":"POST","endpoint":"/api/{{endpoint}}"}}
{"timestamp":"{{timestamp}}","level":"INFO","service":"nginx","request_id":"req_{{requestId}}","message":"HTTP Request","data":{"method":"POST","uri":"/api/{{endpoint}}","status":200}}
{"timestamp":"{{timestamp}}","level":"INFO","service":"api","request_id":"req_{{requestId}}","message":"Request started","data":{"method":"POST","path":"/api/{{endpoint}}"}}
{"timestamp":"{{timestamp}}","level":"DEBUG","service":"api","request_id":"req_{{requestId}}","message":"Processing business logic","data":{}}
{"timestamp":"{{timestamp}}","level":"INFO","service":"api","request_id":"req_{{requestId}}","message":"Request completed","data":{"status":200,"duration_ms":45}}
{"timestamp":"{{timestamp}}","level":"INFO","service":"web","request_id":"req_{{requestId}}","message":"API Request completed","data":{"status":200,"duration_ms":48}}
Result: ✅ Pass / ❌ Fail
Performance: {{duration_ms}}ms (Target: < 1000ms)
Issue (if failed):
- Request ID: req_{{requestId}}
- Error log:
- Cause:
- Solution:
4.2 {{Feature2}}
Scenario: {{scenarioDescription}}
Request ID: req_{{requestId}}
Log Stream:
// Paste logs here
Result: ✅/❌
5. Detected Issues
5.1 Error Logs (level: ERROR)
| Request ID | Service | Message | Severity |
|---|---|---|---|
| req_xxx | api | {{errorMessage}} | 🔴/🟡/🟢 |
5.2 Slow Responses (> 1000ms)
| Request ID | Endpoint | Duration | Recommended Action |
|---|---|---|---|
| req_xxx | /api/xxx | {{duration}}ms | Caching/Optimization |
5.3 Consecutive Failures
| Endpoint | Failure Count | Pattern | Recommended Action |
|---|---|---|---|
| /api/xxx | {{count}} | {{pattern}} | {{action}} |
6. Issue Details
ISSUE-{{number}}: {{title}}
Request ID: req_{{requestId}}
Severity: 🔴 Critical / 🟡 Warning / 🟢 Info
Reproduction Steps:
- {{step1}}
- {{step2}}
- {{step3}}
Related Logs:
{"timestamp":"...","level":"ERROR","request_id":"req_xxx","message":"...","data":{}}
Root Cause: {{rootCause}}
Recommended Fix: {{recommendation}}
Status: ⬜ Unresolved / 🔄 In Progress / ✅ Resolved
7. Verification Summary
7.1 Statistics
| Item | Value |
|---|---|
| Total tests | {{total}} |
| Passed | {{passed}} |
| Failed | {{failed}} |
| Pass rate | {{passRate}}% |
| Average response time | {{avgDuration}}ms |
7.2 Issue Status
| Severity | Count | Resolved |
|---|---|---|
| 🔴 Critical | {{critical}} | {{criticalResolved}} |
| 🟡 Warning | {{warning}} | {{warningResolved}} |
| 🟢 Info | {{info}} | {{infoResolved}} |
8. Conclusion
- All tests passed, no critical issues → Proceed to next Phase
- Warning issues exist → Proceed after recommended fixes
- Critical issues exist → Fix required, re-verification needed
8.1 Validation Checklist
Logging Infrastructure
- JSON log format applied
- Request ID generation and propagation
- Log level settings per environment
- Docker logging configuration
Backend Logging
- Logging middleware implemented
- All API calls logged (including 200 OK)
- Business logic logging
- Detailed error logging
Frontend Logging
- Logger module implemented
- API client integration
- Error boundary logging
QA Workflow
- Docker Compose configured
- Real-time monitoring ready
- Issue documentation template ready
9. Monitoring Commands
# Stream all logs
docker compose logs -f
# Filter errors only
docker compose logs -f | grep '"level":"ERROR"'
# Trace specific Request ID
docker compose logs -f | grep 'req_{{requestId}}'
# Find slow responses (1000ms+)
docker compose logs -f | grep -E '"duration_ms":[0-9]{4,}'
# Specific service only
docker compose logs -f api
docker compose logs -f web
10. Log Format Guide
JSON Log Standard
{
"timestamp": "ISO 8601 format",
"level": "DEBUG|INFO|WARNING|ERROR",
"service": "api|web|nginx|worker",
"request_id": "req_xxxxxxxx",
"message": "Log message",
"data": { "additional": "data" }
}
Request ID Propagation Rules
Client → API Gateway → Backend → Database
↓ ↓ ↓ ↓
req_abc req_abc req_abc req_abc