{
"schema": 1,
"downstream": {
"remote": "origin",
"branch": "main",
"backup_tag_prefix": "vsh/pre-sync"
},
"upstream": {
"remote": "upstream",
"url": "https://github.com/example/project.git",
"fetch_ref": "refs/heads/main"
},
"base": {
"target": {
"kind": "tag",
"selector": "refs/tags/v1.2.3",
"commit": "0000000000000000000000000000000000000000",
"tag_object": "1111111111111111111111111111111111111111"
},
"canonical": "0000000000000000000000000000000000000000",
"stack": "0000000000000000000000000000000000000000"
},
"ledger": "PATCHES.md",
"bookkeeping_patch": "fork-tooling",
"patches": [
{
"name": "downstream-change",
"kind": "source",
"purpose": "Describe why this downstream change exists.",
"upstream_status": "not-submitted",
"drop_when": "Upstream provides the required behavior.",
"paths": [
"src/example.rs"
],
"export": "patches/downstream/0001-downstream-change.patch"
},
{
"name": "fork-tooling",
"kind": "tooling",
"purpose": "Own downstream fork policy and generated bookkeeping.",
"upstream_status": "inappropriate: downstream-only tooling",
"drop_when": "The downstream fork is retired.",
"paths": [
"AGENTS.md",
"FORK.md",
"PATCHES.md",
"mise.toml",
"mise.lock",
"patches/downstream/*"
]
}
],
"history": [],
"allow": {
"base": []
},
"required": [
{
"path": "FORK.md",
"contains": "mise run fork:verify"
}
]
}