Skip to content
cccskills
FreePublished on GitHub

multiline-commit-messages

Use single-quoted strings for multiline git commit messages in the Shell tool. Prevents heredoc escaping failures that produce garbled commit messages.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md1.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Multiline commit messages

The Shell tool sends commands as a single string. Heredoc syntax (<<'EOF') inside $(cat ...) is fragile and can fail silently — the literal $(cat <<'EOF' ... ends up as the commit message instead of the intended text.

Rule

Prefer single-quoted strings with embedded newlines over $(cat <<'EOF' ...):

git commit -s -m 'short summary line

Longer body paragraph explaining why the change exists.
Additional context if needed.'

Why heredocs are fragile

The Shell tool passes the command as a single string argument. When you write:

git commit -m "$(cat <<'EOF'
message
EOF
)"

the EOF delimiter, newlines, and nested quoting can interact unpredictably, and the result is the raw $(cat <<'EOF' ... text appearing as the commit message.

Single-quoted strings with literal newlines are simple, portable, and always work. If the message itself must contain a single quote, close and reopen the quote ('\'') or fall back to a temp file passed via -F.

Sign off

Every commit still needs its Signed-off-by trailer — see git-staging. Pass -s on the same git commit invocation.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when deploying or managing an app that uses Prisma Composer (`@prisma/composer`): wiring its services and Modules, running it locally, testing composed services, or standing up / tearing down an environment. Triggers on "prisma composer", "@prisma/composer", "prisma app", `prisma deploy`, `prisma dev`, `compute()`, `module()`, `contract()`, `service.load()`, `mockService`, `bootstrapService`.

The English summary is being prepared. Showing the original description.

prisma/composer6Updated Oct 16, 2026

Cuts the next minor release of Prisma Composer: bumps the root package.json version, propagates it to every workspace package in lockstep, and opens a PR titled "chore(release): v<next-version>". When a maintainer merges the PR, the `Publish to npm` workflow runs automatically and ships the new version to npm under dist-tag `latest`, plus a matching GitHub Release with auto-generated notes. Use when a maintainer asks to "cut the next minor", "bump to the next version", "open a release PR", or "prepare a publish PR".

The English summary is being prepared. Showing the original description.

prisma/composer6Updated Oct 16, 2026

How to upgrade `alchemy` and the `effect` constellation across this repo and keep them consistent for consumers: which packages pin what, why `effect` and every `@effect/*` companion move as one set, what breaks in a typical upgrade, and how to verify a standalone `npm install` still resolves a single `effect`. Use when asked to upgrade or bump alchemy or effect, when a deploy dies inside an alchemy provider with a `TypeError` naming a missing combinator, when `check:npm-effect-resolution` fails, or when deciding whether the alchemy patch is still needed.

The English summary is being prepared. Showing the original description.

prisma/composer6Updated Oct 16, 2026

See all skills by prisma

Report a problem with this skill