06dba9a4ad
- 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
118 lines
3.6 KiB
Markdown
118 lines
3.6 KiB
Markdown
---
|
|
name: gitea-push
|
|
description: Commits and pushes code to the homelab Gitea server using conventional commit format. Use this skill when finishing any homelab, MCP builder, or BigMind work that needs to be saved to the homelab Gitea at http://192.168.188.119:30008/.
|
|
---
|
|
|
|
# Gitea Push
|
|
|
|
## When to use
|
|
- Finished a homelab change and need to commit + push
|
|
- Finished an MCP server build or update
|
|
- BigMind feature complete
|
|
|
|
## When NOT to use
|
|
- ADP/Paisy work — that goes to the corporate Bitbucket, not homelab Gitea
|
|
- Uncommitted work that isn't ready (don't push broken state)
|
|
|
|
## Inputs required
|
|
- 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 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
|
|
```
|
|
|
|
3. **Stage changes:**
|
|
```bash
|
|
git add -A
|
|
# or selectively: git add path/to/file
|
|
```
|
|
|
|
4. **Write conventional commit message:**
|
|
|
|
Format: `type(scope): short description`
|
|
|
|
| Type | When |
|
|
|------|------|
|
|
| `feat` | New feature or tool |
|
|
| `fix` | Bug fix |
|
|
| `refactor` | Code restructure, no behavior change |
|
|
| `test` | Adding or updating tests |
|
|
| `docs` | Documentation only |
|
|
| `chore` | Build, dependencies, config |
|
|
| `style` | Formatting, no logic change |
|
|
|
|
Examples:
|
|
- `feat(mcp-webscraper): add ssl cert fallback with certifi`
|
|
- `fix(bigmind): resolve FTS5 reserved-word collision`
|
|
- `chore(homelab): update docker-compose for gitea upgrade`
|
|
|
|
5. **Commit:**
|
|
```bash
|
|
git commit -m "type(scope): description"
|
|
```
|
|
|
|
6. **Push branch to Gitea:**
|
|
```bash
|
|
git push origin feat/scope/short-description
|
|
```
|
|
Gitea URL: `http://192.168.188.119:30008/pplate/pi_mcps.git`
|
|
|
|
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")
|
|
```
|
|
|
|
## Troubleshooting
|
|
- **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
|