Files
chungyeong 1fe59d16ca chore: my-deepagent-seed (BudgetTracker PoC + v0.1.0 seed assets)
Pre-flight assets prepared on the main machine before the new-machine
rewrite of my-deepagent in Python.

- poc/: BudgetTracker + CostMiddleware + MockChatModel PoC.
  Validates wrap_model_call pattern, SQLite WAL + ON CONFLICT upsert,
  per-scope cap accounting. 5/5 pytest PASS in isolated uv venv.
- schemas/: 10 personas (Anthropic Sonnet/Opus/Haiku + DeepSeek mix),
  3 workflows (spec-and-review, bug-fix-with-reproduction,
  code-investigation), 4 artifact JSON Schemas (dev/spec@1,
  dev/phase-plan@1, dev/review-finding-batch@1, common/final-report@1).
- schemas/validate.py: pydantic + Draft202012 cross-validation.
  18/18 assets verified.
- README.md: new-machine bootstrap instructions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 19:39:37 +09:00

115 lines
3.0 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "common/final-report@1",
"title": "Common Final Report",
"description": "워크플로 실행 최종 보고서",
"type": "object",
"required": ["runId", "templateHash", "status", "phases", "endedAt"],
"additionalProperties": false,
"properties": {
"runId": {
"type": "string",
"format": "uuid",
"description": "실행 고유 식별자 (UUID)"
},
"templateHash": {
"type": "string",
"pattern": "^[a-f0-9]{64}$",
"description": "워크플로 템플릿의 sha256 해시 (hex)"
},
"status": {
"type": "string",
"enum": ["completed", "failed", "aborted"],
"description": "실행 최종 상태"
},
"inputs": {
"type": "object",
"description": "실행 입력값 (선택)"
},
"phases": {
"type": "array",
"items": {
"type": "object",
"required": ["key", "state"],
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"description": "phase 키"
},
"state": {
"type": "string",
"enum": ["pending", "running", "completed", "failed", "skipped"],
"description": "phase 실행 상태"
},
"started_at": {
"type": "string",
"format": "date-time",
"description": "시작 시각 (선택)"
},
"ended_at": {
"type": "string",
"format": "date-time",
"description": "종료 시각 (선택)"
},
"attempts": {
"type": "integer",
"minimum": 0,
"description": "시도 횟수 (선택)"
}
}
},
"description": "각 phase 실행 기록"
},
"approvals": {
"type": "array",
"items": {
"type": "object"
},
"description": "승인 기록 목록 (선택)"
},
"findings": {
"type": "array",
"items": {
"type": "object"
},
"description": "수집된 finding 목록 (선택)"
},
"artifacts": {
"type": "array",
"items": {
"type": "object",
"required": ["path", "schema"],
"additionalProperties": false,
"properties": {
"path": {
"type": "string",
"description": "산출물 파일 경로"
},
"schema": {
"type": "string",
"description": "산출물 JSON Schema ID"
},
"hash": {
"type": "string",
"description": "산출물 파일 해시 (선택)"
}
}
},
"description": "생성된 산출물 목록 (선택)"
},
"unresolved": {
"type": "array",
"items": {
"type": "string"
},
"description": "미해결 항목 목록 (선택)"
},
"endedAt": {
"type": "string",
"format": "date-time",
"description": "실행 종료 시각"
}
}
}