Mandatory Commit & Safety Protocol
1. Three-Tier Branching & Umbrella Evolution (MANDATORY)
- •Zero-Commit Rule for Main: Never commit directly to
mainormaster. - •Tier 1: Local Topic Branches (Atomic Changes):
- •Analyze changes to propose a specific
topic/name (e.g.,topic/fix-auth-leak). - •Create a new branch for each atomic unit of work.
- •Commit changes using Conventional Commits format.
- •Analyze changes to propose a specific
- •Tier 2: Global Umbrella Branches (Feature/Scope):
- •When ready to sync, analyze all active
topic/branches to propose a summarizingfeature/name (e.g.,feature/security-hardening). - •Merge relevant
topic/branches into this "Umbrella" branch.
- •When ready to sync, analyze all active
- •Tier 3: Umbrella Evolution (Scope Expansion):
- •If new changes make the current
feature/branch name inaccurate or too narrow:- •Propose a NEW umbrella branch name (e.g.,
feature/v1-core-release). - •Merge the OLD umbrella branch AND any new
topic/branches into the NEW umbrella.
- •Propose a NEW umbrella branch name (e.g.,
- •This ensures the branch name always reflects the total scope of changes.
- •If new changes make the current
2. Pre-Commit Review (Required)
- •Before proposing any commit or merge, you MUST execute:
bash ./opencode/skill/conventional-commits/scripts/review.sh. - •Display the output to the user for verification.
3. Explicit Commit Types
All commit messages must strictly follow: <type>(<scope>): <description>
- •feat: A new feature.
- •fix: A bug fix.
- •docs: Documentation changes.
- •style: Formatting/styling (no code change).
- •refactor: Code refactoring.
- •perf: Performance improvements.
- •test: Adding/refactoring tests.
- •chore: Build/maintenance tasks.
4. Mandatory Consent (The Barrier)
- •STOP and WAIT: After showing the review and proposed branch/message, you are strictly forbidden from executing
git commitorgit merge. - •Ask: "I have prepared the [topic/umbrella] branch [branch-name]. Should I proceed with the [commit/merge]?"
- •Only proceed if the user gives explicit consent.
5. Sync Automation
- •Use
bash ./opencode/skill/conventional-commits/scripts/git_sync.sh [umbrella-name]to consolidate branches. - •If evolving an umbrella, ensure the script is called with the new name and handles the merge of the previous umbrella.