commitlisted
Install: claude install-skill restarter/lets-workflow
# Commit
Standardized commit flow that enforces conventional format, beads task linking, and user approval.
> **IMPORTANT:** If the spec below invokes any deferred tool (e.g. `AskUserQuestion`), you MUST load and call it as specified. Never skip the call, never substitute a default answer of your own — the tool invocation is part of the contract. This is critical.
## Why This Exists
Direct `git commit` skips task linking, format enforcement, and approval gates. This skill ensures every commit follows conventions whether invoked via `/lets:commit` or implicit "закоміть".
## Flow
### Step 1: Check Status
```bash
git status --short
git diff --stat
```
If no changes - inform user and exit.
### Step 2: Active Task Detection
Use the **detect-task** skill to find the active task: `Skill(skill: "lets:detect-task")`.
If multiple tasks found: ask user via AskUserQuestion to pick, or "None".
If not found: commit without task link.
### Step 3: Review Changes
```bash
git diff
```
Summarize what changed:
- Files modified/added/deleted
- Key changes in each file
### Step 4: Confirm with User
Present the proposed commit summary as plain text (NOT in a code block or blockquote):
`<type>: <description>`
- {file1} - {what changed}
- {file2} - {what changed}
Then use **AskUserQuestion**:
```
AskUserQuestion(
questions=[{
question: "Commit with this message?",
header: "Commit",
options: [
{ label: "Commit", description: "Stage all changes and commit" },