Project Version Helper
Goal
Help a non-technical user manage project versions with Git and GitHub using plain language. Do the work directly when the project path is known. Use the user's conversation language for all explanations.
Plain-Language Mapping
Treat these requests as version-management tasks:
- "save current version", "save this", "back this up" -> make a safe commit after checking the current state.
- "start a new version", "try a new feature", "make a test line" -> create a new
codex/... branch.
- "this version works", "mark a milestone", "make a test release" -> create a tag such as
v0.1-test, v0.2-demo, or the user-provided name.
- "what changed" -> show a plain-language summary of changed files and important diffs.
- "go back", "restore the old version" -> never reset destructively first; create a safety branch or backup commit, then restore only after explaining the target.
- "sync to GitHub", "cloud backup" -> push the current branch and tags to GitHub if a remote exists.
- "publish a test version" -> commit, tag, and push the branch/tag.
Safety Rules
Before changing anything:
- Check project status.
- If Git is not initialized, initialize it only after confirming the folder is the intended project folder.
- Never discard user changes.
- Never run destructive recovery commands such as hard reset unless the user explicitly approves the exact target version.
- If unrelated uncommitted changes exist, mention them and avoid mixing them into the requested version unless the user wants a full-project save.
- Keep user updates short and non-technical.
Standard Workflows
Save Current Version
- Check whether the folder is a Git repository.
- Check changed files.
- If nothing changed, tell the user there is no new version to save.
- Stage intended files.
- Commit with a simple message:
- If the user gave a description, use it.
- Otherwise use
Save working version YYYY-MM-DD HHMM.
- If a GitHub remote exists and the user asked for cloud backup, push the current branch.
Start New Iteration
- Check current status.
- If there are unsaved changes, recommend saving them first.
- Create a branch named
codex/<short-purpose> using lowercase English words.
- Explain it as opening an independent test line, not as a technical Git branch unless the user asks.
Mark Milestone
- Ensure current work is committed.
- Create a tag using the user's requested version name.
- If no name is provided, suggest the next simple test tag, such as
v0.1-test, after checking existing tags.
- Push tags only if the user asked to sync to GitHub.
View History
Show the last 10 commits in plain language:
- version label or short hash
- date
- short description
Avoid teaching Git unless asked.
Recover Old Version
Use a cautious two-step recovery:
- First create a safety branch or commit for the current state.
- Then show candidate versions/tags.
- Restore only after the user confirms the exact target.
Prefer creating a new branch from the old version for testing instead of rewriting the current branch.
Helper Script
Use scripts/project_version_helper.ps1 for repeatable local Git tasks when helpful. It supports:
.\scripts\project_version_helper.ps1 -Action status -ProjectPath <path>
.\scripts\project_version_helper.ps1 -Action save -ProjectPath <path> -Message <message>
.\scripts\project_version_helper.ps1 -Action history -ProjectPath <path>
.\scripts\project_version_helper.ps1 -Action tag -ProjectPath <path> -TagName <tag>
.\scripts\project_version_helper.ps1 -Action push -ProjectPath <path>
When using PowerShell, avoid embedding non-ASCII strings in command arguments. If a non-English commit message is required, write it through a UTF-8 file or use a safe English message.
Response Style
For beginners, prefer simple terms:
- Say "save a version", not "commit".
- Say "sync to GitHub", not "push remote branch", unless the user asks for details.
- Say "open a test line", not "create feature branch".
- Keep final replies short and tell the user exactly what was done.
1---2name: project-version-helper3description: Simple project version-management workflow for non-technical users. Use when the user asks to save the current project version, create a new iteration, back up a working state, view version history, compare versions, tag a milestone, push to GitHub, recover an older version, or manage frequent testing-stage changes for a small app/tool without needing Git terminology.4---56# Project Version Helper78## Goal910Help a non-technical user manage project versions with Git and GitHub using plain language. Do the work directly when the project path is known. Use the user's conversation language for all explanations.1112## Plain-Language Mapping1314Treat these requests as version-management tasks:1516- "save current version", "save this", "back this up" -> make a safe commit after checking the current state.17- "start a new version", "try a new feature", "make a test line" -> create a new `codex/...` branch.18- "this version works", "mark a milestone", "make a test release" -> create a tag such as `v0.1-test`, `v0.2-demo`, or the user-provided name.19- "what changed" -> show a plain-language summary of changed files and important diffs.20- "go back", "restore the old version" -> never reset destructively first; create a safety branch or backup commit, then restore only after explaining the target.21- "sync to GitHub", "cloud backup" -> push the current branch and tags to GitHub if a remote exists.22- "publish a test version" -> commit, tag, and push the branch/tag.2324## Safety Rules2526Before changing anything:27281. Check project status.292. If Git is not initialized, initialize it only after confirming the folder is the intended project folder.303. Never discard user changes.314. Never run destructive recovery commands such as hard reset unless the user explicitly approves the exact target version.325. If unrelated uncommitted changes exist, mention them and avoid mixing them into the requested version unless the user wants a full-project save.336. Keep user updates short and non-technical.3435## Standard Workflows3637### Save Current Version38391. Check whether the folder is a Git repository.402. Check changed files.413. If nothing changed, tell the user there is no new version to save.424. Stage intended files.435. Commit with a simple message:44 - If the user gave a description, use it.45 - Otherwise use `Save working version YYYY-MM-DD HHMM`.466. If a GitHub remote exists and the user asked for cloud backup, push the current branch.4748### Start New Iteration49501. Check current status.512. If there are unsaved changes, recommend saving them first.523. Create a branch named `codex/<short-purpose>` using lowercase English words.534. Explain it as opening an independent test line, not as a technical Git branch unless the user asks.5455### Mark Milestone56571. Ensure current work is committed.582. Create a tag using the user's requested version name.593. If no name is provided, suggest the next simple test tag, such as `v0.1-test`, after checking existing tags.604. Push tags only if the user asked to sync to GitHub.6162### View History6364Show the last 10 commits in plain language:6566- version label or short hash67- date68- short description6970Avoid teaching Git unless asked.7172### Recover Old Version7374Use a cautious two-step recovery:75761. First create a safety branch or commit for the current state.772. Then show candidate versions/tags.783. Restore only after the user confirms the exact target.7980Prefer creating a new branch from the old version for testing instead of rewriting the current branch.8182## Helper Script8384Use `scripts/project_version_helper.ps1` for repeatable local Git tasks when helpful. It supports:8586```powershell87.\scripts\project_version_helper.ps1 -Action status -ProjectPath <path>88.\scripts\project_version_helper.ps1 -Action save -ProjectPath <path> -Message <message>89.\scripts\project_version_helper.ps1 -Action history -ProjectPath <path>90.\scripts\project_version_helper.ps1 -Action tag -ProjectPath <path> -TagName <tag>91.\scripts\project_version_helper.ps1 -Action push -ProjectPath <path>92```9394When using PowerShell, avoid embedding non-ASCII strings in command arguments. If a non-English commit message is required, write it through a UTF-8 file or use a safe English message.9596## Response Style9798For beginners, prefer simple terms:99100- Say "save a version", not "commit".101- Say "sync to GitHub", not "push remote branch", unless the user asks for details.102- Say "open a test line", not "create feature branch".103- Keep final replies short and tell the user exactly what was done.