Follow these steps in order. Do not skip steps or reorder them.
1. Translations (if applicable)
If apps/dashboard/src/lib/utils/translations/en.json is among the changed files:
cd apps/dashboard && pnpm translate
After running, review the generated locale files and verify that any placeholders wrapped in {} were preserved exactly. Fix translated variable names if needed before continuing.
2. Format changed files
Run the changed-file formatter from the repo root:
pnpm format:changed
If any files under packages/ui/src/** were changed, also run the UI prefix fixer first:
pnpm --filter @cio/ui prefix
Then re-run pnpm format:changed after the prefix fix.
3. Stage files
Stage only the files relevant to the task. Prefer explicit paths over broad commands:
git add path/to/file1 path/to/file2
Never use git add -A or git add . — those risk accidentally staging unrelated files, env files, or large binaries.
4. Pre-commit checks
Run these before creating the commit:
pnpm format:check
If staged changes include any file matching packages/ui/src/**/*.{svelte,ts,tsx,js,jsx}:
pnpm --filter @cio/ui prefix:check:staged
Fix any failures before proceeding.
5. Commit
Commit messages must follow Conventional Commits 1.0.0:
<type>[optional scope]: <description>
[optional body]
Common types: feat, fix, chore, refactor, docs, style, test.
Never add Co-Authored-By trailers for Claude, Cursor, Codex, or any other AI tool.
git commit -m "$(cat <<'EOF'
type(scope): short description
Optional longer body if needed.
EOF
)"