{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://jyotisha.chat/contracts/yinduzhanxing-import-manifest.v1.schema.json", "title": "Yinduzhanxing one-way import manifest", "type": "object", "additionalProperties": false, "required": [ "schema_version", "source_repository", "source_commit", "source_tree_hash", "source_mode", "target_repository", "target_base_commit", "policy_version", "generated_at", "mirror_files", "semantic_merge_files", "protected_rejections", "tests_run", "privacy_scan", "operator_review_required" ], "properties": { "schema_version": {"const": 1}, "source_repository": {"type": "string", "minLength": 1}, "source_repository_url": {"type": "string", "pattern": "^https://github\\.com/[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"}, "source_commit": {"type": "string", "pattern": "^(unknown|[0-9a-f]{40})$"}, "source_tree_hash": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "source_skill_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$", "description": "SHA-256 of the research source root SKILL.md."}, "source_mode": {"enum": ["git", "archive", "snapshot"]}, "target_repository": {"type": "string", "minLength": 1}, "target_base_commit": {"type": "string", "pattern": "^[0-9a-f]{40}$"}, "policy_version": {"const": 2}, "generated_at": {"type": "string", "format": "date-time"}, "mirror_files": {"type": "array", "items": {"$ref": "#/$defs/file"}}, "semantic_merge_files": {"type": "array", "items": {"$ref": "#/$defs/semantic"}}, "protected_rejections": {"type": "array", "items": {"type": "string"}}, "tests_run": {"type": "array", "items": {"type": "string"}}, "privacy_scan": { "type": "object", "additionalProperties": false, "required": ["status", "scanned_files", "rejections"], "properties": { "status": {"enum": ["pass", "rejected"]}, "scanned_files": {"type": "integer", "minimum": 0}, "rejections": {"type": "array", "items": {"type": "string"}} } }, "operator_review_required": {"type": "boolean"} }, "allOf": [ { "if": {"properties": {"source_mode": {"enum": ["git", "archive"]}}}, "then": { "required": ["source_repository_url", "source_skill_sha256"], "properties": {"source_commit": {"pattern": "^[0-9a-f]{40}$"}} } } ], "$defs": { "file": { "type": "object", "additionalProperties": false, "required": ["source", "target", "status", "source_sha256", "target_sha256_before", "target_sha256_after", "license"], "properties": { "source": {"type": "string"}, "target": {"type": "string"}, "status": {"enum": ["new", "update", "unchanged", "applied"]}, "source_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "target_sha256_before": {"type": ["string", "null"], "pattern": "^[0-9a-f]{64}$"}, "target_sha256_after": {"type": "string", "pattern": "^[0-9a-f]{64}$"}, "license": {"type": "string"} } }, "semantic": { "type": "object", "additionalProperties": false, "required": ["path", "status", "source_sha256", "target_sha256", "diff_summary"], "properties": { "path": {"type": "string"}, "status": {"enum": ["unchanged", "source_missing", "target_missing", "review_required"]}, "source_sha256": {"type": ["string", "null"], "pattern": "^[0-9a-f]{64}$"}, "target_sha256": {"type": ["string", "null"], "pattern": "^[0-9a-f]{64}$"}, "diff_summary": {"type": "string"} } } } }