74 lines
3.5 KiB
JSON
74 lines
3.5 KiB
JSON
{
|
|
"schema_version": 2,
|
|
"direction": "research_to_commercial_only",
|
|
"source_repository": "732642856/yinduzhanxing",
|
|
"source_repository_url": "https://github.com/732642856/yinduzhanxing",
|
|
"target_repository": "root/Jyotisha",
|
|
"reverse_sync": "forbidden",
|
|
"modes": {
|
|
"mirror": [
|
|
{
|
|
"source": "SKILL.md",
|
|
"target": "references/upstream/yinduzhanxing/SKILL.md",
|
|
"license": "MIT"
|
|
}
|
|
],
|
|
"semantic_merge": [
|
|
"SKILL.md",
|
|
"AGENTS.md",
|
|
"references/strict-workflow-router.md",
|
|
"scripts/unified_consultation_orchestrator.py",
|
|
"scripts/report_orchestrator.py",
|
|
"scripts/jyotish_api_server.py"
|
|
],
|
|
"protected": [
|
|
"skills/jyotish-birth-time-rectification/**",
|
|
"skills/jyotish-vedic-astrology/**",
|
|
"SKILL.md",
|
|
"frontend/**",
|
|
"deploy/**",
|
|
".gitea/**",
|
|
".github/**",
|
|
"frontend/db/**",
|
|
"frontend/supabase/**",
|
|
"references/oracle/commercial_skill_truth_overlay.v1.json",
|
|
"**/.env",
|
|
"**/.env.*",
|
|
"**/*payment*",
|
|
"**/*billing*",
|
|
"**/*subscription*",
|
|
"**/*entitlement*",
|
|
"**/*admin*",
|
|
"**/*service_role*"
|
|
]
|
|
},
|
|
"privacy": {
|
|
"forbidden_extensions": [".pem", ".key", ".p12", ".pfx", ".dump", ".sql.gz", ".pdf"],
|
|
"forbidden_basenames": [".env", "cookies.txt", "id_rsa", "id_ed25519"],
|
|
"content_markers": ["-----BEGIN PRIVATE KEY-----", "SUPABASE_SERVICE_ROLE_KEY=", "VEDASTRO_API_KEY=", "OPENAI_API_KEY=", "DATABASE_URL=postgres"]
|
|
},
|
|
"notes": [
|
|
"Only explicit mirror mappings may be copied byte-for-byte.",
|
|
"Semantic-merge paths are review inputs and are never overwritten by the importer.",
|
|
"Commercial product, identity, billing, database and deployment surfaces are protected.",
|
|
"There is no commercial-to-research mode or gate in schema v2.",
|
|
"The only byte-for-byte mirror is upstream SKILL.md into references/upstream/yinduzhanxing/SKILL.md.",
|
|
"Commercial root and birth-time-rectification Skills are protected targets and may only be reviewed through separate semantic work.",
|
|
"The importer enforces the built-in minimum protected pattern set even when an alternate policy file is supplied.",
|
|
"Unbound non-Git snapshots are legacy records; new archive imports fail closed without commit and expected tree SHA-256.",
|
|
"A Git source must be a clean repository-root checkout whose origin matches source_repository; Git checkouts cannot be relabeled as archive sources.",
|
|
"Manifest generation requires a clean target repository root and is deterministic for fixed source, target base commit, policy and CLI identity inputs.",
|
|
"Manifest output must be JSON, cannot overlap the source tree, and may enter the target only through references/cross_project_contract/imports."
|
|
],
|
|
"source_modes": {
|
|
"git": "Use the exact clean repository-root HEAD commit. Explicit commit and expected tree pins, when used, must be supplied together and match.",
|
|
"archive": "Requires both an explicit 40-hex source commit and expected importer-compatible source-tree SHA-256; absence or mismatch is rejected.",
|
|
"snapshot": "Legacy manifest records only. The v2 importer does not emit new unbound snapshots."
|
|
},
|
|
"determinism": {
|
|
"tree_hash": "SHA-256 over sorted relative path, NUL, file SHA-256 bytes, NUL; .git is excluded and source symlinks are rejected.",
|
|
"generated_at": "Git source commit time for git mode; target base commit time for archive mode. Wall-clock time is forbidden.",
|
|
"json": "UTF-8, sorted keys, two-space indentation, trailing newline."
|
|
}
|
|
}
|