How this command is triggered — by the user, by Claude, or both
Slash command
/commit-commands-jj:describeThis command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
**CRITICAL: This is a jj (Jujutsu) plugin. You MUST NOT use ANY raw git commands — not even for context discovery. This includes git checkout, git commit, git diff, git log, git status, git add, git branch, git remote, git rev-parse, git config, git show, git fetch, git pull, git push, git merge, git rebase, git stash, git reset, git tag, or any other `git` invocation. Do not run `ls .git`, `git log`, `git remote -v` or similar to detect repo state. Always use jj equivalents (jj log, jj status, jj diff, etc.). The only exceptions are `jj git` subcommands (e.g. `jj git push`, `jj git fetch`)...
CRITICAL: This is a jj (Jujutsu) plugin. You MUST NOT use ANY raw git commands — not even for context discovery. This includes git checkout, git commit, git diff, git log, git status, git add, git branch, git remote, git rev-parse, git config, git show, git fetch, git pull, git push, git merge, git rebase, git stash, git reset, git tag, or any other git invocation. Do not run ls .git, git log, git remote -v or similar to detect repo state. Always use jj equivalents (jj log, jj status, jj diff, etc.). The only exceptions are jj git subcommands (e.g. jj git push, jj git fetch) and gh CLI for GitHub operations.
jj statusjj diff -T '"{ \"path\": " ++ self.path().display().escape_json() ++ ", \"status\": " ++ self.status().escape_json() ++ " }\n"'jj log -r @ --no-graph -T 'self.diff().stat().files().map(|entry| "{ \"path\": " ++ entry.path().display().escape_json() ++ ", \"lines_added\": " ++ entry.lines_added() ++ ", \"lines_removed\": " ++ entry.lines_removed() ++ ", \"bytes_delta\": " ++ entry.bytes_delta() ++ " }\n")'jj log -r @ --no-graph -T 'json(self) ++ "\n"'jj log --limit 10 --no-graph -T 'json(self) ++ "\n"'| Git | jj |
|---|---|
git status | jj status |
git diff HEAD | jj diff |
git branch --show-current | jj log -r @ --no-graph |
git log --oneline -10 | jj log --limit 10 |
In jj, jj describe sets or updates the description of the current working copy change. Unlike jj commit, it does NOT finalize the change or start a new one — you stay on the same change with the same change ID.
Use cases:
Based on the above changes, set an appropriate description on the current change:
jj describe -m "<msg>"
After describing, the change ID stays the same (only the commit ID changes). There is no staging in jj — the description applies to whatever is in the working copy.
You have the capability to call multiple tools in a single response. Set the description using a single message. Do not use any other tools or do anything else. Do not send any other text or messages besides these tool calls.
npx claudepluginhub muloka/claude-plugins --plugin commit-commands-jj