ur-agent 1.23.3 → 1.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/CONTRIBUTING.md +21 -0
  3. package/LICENSE +1 -1
  4. package/QUALITY.md +5 -2
  5. package/README.md +83 -16
  6. package/RELEASE.md +54 -0
  7. package/SECURITY.md +22 -0
  8. package/bin/ur.js +5 -5
  9. package/dist/cli.js +5423 -4655
  10. package/docs/AGENT_FEATURES.md +8 -0
  11. package/docs/AGENT_UPGRADE_1.15.0.md +1 -1
  12. package/docs/AGENT_UPGRADE_1.16.0.md +1 -1
  13. package/docs/AGENT_UPGRADE_1.17.0.md +1 -1
  14. package/docs/AGENT_UPGRADE_1.18.0.md +1 -1
  15. package/docs/AGENT_UPGRADE_1.19.0.md +1 -1
  16. package/docs/AGENT_UPGRADE_1.20.0.md +1 -1
  17. package/docs/AGENT_UPGRADE_1.21.0.md +1 -1
  18. package/docs/AGENT_UPGRADE_1.22.0.md +1 -1
  19. package/docs/CODE_FEATURE_INVENTORY.md +9 -3
  20. package/docs/DEVELOPMENT.md +8 -4
  21. package/docs/USAGE.md +18 -1
  22. package/docs/VALIDATION.md +4 -4
  23. package/docs/plugins.md +52 -0
  24. package/documentation/README.md +2 -2
  25. package/documentation/app.js +5 -5
  26. package/documentation/assets/ur-architecture.svg +1 -1
  27. package/documentation/index.html +15 -11
  28. package/package.json +11 -6
  29. package/plugins/bunBundleDev.ts +32 -0
  30. package/plugins/community/.gitkeep +1 -0
  31. package/plugins/core/README.md +69 -0
  32. package/plugins/core/code-review/.ur-plugin/plugin.json +13 -0
  33. package/plugins/core/code-review/README.md +37 -0
  34. package/plugins/core/code-review/commands/code-review.md +47 -0
  35. package/plugins/core/engineering-discipline/.ur-plugin/plugin.json +33 -0
  36. package/plugins/core/engineering-discipline/README.md +21 -0
  37. package/plugins/core/engineering-discipline/commands/discipline-check.md +25 -0
  38. package/plugins/core/engineering-discipline/skills/reproducible-release/SKILL.md +31 -0
  39. package/plugins/core/engineering-discipline/templates/release-verifier.md +18 -0
  40. package/plugins/core/engineering-discipline/validators/release-gate.json +7 -0
  41. package/plugins/core/evaluate-response/.ur-plugin/plugin.json +13 -0
  42. package/plugins/core/evaluate-response/README.md +42 -0
  43. package/plugins/core/evaluate-response/commands/evaluate-response.md +61 -0
  44. package/plugins/core/explain-error/.ur-plugin/plugin.json +13 -0
  45. package/plugins/core/explain-error/README.md +32 -0
  46. package/plugins/core/explain-error/commands/explain-error.md +37 -0
  47. package/plugins/core/git-summary/.ur-plugin/plugin.json +13 -0
  48. package/plugins/core/git-summary/README.md +29 -0
  49. package/plugins/core/git-summary/commands/git-summary.md +27 -0
  50. package/plugins/core/github/.ur-plugin/plugin.json +31 -0
  51. package/plugins/core/github/README.md +37 -0
  52. package/plugins/core/github/commands/gh-issues.md +19 -0
  53. package/plugins/core/github/commands/gh-pr-create.md +19 -0
  54. package/plugins/core/github/commands/gh-pr-review.md +37 -0
  55. package/plugins/core/github/commands/gh-repo-health.md +23 -0
  56. package/plugins/core/github/skills/github-workflow/SKILL.md +53 -0
  57. package/plugins/core/gitlab/.ur-plugin/plugin.json +39 -0
  58. package/plugins/core/gitlab/README.md +39 -0
  59. package/plugins/core/gitlab/commands/gl-issues.md +19 -0
  60. package/plugins/core/gitlab/commands/gl-mr-create.md +19 -0
  61. package/plugins/core/gitlab/commands/gl-mr-review.md +36 -0
  62. package/plugins/core/gitlab/commands/gl-pipeline.md +21 -0
  63. package/plugins/core/gitlab/skills/gitlab-workflow/SKILL.md +63 -0
  64. package/plugins/core/hello/.ur-plugin/plugin.json +13 -0
  65. package/plugins/core/hello/README.md +45 -0
  66. package/plugins/core/hello/commands/hello.md +16 -0
  67. package/plugins/core/huggingface/.ur-plugin/plugin.json +36 -0
  68. package/plugins/core/huggingface/README.md +36 -0
  69. package/plugins/core/huggingface/commands/hf-dataset-search.md +19 -0
  70. package/plugins/core/huggingface/commands/hf-download.md +23 -0
  71. package/plugins/core/huggingface/commands/hf-model-card.md +23 -0
  72. package/plugins/core/huggingface/commands/hf-model-search.md +20 -0
  73. package/plugins/core/huggingface/skills/huggingface-workflow/SKILL.md +70 -0
  74. package/plugins/core/miro/.ur-plugin/plugin.json +27 -0
  75. package/plugins/core/miro/README.md +39 -0
  76. package/plugins/core/miro/commands/miro-board.md +17 -0
  77. package/plugins/core/miro/commands/miro-diagram.md +20 -0
  78. package/plugins/core/miro/commands/miro-export.md +18 -0
  79. package/plugins/core/miro/commands/miro-stickies.md +19 -0
  80. package/plugins/core/miro/skills/miro-workflow/SKILL.md +54 -0
  81. package/plugins/core/obsidian/.ur-plugin/plugin.json +42 -0
  82. package/plugins/core/obsidian/README.md +42 -0
  83. package/plugins/core/obsidian/commands/backlinks.md +22 -0
  84. package/plugins/core/obsidian/commands/daily-note.md +29 -0
  85. package/plugins/core/obsidian/commands/moc.md +24 -0
  86. package/plugins/core/obsidian/commands/second-brain.md +37 -0
  87. package/plugins/core/obsidian/commands/vault-search.md +20 -0
  88. package/plugins/core/obsidian/skills/second-brain/SKILL.md +86 -0
  89. package/plugins/core/powerpoint/.ur-plugin/plugin.json +26 -0
  90. package/plugins/core/powerpoint/README.md +35 -0
  91. package/plugins/core/powerpoint/commands/pptx-from-md.md +18 -0
  92. package/plugins/core/powerpoint/commands/pptx-new.md +21 -0
  93. package/plugins/core/powerpoint/commands/pptx-review.md +32 -0
  94. package/plugins/core/powerpoint/commands/pptx-theme.md +18 -0
  95. package/plugins/core/powerpoint/skills/deck-craft/SKILL.md +60 -0
  96. package/plugins/core/release-notes/.ur-plugin/plugin.json +13 -0
  97. package/plugins/core/release-notes/README.md +28 -0
  98. package/plugins/core/release-notes/commands/release-notes.md +56 -0
  99. package/plugins/core/skill-forge/.ur-plugin/plugin.json +13 -0
  100. package/plugins/core/skill-forge/README.md +37 -0
  101. package/plugins/core/skill-forge/commands/forge-skill.md +47 -0
  102. package/plugins/core/skill-forge/commands/skill-refine.md +19 -0
  103. package/plugins/core/skill-forge/skills/skill-authoring/SKILL.md +84 -0
  104. package/plugins/core/word/.ur-plugin/plugin.json +26 -0
  105. package/plugins/core/word/README.md +37 -0
  106. package/plugins/core/word/commands/docx-edit.md +18 -0
  107. package/plugins/core/word/commands/docx-from-md.md +19 -0
  108. package/plugins/core/word/commands/docx-new.md +22 -0
  109. package/plugins/core/word/commands/docx-review.md +29 -0
  110. package/plugins/core/word/skills/document-craft/SKILL.md +61 -0
  111. package/plugins/examples/README.md +12 -0
  112. package/plugins/examples/command-template/.ur-plugin/plugin.json +12 -0
  113. package/plugins/examples/command-template/README.md +9 -0
  114. package/plugins/examples/command-template/commands/example.md +7 -0
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Review the working diff against a base ref. Returns a structured report.
3
+ argument-hint: "[base-ref] (default: main)"
4
+ ---
5
+
6
+ Determine the base ref: if `$ARGUMENTS` is non-empty, use it; otherwise use
7
+ `main` if it exists, otherwise `master`, otherwise `HEAD~5`.
8
+
9
+ Run the diff:
10
+
11
+ ```sh
12
+ git diff <base>...HEAD
13
+ ```
14
+
15
+ If the diff is empty, say "No changes to review against `<base>`." and stop.
16
+
17
+ Otherwise produce a markdown report with these sections, in order. Skip any
18
+ section that has no findings rather than padding it.
19
+
20
+ ### Correctness
21
+ Logic errors, missed edge cases, null / empty / boundary handling, off-by-one,
22
+ concurrency bugs, error paths that don't propagate. For each, name the file
23
+ and line and quote the problematic snippet.
24
+
25
+ ### Style and consistency
26
+ Inconsistent naming with the rest of the file, dead or unreachable code,
27
+ duplicated logic, abstraction that obscures rather than clarifies, comments
28
+ that contradict the code.
29
+
30
+ ### Test coverage
31
+ Was test-shaped code touched? Are there tests for the new behaviour? Flag
32
+ any change to public surface area with no matching test change.
33
+
34
+ ### Security
35
+ Injection risks (SQL, shell, path), secret / token leakage in logs or
36
+ errors, unsafe deserialization, missing input validation at trust
37
+ boundaries, permissive permission grants.
38
+
39
+ ### TL;DR
40
+ End with one line, exactly one of:
41
+
42
+ - `TL;DR: Looks good.` — no findings or only nits, nothing blocking.
43
+ - `TL;DR: Has nits.` — one or more cosmetic findings, nothing blocking.
44
+ - `TL;DR: Has blockers.` — at least one correctness or security finding
45
+ that should be fixed before merging.
46
+
47
+ Do not editorialize about the author. Review the code, not the person.
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "engineering-discipline",
3
+ "version": "0.1.0",
4
+ "description": "Reference plugin for UR's marketplace extensibility: a CI/release command, executable skill, agent template, verifier validator, and language/LSP adapter metadata.",
5
+ "author": {
6
+ "name": "Maitham Al-rubaye",
7
+ "url": "https://github.com/Maitham16/UR"
8
+ },
9
+ "homepage": "https://github.com/Maitham16/UR/tree/master/plugins/core/engineering-discipline",
10
+ "repository": "https://github.com/Maitham16/UR",
11
+ "license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
12
+ "keywords": ["workflow", "ci", "release", "validator", "template", "language-adapter"],
13
+ "skills": "./skills",
14
+ "templates": "./templates",
15
+ "validators": "./validators",
16
+ "languageAdapters": {
17
+ "markdown": {
18
+ "extensions": [".md", ".mdx"],
19
+ "engine": "lsp",
20
+ "lspServerName": "markdown"
21
+ }
22
+ },
23
+ "lspServers": {
24
+ "markdown": {
25
+ "command": "markdown-language-server",
26
+ "args": ["--stdio"],
27
+ "extensionToLanguage": {
28
+ ".md": "markdown",
29
+ ".mdx": "markdown"
30
+ }
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,21 @@
1
+ # engineering-discipline
2
+
3
+ Reference plugin for UR's marketplace extensibility.
4
+
5
+ It demonstrates how a marketplace plugin can add more than a slash command:
6
+
7
+ - command: `/discipline-check`
8
+ - skill: `engineering-discipline:reproducible-release`
9
+ - agent template: `release-verifier`
10
+ - validator: `release-gate`
11
+ - language adapter: Markdown/MDX through an LSP declaration
12
+
13
+ ## Install
14
+
15
+ ```sh
16
+ /plugin install engineering-discipline@ur-plugins-official
17
+ ```
18
+
19
+ The validator is intentionally conservative and mirrors the release gate used
20
+ for production readiness. The language adapter only activates when the matching
21
+ Markdown language server is installed locally.
@@ -0,0 +1,25 @@
1
+ ---
2
+ description: "Check whether a change is ready for reproducible release: plan, patch, tests, verifier evidence, docs, benchmark notes, and rollback path."
3
+ argument-hint: "[changed area or release target]"
4
+ allowed-tools:
5
+ - "Bash(git status:*)"
6
+ - "Bash(git diff:*)"
7
+ - "Bash(bun run typecheck:*)"
8
+ - "Bash(bun run lint:*)"
9
+ - "Bash(bun test:*)"
10
+ - "Bash(bun run release:check:*)"
11
+ ---
12
+
13
+ Audit the current change as a reproducible engineering workflow.
14
+
15
+ Check whether the work has a clear plan, scoped patch, executed tests, verifier
16
+ evidence, documentation updates, benchmark or eval notes when relevant, and a
17
+ rollback path. Prefer command evidence over claims. Do not mark the change ready
18
+ unless the required commands were actually executed and passed.
19
+
20
+ Return:
21
+
22
+ 1. Status: READY, BLOCKED, or NEEDS-EVIDENCE.
23
+ 2. Evidence commands observed.
24
+ 3. Missing evidence.
25
+ 4. Release or rollback risk.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Reproducible Release
3
+ description: Use when preparing a UR-style engineering change for release. Enforces spec -> plan -> patch -> test -> verify -> document -> benchmark -> reproduce, with explicit command evidence and rollback notes.
4
+ version: 0.1.0
5
+ ---
6
+
7
+ # Reproducible Release
8
+
9
+ Use this skill when a change must be ready for production, npm packaging, or a
10
+ research/demo artifact.
11
+
12
+ ## Workflow
13
+
14
+ 1. State the intended release surface and affected commands.
15
+ 2. Inspect the diff and list public API, generated-file, and safety risks.
16
+ 3. Run the smallest relevant compile/test/lint checks, then broaden to the full
17
+ release gate when risk warrants it.
18
+ 4. Record command evidence exactly: command, exit code, stdout/stderr summary,
19
+ and next action.
20
+ 5. Confirm documentation and marketplace files are updated when user-facing
21
+ behavior changes.
22
+ 6. Produce a PR-style report with summary, changed files, tests run, risks,
23
+ rollback command, and remaining TODOs.
24
+
25
+ ## Hard Rules
26
+
27
+ - Never claim tests passed without command evidence.
28
+ - Never hide a failed command or skipped gate.
29
+ - Never edit generated/vendor files unless the task explicitly requires it.
30
+ - Never publish or tag until the release gate passes and the user explicitly
31
+ asks for publishing.
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: release-verifier
3
+ description: Reviews whether a change is releasable, auditable, and rollback-ready.
4
+ color: green
5
+ effort: high
6
+ permissionMode: default
7
+ memory: project
8
+ ---
9
+
10
+ You are a release verification agent.
11
+
12
+ Review the current change as if it were going to production. Demand command
13
+ evidence for compile, lint, tests, bundle, smoke, package, and secret scan when
14
+ the change touches release or runtime behavior. Inspect docs and generated
15
+ artifacts. Report findings first, then summarize the release readiness state.
16
+
17
+ Do not approve a release if the production bundle is stale, tests were not run,
18
+ or publishing would not be gated by successful CI.
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "release-gate",
3
+ "command": "bun run typecheck && bun run lint && bun test && bun run release:check",
4
+ "when": "always",
5
+ "patterns": ["src/**", "test/**", "package.json", "bunfig.toml", "docs/**", "README.md"],
6
+ "timeoutMs": 120000
7
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "evaluate-response",
3
+ "version": "0.1.0",
4
+ "description": "Adds /evaluate-response — adversarial self-evaluation of the most recent assistant turn.",
5
+ "author": {
6
+ "name": "Maitham Al-rubaye",
7
+ "url": "https://github.com/Maitham16/UR"
8
+ },
9
+ "homepage": "https://github.com/Maitham16/UR/tree/master/plugins/core/evaluate-response",
10
+ "repository": "https://github.com/Maitham16/UR",
11
+ "license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
12
+ "keywords": ["quality", "self-evaluation", "verifier"]
13
+ }
@@ -0,0 +1,42 @@
1
+ # evaluate-response
2
+
3
+ Adds `/evaluate-response` — adversarial self-evaluation of the most recent
4
+ assistant response.
5
+
6
+ ## Use
7
+
8
+ ```text
9
+ /evaluate-response
10
+ ```
11
+
12
+ Invoke right after the agent finishes a task to catch hallucinated
13
+ completions, missed sub-questions, factual drift, or narrated-but-not-done
14
+ work.
15
+
16
+ ## What it returns
17
+
18
+ A markdown report against five criteria — Completeness, Accuracy, Tool
19
+ use vs narration, Honesty about completion, Clarity — plus a mandatory
20
+ one-line verdict:
21
+
22
+ ```
23
+ QUALITY: HIGH | MEDIUM | LOW — <rationale>
24
+ ```
25
+
26
+ And one concrete, specific improvement (not generic advice).
27
+
28
+ ## How it pairs with the verifier
29
+
30
+ The verifier subsystem catches structural problems automatically (no Write
31
+ call but claimed "created the file", same Bash call 3 times in a row, the
32
+ build doesn't compile). `/evaluate-response` is for the harder cases the
33
+ verifier can't see: did the response actually answer the question, were the
34
+ facts right, was the tone honest.
35
+
36
+ Useful as a manual cross-check before committing what the agent produced.
37
+
38
+ ## Install
39
+
40
+ ```text
41
+ /plugin install evaluate-response@ur-plugins-official
42
+ ```
@@ -0,0 +1,61 @@
1
+ ---
2
+ description: Adversarially evaluate the most recent assistant response. Be ruthless.
3
+ ---
4
+
5
+ You are about to evaluate your own most recent response — the assistant
6
+ message immediately before this command was invoked. Your goal is to catch
7
+ your own mistakes, not to defend your own work.
8
+
9
+ Look at the most recent assistant turn in the transcript. Read both the
10
+ text and the tool calls. Then evaluate it against these criteria. Be
11
+ specific. "Looks fine" is not an answer.
12
+
13
+ ### Completeness
14
+
15
+ Did the response actually answer every part of the user's question? List
16
+ any sub-question or sub-task that was skipped, glossed over, or deferred
17
+ without explicit acknowledgement.
18
+
19
+ ### Accuracy
20
+
21
+ Are factual claims and code references correct? Spot-check at least one
22
+ file path or symbol name the response mentioned by reading it with the
23
+ Read tool. Report any drift.
24
+
25
+ ### Tool use vs narration
26
+
27
+ Did the response use tools where appropriate, or did it narrate work it
28
+ should have actually performed? A response that says "I would edit X to
29
+ do Y" without calling Edit is a tool-use failure. Flag specifically.
30
+
31
+ ### Honesty about completion
32
+
33
+ Did the response claim work that was not actually performed? Cross-check
34
+ "I created / edited / ran X" claims against actual tool calls in the same
35
+ turn. If a claim has no matching successful tool result, that is a
36
+ hallucinated completion — call it out.
37
+
38
+ ### Clarity and concision
39
+
40
+ Was the response well structured for the user to skim? Or did it bury the
41
+ useful information under filler? One sentence each on structure and length.
42
+
43
+ ### Verdict
44
+
45
+ End with exactly one line in this format:
46
+
47
+ ```
48
+ QUALITY: HIGH | MEDIUM | LOW — <one-sentence rationale>
49
+ ```
50
+
51
+ - **HIGH**: complete, accurate, honest, used tools where needed, easy to
52
+ read. No criterion failed.
53
+ - **MEDIUM**: one or two minor issues. Useful but not great.
54
+ - **LOW**: a criterion failed in a way that would mislead the user
55
+ (hallucinated completion, factually wrong claim, missed a question).
56
+
57
+ Then list one specific, concrete improvement the response could have made.
58
+ Not generic advice — a precise sentence the response should have included
59
+ or a tool call it should have made.
60
+
61
+ Do not soften findings. The point of this command is signal, not comfort.
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "explain-error",
3
+ "version": "0.1.0",
4
+ "description": "Adds /explain-error — re-runs a failing command and diagnoses the error in plain English.",
5
+ "author": {
6
+ "name": "Maitham Al-rubaye",
7
+ "url": "https://github.com/Maitham16/UR"
8
+ },
9
+ "homepage": "https://github.com/Maitham16/UR/tree/master/plugins/core/explain-error",
10
+ "repository": "https://github.com/Maitham16/UR",
11
+ "license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
12
+ "keywords": ["debug", "error", "troubleshooting"]
13
+ }
@@ -0,0 +1,32 @@
1
+ # explain-error
2
+
3
+ Adds `/explain-error` — diagnose a failing command, in plain English, with
4
+ two concrete next steps to try.
5
+
6
+ ## Use
7
+
8
+ ```text
9
+ /explain-error bun test
10
+ /explain-error
11
+ ```
12
+
13
+ With a command argument, re-runs that command and analyzes the failure.
14
+ Without an argument, looks back through the transcript for the most recent
15
+ failing Bash call.
16
+
17
+ ## What it returns
18
+
19
+ Three short sections:
20
+
21
+ - **What the error means** — plain-English decoding of the message.
22
+ - **Most likely cause** — the single most plausible root cause given the
23
+ project context.
24
+ - **Next steps** — two concrete things to try, ordered by likelihood.
25
+
26
+ Stays specific to the error in front of it. Does not lecture about debugging.
27
+
28
+ ## Install
29
+
30
+ ```text
31
+ /plugin install explain-error@ur-plugins-official
32
+ ```
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: Diagnose a failing command. Re-runs it, explains the error, suggests next steps.
3
+ argument-hint: "<command-to-rerun>"
4
+ ---
5
+
6
+ If `$ARGUMENTS` is non-empty, treat it as the command to investigate. Re-run
7
+ it via the Bash tool exactly as given and capture stdout, stderr, and the
8
+ exit code.
9
+
10
+ If `$ARGUMENTS` is empty, scan the most recent transcript turns for the last
11
+ failing Bash command (non-zero exit) and use that one. If you cannot find a
12
+ recent failure, ask the user to paste the failing command and stop.
13
+
14
+ Then produce a short, structured diagnosis:
15
+
16
+ ### What the error means
17
+
18
+ One or two sentences in plain English. Decode jargon. If the error message
19
+ is generic ("Error: 1"), say so and rely on the stderr context.
20
+
21
+ ### Most likely cause
22
+
23
+ The single most likely root cause, given the project context (read
24
+ `package.json`, `UR.md`, or relevant config files only if it sharpens
25
+ the diagnosis — do not spelunk for the sake of it).
26
+
27
+ ### Next steps
28
+
29
+ Two concrete next things to try, ordered by likelihood. Each step is a
30
+ shell command or a one-line action, not a paragraph of advice.
31
+
32
+ If the error is genuinely opaque, list commands that would gather more
33
+ information (e.g. re-run with a verbosity flag, check a log file, inspect
34
+ the relevant file's mode) instead of guessing.
35
+
36
+ Do not lecture about general debugging methodology. Stay specific to this
37
+ error.
@@ -0,0 +1,13 @@
1
+ {
2
+ "name": "git-summary",
3
+ "version": "0.1.0",
4
+ "description": "Adds /git-summary — a one-paragraph factual summary of the working tree and recent history.",
5
+ "author": {
6
+ "name": "Maitham Al-rubaye",
7
+ "url": "https://github.com/Maitham16/UR"
8
+ },
9
+ "homepage": "https://github.com/Maitham16/UR/tree/master/plugins/core/git-summary",
10
+ "repository": "https://github.com/Maitham16/UR",
11
+ "license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
12
+ "keywords": ["git", "summary", "standup", "workflow"]
13
+ }
@@ -0,0 +1,29 @@
1
+ # git-summary
2
+
3
+ Adds `/git-summary` — a one-paragraph factual summary of the working tree
4
+ and the last few commits.
5
+
6
+ ## Use
7
+
8
+ ```text
9
+ /git-summary
10
+ ```
11
+
12
+ Useful before standup, before opening a PR, before clocking out.
13
+
14
+ ## What it does
15
+
16
+ Runs three git commands in parallel:
17
+
18
+ - `git status --short`
19
+ - `git diff --stat`
20
+ - `git log -5 --oneline`
21
+
22
+ Then asks the model to produce a 3–5 sentence factual summary plus a
23
+ one-line branch / clean status footer.
24
+
25
+ ## Install
26
+
27
+ ```text
28
+ /plugin install git-summary@ur-plugins-official
29
+ ```
@@ -0,0 +1,27 @@
1
+ ---
2
+ description: Summarize the working tree and recent commits in one paragraph.
3
+ ---
4
+
5
+ Run these three Bash commands in parallel:
6
+
7
+ 1. `git status --short`
8
+ 2. `git diff --stat`
9
+ 3. `git log -5 --oneline`
10
+
11
+ If any of those commands fail (not a git repo, no commits yet, etc.) say so
12
+ plainly and stop.
13
+
14
+ Otherwise, write a single paragraph (3–5 sentences) that covers:
15
+
16
+ - What files are modified, added, or deleted (by category, not file-by-file
17
+ unless there are five or fewer).
18
+ - The total scope of changes (insertions and deletions).
19
+ - Context from the five most recent commits — what direction the work has
20
+ been moving in.
21
+
22
+ Do not editorialize. Do not project intent onto the changes. Stick to what
23
+ the commands actually returned.
24
+
25
+ End with one short line: the current branch and whether the working tree
26
+ is clean. Use the format `branch: <name> — clean` or
27
+ `branch: <name> — N files dirty`.
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "github",
3
+ "version": "0.1.0",
4
+ "description": "Drive GitHub from UR: review and open pull requests, triage issues, and check repo health — through GitHub's official remote MCP server or the gh CLI.",
5
+ "author": {
6
+ "name": "Maitham Al-rubaye",
7
+ "url": "https://github.com/Maitham16/UR"
8
+ },
9
+ "homepage": "https://github.com/Maitham16/UR/tree/master/plugins/core/github",
10
+ "repository": "https://github.com/Maitham16/UR",
11
+ "license": "LicenseRef-UR-AGENT-Non-Commercial-Self-Responsibility",
12
+ "keywords": ["github", "pull-request", "issues", "ci", "devops", "mcp"],
13
+ "mcpServers": {
14
+ "github": {
15
+ "type": "http",
16
+ "url": "https://api.githubcopilot.com/mcp/",
17
+ "headers": {
18
+ "Authorization": "Bearer ${user_config.GITHUB_TOKEN}"
19
+ }
20
+ }
21
+ },
22
+ "userConfig": {
23
+ "GITHUB_TOKEN": {
24
+ "type": "string",
25
+ "title": "GitHub token",
26
+ "description": "Fine-grained or classic personal access token used by the official GitHub MCP server. Scope it to the repositories and toolsets you want UR to reach. The gh CLI uses its own gh auth login session and does not read this value.",
27
+ "required": true,
28
+ "sensitive": true
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,37 @@
1
+ # github
2
+
3
+ Drive GitHub from any UR session: review and open pull requests, triage issues,
4
+ and check repository health. Backed by GitHub's official remote MCP server, with
5
+ the `gh` CLI as a fallback.
6
+
7
+ ## Commands
8
+
9
+ | Command | Argument | What it does |
10
+ | --- | --- | --- |
11
+ | `/gh-pr-review` | `[pr-number \| url]` | Structured review of a PR with a TL;DR verdict. |
12
+ | `/gh-pr-create` | `[base-branch]` | Open a PR from the current branch with a generated title and body. |
13
+ | `/gh-issues` | `[label \| query]` | Cluster, label, and prioritize open issues. |
14
+ | `/gh-repo-health` | `[owner/repo]` | One-screen snapshot of PRs, issues, CI, and releases. |
15
+
16
+ A bundled `github-workflow` skill documents toolsets, the `gh` cheatsheet, token
17
+ scopes, and guardrails.
18
+
19
+ ## Setup
20
+
21
+ ```sh
22
+ /plugin install github@ur-plugins-official
23
+ ```
24
+
25
+ On enable, set **GITHUB_TOKEN** — a fine-grained or classic personal access
26
+ token for the official MCP server (`https://api.githubcopilot.com/mcp/`). Scope
27
+ it to the repositories and toolsets you want UR to reach.
28
+
29
+ The `gh` CLI uses its own `gh auth login` session and does not read this token;
30
+ the commands work through whichever path is available.
31
+
32
+ ## Security
33
+
34
+ The token is stored in secure storage (keychain / credentials file), never in
35
+ plaintext settings. Mutating actions — opening PRs, labeling, closing — are
36
+ proposed, not taken, unless you ask for them. Force-pushing protected branches
37
+ and merging are never done automatically.
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Triage open GitHub issues — cluster, label, and propose next actions.
3
+ argument-hint: "[label | search query] (optional)"
4
+ ---
5
+
6
+ List open issues for the current repository, filtered by `$ARGUMENTS` if given.
7
+
8
+ Then triage:
9
+
10
+ 1. Cluster the issues into 2–5 themes (bug, feature, docs, question, etc.).
11
+ 2. For each issue, propose: a label, the single next action, and a priority
12
+ (P0 blocking / P1 soon / P2 later) with a one-line reason.
13
+ 3. Call out duplicates and stale issues (no activity in a long time).
14
+
15
+ End with the three issues most worth doing next and why.
16
+
17
+ Prefer the `github` MCP tools; otherwise use `gh issue list`. If neither is
18
+ configured, point the user to the README and stop. Propose changes only — do not
19
+ label, close, or comment unless explicitly asked.
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: Open a GitHub pull request from the current branch with a generated title and body.
3
+ argument-hint: "[base-branch] (default: repo default branch)"
4
+ ---
5
+
6
+ Open a pull request for the current branch.
7
+
8
+ 1. Determine the base: `$ARGUMENTS` if given, else the repository default branch.
9
+ 2. Confirm the branch is pushed to the remote; if not, push it.
10
+ 3. Collect the commits between base and HEAD and any diff stat.
11
+ 4. Draft the PR:
12
+ - **Title**: one Conventional-Commit-style line summarizing the change.
13
+ - **Body**: `## Summary` (what and why, 2–4 bullets), `## Changes` (grouped),
14
+ `## Test plan` (how it was verified).
15
+ 5. Create the PR against the base branch and print its URL.
16
+
17
+ Prefer the `github` MCP tools; otherwise use `gh pr create`. If neither is
18
+ configured, point the user to the README and stop. Never merge — creating the PR
19
+ is the end state. Do not include secrets in the title or body.
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: Review a GitHub pull request and return a structured verdict.
3
+ argument-hint: "[pr-number | url] (default: PR for the current branch)"
4
+ ---
5
+
6
+ Resolve the PR: if `$ARGUMENTS` names a number or URL, use it; otherwise find
7
+ the open PR for the current branch.
8
+
9
+ Fetch the diff and metadata, then review it. Produce a markdown report with
10
+ these sections, skipping any with no findings:
11
+
12
+ ### Correctness
13
+ Logic errors, missed edge cases, null / boundary handling, races, error paths
14
+ that swallow failures. Name the file and line and quote the snippet.
15
+
16
+ ### Style and consistency
17
+ Naming that fights the surrounding code, dead code, duplicated logic, comments
18
+ that contradict the code.
19
+
20
+ ### Test coverage
21
+ Was test-shaped code touched? Is the new behaviour tested? Flag changes to
22
+ public surface area with no matching test.
23
+
24
+ ### Security
25
+ Injection (SQL/shell/path), secret leakage, unsafe deserialization, missing
26
+ validation at trust boundaries, over-broad permissions.
27
+
28
+ ### TL;DR
29
+ End with exactly one of:
30
+ - `TL;DR: Looks good.`
31
+ - `TL;DR: Has nits.`
32
+ - `TL;DR: Has blockers.`
33
+
34
+ Prefer the `github` MCP tools (pull request read + diff). If they are not
35
+ available, use the `gh` CLI (`gh pr view`, `gh pr diff`), which uses its own
36
+ `gh auth login` session. If neither is configured, point the user to the plugin
37
+ README and stop. Do not post a review comment unless explicitly asked.
@@ -0,0 +1,23 @@
1
+ ---
2
+ description: One-screen health snapshot of a GitHub repository.
3
+ argument-hint: "[owner/repo] (default: current repository)"
4
+ ---
5
+
6
+ Build a health snapshot for `$ARGUMENTS` if given, else the current repository.
7
+
8
+ Gather and summarize:
9
+ - Open pull requests: count, and any that are stale or have failing checks.
10
+ - Open issues: count and rough theme breakdown.
11
+ - Latest CI runs: pass/fail of the most recent runs on the default branch.
12
+ - Branches: stale branches merged or long inactive.
13
+ - Releases: the latest release/tag and how long ago it shipped.
14
+
15
+ Keep it to one screen. End with a verdict line, exactly one of:
16
+ - `HEALTH: GREEN — nothing demands attention.`
17
+ - `HEALTH: YELLOW — a few things to watch.`
18
+ - `HEALTH: RED — needs attention now.`
19
+ followed by the single highest-priority item.
20
+
21
+ Prefer the `github` MCP tools; otherwise use `gh` (`gh pr list`, `gh issue list`,
22
+ `gh run list`, `gh release view`). If neither is configured, point the user to
23
+ the README and stop.