Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions plugins/dotbot/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
}
],
"install_guidance": {
"plugin": "dotbot",
"plugin": "dotbot",
"binary": "dotbot",
"check": "which dotbot",
"install_steps": [
Expand Down Expand Up @@ -78,7 +78,7 @@
},
{
"name": "plugin",
"type": "string",
"type": "array",
"required": false,
"description": "Load a plugin (can be specified multiple times)"
},
Expand Down
14 changes: 10 additions & 4 deletions plugins/gum/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@
"namespace": "gum",
"resource": "write",
"action": "text",
"description": "Interactive TUI multi-line text input with syntax highlighting",
"description": "Interactive multi-line text input component — prompts user to write text in a TUI text area",
"adapter": "process",
"adapterConfig": {
"command": "gum",
Expand Down Expand Up @@ -337,15 +337,21 @@
"namespace": "gum",
"resource": "_",
"action": "_",
"description": "Passthrough to gum CLI",
"description": "_ _ via gum",
"adapter": "process",
"adapterConfig": {
"command": "gum",
"missingDependencyHelp": "Install gum: brew install gum",
"cwd": "invoke_cwd",
"passthrough": true
},
"args": []
"args": [
{
"name": "args",
"type": "string",
"required": false,
"description": "Additional gum arguments"
}
]
}
]
}
2 changes: 1 addition & 1 deletion plugins/gum/skills/quickstart/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ A tool for glamorous shell scripts — style, format, and interact like a charm.
- `gum format render` — Format text using markdown, template, code, or emoji formatters
- `gum table render` — Render a table from CSV/TSV or stdin data
- `gum join text` — Join text vertically or horizontally
- `gum write text` — Interactive TUI multi-line text input with syntax highlighting
- `gum write text` — Interactive multi-line text input component (TUI text area, not a file writer)
- `gum file pick` — Pick a file from the filesystem

## Usage Examples
Expand Down
13 changes: 13 additions & 0 deletions plugins/jj/install-guidance.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"plugin": "jj",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix type inconsistency for the plugin field.

Line 2 defines "plugin": "jj" as a string, but in plugin.json line 10, the same field is defined as "plugin": ["jj"] (an array). This schema inconsistency could cause parsing issues.

