一键导入
commit-message-format
Commit message conventions (Conventional Commits). Consult before every git commit.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Commit message conventions (Conventional Commits). Consult before every git commit.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | commit-message-format |
| description | Commit message conventions (Conventional Commits). Consult before every git commit. |
How to craft commit messages for the pg_ducklake repository.
All commit messages MUST follow the Conventional Commits format:
<type>: <description>
[optional body]
Choose the appropriate type based on what changed:
feat: New feature or functionalityfix: Bug fixdocs: Documentation changes onlyformat: Code style formatting (whitespace, semicolons, etc.) - no logic changesrefactor: Code refactoring without changing behavior or fixing bugstest: Adding or updating testschore: Maintenance tasks (dependencies, build config, tooling, etc.)perf: Performance improvementsci: CI/CD configuration changes (GitHub Actions, Docker builds, etc.)Good examples:
feat: add support for partitioned tablesfix: handle NULL values in UPDATE statementsci: add ClickBench testing before releaseBad examples:
feat: Added new feature. (past tense, unnecessary period)Fix bug (no scope, too vague)Update code (not descriptive)Use the body to explain:
Wrap the body at 72 characters per line.
feat: add ALTER TABLE DROP COLUMN support
Implements column dropping for DuckLake tables via online schema
evolution. Updates metadata manager to handle column removal and
data file compaction.
fix: handle concurrent INSERT operations
Previously, concurrent INSERTs could cause metadata conflicts due to
race conditions. Now uses PostgreSQL XID-based locking to serialize
metadata updates.
ci: add ClickBench testing before Docker image release
Ensures Docker images pass ClickBench benchmarks on all PostgreSQL
versions (14-18) and both architectures (amd64/arm64) before promotion
to production repository.
docs: update compilation guide for macOS
Add instructions for Apple Silicon M1/M2 chips and clarify Xcode
command line tools requirements.
chore: update pg_duckdb submodule to v0.3.0
Pulls in upstream fixes for DuckDB 1.2 compatibility.
Before writing the commit message, analyze the changes:
git status
git diff --staged
git diff
Also check recent commits to understand the project's patterns:
git log --oneline -10
When committing, use a HEREDOC to ensure proper formatting:
git commit -m "$(cat <<'EOF'
<type>: <description>
<optional body>
EOF
)"
When third_party/ducklake or the repo-root duckdb/ submodule is
modified, commit the submodule pointer bump together with the
pg_ducklake changes that depend on it. This keeps the change atomic
-- the new export and its consumer land in one reviewable unit:
git add third_party/ducklake <other dependent files>
git commit -m "<type>: <description>"
If the submodule update is unrelated to any pg_ducklake change (e.g., a pure upstream upgrade), commit it alone:
git add third_party/ducklake
git commit -m "chore: bump ducklake to <version/reason>"
Before committing, ensure you're not including:
.env, credentials.json, API keys, passwords).log, .tmp, compiled artifacts)Use git add <specific-files> rather than git add -A to avoid accidentally staging unwanted files.
--no-verify unless explicitly requested--allow-empty intentionally)Versioning, branch, and release policy (semantic versioning, branch-per-minor, tag-per-patch). MUST consult when: deciding a version number, cutting a release, creating a version tag, opening a release/patch branch, or backporting a bug fix.
Code style, include order, docs update rules, and submodule policy. MUST consult when: writing or modifying C/C++ files (include order matters), adding/removing/changing ducklake.* SQL functions or procedures (keep their inline comments in pg_ducklake--*.sql current), editing third_party/ code, or reviewing code for style.
Dev environment setup: build tools, PostgreSQL, submodules, worktrees. Always import on EnterWorktree/ExitWorktree.