Create staged logical commits grouped by concern
Create logical, grouped commits from all current changes. Follow this process exactly:
Before analyzing changes, verify the working state:
pwd — confirm you are in the project rootgit rev-parse --show-toplevel — confirm parent repo identitygit submodule status — check all submodule pointersIf any submodule shows a + prefix (modified pointer), note it — this must be committed after the submodule's internal commits.
Run these commands in parallel:
git status — see all changed/untracked files in the parent repogit diff --stat — see change summary for tracked filesgit diff --cached --stat — see already-staged changesgit -C extensions/business status --short — changes in business submodulegit -C extensions/trading status --short — changes in trading submodulegit -C extensions/supply-chain status --short — changes in supply-chain submodulegit log --oneline -5 — see recent commit styleBefore creating any commits:
git status output for files under extensions/business/, extensions/trading/, or extensions/supply-chain/ staged in the parent repo. These MUST be committed inside their submodule, not the parent.
git reset HEAD extensions/...) and commit inside the submodule instead.rb files, verify: git diff --cached --name-only -- '*.rb' | head -5 | xargs -I{} ruby -c {}.ts/.tsx files, verify: cd frontend && npx tsc --noEmit 2>&1 | tail -5Organize changed files into groups (skip empty groups):
db/migrate/app/models/app/services/app/controllers/, config/routes.rbfrontend/src/spec/, e2e/, __tests__/db/seeds/, config/, .claude/, scripts/docs/, *.md (only if explicitly changed)When changes span multiple repos, group each submodule's changes separately from core.
For each submodule with changes (business, trading, supply-chain):
git -C extensions/<name> rev-parse --show-toplevel — verify identitygit -C extensions/<name> add <specific-files>git -C extensions/<name> commit -m "type(scope): description"git add extensions/<name>For each non-empty group:
git add <specific-files> — NEVER use git add -A or git add .type(scope): description
feat, fix, refactor, test, chore, docsbackend, frontend, worker, config, db, business, tradingIf submodule pointers changed (from submodule commits above), include them in the appropriate parent commit or as a separate chore(<name>): update submodule pointer commit.
Rules:
git add -A or git add .Run these in parallel:
git log --oneline -10 — show parent repo commitsgit -C extensions/business log --oneline -5 — show business commits (if changes)git -C extensions/trading log --oneline -5 — show trading commits (if changes)git -C extensions/supply-chain log --oneline -5 — show supply-chain commits (if changes)Show all commits created across all repos.