Git Workflow — DrugstoreSystem
1. Branch Strategy
main — stable, always buildable. All sprint work eventually merges here.
feat/dev-XX-slug — one branch per sprint (optional for early sprints; use when sprint > 3 commits)
- Never push directly to
main with force-push.
2. Conventional Commits
Format: <type>(<scope>): <short description> (DEV-XX)
Types
| Type |
When to use |
feat |
New feature or capability |
fix |
Bug fix |
test |
Adding or updating tests |
refactor |
Internal restructure, no behavior change |
docs |
Documentation files only |
chore |
Build config, .gitignore, package updates |
style |
Formatting, no logic change |
Scopes for this project
| Scope |
What it covers |
domain |
Domain entities and enums |
db |
EF Core context, migrations, configurations |
auth |
Authentication, identity, login/logout |
admin |
Admin pages and pharmacy management |
pharmacist |
Pharmacist pages, profile, inventory |
catalog |
Shared medicine catalog, autocomplete |
search |
Search service, SearchRepository, pg_trgm |
haversine |
HaversineCalculator, PharmacyRanker |
public |
Public-facing pages (search page, detail pages) |
seed |
DatabaseSeeder and fixture data |
web |
Program.cs, layout, nav, shared components |
Examples
chore: bootstrap DrugstoreSystem solution (DEV-00)
feat(domain): add core entities and enums (DEV-01)
feat(db): add initial migration with pg_trgm indexes (DEV-02)
feat(auth): add login/logout and seeded admin account (DEV-03)
feat(admin): pharmacy CRUD and pharmacist account creation (DEV-04)
feat(pharmacist): profile edit and inventory management (DEV-05)
feat(catalog): shared medicine catalog with autocomplete (DEV-06)
feat(search): 5-stage fuzzy medicine search (DEV-07)
feat(haversine): distance ranking and sort mode toggle (DEV-08)
test(haversine): unit tests for all Haversine cases (DEV-08)
feat(seed): add demo pharmacies and medicines (DEV-09)
fix(search): handle null generic_name in similarity query (DEV-10)
3. Sprint Tagging
After each sprint is marked DONE:
git tag DEV-XX -m "Sprint DEV-XX complete"
git push origin DEV-XX
Final demo tag:
git tag v1.0-defense -m "Defense-ready version"
git push origin v1.0-defense
4. Never Do
git push --force on main
git commit --amend on pushed commits
- Commit
appsettings.Development.json with real passwords
- Commit anything in
logs/, bin/, obj/, .vs/
- Skip
--no-verify on hooks
5. Useful Commands
# Check what will be committed
git status
git diff --staged
# Sprint start
git checkout -b feat/dev-XX-slug
# Clean build before committing
dotnet build && dotnet test
# Merge sprint branch to main
git checkout main
git merge --no-ff feat/dev-XX-slug -m "chore: merge DEV-XX to main"
# View log
git log --oneline --graph -10
Source: Sardoralgoritm/DrugStoreSystem — distributed by TomeVault.
1---2name: git-github-workflow3description: Git workflow and Conventional Commits conventions for DrugstoreSystem. Open before any git operation. Use when this capability is needed.4---56# Git Workflow — DrugstoreSystem78---910## 1. Branch Strategy1112- **`main`** — stable, always buildable. All sprint work eventually merges here.13- **`feat/dev-XX-slug`** — one branch per sprint (optional for early sprints; use when sprint > 3 commits)14- Never push directly to `main` with force-push.1516---1718## 2. Conventional Commits1920Format: `<type>(<scope>): <short description> (DEV-XX)`2122### Types2324| Type | When to use |25|---|---|26| `feat` | New feature or capability |27| `fix` | Bug fix |28| `test` | Adding or updating tests |29| `refactor` | Internal restructure, no behavior change |30| `docs` | Documentation files only |31| `chore` | Build config, .gitignore, package updates |32| `style` | Formatting, no logic change |3334### Scopes for this project3536| Scope | What it covers |37|---|---|38| `domain` | Domain entities and enums |39| `db` | EF Core context, migrations, configurations |40| `auth` | Authentication, identity, login/logout |41| `admin` | Admin pages and pharmacy management |42| `pharmacist` | Pharmacist pages, profile, inventory |43| `catalog` | Shared medicine catalog, autocomplete |44| `search` | Search service, SearchRepository, pg_trgm |45| `haversine` | HaversineCalculator, PharmacyRanker |46| `public` | Public-facing pages (search page, detail pages) |47| `seed` | DatabaseSeeder and fixture data |48| `web` | Program.cs, layout, nav, shared components |4950### Examples5152```53chore: bootstrap DrugstoreSystem solution (DEV-00)54feat(domain): add core entities and enums (DEV-01)55feat(db): add initial migration with pg_trgm indexes (DEV-02)56feat(auth): add login/logout and seeded admin account (DEV-03)57feat(admin): pharmacy CRUD and pharmacist account creation (DEV-04)58feat(pharmacist): profile edit and inventory management (DEV-05)59feat(catalog): shared medicine catalog with autocomplete (DEV-06)60feat(search): 5-stage fuzzy medicine search (DEV-07)61feat(haversine): distance ranking and sort mode toggle (DEV-08)62test(haversine): unit tests for all Haversine cases (DEV-08)63feat(seed): add demo pharmacies and medicines (DEV-09)64fix(search): handle null generic_name in similarity query (DEV-10)65```6667---6869## 3. Sprint Tagging7071After each sprint is marked DONE:7273```bash74git tag DEV-XX -m "Sprint DEV-XX complete"75git push origin DEV-XX76```7778Final demo tag:79```bash80git tag v1.0-defense -m "Defense-ready version"81git push origin v1.0-defense82```8384---8586## 4. Never Do8788- `git push --force` on `main`89- `git commit --amend` on pushed commits90- Commit `appsettings.Development.json` with real passwords91- Commit anything in `logs/`, `bin/`, `obj/`, `.vs/`92- Skip `--no-verify` on hooks9394---9596## 5. Useful Commands9798```bash99# Check what will be committed100git status101git diff --staged102103# Sprint start104git checkout -b feat/dev-XX-slug105106# Clean build before committing107dotnet build && dotnet test108109# Merge sprint branch to main110git checkout main111git merge --no-ff feat/dev-XX-slug -m "chore: merge DEV-XX to main"112113# View log114git log --oneline --graph -10115```116117---118> Source: [Sardoralgoritm/DrugStoreSystem](https://github.com/Sardoralgoritm/DrugStoreSystem) — distributed by [TomeVault](https://tomevault.io).119<!-- tomevault:4.0:skill_md:2026-06-16 -->