submit-commit-message-artifactlisted
Install: claude install-skill Ralph-Workflow/Ralph-Workflow
# submit-commit-message-artifact
## Overview
A commit message is one markdown document
(`artifact_type: "commit_message"`) with two frontmatter variants: a
`commit` variant carrying the subject and optional body sections, and a
`skip` variant carrying a reason not to commit.
Submit with `ralph_submit_md_artifact`; pre-check with
`ralph_verify_md_artifact`.
## Document Shape
**Commit variant** — frontmatter `type: commit` and `subject: <subject>`.
Optional sections (each item is `- [ID] text` on one line):
| Section | Items | Meaning |
|---|---|---|
| `## Body` | exactly 1 | free-form body paragraph |
| `## Body Summary` / `## Body Details` / `## Body Footer` | exactly 1 each | structured body; use these OR `## Body`, never both |
| `## Files` | 1+ | files to include in the commit |
| `## Excluded Files` | 1+ | `<path> \| <reason>` per item |
Each `## Excluded Files` reason must be one of `internal_ignore`,
`not_task_related`, `sensitive`, `deferred`.
**Skip variant** — frontmatter `type: skip` and `reason: <non-empty
reason>`. No sections.
## Subject Rule (strict)
The subject must match the conventional-commit pattern exactly:
```
^(feat|fix|docs|refactor|test|style|perf|build|ci|chore)(\([a-z0-9/_-]+\))?(!)?: [a-z0-9].+
```
In practice:
- Start with one of the ten types, lowercase.
- Optional scope in parentheses: lowercase letters, digits, `/`, `_`, `-`.
- Optional `!` before the colon marks a breaking change: `feat!:` or
`feat(api)!:`.
- Then `: ` and a desc