Plain Git for Humans
Overview
Hide Git mechanics behind normal collaboration language while keeping the user informed about consequences. Prefer safe checkpoints, explicit confirmation for sharing or destructive actions, and merge-based collaboration in one existing project folder.
Language Model
Use these user-facing terms first, with Git terms in parentheses only when useful:
- "shared version" for
main or master
- "your draft" for the user's ongoing personal branch
- "their draft" for a collaborator's branch
- "checkpoint" for a local commit
- "send to the cloud" or "share" for push
- "get latest" for pull/fetch plus merge
- "combine drafts" for merge
Explain what will change, where it will change, and who may be able to see it. Do not make the user learn Git vocabulary before they can act.
Non-Negotiables
- Never use Git worktrees.
- Do not use rebase as the default. Prefer ordinary merge workflows.
- Do not create branches proactively. Use existing branches when present. Create a branch only after the user explicitly asks to start or save a separate draft.
- For collaboration, prefer one ongoing personal draft branch per user instead of one branch per feature.
- Do not install Git aliases or change global Git config unless the user explicitly asks for setup help.
- Treat this v1 as existing-repository help. If Git, a remote, or cloud setup is missing, diagnose and explain the gap instead of turning the task into a full account/setup wizard.
- Never push, publish, delete, discard, reset, overwrite, force-push, or resolve a conflict without plain-language confirmation.
Start With Diagnosis
Run read-only checks automatically before recommending or taking action:
- Check whether Git is available:
git --version.
- Check whether the current folder is inside a repository:
git rev-parse --is-inside-work-tree.
- Check the current state:
git status --short --branch.
- Check the current branch:
git branch --show-current.
- Check remotes:
git remote -v.
- Check recent activity and likely collaborators:
git log --format="%h%x09%an%x09%ar%x09%s" -20.
- If collaboration matters, inspect branches with
git branch --all --verbose --no-abbrev.
Report findings as evidence, not certainty. Say "I see commits from two names recently" rather than "two people use this repo."
Safety Reference
Read references/risk-checks.md before any workflow that commits, pushes, pulls, merges, resolves conflicts, or recovers work.
Workflow Router
Map user phrases to the smallest safe workflow:
- "check this project" -> diagnose only.
- "save my work", "checkpoint", "commit" -> local checkpoint.
- "back this up", "backup", "share this", "send it to the cloud", "push" -> push only after confirmation.
- "get latest", "pull changes", "sync" -> fetch/pull with merge, checkpoint first if local changes exist.
- "combine our work", "merge this", "merge" -> merge existing branches only after explaining source and destination.
- "what changed?", "diff", "history" -> summarize local diff or history.
- "undo this", "revert", "restore" -> prefer non-destructive recovery; confirm destructive choices.
Save My Work
Treat "save my work" as permission to create one local checkpoint commit if risk checks pass.
- Run diagnosis and read
references/risk-checks.md.
- Summarize changed files in normal language.
- If risky changes exist, stop and ask for confirmation. Name the exact risk.
- If no risky changes exist, stage all current changes with
git add -A.
- Commit once with a plain message such as
checkpoint: save current work.
- Show the short commit hash and explain that the checkpoint is local only.
Prefer one safe checkpoint over atomic developer-style history. Do not partially stage unless the user explicitly asks to save only part of the work.
Back Up Or Share
Always confirm before pushing.
- Confirm there is a remote and identify the destination branch.
- Explain that pushing sends saved checkpoints outside this computer and may make them visible to people with repository access.
- If the current branch has several local-only commits, recommend backing them up to the user's own draft branch first.
- If the current work appears finished, optionally suggest merging into the shared version after it is backed up.
- Push only after explicit confirmation.
If no remote exists, explain that v1 can diagnose the missing cloud backup but should not create accounts or repositories unless the user explicitly asks for setup help.
Get Latest Changes
Use merge-based updates.
- If local changes exist, explain that the user has unsaved work and recommend a checkpoint before bringing in someone else's updates.
- Do not stash by default.
- After the work is clean or checkpointed, fetch with
git fetch --all --prune.
- Pull with merge, for example
git pull --no-rebase, when the branch has an upstream.
- If there is no upstream, explain the available branches and recommend the safest next step.
- If conflicts occur, stop and follow the conflict workflow.
Combine Drafts
Use existing branches; do not create new branches unless the user asks.
- Explain source and destination in human terms: "I will bring their draft into your draft" or "I will combine your draft into the shared version."
- Require a clean working tree or a checkpoint before merging.
- Prefer bringing the shared version into the user's draft first, checking the result, then merging the draft into the shared version only when the user says the work is ready.
- Use ordinary
git merge, not rebase.
- Stop on conflicts.
Conflict Workflow
When a merge conflict happens:
- Stop before editing conflict markers.
- List affected files.
- Explain what the user's side changed and what the other side changed.
- Classify the conflict as content, structure, settings, generated output, or binary/assets.
- Recommend a merge choice in normal language.
- Ask for confirmation before applying any resolution.
Show Changes
For local changes, summarize git status --short, git diff --stat, and selective readable diffs. For history, summarize recent git log entries. Redact secret-looking values; never repeat tokens, keys, or credentials back to the user.
Undo Or Recover
Prefer reversible choices:
- Use
git status, git log, and git diff first.
- Prefer
git revert for already-shared commits.
- Prefer creating a new checkpoint before risky recovery.
- Confirm before
git restore, git reset, branch deletion, force push, or any overwrite.
1---2name: plain-git-for-humans3description: Guides non-technical users through existing Git repositories in plain language. Use when the user asks to save my work, checkpoint, commit, back this up, backup, share this, send to cloud, push, get latest, pull changes, sync, combine our work, merge, show what changed, diff, history, undo, revert, restore, conflict, or Git help for a non-technical or vibe-coding user. Use for simple commit, push, pull, and merge workflows with consequence explanations. Do not use for advanced Git history surgery, worktrees, rebase-first workflows, or full Git/GitHub account setup.4---56# Plain Git for Humans78## Overview910Hide Git mechanics behind normal collaboration language while keeping the user informed about consequences. Prefer safe checkpoints, explicit confirmation for sharing or destructive actions, and merge-based collaboration in one existing project folder.1112## Language Model1314Use these user-facing terms first, with Git terms in parentheses only when useful:1516- "shared version" for `main` or `master`17- "your draft" for the user's ongoing personal branch18- "their draft" for a collaborator's branch19- "checkpoint" for a local commit20- "send to the cloud" or "share" for push21- "get latest" for pull/fetch plus merge22- "combine drafts" for merge2324Explain what will change, where it will change, and who may be able to see it. Do not make the user learn Git vocabulary before they can act.2526## Non-Negotiables2728- Never use Git worktrees.29- Do not use rebase as the default. Prefer ordinary merge workflows.30- Do not create branches proactively. Use existing branches when present. Create a branch only after the user explicitly asks to start or save a separate draft.31- For collaboration, prefer one ongoing personal draft branch per user instead of one branch per feature.32- Do not install Git aliases or change global Git config unless the user explicitly asks for setup help.33- Treat this v1 as existing-repository help. If Git, a remote, or cloud setup is missing, diagnose and explain the gap instead of turning the task into a full account/setup wizard.34- Never push, publish, delete, discard, reset, overwrite, force-push, or resolve a conflict without plain-language confirmation.3536## Start With Diagnosis3738Run read-only checks automatically before recommending or taking action:39401. Check whether Git is available: `git --version`.412. Check whether the current folder is inside a repository: `git rev-parse --is-inside-work-tree`.423. Check the current state: `git status --short --branch`.434. Check the current branch: `git branch --show-current`.445. Check remotes: `git remote -v`.456. Check recent activity and likely collaborators: `git log --format="%h%x09%an%x09%ar%x09%s" -20`.467. If collaboration matters, inspect branches with `git branch --all --verbose --no-abbrev`.4748Report findings as evidence, not certainty. Say "I see commits from two names recently" rather than "two people use this repo."4950## Safety Reference5152Read `references/risk-checks.md` before any workflow that commits, pushes, pulls, merges, resolves conflicts, or recovers work.5354## Workflow Router5556Map user phrases to the smallest safe workflow:5758- "check this project" -> diagnose only.59- "save my work", "checkpoint", "commit" -> local checkpoint.60- "back this up", "backup", "share this", "send it to the cloud", "push" -> push only after confirmation.61- "get latest", "pull changes", "sync" -> fetch/pull with merge, checkpoint first if local changes exist.62- "combine our work", "merge this", "merge" -> merge existing branches only after explaining source and destination.63- "what changed?", "diff", "history" -> summarize local diff or history.64- "undo this", "revert", "restore" -> prefer non-destructive recovery; confirm destructive choices.6566## Save My Work6768Treat "save my work" as permission to create one local checkpoint commit if risk checks pass.69701. Run diagnosis and read `references/risk-checks.md`.712. Summarize changed files in normal language.723. If risky changes exist, stop and ask for confirmation. Name the exact risk.734. If no risky changes exist, stage all current changes with `git add -A`.745. Commit once with a plain message such as `checkpoint: save current work`.756. Show the short commit hash and explain that the checkpoint is local only.7677Prefer one safe checkpoint over atomic developer-style history. Do not partially stage unless the user explicitly asks to save only part of the work.7879## Back Up Or Share8081Always confirm before pushing.82831. Confirm there is a remote and identify the destination branch.842. Explain that pushing sends saved checkpoints outside this computer and may make them visible to people with repository access.853. If the current branch has several local-only commits, recommend backing them up to the user's own draft branch first.864. If the current work appears finished, optionally suggest merging into the shared version after it is backed up.875. Push only after explicit confirmation.8889If no remote exists, explain that v1 can diagnose the missing cloud backup but should not create accounts or repositories unless the user explicitly asks for setup help.9091## Get Latest Changes9293Use merge-based updates.94951. If local changes exist, explain that the user has unsaved work and recommend a checkpoint before bringing in someone else's updates.962. Do not stash by default.973. After the work is clean or checkpointed, fetch with `git fetch --all --prune`.984. Pull with merge, for example `git pull --no-rebase`, when the branch has an upstream.995. If there is no upstream, explain the available branches and recommend the safest next step.1006. If conflicts occur, stop and follow the conflict workflow.101102## Combine Drafts103104Use existing branches; do not create new branches unless the user asks.1051061. Explain source and destination in human terms: "I will bring their draft into your draft" or "I will combine your draft into the shared version."1072. Require a clean working tree or a checkpoint before merging.1083. Prefer bringing the shared version into the user's draft first, checking the result, then merging the draft into the shared version only when the user says the work is ready.1094. Use ordinary `git merge`, not rebase.1105. Stop on conflicts.111112## Conflict Workflow113114When a merge conflict happens:1151161. Stop before editing conflict markers.1172. List affected files.1183. Explain what the user's side changed and what the other side changed.1194. Classify the conflict as content, structure, settings, generated output, or binary/assets.1205. Recommend a merge choice in normal language.1216. Ask for confirmation before applying any resolution.122123## Show Changes124125For local changes, summarize `git status --short`, `git diff --stat`, and selective readable diffs. For history, summarize recent `git log` entries. Redact secret-looking values; never repeat tokens, keys, or credentials back to the user.126127## Undo Or Recover128129Prefer reversible choices:130131- Use `git status`, `git log`, and `git diff` first.132- Prefer `git revert` for already-shared commits.133- Prefer creating a new checkpoint before risky recovery.134- Confirm before `git restore`, `git reset`, branch deletion, force push, or any overwrite.