🔧 Align with plugin.json schema
-  "plugin": "jj",
+  "plugin": ["jj"],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"plugin": "jj",
"plugin": ["jj"],
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/jj/install-guidance.json` at line 2, The "plugin" field in
install-guidance.json is a string ("jj") but must match the schema used in
plugin.json (an array); update the "plugin" entry in install-guidance.json to be
an array (e.g., ["jj"]) so the field type aligns with the schema and parsing
will be consistent.

"binary": "jj",
"check": "which jj",
"install_steps": [
"cargo install jj-cli",
"Or: brew install jj-cli",
"Or download binary from https://github.com/jj-vcs/jj/releases",
"Verify: jj --version",
"supercli plugins install ./plugins/jj --on-conflict replace --json"
],
"note": "Also available via: apt install jj-cli, pacman -S jj, nixpkgs. Requires a Git backend (built-in). See https://jj-vcs.dev for documentation."
}
5 changes: 5 additions & 0 deletions plugins/jj/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"description": "jj — a Git-compatible VCS that is both simple and powerful. Works with existing Git repos natively. Provides undo, auto-squash, conflict resolution, and a cleaner commit model. Supports all common VCS operations with both CLI and TUI. Written in Rust.",
"tags": ["jj", "jujutsu", "vcs", "version-control", "git", "rust", "cli", "scm", "dvcs"],
"has_learn": true
}
309 changes: 309 additions & 0 deletions plugins/jj/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,309 @@
{
"name": "jj",
"version": "0.1.0",
"description": "jj — a Git-compatible VCS that is both simple and powerful. Works with Git repos natively, offers undo, auto-squash, conflict resolution, and more.",
"source": "https://github.com/jj-vcs/jj",
"checks": [
{ "type": "binary", "name": "jj" }
],
"install_guidance": {
"plugin": ["jj"],
"binary": "jj",
"check": "which jj",
"install_steps": [
"cargo install jj-cli",
"Or: brew install jj-cli",
"Or download binary from https://github.com/jj-vcs/jj/releases",
"Verify: jj --version",
"supercli plugins install ./plugins/jj --on-conflict replace --json"
],
"note": "Source: https://github.com/jj-vcs/jj (29k stars). Written in Rust. Git-compatible — works with existing Git repos. Also available on many package managers."
},
"learn": {
"file": "skills/quickstart/SKILL.md"
},
"commands": [
{
"namespace": "jj",
"resource": "self",
"action": "version",
"description": "Print jj version",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"baseArgs": ["--version"],
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": []
},
{
"namespace": "jj",
"resource": "log",
"action": "show",
"description": "Show commit log (passthrough: jj log [options])",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["log"],
"passthrough": true,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not declare ignored flags on passthrough jj commands

For exact commands with passthrough: true, the process adapter ignores all declared args and forwards only remaining positionals (cli/adapters/process.js:176-179), so the inspected flags in this manifest are not honored. For example, sc jj commit create --message foo is routed with empty __rawArgs and runs just jj commit, which can prompt/fail instead of using the message; the same applies to --limit, --dry-run, and the other wrapped flags. Use normal process arg mapping for these typed commands, or drop the declared args and force raw jj _ _ passthrough.

Useful? React with 👍 / 👎.

"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "revisions",
"type": "string",
"required": false,
"description": "Revisions to show (e.g. '::' for all, '@' for current)"
},
{
"name": "limit",
"type": "number",
"required": false,
"description": "Limit number of entries"
},
{
"name": "no-graph",
"type": "boolean",
"required": false,
"description": "Don't show the revision graph"
},
{
"name": "reversed",
"type": "boolean",
"required": false,
"description": "Show revisions in reverse order"
}
]
},
{
"namespace": "jj",
"resource": "status",
"action": "show",
"description": "Show working copy status",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["status"],
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": []
},
{
"namespace": "jj",
"resource": "new",
"action": "create",
"description": "Create a new empty change (passthrough: jj new [target])",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["new"],
"passthrough": true,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "target",
"type": "string",
"required": false,
"description": "Target revision to create the new change on top of"
},
{
"name": "message",
"type": "string",
"required": false,
"description": "Description for the new change"
}
]
},
{
"namespace": "jj",
"resource": "describe",
"action": "edit",
"description": "Edit the description of a change (passthrough: jj describe [revision])",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["describe"],
"passthrough": true,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "revision",
"type": "string",
"required": false,
"description": "Revision to edit description of"
},
{
"name": "message",
"type": "string",
"required": false,
"description": "New description text"
}
]
},
{
"namespace": "jj",
"resource": "diff",
"action": "show",
"description": "Show diff of a change (passthrough: jj diff [revision])",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["diff"],
"passthrough": true,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "revision",
"type": "string",
"required": false,
"description": "Revision to show diff of"
},
{
"name": "from",
"type": "string",
"required": false,
"description": "Show changes from this revision"
},
{
"name": "to",
"type": "string",
"required": false,
"description": "Show changes to this revision"
},
{
"name": "git",
"type": "boolean",
"required": false,
"description": "Use git diff format"
},
{
"name": "stat",
"type": "boolean",
"required": false,
"description": "Show diff statistics only"
}
]
},
{
"namespace": "jj",
"resource": "commit",
"action": "create",
"description": "Finalize the current change with a description (passthrough: jj commit -m 'msg')",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["commit"],
"passthrough": true,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "message",
"type": "string",
"required": false,
"description": "Commit message"
}
]
},
{
"namespace": "jj",
"resource": "git",
"action": "push",
"description": "Push changes to a remote Git repository (passthrough: jj git push)",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["git", "push"],
"passthrough": true,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "remote",
"type": "string",
"required": false,
"description": "Remote name (default: origin)"
},
{
"name": "branch",
"type": "string",
"required": false,
"description": "Branch to push"
},
{
"name": "change",
"type": "string",
"required": false,
"description": "Change to push"
},
{
"name": "dry-run",
"type": "boolean",
"required": false,
"description": "Dry run without pushing"
}
]
},
{
"namespace": "jj",
"resource": "git",
"action": "fetch",
"description": "Fetch from a Git remote (passthrough: jj git fetch)",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["git", "fetch"],
"passthrough": true,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": [
{
"name": "remote",
"type": "string",
"required": false,
"description": "Remote to fetch from"
}
]
},
{
"namespace": "jj",
"resource": "workspace",
"action": "list",
"description": "List workspaces",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"baseArgs": ["workspace", "list"],
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": []
},
{
"namespace": "jj",
"resource": "_",
"action": "_",
"description": "Passthrough to jj CLI for any command not covered by specific resources",
"adapter": "process",
"adapterConfig": {
"command": "jj",
"cwd": "invoke_cwd",
"passthrough": true,
"timeout_ms": 60000,
"missingDependencyHelp": "Install jj: cargo install jj-cli"
},
"args": []
}
]
}
Loading
Loading