project-scan-report-schema.json 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema#",
  3. "title": "Project Scan Report Schema",
  4. "description": "State tracking file for document-project workflow resumability",
  5. "type": "object",
  6. "required": ["workflow_version", "timestamps", "mode", "scan_level", "completed_steps", "current_step"],
  7. "properties": {
  8. "workflow_version": {
  9. "type": "string",
  10. "description": "Version of document-project workflow",
  11. "example": "1.2.0"
  12. },
  13. "timestamps": {
  14. "type": "object",
  15. "required": ["started", "last_updated"],
  16. "properties": {
  17. "started": {
  18. "type": "string",
  19. "format": "date-time",
  20. "description": "ISO 8601 timestamp when workflow started"
  21. },
  22. "last_updated": {
  23. "type": "string",
  24. "format": "date-time",
  25. "description": "ISO 8601 timestamp of last state update"
  26. },
  27. "completed": {
  28. "type": "string",
  29. "format": "date-time",
  30. "description": "ISO 8601 timestamp when workflow completed (if finished)"
  31. }
  32. }
  33. },
  34. "mode": {
  35. "type": "string",
  36. "enum": ["initial_scan", "full_rescan", "deep_dive"],
  37. "description": "Workflow execution mode"
  38. },
  39. "scan_level": {
  40. "type": "string",
  41. "enum": ["quick", "deep", "exhaustive"],
  42. "description": "Scan depth level (deep_dive mode always uses exhaustive)"
  43. },
  44. "project_root": {
  45. "type": "string",
  46. "description": "Absolute path to project root directory"
  47. },
  48. "output_folder": {
  49. "type": "string",
  50. "description": "Absolute path to output folder"
  51. },
  52. "completed_steps": {
  53. "type": "array",
  54. "items": {
  55. "type": "object",
  56. "required": ["step", "status"],
  57. "properties": {
  58. "step": {
  59. "type": "string",
  60. "description": "Step identifier (e.g., 'step_1', 'step_2')"
  61. },
  62. "status": {
  63. "type": "string",
  64. "enum": ["completed", "partial", "failed"]
  65. },
  66. "timestamp": {
  67. "type": "string",
  68. "format": "date-time"
  69. },
  70. "outputs": {
  71. "type": "array",
  72. "items": { "type": "string" },
  73. "description": "Files written during this step"
  74. },
  75. "summary": {
  76. "type": "string",
  77. "description": "1-2 sentence summary of step outcome"
  78. }
  79. }
  80. }
  81. },
  82. "current_step": {
  83. "type": "string",
  84. "description": "Current step identifier for resumption"
  85. },
  86. "findings": {
  87. "type": "object",
  88. "description": "High-level summaries only (detailed findings purged after writing)",
  89. "properties": {
  90. "project_classification": {
  91. "type": "object",
  92. "properties": {
  93. "repository_type": { "type": "string" },
  94. "parts_count": { "type": "integer" },
  95. "primary_language": { "type": "string" },
  96. "architecture_type": { "type": "string" }
  97. }
  98. },
  99. "technology_stack": {
  100. "type": "array",
  101. "items": {
  102. "type": "object",
  103. "properties": {
  104. "part_id": { "type": "string" },
  105. "tech_summary": { "type": "string" }
  106. }
  107. }
  108. },
  109. "batches_completed": {
  110. "type": "array",
  111. "description": "For deep/exhaustive scans: subfolders processed",
  112. "items": {
  113. "type": "object",
  114. "properties": {
  115. "path": { "type": "string" },
  116. "files_scanned": { "type": "integer" },
  117. "summary": { "type": "string" }
  118. }
  119. }
  120. }
  121. }
  122. },
  123. "outputs_generated": {
  124. "type": "array",
  125. "items": { "type": "string" },
  126. "description": "List of all output files generated"
  127. },
  128. "resume_instructions": {
  129. "type": "string",
  130. "description": "Instructions for resuming from current_step"
  131. },
  132. "validation_status": {
  133. "type": "object",
  134. "properties": {
  135. "last_validated": {
  136. "type": "string",
  137. "format": "date-time"
  138. },
  139. "validation_errors": {
  140. "type": "array",
  141. "items": { "type": "string" }
  142. }
  143. }
  144. },
  145. "deep_dive_targets": {
  146. "type": "array",
  147. "description": "Track deep-dive areas analyzed (for deep_dive mode)",
  148. "items": {
  149. "type": "object",
  150. "properties": {
  151. "target_name": { "type": "string" },
  152. "target_path": { "type": "string" },
  153. "files_analyzed": { "type": "integer" },
  154. "output_file": { "type": "string" },
  155. "timestamp": { "type": "string", "format": "date-time" }
  156. }
  157. }
  158. }
  159. }
  160. }