| name | gds-manage-fork |
| description | Use this skill only when the owner explicitly asks to create, inspect, synchronize, rehome, detach, freeze, archive, or otherwise change a fork lifecycle. Preserve fork-specific commits and upstream identity; force is never the default. Do not use it for ordinary source repositories or generic branch synchronization. |
| disable-model-invocation | true |
Contract
Manage a fork relationship without discarding maintained fork history.
Use when
- A repository fork must be synchronized or its fork policy changed.
Do not use when
- The repository is not verified as a fork.
- The task is ordinary feature development.
Inputs
- Fork repository ID, upstream identity, branch, and fork policy.
- Requested operation and explicit approval scope.
Preconditions
- Verify
origin and upstream identities, not only their names.
- Classify fork-specific and upstream commits.
- Run
gds fork <operation> --plan for sync, detach, or archive;
gds fork inspect is read-only and has no plan mode.
- For any force proposal, require exact old OID, recovery ref, and explicit approval.
Workflow
- Recheck remote OIDs and access.
- Apply the approved integration strategy.
- Preserve upstream history and fork-specific commit evidence.
- Verify final refs, policy, and relationships.
Stop conditions
Stop on inaccessible upstream, ambiguous commit ownership, changed OIDs,
missing recovery path, stale plan, or unapproved force behavior.
Verification
Run gds fork <operation> --verify <operation-id> --json for the mutating
operation, then gds fork inspect --json for final identity evidence.
Output
Return fork/upstream identities, classified deltas, applied strategy, final
OIDs, preserved commits, and unresolved access state.
References
No additional runtime reference is required; use current fork and upstream evidence.