Back to list
mgreenly

jj

by mgreenly

An AI Coding Agent

1🍴 0📅 Jan 24, 2026

SKILL.md


name: jj description: Jujutsu (jj) skill for the ikigai project

Jujutsu (jj)

Description

Standard jj operations for day-to-day development work.

CRITICAL: Commits Are Permanent

When user says "commit": IMMEDIATELY use jj commit -m "msg"

  • Committed changes are permanent and stored forever in operation log
  • Uncommitted changes can be lost during rebases/restores
  • Every commit is recoverable via jj op restore

Run make check periodically to catch issues early.

Configuration

  • Remote: origin (github.com:mgreenly/ikigai.git)
  • Primary branch: main (bookmark)

Commit Policy

Use jj commit -m "msg" to create permanent commits. NOT jj describe (only updates description without creating commit).

Prohibited Operations

This skill does NOT permit:

  • Modifying the main bookmark locally
  • Merging into main locally
  • Force pushing to main

Merges to main only happen via GitHub PRs. All work is done on feature bookmarks, pushed to origin, and merged through pull requests on GitHub. Never merge locally.

Permitted Operations

  • Commit to feature/fix bookmarks
  • Push feature/fix bookmarks to remote
  • Create new bookmarks
  • Create and push tags
  • Fetch from remote
  • Rebase commits
  • Create new commits on any mutable revision

Squashing (Permission Required)

NEVER squash without explicit user permission. Only when user says "squash" or "squash commits".

Squashing workflow:

  1. jj edit <revision> - Move to commit to squash
  2. jj squash -m "message" - Squash into parent (MUST use -m flag in CLI)
  3. Repeat for additional commits

Flag limitations:

  • jj squash -r <rev> --into <dest> - INVALID (flags cannot combine)
  • jj edit <rev> then jj squash -m "msg" - VALID

Recovery: jj op log then jj op restore <id> (all operations are logged)

Common Flags

FlagWhy Use It
-m "message"Provide commit/squash message inline (required in non-interactive environments)
-r <revision>Specify which revision to operate on (alternative to jj edit first)
--into <dest>Squash into specific destination (cannot combine with -r)
--no-graphShow log output without tree visualization (cleaner for parsing)
--statShow file change statistics in diff (lines added/removed per file)
--bookmark <name>Push specific bookmark to remote
-d <dest>Set destination for rebase operation

Common Commands

TaskCommand
Check statusjj status
View changesjj diff
View logjj log
Commit all filesjj commit -m "msg"
Squash into parentjj squash -m "msg"
Edit a commitjj edit <revision>
Create bookmarkjj bookmark create <name>
Update bookmark to @jj bookmark set <name>
Push bookmarkjj git push --bookmark <name>
Fetch from remotejj git fetch
Restore working copyjj restore
Create commit on revisionjj new <revision>
Rebasejj rebase -d <destination>
Create tagjj tag set <name> -r <revision>
Push taggit push origin <tag>
List tagsjj tag list

Key Concepts

  • Working copy (@): Always a commit being edited (no staging area)
  • Bookmarks: Equivalent to git branches (named pointers to commits)
  • Immutability: = permanent, = mutable, @ = mutable (lost if not committed)
  • Update bookmark: Find recent bookmark in ancestry, use jj bookmark set <name>

Score

Total Score

60/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon