Skip to content
Back to skills

Submit Commit Message Artifact

ASecurity

Use when submitting a commit_message artifact as markdown via ralph_submit_md_artifact with a commit or skip frontmatter variant, or when the conventional-commit subject was rejected and you need the exact subject rule

  • 6 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
developmentgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add Ralph-Workflow/Ralph-Workflow --skill submit-commit-message-artifact --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Submit Commit Message Artifact?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Submit Commit Message Artifact
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ralph-workflow-submit-commit-message-artifact/badge)](https://www.skillsdirectory.com/skills/ralph-workflow-submit-commit-message-artifact)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: submit-commit-message-artifact
description: Use when submitting a commit_message artifact as markdown via ralph_submit_md_artifact with a commit or skip frontmatter variant, or when the conventional-commit subject was rejected and you need the exact subject rule
version: 2.2.0
---

# 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 |

**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 description starting with a lowercase letter or digit.

Valid: `fix(parser): preserve prefixed transcript lines`,
`feat(api)!: drop the v1 endpoints`. Invalid: `Fix: bug` (uppercase type),
`fix: Bug` (uppercase description start), `update stuff` (no type).

## Core Flow

1. Pick the variant: `commit` when there is a diff worth committing,
   `skip` (with a reason) when there is not.
2. Write the document and submit it with
   `ralph_submit_md_artifact({"artifact_type": "commit_message", "content": ...})`.

Worked commit example:

```markdown
---
type: commit
subject: fix(auth): prevent token expiry race
---

## Body

- [B-1] Concurrent refresh requests could invalidate a token while another request was still using it. Refresh operations are now serialized per token.
```

Worked skip example:

```markdown
---
type: skip
reason: only generated artifacts changed; nothing user-facing to commit
---
```

## Error Recovery

- `commit_message subjects must use conventional commit format ...` —
  rewrite the `subject:` frontmatter value against the Subject Rule
  above; check the type spelling, lowercase description start, and `: `
  separator.
- `frontmatter 'type' must be 'commit' or 'skip'` — no other values.
- `Use either 'body' or the detailed body fields, not both` — remove
  `## Body` or remove the `## Body Summary`/`## Body Details`/
  `## Body Footer` sections.
- A skip without a reason is rejected — `reason:` must be non-empty.
- An empty optional section (heading present, no item) is rejected —
  either give the section exactly one item or delete the heading.

Files in this skill

  • .ralph-managed.json180 B
  • SKILL.md3.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.