# Data Contract ## 1. Machine-Readable Format Use JSON for machine-readable data. Model JSON files own the model asset state, including `status`, `regression_status`, and `stability_profile.stability_level`. Main JSON objects: - Model spec - Source article - Source excerpt - Regression case - Selector example - Model index ## 2. Human-Readable Format Use Markdown for: - Model cards - Project documentation - Extraction notes - Validation reports - Handoff reports ## 3. Model Spec Contract Every model JSON should include: - `model_id` - `model_name` - `model_type` - `pipeline_position` - `one_sentence_definition` - `core_question` - `core_mechanism` - `status` - `source_articles` - `source_evidence` - `input_types` - `output_types` - `call_when` - `do_not_call_when` - `common_misuses` - `failure_modes` - `selection_priority` - `confidence_level` - `stability_profile` - `regression_status` - `output_contract` - `structured_output_contract` - `productization_notes` `structured_output_contract` is model-specific. It must not turn QPI-only or Intellectual-Archaeology-only runtime fields into global top-level required fields for every model. Model-specific required runtime output fields are checked by `scripts/validate_model_library.py`. ## 4. Source Article Contract Every source article should include: - `source_id` - `title` - `source_type` - `related_models` - `source_status` Optional: - `author` - `date` - `file_path` - `notes` ## 5. Source Excerpt Contract Every source excerpt should include: - `excerpt_id` - `source_id` - `related_model_id` - `excerpt_type` - `summary` - `used_for` Optional: - `raw_excerpt` - `confidence` - `notes` ## 6. Regression Case Contract Every regression case should include: - `case_id` - `model_id` - `case_type` - `input` - `expected_behavior` - `failure_signal` Optional: - `expected_output_elements` - `should_call_model` - `expected_primary_model` - `negative_expected_models` - `expected_classification` - `expected_dominant_scarcity` - `expected_max_depth` - `minimum_required_elements` - `forbidden_elements` - `evaluation_mode` - `notes` ## 7. Reference Integrity The following references must be valid: - `model.source_articles` -> `sources/source_articles.json` - `model.source_evidence` -> `sources/source_excerpts.json` - `regression_case.model_id` -> `models/*.model.json` - `source_excerpt.source_id` -> `sources/source_articles.json` - `source_excerpt.related_model_id` -> `models/*.model.json` ## 8. Index Integrity `models/model_index.json` is generated or checked from model JSON, card files, source references, and regression cases. `cards/card_index.md` is the human-readable projection of `models/model_index.json`. Indexes must not drift from model state, source/evidence counts, regression case counts, or card file existence. ## 9. Content Stabilization Integrity Engineering validation does not imply content stability. Before content stabilization review, every core model should have at least 15 regression cases and field-level evidence coverage. Source excerpts must distinguish exact quotes from condensed or paraphrased excerpts with `quote_status`.