chore(roo): establish git branching strategy for workshop monorepo
- Add branch naming convention: type/scope/short-description - Update gitea-push skill: branch guard in Step 1 (never commit to main) - Update rules-mcp-builder: create branch before any MCP build - Update rules-bigmind: create branch before any BigMind task - Update rules-homelab: create branch before any homelab task - Add Section 11 to REPO_STRATEGY.md: full branching strategy doc (types, scopes, workflow, Lumen responsibilities, examples) - Ticketing decision: Gitea Issues only, no Docker ticketing service
This commit is contained in:
@@ -18,22 +18,56 @@ description: Commits and pushes code to the homelab Gitea server using conventio
|
||||
- A description of what changed (for commit message)
|
||||
- The type of change (see conventional commit types below)
|
||||
- The scope (e.g., `mcp-webscraper`, `bigmind`, `homelab-docker`)
|
||||
- The working branch name (or "main" — but you should NOT be on main)
|
||||
|
||||
## Branch Convention
|
||||
|
||||
**Never commit directly to `main`.** Every piece of work lives on its own branch.
|
||||
|
||||
Format: `type/scope/short-description`
|
||||
|
||||
| Type | When |
|
||||
|------|------|
|
||||
| `feat` | New feature, server, or tool |
|
||||
| `fix` | Bug fix |
|
||||
| `docs` | Docs, plans, strategy files |
|
||||
| `chore` | Refactoring, config, CI, build |
|
||||
| `spike` | Experimental / throwaway exploration |
|
||||
|
||||
Scope = the affected project area: `bigmind` · `webscraper` · `cannamanage` · `workshop` · `roo` · `plans`
|
||||
|
||||
Examples:
|
||||
- `feat/bigmind/people-contacts`
|
||||
- `fix/bigmind/health-check-bugs`
|
||||
- `docs/plans/cannamanage-strategy`
|
||||
- `chore/workshop/monorepo-reorganize`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. **Check status:**
|
||||
1. **Check current branch — branch guard (MANDATORY):**
|
||||
```bash
|
||||
git branch --show-current
|
||||
```
|
||||
- If already on a correct feature branch → continue to step 2
|
||||
- If on `main` → **STOP. Create a branch first:**
|
||||
```bash
|
||||
git checkout -b feat/scope/short-description
|
||||
```
|
||||
- Never commit to `main`. Not even for "tiny fixes".
|
||||
|
||||
2. **Check status:**
|
||||
```bash
|
||||
git status
|
||||
git diff --stat
|
||||
```
|
||||
|
||||
2. **Stage changes:**
|
||||
3. **Stage changes:**
|
||||
```bash
|
||||
git add -A
|
||||
# or selectively: git add path/to/file
|
||||
```
|
||||
|
||||
3. **Write conventional commit message:**
|
||||
4. **Write conventional commit message:**
|
||||
|
||||
Format: `type(scope): short description`
|
||||
|
||||
@@ -52,20 +86,26 @@ description: Commits and pushes code to the homelab Gitea server using conventio
|
||||
- `fix(bigmind): resolve FTS5 reserved-word collision`
|
||||
- `chore(homelab): update docker-compose for gitea upgrade`
|
||||
|
||||
4. **Commit:**
|
||||
5. **Commit:**
|
||||
```bash
|
||||
git commit -m "type(scope): description"
|
||||
```
|
||||
|
||||
5. **Push to Gitea:**
|
||||
6. **Push branch to Gitea:**
|
||||
```bash
|
||||
git push origin main
|
||||
# or for feature branch: git push origin feature/branch-name
|
||||
git push origin feat/scope/short-description
|
||||
```
|
||||
|
||||
Gitea URL: `http://192.168.188.119:30008/pplate/pi_mcps.git`
|
||||
|
||||
6. **Store fact in BigMind:**
|
||||
7. **Merge to main when done:**
|
||||
```bash
|
||||
git checkout main
|
||||
git merge --no-ff feat/scope/short-description
|
||||
git push origin main
|
||||
```
|
||||
Or use the Gitea UI merge button if you want the paper trail.
|
||||
|
||||
8. **Store fact in BigMind:**
|
||||
```
|
||||
memory_store_fact("codebase", "Committed: type(scope) — brief description of what changed")
|
||||
```
|
||||
@@ -74,3 +114,4 @@ description: Commits and pushes code to the homelab Gitea server using conventio
|
||||
- **Auth error:** PAT stored in BigMind (fact: Gitea personal access token). Check `~/.netrc` or `~/.gitconfig`
|
||||
- **Push rejected:** Pull first → `git pull --rebase origin main`
|
||||
- **Wrong remote:** `git remote -v` to verify Gitea URL is set correctly
|
||||
- **Accidentally committed to main:** `git branch feat/scope/name`, `git reset HEAD~1`, `git checkout feat/scope/name`, re-commit
|
||||
|
||||
Reference in New Issue
Block a user