ur-agent 1.23.2 → 1.24.0
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.
- package/CHANGELOG.md +23 -0
- package/QUALITY.md +5 -2
- package/README.md +41 -9
- package/dist/cli.js +5608 -4634
- package/docs/AGENT_FEATURES.md +8 -0
- package/docs/CODE_FEATURE_INVENTORY.md +6 -0
- package/docs/DEVELOPMENT.md +3 -2
- package/docs/USAGE.md +3 -1
- package/documentation/app.js +3 -3
- package/documentation/index.html +9 -5
- package/marketplace-plugins/README.md +69 -0
- package/marketplace-plugins/code-review/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/code-review/README.md +37 -0
- package/marketplace-plugins/code-review/commands/code-review.md +47 -0
- package/marketplace-plugins/engineering-discipline/.ur-plugin/plugin.json +33 -0
- package/marketplace-plugins/engineering-discipline/README.md +21 -0
- package/marketplace-plugins/engineering-discipline/commands/discipline-check.md +25 -0
- package/marketplace-plugins/engineering-discipline/skills/reproducible-release/SKILL.md +31 -0
- package/marketplace-plugins/engineering-discipline/templates/release-verifier.md +18 -0
- package/marketplace-plugins/engineering-discipline/validators/release-gate.json +7 -0
- package/marketplace-plugins/evaluate-response/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/evaluate-response/README.md +42 -0
- package/marketplace-plugins/evaluate-response/commands/evaluate-response.md +61 -0
- package/marketplace-plugins/explain-error/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/explain-error/README.md +32 -0
- package/marketplace-plugins/explain-error/commands/explain-error.md +37 -0
- package/marketplace-plugins/git-summary/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/git-summary/README.md +29 -0
- package/marketplace-plugins/git-summary/commands/git-summary.md +27 -0
- package/marketplace-plugins/github/.ur-plugin/plugin.json +31 -0
- package/marketplace-plugins/github/README.md +37 -0
- package/marketplace-plugins/github/commands/gh-issues.md +19 -0
- package/marketplace-plugins/github/commands/gh-pr-create.md +19 -0
- package/marketplace-plugins/github/commands/gh-pr-review.md +37 -0
- package/marketplace-plugins/github/commands/gh-repo-health.md +23 -0
- package/marketplace-plugins/github/skills/github-workflow/SKILL.md +53 -0
- package/marketplace-plugins/gitlab/.ur-plugin/plugin.json +39 -0
- package/marketplace-plugins/gitlab/README.md +39 -0
- package/marketplace-plugins/gitlab/commands/gl-issues.md +19 -0
- package/marketplace-plugins/gitlab/commands/gl-mr-create.md +19 -0
- package/marketplace-plugins/gitlab/commands/gl-mr-review.md +36 -0
- package/marketplace-plugins/gitlab/commands/gl-pipeline.md +21 -0
- package/marketplace-plugins/gitlab/skills/gitlab-workflow/SKILL.md +63 -0
- package/marketplace-plugins/hello/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/hello/README.md +45 -0
- package/marketplace-plugins/hello/commands/hello.md +16 -0
- package/marketplace-plugins/huggingface/.ur-plugin/plugin.json +36 -0
- package/marketplace-plugins/huggingface/README.md +36 -0
- package/marketplace-plugins/huggingface/commands/hf-dataset-search.md +19 -0
- package/marketplace-plugins/huggingface/commands/hf-download.md +23 -0
- package/marketplace-plugins/huggingface/commands/hf-model-card.md +23 -0
- package/marketplace-plugins/huggingface/commands/hf-model-search.md +20 -0
- package/marketplace-plugins/huggingface/skills/huggingface-workflow/SKILL.md +70 -0
- package/marketplace-plugins/miro/.ur-plugin/plugin.json +27 -0
- package/marketplace-plugins/miro/README.md +39 -0
- package/marketplace-plugins/miro/commands/miro-board.md +17 -0
- package/marketplace-plugins/miro/commands/miro-diagram.md +20 -0
- package/marketplace-plugins/miro/commands/miro-export.md +18 -0
- package/marketplace-plugins/miro/commands/miro-stickies.md +19 -0
- package/marketplace-plugins/miro/skills/miro-workflow/SKILL.md +54 -0
- package/marketplace-plugins/obsidian/.ur-plugin/plugin.json +42 -0
- package/marketplace-plugins/obsidian/README.md +42 -0
- package/marketplace-plugins/obsidian/commands/backlinks.md +22 -0
- package/marketplace-plugins/obsidian/commands/daily-note.md +29 -0
- package/marketplace-plugins/obsidian/commands/moc.md +24 -0
- package/marketplace-plugins/obsidian/commands/second-brain.md +37 -0
- package/marketplace-plugins/obsidian/commands/vault-search.md +20 -0
- package/marketplace-plugins/obsidian/skills/second-brain/SKILL.md +86 -0
- package/marketplace-plugins/powerpoint/.ur-plugin/plugin.json +26 -0
- package/marketplace-plugins/powerpoint/README.md +35 -0
- package/marketplace-plugins/powerpoint/commands/pptx-from-md.md +18 -0
- package/marketplace-plugins/powerpoint/commands/pptx-new.md +21 -0
- package/marketplace-plugins/powerpoint/commands/pptx-review.md +32 -0
- package/marketplace-plugins/powerpoint/commands/pptx-theme.md +18 -0
- package/marketplace-plugins/powerpoint/skills/deck-craft/SKILL.md +60 -0
- package/marketplace-plugins/release-notes/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/release-notes/README.md +28 -0
- package/marketplace-plugins/release-notes/commands/release-notes.md +56 -0
- package/marketplace-plugins/skill-forge/.ur-plugin/plugin.json +13 -0
- package/marketplace-plugins/skill-forge/README.md +37 -0
- package/marketplace-plugins/skill-forge/commands/forge-skill.md +47 -0
- package/marketplace-plugins/skill-forge/commands/skill-refine.md +19 -0
- package/marketplace-plugins/skill-forge/skills/skill-authoring/SKILL.md +84 -0
- package/marketplace-plugins/word/.ur-plugin/plugin.json +26 -0
- package/marketplace-plugins/word/README.md +37 -0
- package/marketplace-plugins/word/commands/docx-edit.md +18 -0
- package/marketplace-plugins/word/commands/docx-from-md.md +19 -0
- package/marketplace-plugins/word/commands/docx-new.md +22 -0
- package/marketplace-plugins/word/commands/docx-review.md +29 -0
- package/marketplace-plugins/word/skills/document-craft/SKILL.md +61 -0
- package/package.json +2 -1
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -64,6 +64,14 @@ ur spec run auth-refactor --all
|
|
|
64
64
|
ur spec verify auth-refactor
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
## v1.24.0 Additions
|
|
68
|
+
|
|
69
|
+
| Addition | Surface | What it adds |
|
|
70
|
+
| --- | --- | --- |
|
|
71
|
+
| Plugin marketplace capability surfaces | `.ur-plugin/marketplace.json`, `src/utils/plugins/schemas.ts`, `marketplace-plugins/engineering-discipline/` | Marketplace entries can advertise MCP tools, executable skills, templates, validators, language adapters, LSP servers, hooks, agents, and commands. The `engineering-discipline` reference plugin ships a command, reproducible-release skill, release-verifier template, release-gate validator, and Markdown adapter metadata. |
|
|
72
|
+
| Autonomous engineering workflow identity | `README.md`, `documentation/`, `marketplace-plugins/engineering-discipline/skills/reproducible-release` | Positions UR as an autonomous engineering workflow engine: plan, execute, test, verify, document, benchmark, and reproduce, with command evidence and rollback discipline as the product promise. |
|
|
73
|
+
| Release readiness guard | `.github/workflows/test.yml`, `test/releaseReadiness.test.ts` | Asserts production bundle, release, package, and global-install checks run only after the Bun test step succeeds in GitHub CI. |
|
|
74
|
+
|
|
67
75
|
## v1.22.3 Additions
|
|
68
76
|
|
|
69
77
|
| Addition | Surface | What it adds |
|
|
@@ -853,10 +853,14 @@ Plugin loading supports:
|
|
|
853
853
|
- plugin commands
|
|
854
854
|
- plugin agents
|
|
855
855
|
- plugin skills
|
|
856
|
+
- plugin templates
|
|
857
|
+
- plugin validators
|
|
856
858
|
- plugin hooks
|
|
857
859
|
- output styles
|
|
858
860
|
- MCP servers
|
|
859
861
|
- LSP servers
|
|
862
|
+
- language adapters
|
|
863
|
+
- marketplace capability metadata
|
|
860
864
|
- plugin settings
|
|
861
865
|
- duplicate-name handling
|
|
862
866
|
- enable/disable state
|
|
@@ -890,6 +894,8 @@ Bundled marketplace plugin families in `marketplace-plugins/**`:
|
|
|
890
894
|
- PowerPoint deck creation, markdown-to-deck, review, theme, and deck-craft
|
|
891
895
|
skill
|
|
892
896
|
- release notes
|
|
897
|
+
- reproducible release discipline, release-gate validator, release verifier
|
|
898
|
+
template, and Markdown language-adapter metadata
|
|
893
899
|
- skill forge and skill authoring
|
|
894
900
|
- Word document creation, markdown-to-docx, edit, review, and document-craft
|
|
895
901
|
skill
|
package/docs/DEVELOPMENT.md
CHANGED
|
@@ -38,7 +38,8 @@ bun run bundle
|
|
|
38
38
|
bun run smoke
|
|
39
39
|
bun run secrets:scan
|
|
40
40
|
bun run release:check
|
|
41
|
-
|
|
41
|
+
bun run package:check
|
|
42
|
+
npm publish --dry-run
|
|
42
43
|
```
|
|
43
44
|
|
|
44
45
|
Use `ur test-first detect` when adding a feature to inspect the repository's
|
|
@@ -50,7 +51,7 @@ shell commands. Use `ur context-pack scan` when a change adds new manifests,
|
|
|
50
51
|
command surfaces, or architecture rules that should be captured as project
|
|
51
52
|
context.
|
|
52
53
|
|
|
53
|
-
The GitHub install path uses the bundled launcher in `dist/cli.js`, so `bun run bundle` must be run before packaging or pushing a release. `bun run release:check` verifies that `package.json`, `bunfig.toml`, the bundle, docs, and `node ./bin/ur.js --version` agree.
|
|
54
|
+
The GitHub install path uses the bundled launcher in `dist/cli.js`, so `bun run bundle` must be run before packaging or pushing a release. `bun run release:check` verifies that `package.json`, `bunfig.toml`, the bundle, docs, and `node ./bin/ur.js --version` agree. The GitHub workflow keeps production bundle, release, package, and global-install checks behind the Bun test step; do not publish, tag, or push release artifacts until that workflow is green.
|
|
54
55
|
|
|
55
56
|
## Build
|
|
56
57
|
|
package/docs/USAGE.md
CHANGED
|
@@ -153,7 +153,9 @@ UR includes slash commands and CLI subcommands for common workflows:
|
|
|
153
153
|
|
|
154
154
|
- `/help` or `ur --help` for command discovery
|
|
155
155
|
- `ur mcp ...` to configure MCP servers
|
|
156
|
-
- `ur plugin ...` to manage plugins and marketplaces
|
|
156
|
+
- `ur plugin ...` to manage plugins and marketplaces. Marketplace plugins can
|
|
157
|
+
add MCP tools, commands, executable skills, templates, validators, language
|
|
158
|
+
adapters, LSP servers, agents, hooks, and output styles.
|
|
157
159
|
- `ur agents` to list configured agents
|
|
158
160
|
- `ur agent-trends` to inspect coverage for current agent technology trends
|
|
159
161
|
- `ur a2a card` to print UR's Agent Card metadata for A2A discovery
|
package/documentation/app.js
CHANGED
|
@@ -50,7 +50,7 @@ const featureGroups = [
|
|
|
50
50
|
{
|
|
51
51
|
title: 'Interoperability',
|
|
52
52
|
tags: ['MCP', 'plugins', 'A2A', 'SDK'],
|
|
53
|
-
text: 'MCP servers, plugin marketplaces, A2A Agent Card and task server, delegation tokens, and a TypeScript SDK wrapper around headless UR.',
|
|
53
|
+
text: 'MCP servers, plugin marketplaces for skills, templates, validators, language adapters, A2A Agent Card and task server, delegation tokens, and a TypeScript SDK wrapper around headless UR.',
|
|
54
54
|
commands: ['ur mcp', 'ur plugin', 'ur a2a', 'ur sdk'],
|
|
55
55
|
},
|
|
56
56
|
{
|
|
@@ -297,8 +297,8 @@ const commands = [
|
|
|
297
297
|
name: 'plugin',
|
|
298
298
|
category: 'Interop',
|
|
299
299
|
aliases: ['plugins'],
|
|
300
|
-
summary: 'Manage UR plugins and
|
|
301
|
-
examples: ['ur plugin list', 'ur plugin install hello@ur-plugins-official', 'ur plugin update <plugin>', 'ur plugin disable <plugin>'],
|
|
300
|
+
summary: 'Manage UR plugins and marketplaces for MCP tools, skills, templates, validators, and language adapters.',
|
|
301
|
+
examples: ['ur plugin list', 'ur plugin install hello@ur-plugins-official', 'ur plugin install engineering-discipline@ur-plugins-official', 'ur plugin update <plugin>', 'ur plugin disable <plugin>'],
|
|
302
302
|
},
|
|
303
303
|
{
|
|
304
304
|
name: 'repo-edit',
|
package/documentation/index.html
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<main id="content" class="content">
|
|
44
44
|
<header class="topbar">
|
|
45
45
|
<div>
|
|
46
|
-
<p class="eyebrow">Version 1.
|
|
46
|
+
<p class="eyebrow">Version 1.24.0</p>
|
|
47
47
|
<h1>UR Agent Documentation</h1>
|
|
48
48
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR Agent.</p>
|
|
49
49
|
</div>
|
|
@@ -56,8 +56,8 @@
|
|
|
56
56
|
<section id="overview" class="section">
|
|
57
57
|
<div class="section-heading">
|
|
58
58
|
<p class="eyebrow">What UR Is</p>
|
|
59
|
-
<h2>
|
|
60
|
-
<p>UR
|
|
59
|
+
<h2>Autonomous engineering workflow engine</h2>
|
|
60
|
+
<p>UR is not only chat, autocomplete, or code edits. It turns work into a plan, executes patches, tests and verifies them, documents the result, benchmarks behavior, and keeps the run reproducible from the terminal.</p>
|
|
61
61
|
</div>
|
|
62
62
|
<div class="stat-grid">
|
|
63
63
|
<article>
|
|
@@ -72,6 +72,10 @@
|
|
|
72
72
|
<strong>Agent platform</strong>
|
|
73
73
|
<span>Workflows, patterns, crews, goals, evals, memory, knowledge, A2A, provenance, and templates are first-class commands.</span>
|
|
74
74
|
</article>
|
|
75
|
+
<article>
|
|
76
|
+
<strong>Plugin marketplace</strong>
|
|
77
|
+
<span>Plugins can add MCP tools, skills, templates, validators, language adapters, LSP servers, agents, hooks, and output styles.</span>
|
|
78
|
+
</article>
|
|
75
79
|
<article>
|
|
76
80
|
<strong>Reliable repo editing</strong>
|
|
77
81
|
<span><code>ur repo-edit</code> indexes files and symbols, plans AST-aware renames, previews patches, and rolls back failed multi-file applies.</span>
|
|
@@ -86,7 +90,7 @@
|
|
|
86
90
|
</article>
|
|
87
91
|
<article>
|
|
88
92
|
<strong>Release checks</strong>
|
|
89
|
-
<span>Typecheck, tests, bundle verification, smoke, package checks,
|
|
93
|
+
<span>Typecheck, tests, bundle verification, smoke, package checks, secret scan, and dry-run publish are part of the release path.</span>
|
|
90
94
|
</article>
|
|
91
95
|
</div>
|
|
92
96
|
</section>
|
|
@@ -442,7 +446,7 @@ UR_VERIFIER_AUTO_SUBAGENT=1</code></pre>
|
|
|
442
446
|
ur mcp add-json local-tools '{"command":"node","args":["server.js"]}'
|
|
443
447
|
ur plugin list
|
|
444
448
|
ur plugin install <plugin></code></pre>
|
|
445
|
-
<p>MCP servers and plugins expand
|
|
449
|
+
<p>MCP servers and marketplace plugins expand tools, executable skills, templates, validators, language adapters, and review workflows. Treat them as trusted code.</p>
|
|
446
450
|
</article>
|
|
447
451
|
</div>
|
|
448
452
|
</section>
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# marketplace-plugins/
|
|
2
|
+
|
|
3
|
+
First-party plugins for the **ur-plugins-official** marketplace.
|
|
4
|
+
|
|
5
|
+
Each subdirectory here is a self-contained plugin. The marketplace
|
|
6
|
+
manifest at `.ur-plugin/marketplace.json` (at the repo root) lists which of
|
|
7
|
+
them are published.
|
|
8
|
+
|
|
9
|
+
## Shipped plugins
|
|
10
|
+
|
|
11
|
+
| Plugin | Slash command | What it does |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| [`hello`](./hello) | `/hello [name]` | Example greeting. Use as a template. |
|
|
14
|
+
| [`git-summary`](./git-summary) | `/git-summary` | One-paragraph factual summary of the working tree and recent commits. |
|
|
15
|
+
| [`code-review`](./code-review) | `/code-review [base-ref]` | Structured review of the working diff. Correctness, style, test coverage, security, TL;DR verdict. |
|
|
16
|
+
| [`explain-error`](./explain-error) | `/explain-error [command]` | Re-runs a failing command and decodes the error in plain English with two next steps. |
|
|
17
|
+
| [`release-notes`](./release-notes) | `/release-notes [since-ref]` | Drafts release notes grouped by Features / Fixes / Documentation / Other since the last tag. |
|
|
18
|
+
| [`evaluate-response`](./evaluate-response) | `/evaluate-response` | Adversarial self-evaluation of the most recent assistant turn. |
|
|
19
|
+
| [`obsidian`](./obsidian) | `/second-brain` (+4) | Operate an Obsidian vault as a second brain — atomic notes, daily notes, MOCs, backlinks, cited search. Direct file edits or the Local REST API MCP server. |
|
|
20
|
+
| [`github`](./github) | `/gh-pr-review` (+3) | Review and open pull requests, triage issues, check repo health — via the official GitHub MCP server or the `gh` CLI. |
|
|
21
|
+
| [`gitlab`](./gitlab) | `/gl-mr-review` (+3) | Review and open merge requests, triage issues, watch CI/CD pipelines — via the official GitLab MCP server or the `glab` CLI. |
|
|
22
|
+
| [`huggingface`](./huggingface) | `/hf-model-search` (+3) | Search, vet, and download Hub models and datasets — via the official Hugging Face MCP server or the `hf` CLI. |
|
|
23
|
+
| [`word`](./word) | `/docx-new` (+3) | Create, convert, review, and edit Word documents — via the Office Word MCP server or a pandoc / python-docx fallback. |
|
|
24
|
+
| [`powerpoint`](./powerpoint) | `/pptx-new` (+3) | Build, convert, review, and theme PowerPoint decks — via the Office PowerPoint MCP server or a python-pptx fallback. |
|
|
25
|
+
| [`miro`](./miro) | `/miro-board` (+3) | Create boards, diagrams, and sticky clusters and summarize boards — via Miro's official MCP server or the REST API. |
|
|
26
|
+
| [`skill-forge`](./skill-forge) | `/forge-skill` (+1) | The active model authors a complete `SKILL.md` from your description and saves it to your skills directory. |
|
|
27
|
+
| [`engineering-discipline`](./engineering-discipline) | `/discipline-check` | Reference plugin that ships a command, executable skill, agent template, validator, and Markdown language adapter metadata. |
|
|
28
|
+
|
|
29
|
+
Seven of these are **integration plugins**: each bundles an official MCP server,
|
|
30
|
+
several slash commands, and a methodology skill, and prompts for its config
|
|
31
|
+
(tokens, vault path, output folders) on enable. The Office plugins run their MCP
|
|
32
|
+
server through `uvx` (install `uv`) and fall back to local Python libraries.
|
|
33
|
+
Secrets are stored in secure storage, never in plaintext settings.
|
|
34
|
+
|
|
35
|
+
[`skill-forge`](./skill-forge) is a **meta plugin** (no MCP): its commands run as
|
|
36
|
+
prompts, so the active session model authors and saves the skill for you.
|
|
37
|
+
|
|
38
|
+
[`engineering-discipline`](./engineering-discipline) is a **marketplace
|
|
39
|
+
capability reference plugin**. It demonstrates every standard extension surface
|
|
40
|
+
UR accepts from marketplace plugins: commands, executable skills, reusable agent
|
|
41
|
+
templates, deterministic validators, language adapters, and LSP server metadata.
|
|
42
|
+
|
|
43
|
+
## Adding a new plugin
|
|
44
|
+
|
|
45
|
+
1. Copy `hello/` to a new directory, e.g. `marketplace-plugins/my-plugin/`.
|
|
46
|
+
2. Edit `my-plugin/.ur-plugin/plugin.json` with the plugin's real metadata.
|
|
47
|
+
3. Replace the example command in `my-plugin/commands/` with your own.
|
|
48
|
+
4. Add optional extension folders as needed:
|
|
49
|
+
- `skills/<name>/SKILL.md`
|
|
50
|
+
- `templates/<name>.md`
|
|
51
|
+
- `validators/<name>.json`
|
|
52
|
+
- `mcpServers` or `lspServers` in `.ur-plugin/plugin.json`
|
|
53
|
+
- `languageAdapters` in `.ur-plugin/plugin.json`
|
|
54
|
+
5. Add an entry to `.ur-plugin/marketplace.json` (sibling to existing
|
|
55
|
+
entries).
|
|
56
|
+
6. Set the entry's `capabilities` array so users can see whether it adds MCP
|
|
57
|
+
tools, skills, templates, validators, language adapters, LSP servers,
|
|
58
|
+
commands, agents, or hooks before installation.
|
|
59
|
+
7. Open a PR against `Maitham16/UR-mapek`.
|
|
60
|
+
|
|
61
|
+
See [`hello/README.md`](./hello/README.md) for the smallest possible example.
|
|
62
|
+
|
|
63
|
+
## Schemas
|
|
64
|
+
|
|
65
|
+
The shapes for `marketplace.json` and `plugin.json` are defined in the
|
|
66
|
+
agent source — see `src/utils/plugins/schemas.ts` (`PluginMarketplaceSchema`
|
|
67
|
+
and `PluginManifestSchema`). The schemas are strict-by-default but
|
|
68
|
+
unknown fields on marketplace entries are silently stripped so future
|
|
69
|
+
versions stay forward-compatible.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "code-review",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Adds /code-review — structured review of the working diff against a base ref.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Maitham Al-rubaye",
|
|
7
|
+
"url": "https://github.com/Maitham16/ur-agent"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/Maitham16/ur-agent/tree/master/marketplace-plugins/code-review",
|
|
10
|
+
"repository": "https://github.com/Maitham16/ur-agent",
|
|
11
|
+
"license": "LicenseRef-UR-Agent-Non-Commercial-Self-Responsibility",
|
|
12
|
+
"keywords": ["code-review", "git", "diff", "quality"]
|
|
13
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# code-review
|
|
2
|
+
|
|
3
|
+
Adds `/code-review` — a structured review of the working diff against a
|
|
4
|
+
base ref.
|
|
5
|
+
|
|
6
|
+
## Use
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
/code-review
|
|
10
|
+
/code-review main
|
|
11
|
+
/code-review v1.2.0
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
If no base ref is given, the plugin tries `main`, then `master`, then
|
|
15
|
+
`HEAD~5`.
|
|
16
|
+
|
|
17
|
+
## What it does
|
|
18
|
+
|
|
19
|
+
Runs `git diff <base>...HEAD`, then asks the model for a markdown report
|
|
20
|
+
with four sections (Correctness, Style, Test coverage, Security) and a
|
|
21
|
+
mandatory one-line TL;DR (`Looks good` / `Has nits` / `Has blockers`).
|
|
22
|
+
|
|
23
|
+
Sections with no findings are omitted, not padded.
|
|
24
|
+
|
|
25
|
+
## Install
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
/plugin install code-review@ur-plugins-official
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Pair with the verifier
|
|
32
|
+
|
|
33
|
+
`/code-review` is a *static* read of the diff. The verifier subagent
|
|
34
|
+
(`/verify` or auto on every "done") is a *dynamic* check — it actually
|
|
35
|
+
runs builds, tests, and lints. They're complementary: code-review catches
|
|
36
|
+
things the verifier can't (style, subtle logic), and the verifier catches
|
|
37
|
+
things code-review can't (does it actually compile and pass tests).
|
|
@@ -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-agent"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/Maitham16/ur-agent/tree/master/marketplace-plugins/engineering-discipline",
|
|
10
|
+
"repository": "https://github.com/Maitham16/ur-agent",
|
|
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,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-agent"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/Maitham16/ur-agent/tree/master/marketplace-plugins/evaluate-response",
|
|
10
|
+
"repository": "https://github.com/Maitham16/ur-agent",
|
|
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-agent"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/Maitham16/ur-agent/tree/master/marketplace-plugins/explain-error",
|
|
10
|
+
"repository": "https://github.com/Maitham16/ur-agent",
|
|
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
|
+
```
|