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.
Files changed (91) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/QUALITY.md +5 -2
  3. package/README.md +41 -9
  4. package/dist/cli.js +5608 -4634
  5. package/docs/AGENT_FEATURES.md +8 -0
  6. package/docs/CODE_FEATURE_INVENTORY.md +6 -0
  7. package/docs/DEVELOPMENT.md +3 -2
  8. package/docs/USAGE.md +3 -1
  9. package/documentation/app.js +3 -3
  10. package/documentation/index.html +9 -5
  11. package/marketplace-plugins/README.md +69 -0
  12. package/marketplace-plugins/code-review/.ur-plugin/plugin.json +13 -0
  13. package/marketplace-plugins/code-review/README.md +37 -0
  14. package/marketplace-plugins/code-review/commands/code-review.md +47 -0
  15. package/marketplace-plugins/engineering-discipline/.ur-plugin/plugin.json +33 -0
  16. package/marketplace-plugins/engineering-discipline/README.md +21 -0
  17. package/marketplace-plugins/engineering-discipline/commands/discipline-check.md +25 -0
  18. package/marketplace-plugins/engineering-discipline/skills/reproducible-release/SKILL.md +31 -0
  19. package/marketplace-plugins/engineering-discipline/templates/release-verifier.md +18 -0
  20. package/marketplace-plugins/engineering-discipline/validators/release-gate.json +7 -0
  21. package/marketplace-plugins/evaluate-response/.ur-plugin/plugin.json +13 -0
  22. package/marketplace-plugins/evaluate-response/README.md +42 -0
  23. package/marketplace-plugins/evaluate-response/commands/evaluate-response.md +61 -0
  24. package/marketplace-plugins/explain-error/.ur-plugin/plugin.json +13 -0
  25. package/marketplace-plugins/explain-error/README.md +32 -0
  26. package/marketplace-plugins/explain-error/commands/explain-error.md +37 -0
  27. package/marketplace-plugins/git-summary/.ur-plugin/plugin.json +13 -0
  28. package/marketplace-plugins/git-summary/README.md +29 -0
  29. package/marketplace-plugins/git-summary/commands/git-summary.md +27 -0
  30. package/marketplace-plugins/github/.ur-plugin/plugin.json +31 -0
  31. package/marketplace-plugins/github/README.md +37 -0
  32. package/marketplace-plugins/github/commands/gh-issues.md +19 -0
  33. package/marketplace-plugins/github/commands/gh-pr-create.md +19 -0
  34. package/marketplace-plugins/github/commands/gh-pr-review.md +37 -0
  35. package/marketplace-plugins/github/commands/gh-repo-health.md +23 -0
  36. package/marketplace-plugins/github/skills/github-workflow/SKILL.md +53 -0
  37. package/marketplace-plugins/gitlab/.ur-plugin/plugin.json +39 -0
  38. package/marketplace-plugins/gitlab/README.md +39 -0
  39. package/marketplace-plugins/gitlab/commands/gl-issues.md +19 -0
  40. package/marketplace-plugins/gitlab/commands/gl-mr-create.md +19 -0
  41. package/marketplace-plugins/gitlab/commands/gl-mr-review.md +36 -0
  42. package/marketplace-plugins/gitlab/commands/gl-pipeline.md +21 -0
  43. package/marketplace-plugins/gitlab/skills/gitlab-workflow/SKILL.md +63 -0
  44. package/marketplace-plugins/hello/.ur-plugin/plugin.json +13 -0
  45. package/marketplace-plugins/hello/README.md +45 -0
  46. package/marketplace-plugins/hello/commands/hello.md +16 -0
  47. package/marketplace-plugins/huggingface/.ur-plugin/plugin.json +36 -0
  48. package/marketplace-plugins/huggingface/README.md +36 -0
  49. package/marketplace-plugins/huggingface/commands/hf-dataset-search.md +19 -0
  50. package/marketplace-plugins/huggingface/commands/hf-download.md +23 -0
  51. package/marketplace-plugins/huggingface/commands/hf-model-card.md +23 -0
  52. package/marketplace-plugins/huggingface/commands/hf-model-search.md +20 -0
  53. package/marketplace-plugins/huggingface/skills/huggingface-workflow/SKILL.md +70 -0
  54. package/marketplace-plugins/miro/.ur-plugin/plugin.json +27 -0
  55. package/marketplace-plugins/miro/README.md +39 -0
  56. package/marketplace-plugins/miro/commands/miro-board.md +17 -0
  57. package/marketplace-plugins/miro/commands/miro-diagram.md +20 -0
  58. package/marketplace-plugins/miro/commands/miro-export.md +18 -0
  59. package/marketplace-plugins/miro/commands/miro-stickies.md +19 -0
  60. package/marketplace-plugins/miro/skills/miro-workflow/SKILL.md +54 -0
  61. package/marketplace-plugins/obsidian/.ur-plugin/plugin.json +42 -0
  62. package/marketplace-plugins/obsidian/README.md +42 -0
  63. package/marketplace-plugins/obsidian/commands/backlinks.md +22 -0
  64. package/marketplace-plugins/obsidian/commands/daily-note.md +29 -0
  65. package/marketplace-plugins/obsidian/commands/moc.md +24 -0
  66. package/marketplace-plugins/obsidian/commands/second-brain.md +37 -0
  67. package/marketplace-plugins/obsidian/commands/vault-search.md +20 -0
  68. package/marketplace-plugins/obsidian/skills/second-brain/SKILL.md +86 -0
  69. package/marketplace-plugins/powerpoint/.ur-plugin/plugin.json +26 -0
  70. package/marketplace-plugins/powerpoint/README.md +35 -0
  71. package/marketplace-plugins/powerpoint/commands/pptx-from-md.md +18 -0
  72. package/marketplace-plugins/powerpoint/commands/pptx-new.md +21 -0
  73. package/marketplace-plugins/powerpoint/commands/pptx-review.md +32 -0
  74. package/marketplace-plugins/powerpoint/commands/pptx-theme.md +18 -0
  75. package/marketplace-plugins/powerpoint/skills/deck-craft/SKILL.md +60 -0
  76. package/marketplace-plugins/release-notes/.ur-plugin/plugin.json +13 -0
  77. package/marketplace-plugins/release-notes/README.md +28 -0
  78. package/marketplace-plugins/release-notes/commands/release-notes.md +56 -0
  79. package/marketplace-plugins/skill-forge/.ur-plugin/plugin.json +13 -0
  80. package/marketplace-plugins/skill-forge/README.md +37 -0
  81. package/marketplace-plugins/skill-forge/commands/forge-skill.md +47 -0
  82. package/marketplace-plugins/skill-forge/commands/skill-refine.md +19 -0
  83. package/marketplace-plugins/skill-forge/skills/skill-authoring/SKILL.md +84 -0
  84. package/marketplace-plugins/word/.ur-plugin/plugin.json +26 -0
  85. package/marketplace-plugins/word/README.md +37 -0
  86. package/marketplace-plugins/word/commands/docx-edit.md +18 -0
  87. package/marketplace-plugins/word/commands/docx-from-md.md +19 -0
  88. package/marketplace-plugins/word/commands/docx-new.md +22 -0
  89. package/marketplace-plugins/word/commands/docx-review.md +29 -0
  90. package/marketplace-plugins/word/skills/document-craft/SKILL.md +61 -0
  91. package/package.json +2 -1
@@ -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
@@ -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
- npm pack --dry-run
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
@@ -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 plugin marketplaces.',
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',
@@ -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.22.3</p>
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>Terminal coding agent with local-first model routing</h2>
60
- <p>UR runs from the terminal, uses the local Ollama app for model calls, and combines project context, tools, MCP, plugins, skills, workflows, automations, and agent orchestration into one CLI.</p>
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, and secret scan are part of the release path.</span>
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 &lt;plugin&gt;</code></pre>
445
- <p>MCP servers and plugins expand tool access. Treat them as trusted code.</p>
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,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-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
+ ```