@@ -209,6 +209,8 @@ All dataclasses used across pipeline stages are defined below. Stage implementat
209209
210210### PipelineMetadata
211211
212+ ** File:** [ ` metadata_schemas.py ` ] ( metadata_schemas.py )
213+
212214All pipeline outputs include a ` metadata ` object (represented by the ` PipelineMetadata ` dataclass) that provides pipeline execution context and traceability.
213215
214216** Required Fields:**
@@ -228,6 +230,8 @@ All pipeline outputs include a `metadata` object (represented by the `PipelineMe
228230
229231### Experiment
230232
233+ ** File:** [ ` experiment_schemas.py ` ] ( experiment_schemas.py )
234+
231235** Fields:**
232236- ` experiment_id ` : String (required, experiment identifier)
233237- ` domain ` : String (required, human-readable domain name)
@@ -237,18 +241,22 @@ All pipeline outputs include a `metadata` object (represented by the `PipelineMe
237241
238242### Domain
239243
244+ ** File:** [ ` domain_schemas.py ` ] ( domain_schemas.py )
245+
240246** Fields:**
241247- ` name ` : String (required, human-readable domain name)
242248- ` domain_id ` : String (required)
243249- ` description ` : String (optional, domain description)
244250
245251### Area
246252
253+ ** File:** [ ` area_schemas.py ` ] ( area_schemas.py )
254+
247255** Fields:**
248256- ` name ` : String (required, human-readable area name)
249257- ` area_id ` : String (required)
250- - ` description ` : String (optional, area description )
251- - ` domain ` : Optional [ Domain ] (optional, Domain dataclass object )
258+ - ` domain ` : Domain (required, Domain dataclass object )
259+ - ` description ` : String (required, area description )
252260- ` generation_metadata ` : Dict (optional, nested dictionary containing process-specific information)
253261 - This field can contain any generation-specific data (e.g., generation method, parameters, intermediate steps)
254262 - Structure is flexible and depends on the generation method
@@ -257,11 +265,13 @@ All pipeline outputs include a `metadata` object (represented by the `PipelineMe
257265
258266### Capability
259267
268+ ** File:** [ ` capability_schemas.py ` ] ( capability_schemas.py )
269+
260270** Fields:**
261271- ` name ` : String (required, capability name)
262272- ` capability_id ` : String (required)
263- - ` description ` : String (optional, capability description )
264- - ` area ` : Optional [ Area ] (optional, Area dataclass object )
273+ - ` area ` : Area (required, Area dataclass object )
274+ - ` description ` : String (required, capability description )
265275- ` generation_metadata ` : Dict (optional, nested dictionary containing process-specific information)
266276 - This field can contain any generation-specific data (e.g., generation method, parameters, intermediate steps)
267277 - Structure is flexible and depends on the generation method
@@ -270,40 +280,46 @@ All pipeline outputs include a `metadata` object (represented by the `PipelineMe
270280
271281### Task
272282
283+ ** File:** [ ` task_schemas.py ` ] ( task_schemas.py )
284+
273285** Fields:**
274286- ` task_id ` : String (required, unique within capability)
275287- ` task ` : String (required, the task/problem text)
276- - ` capability ` : Optional [ Capability] (optional , Capability dataclass object)
288+ - ` capability ` : Capability (required , Capability dataclass object)
277289
278290** Note:** When serialized to JSON, the ` capability ` object is flattened to ` capability ` (string), ` capability_id ` (string), ` area ` (string), ` area_id ` (string), ` domain ` (string), and ` domain_id ` (string) fields.
279291
280292### TaskSolution
281293
294+ ** File:** [ ` solution_schemas.py ` ] ( solution_schemas.py )
295+
282296** Fields:**
283297- ` task_id ` : String (required)
284298- ` task ` : String (required, the task/problem text from Stage 3)
285299- ` solution ` : String (required, the final solution)
286300- ` reasoning ` : String (required, explanation of the solution)
301+ - ` task_obj ` : Task (required, Task dataclass object with full hierarchy)
287302- ` numerical_answer ` : String (optional, JSON string with numerical results)
288303- ` generation_metadata ` : Dict (optional, nested dictionary containing process-specific information)
289304 - This field can contain any generation-specific data (e.g., debate rounds, agent interactions, pipeline type)
290305 - Structure is flexible and depends on the generation method (agentic, single-agent, etc.)
291- - ` task_obj ` : Optional[ Task] (optional, Task dataclass object with full hierarchy)
292306
293307** Note:** When serialized to JSON, the ` task_obj ` object is flattened to ` capability ` (string), ` capability_id ` (string), ` area ` (string), ` area_id ` (string), ` domain ` (string), and ` domain_id ` (string) fields.
294308
295309### ValidationResult
296310
311+ ** File:** [ ` validation_schemas.py ` ] ( validation_schemas.py )
312+
297313** Fields:**
298314- ` task_id ` : String (required)
299315- ` task ` : String (required, the task/problem text from Stage 3)
300316- ` verification ` : Boolean (required, overall validation status - whether the solution is verified/valid)
301317- ` feedback ` : String (required, detailed feedback on the validation)
318+ - ` task_obj ` : Task (required, Task dataclass object with full hierarchy)
302319- ` score ` : Float (optional, validation score, typically 0.0 to 1.0)
303320- ` generation_metadata ` : Dict (optional, nested dictionary containing process-specific information)
304321 - This field can contain any validation-specific data (e.g., validation method, criteria details, error details)
305322 - Structure is flexible and depends on the validation method
306- - ` task_obj ` : Optional[ Task] (optional, Task dataclass object with full hierarchy)
307323
308324** Note:** When serialized to JSON, the ` task_obj ` object is flattened to ` capability ` (string), ` capability_id ` (string), ` area ` (string), ` area_id ` (string), ` domain ` (string), and ` domain_id ` (string) fields.
309325
@@ -333,7 +349,7 @@ This stage creates two files:
333349#### Output 1: ` experiment.json `
334350
335351** Stage Output:** Experiment dataclass + PipelineMetadata
336- ** Save Function:** ` save_experiment(experiment: Experiment, metadata: PipelineMetadata, output_path: Path) `
352+ ** Save Function:** ` save_experiment(experiment: Experiment, metadata: PipelineMetadata, output_path: Path) ` (see [ ` io_utils.py ` ] ( io_utils.py ) )
337353
338354** File Path:** ` <output_dir>/<experiment_id>/experiment.json `
339355
@@ -364,7 +380,7 @@ This stage creates two files:
364380#### Output 2: ` domain.json `
365381
366382** Stage Output:** Domain dataclass object + PipelineMetadata
367- ** Save Function:** ` save_domain(domain: Domain, metadata: PipelineMetadata, output_path: Path) `
383+ ** Save Function:** ` save_domain(domain: Domain, metadata: PipelineMetadata, output_path: Path) ` (see [ ` io_utils.py ` ] ( io_utils.py ) )
368384
369385** File Path:** ` <output_dir>/<experiment_id>/domain/domain.json `
370386
@@ -402,7 +418,7 @@ This stage creates two files:
402418### Output: ` areas.json `
403419
404420** Stage Output:** List[ Area] dataclasses + PipelineMetadata
405- ** Save Function:** ` save_areas(areas: List[Area], metadata: PipelineMetadata, output_path: Path) `
421+ ** Save Function:** ` save_areas(areas: List[Area], metadata: PipelineMetadata, output_path: Path) ` (see [ ` io_utils.py ` ] ( io_utils.py ) )
406422
407423** File Path:** ` <output_dir>/<experiment_id>/areas/<tag>/areas.json `
408424``` json
@@ -447,7 +463,7 @@ This stage creates two files:
447463### Output: ` capabilities.json ` (one per area)
448464
449465** Stage Output:** List[ Capability] dataclasses + PipelineMetadata
450- ** Save Function:** ` save_capabilities(capabilities: List[Capability], metadata: PipelineMetadata, output_path: Path) `
466+ ** Save Function:** ` save_capabilities(capabilities: List[Capability], metadata: PipelineMetadata, output_path: Path) ` (see [ ` io_utils.py ` ] ( io_utils.py ) )
451467
452468** File Path:** ` <output_dir>/<experiment_id>/capabilities/<cap_tag>/<area_id>/capabilities.json `
453469
@@ -495,7 +511,7 @@ This stage creates two files:
495511### Output: ` tasks.json ` (one per capability)
496512
497513** Stage Output:** List[ Task] dataclasses + PipelineMetadata
498- ** Save Function:** ` save_tasks(tasks: List[Task], metadata: PipelineMetadata, output_path: Path) `
514+ ** Save Function:** ` save_tasks(tasks: List[Task], metadata: PipelineMetadata, output_path: Path) ` (see [ ` io_utils.py ` ] ( io_utils.py ) )
499515
500516** File Path:** ` <output_dir>/<experiment_id>/tasks/<task_tag>/<area_id>/<capability_id>/tasks.json `
501517
0 commit comments