commit · git:20260830.6386046 · 2026-08-30 · sha256 6f9bbd062f61bed1

commit git:20260830.6386046A

Immutable. This exact content never changes and is served at /api/v1/blob/6f9bbd062f61bed1.

---
name: commit
description: Commit, pull, and push changes using make push with a ticket-prefixed message
argument-hint: "[ticket-id]"
---

Commit the current working tree changes using this project's `make push` target.

`make push` = `make commit` + `git push`. `make commit` alone typechecks, pulls, builds, tests,
ownership-lints, stages and commits, but does NOT push — so this skill uses `make push`.

The ticket ID is: $ARGUMENTS

## 1. Validate the ticket ID

If `$ARGUMENTS` is empty or non-numeric, stop and ask the user to provide a numeric ticket ID (e.g., `/commit 1234`). Do not proceed.

## 2. Analyze changes

Run these commands in parallel to understand what will be committed:

- `git status` (never use `-uall`)
- `git diff`
- `git diff --cached`
- `git log --oneline -5`

If the working tree is clean (no staged, unstaged, or untracked changes), inform the user there is nothing to commit and stop.

Remember: `make push` runs `git add --verbose :/ .` before committing, so ALL working tree changes will be included, not just staged files. It also runs `git pull` BETWEEN typecheck and build, so the build/test/ownership gates run against the MERGED tree rather than a stale one.

## 3. Check for secrets

Scan every added line (`+` prefix) in the diff output — in ALL files, not just code files — for anything that looks like a secret: API keys, passwords, tokens, connection strings, private keys, or credentials. Non-code files (markdown, prompts, config notes) are just as likely to contain secrets. If found, warn the user and do not proceed until they confirm the files are safe.

## 4. Generate the commit message

Based on the changes, write a commit message:

- Format: `<ticket-id>: <Message>` (e.g., `1262: Drizzle schema introspection`)
- One line, under 72 characters when possible
- Imperative mood, capitalized first word after the ticket prefix
- Summarize the intent (why), not a list of files changed
- Avoid shell-special characters (quotes, backticks, dollar signs) in the message

## 5. Confirm with the user

Present the full make command that will be executed:

```
make push "message=<ticket-id>: <generated message>"
```

Ask the user to confirm or provide an edited message. This operation typechecks, builds, tests, ownership-lints, commits, pulls, and pushes -- never auto-execute.

## 6. Execute

Once confirmed, run exactly:

```
make push "message=<confirmed message>"
```

## 7. Report the result

- On success, confirm the commit was pushed.
- On failure (build error, test failure, lint issue, merge conflict), report the error clearly. Do not retry automatically.