一键导入
jj-commit
Guides agents through safe targeted JJ commit preparation, execution, and verification. Use when preparing, reviewing, or making a Jujutsu commit with jj.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Guides agents through safe targeted JJ commit preparation, execution, and verification. Use when preparing, reviewing, or making a Jujutsu commit with jj.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
Guides agents to validate visible Pi UI changes with the pi-ui-render CLI. Use when creating or editing Pi extensions, themes, renderers, monkeypatches, or TUI components that affect tool rows, user/assistant messages, custom messages, widgets, footers, editors, dialogs, status, or working indicators.
Reviews UI copy and microcopy, then creates a self-contained DocuSketch°-style HTML report with specific rewrites. Use when the user asks to review, audit, or critique interface text, button labels, errors, empty states, onboarding copy, tooltips, modals, forms, pasted strings, screenshots, URLs, Figma/spec links, or code with user-facing strings.
Creates new agent skills and updates existing skills so they follow the documented SKILL.md format and Addy Osmani-style skill guidance. Use when the user wants to create a skill, change a skill's behavior, audit a skill, improve a skill's trigger description, convert guidance into a skill, or make an existing skill more workflow-driven and verifiable.
Runs a full design critique across UI design, interaction design, and content design, then creates a self-contained DocuSketch°-style HTML report. Use when the user asks for an end-to-end UI review, design critique, screen audit, component critique, or shares a screenshot, URL, file path, code snippet, Figma/spec link, or flow and wants broad design feedback rather than one lens only.
Reviews how an interface behaves, communicates state, and supports user flow, then creates a self-contained DocuSketch°-style HTML report. Use when the user asks to audit UX, navigation, wayfinding, feedback, affordance, flows, states, mental models, usability, or whether a screen or prototype makes sense to users.
| name | jj-commit |
| description | Guides agents through safe targeted JJ commit preparation, execution, and verification. Use when preparing, reviewing, or making a Jujutsu commit with jj. |
This skill is the JJ commit mechanics workflow for any project. It keeps commits intentional when the working copy may contain unrelated changes, when paths contain spaces or punctuation, and when the current directory is not the workspace root.
JJ path arguments for diff and commit are filesets. For exact file paths, use workspace-root-relative exact filesets with root-file:"...".
Use this skill when:
jj diff as part of commit preparation.jj commit for a known set of intended files.Do not use this skill when:
Run:
jj status
Use this to identify all current changes. Unrelated changes are allowed; leave them untouched.
Create a concrete list of every file that should be included in this commit.
Rules:
jj status appears to show only intended changes.For every intended exact path, use this form:
'root-file:"path/from/workspace/root.ext"'
Use root-file:"..." for every exact path, including simple paths like README.md.
Syntax notes:
root-file:"..." is a workspace-root-relative exact file pattern.file:"..." is cwd-relative; avoid it for this workflow.file("path") is invalid because file is not a JJ fileset function.root-file:"...".Run a targeted stat diff for the intended files:
jj diff --stat \
'root-file:"path/one.ext"' \
'root-file:"path/two.ext"'
When useful, inspect the targeted full diff:
jj diff \
'root-file:"path/one.ext"' \
'root-file:"path/two.ext"'
If a fileset or path fails to parse, or does not match the intended file, stop and fix the exact workspace-relative path. Rerun the targeted diff. Do not broaden the command as a workaround.
Inspect recent commits before choosing the message:
jj log -n 8
Use the same style as recent commits in that repository. Keep the message concise and specific to the intended change.
If the user asked you to commit, run a targeted commit with every intended file listed as root-file:"...":
jj commit -m 'Commit message' \
'root-file:"path/one.ext"' \
'root-file:"path/two.ext"'
If commit was not requested or authorized, stop after the review and ask for confirmation. Show the intended command when asking.
Never run a bare jj commit -m ... in this workflow.
After committing, run:
jj status
Confirm the intended files are no longer listed as working-copy changes.
Then inspect the new commit:
jj show @-
Verify the new commit contains exactly the intended change. If the intended files remain uncommitted or the new commit does not match the intended change, stop and report the problem. Do not make follow-up commits or broad corrective commands without understanding what happened.
Final response should include:
jj status and inspection of jj show @-.Do not enumerate unrelated remaining changes unless the user asks or they block the workflow.
Targeted diff:
jj diff --stat \
'root-file:"path/one.ext"' \
'root-file:"path/two.ext"'
Targeted commit:
jj commit -m 'Commit message' \
'root-file:"path/one.ext"' \
'root-file:"path/two.ext"'
Post-commit verification:
jj status
jj show @-
| Rationalization | Reality |
|---|---|
"I can use a bare commit because jj status only shows my files." | This workflow always uses explicit targeted commits. Working-copy state can change or be misread. |
| "Shell quotes should be enough for paths with spaces." | JJ positional path arguments are filesets. Use root-file:"..." for every exact path. |
| "The path syntax failed, so I’ll just commit the whole working copy." | A fileset problem is a reason to fix the targeted fileset, not to broaden the commit. |
| "I already edited these files, so I know what will be committed." | Run the targeted diff. Verification must inspect what JJ will commit, not what you remember editing. |
| "Renames/deletions are special, so targeted commits are risky." | They still need an explicit intended file list and targeted diff verification. |
| "The message style is obvious." | Check jj log -n 8; local convention beats memory. |
| "Tests did not run, so I cannot use this skill." | Testing belongs to the task workflow. This skill only controls commit mechanics; mention relevant checks if already performed. |
jj commit -m ... with no filesets.file("path") function syntax.file:"..." instead of root-file:"..." for exact paths.root-file:"...".Before considering the commit complete, confirm:
jj status was run before committing.root-file:"...".jj diff --stat was run for the intended files.jj diff was run when needed to understand the change.jj log -n 8 was used to match recent commit message style.jj commit included only the intended files.jj status showed the intended files were no longer listed.jj show @- was inspected to verify the new commit contains what was intended.