ワンクリックで
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 ページを確認してインストールできます。
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.
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)