with one click
committing-smart
Create a Jira SMART-formatted git commit (TICKET-ID
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create a Jira SMART-formatted git commit (TICKET-ID
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Publish a new version of node-pandas to the npm registry. Validates auth, branch, working tree, and tests; bumps version (patch/minor/major); generates changelog from commits since last tag; creates an annotated git tag; runs npm publish; logs the release to .kiro/published-versions.md. Always shows a dry-run preview and waits for explicit user approval before publishing. Has rollback on failure.
Create a Jira SMART-formatted git commit (TICKET-ID
| name | committing-smart |
| description | Create a Jira SMART-formatted git commit (TICKET-ID |
Create a Jira SMART-formatted commit for the node-pandas project. The format is:
<type>(<scope>): TICKET-ID #time Xm #comment <message>
Where <type> is a conventional commit type (feat, fix, docs, refactor, test, chore, perf, style) and <scope> is optional (e.g. series, dataframe).
Execute these steps in order. Never skip the user-confirmation step at the end.
Run git diff --cached --name-only (skip if you have already committed the changes a minute before — in that case feel free to push the changes instead).
If empty:
git status --short to see if there are unstaged changes.git add -A or git add .).Try these in order; stop at the first match.
a. From the current branch name.
git rev-parse --abbrev-ref HEAD to get the branch.[A-Z]+-\d+ against the branch name (case-sensitive on the letters).DSA-42, feat/DSA-100-add-pivot, bugfix/TSH-7-fix-merge, DSA-3 → take the first match.master, main, develop, feat/add-pivot (no ticket).b. From the most recent time-log entry.
.kiro/time-log.md (path relative to the repo root).Ticket column holds the ID.c. Ask the user.
<branch> or .kiro/time-log.md. What ticket should I use? (e.g. DSA-42)"[A-Z]+-\d+. Re-ask if invalid.Count files changed: git diff --cached --name-only | wc -l.
| File count | Time estimate |
|---|---|
| 1-2 | 10m |
| 3-5 | 20m |
| 6-10 | 30m |
| 11+ | 45m |
The user can override in step 6 (the approval prompt accepts a different time).
Run git diff --cached --stat and git diff --cached (truncate the latter mentally if huge — read enough to understand intent).
Pick a conventional commit type from the changes:
*.md, docs/, README*) → docstests/, *.test.js, *.spec.js) → testpackage.json, .gitignore, jest.config.js, .kiro/** non-spec) → choreCHANGELOG.md + version bump in package.json → chore(release)src/ adding capability → featsrc/ fixing broken behavior → fixsrc/ restructuring without behavior change → refactorsrc/ improving speed/memory → perfrefactor if truly mixedPick a scope (optional but encouraged):
src/series/ → seriessrc/dataframe/ → dataframesrc/features/ → name the feature (e.g. groupBy)src/utils/ → utilsdocs:Write the message body (the part after #comment):
Add setIndex and resetIndex methods to DataFrameFix off-by-one in rolling window mean for first elementDocument camelCase aliases for snake_case Series methods<type>(<scope>): TICKET-ID #time Xm #comment <message>
Examples:
feat(series): DSA-42 #time 20m #comment Add setIndex and resetIndex with drop optiondocs: DSA-100 #time 10m #comment Document naming convention and snake_case aliaseschore(release): DSA-50 #time 10m #comment Bump version to 2.3.0 with indexing foundationShow the user the proposed commit in this format:
Proposed commit:
Branch: <current-branch>
Ticket: <TICKET-ID> (source: branch | time-log | user-provided)
Time: <Xm> (estimate based on N files; override OK)
Type: <type>(<scope>)
Message: <message body>
Full commit message:
<type>(<scope>): TICKET-ID #time Xm #comment <message>
Files (N):
M src/series/series.js
A tests/unit/setIndex.test.js
M README.md
Approve? (yes / edit ticket / edit time / edit message / cancel)
Wait for the user's response. Handle each case:
\d+m or \d+h(\s\d+m)?), redisplay.Use a HEREDOC to preserve formatting:
git commit -m "$(cat <<'EOF'
<type>(<scope>): TICKET-ID #time Xm #comment <message>
EOF
)"
Do not add Co-Authored-By lines. The SMART format is the project's convention; no other footers.
If the commit fails because of a pre-commit hook, do not retry with --no-verify. Investigate the hook output, fix the underlying issue, re-stage, and create a NEW commit (never --amend to recover from hook failure — the original commit didn't happen).
Append a row to .kiro/time-log.md. Format (preserves the existing table layout):
| YYYY-MM-DD | TICKET-ID | Xm | <short-hash> | <message body> |
currentDate if available, else date +%Y-%m-%d).git rev-parse --short HEAD.If the file is missing the table header, skip the update silently — don't auto-create a new file structure (that's a separate spec).
Committed <short-hash> on <branch>
<full commit message>
Time log updated.
Do not push. Pushing is a separate, deliberate action; the user can run git push themselves or use /cap for the combined flow.
git add -A or git add . — only stage files the user explicitly mentioned, or what was already staged.--no-verify). If a hook fails, fix the underlying issue.master / main from this skill (don't push at all).Use when the user asks to "commit", "make a commit", "smart commit", or invokes /committing-smart. If the user wants to commit AND push in one step, use the existing /cap skill instead. If the user wants a non-SMART commit (e.g. for a fork or a non-Jira project), don't force the SMART format — fall back to a plain conventional commit.