| name | commit-message |
|---|---|
| description | This skill should be used when the user asks to "create a commit", "generate commit message", "commit changes", "make a commit", mentions "conventional commits", or discusses commit message formatting. Provides guided workflow for creating properly formatted commit messages with line length validation and required trailers. |
| version | 0.3.0 |
This skill covers only catalog-specific commit conventions. Standard conventional commits format is assumed as prior knowledge.
Derive scope from staged file paths:
| File pattern | Scope | Example |
|---|---|---|
task/<name>/* |
task name | feat(git-clone): add depth param |
stepaction/<name>/* |
stepaction name | feat(git-clone): add stepaction |
pipeline/<name>/* |
pipeline name | fix(buildpacks): fix workspace |
test/* |
test or resource name |
test(git-clone): add SSH e2e |
hack/* |
hack or script name |
fix(setup-kind): update K8s ver |
.github/workflows/* |
ci |
ci(github): add matrix version |
| Root files | filename | docs(CONTRIBUTING): update |
If files span multiple resources, ask the user.
Every commit must include this trailer (tektoncd upstream requirement):
Signed-off-by: Full Name <email@example.com>
Signed-off-by certifies the Developer Certificate of Origin (DCO).
Detect from $GIT_AUTHOR_NAME/$GIT_AUTHOR_EMAIL first, then
git config user.name/git config user.email. Ask user if neither is set.
When a commit is authored with AI assistance, add:
Assisted-by: Claude Sonnet 4 (via Claude Code)
Use the actual model name. This is not a Tekton requirement — it is optional attribution for AI-assisted contributions.
When a task is copied from version X to Y, commit the copy separately:
chore(git-clone): copy task from 0.9 to 0.10
Signed-off-by: ...
Then make changes in a follow-up commit with feat/fix/etc. type.
This is critical for clean diffs during review.
The project uses .gitlint with these rules:
- Subject hard limit: 72 chars (target 50)
- Body wrap: 72 chars per line
- No
WIP/TODOin subject body-is-missingis ignored (body optional)
git diff --cached --name-onlyto determine scope- Generate message with proper type and scope
- Add required Signed-off-by; add Assisted-by when AI-assisted
- Display to user and wait for confirmation before committing
- Use heredoc format:
git commit -m "$(cat <<'EOF' ... EOF)"