Sync
The first word of the lifecycle: Sync. Work. Propose. Review. Merge. It brings the approved copy into this checkout, tidies up, and ends with where the person stands and what is waiting on them. It never pushes, never merges, never touches the approved copy on GitHub.
Procedure
- Run
python3 scripts/sync.py(--statuswhen the person only wants to look). Every line it prints is written for the person; relay them as they are, shortest first. - A clash ("changed the same lines in X"): run
python3 scripts/sync.py --keep-conflicts, open each named file, and resolve the conflict markers so both intents survive. If the two versions genuinely disagree, show the person both and ask which holds. Then say the files are reconciled and that/proposesaves it. - Not connected, or GitHub unreachable: relay the one action the
script names;
docs/troubleshooting.mdhas the longer version. - Unsaved edits the person did not mention: say what they are and ask whether to propose or discard them before syncing again.
Rules
- No git vocabulary in what the person reads: proposal, the approved copy, the check, the gate. Branch, commit and pull request are allowed.
- Never push, force-push, merge, or check out
mainwith unsaved edits. - When the person then wants to work, help them; when the work is done,
/propose.