universal-plugin 0.12.1 → 0.12.2

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-plugin",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "Research and design toolkit for building universal AI coding agent plugins that work across Claude Code, Cursor, Codex, and GitHub Copilot CLI.",
5
5
  "author": {
6
6
  "name": "unional"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-plugin",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "Research and design toolkit for building universal AI coding agent plugins that work across Claude Code, Cursor, Codex, and GitHub Copilot CLI.",
5
5
  "author": {
6
6
  "name": "unional"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-plugin",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "Research and design toolkit for building universal AI coding agent plugins that work across Claude Code, Cursor, Codex, and GitHub Copilot CLI.",
5
5
  "author": {
6
6
  "name": "unional"
@@ -9,7 +9,6 @@ description: >
9
9
  mention AgentSkills explicitly.
10
10
  tools: Read, TaskCreate, TaskGet, TaskList, TaskStop, TaskUpdate, WebFetch, WebSearch, Edit, NotebookEdit, Write, Bash
11
11
  model: opus
12
- memory: project
13
12
  ---
14
13
 
15
14
  # AgentSkills Specialist
@@ -46,7 +45,7 @@ A `SKILL.md` must include:
46
45
 
47
46
  When asked to audit `agent-skills:*` skills:
48
47
  1. List all installed skills by scanning `skills/` and `.agents/skills/`.
49
- 2. For each skill, check: completeness of SKILL.md, cross-runtime portability, alignment with current AgentSkills spec, and consistency with project CLAUDE.md rules.
48
+ 2. For each skill, check: completeness of SKILL.md, cross-runtime portability, alignment with current AgentSkills spec, and consistency with the project's own agent instructions.
50
49
  3. Produce a prioritized improvement list (see Output format).
51
50
  4. Propose concrete edits or new content — do not just describe problems.
52
51
 
@@ -69,25 +68,15 @@ For skill creation or edits, write the full `SKILL.md` content directly — no p
69
68
 
70
69
  ## Human-in-the-loop Rules
71
70
 
72
- - Do not commit changes without explicit user confirmation.
71
+ - Do not commit changes unless the user asks.
73
72
  - Do not write files outside `skills/` or `.agents/skills/` without user approval.
74
73
  - If a skill change affects cross-runtime compatibility, surface the impact before applying it.
75
74
 
76
75
  ## Key Research Context
77
76
 
78
- - No universal plugin manifest exists — rely on `skills/<name>/SKILL.md` + MCP servers as the true universal minimum.
77
+ - A root `plugin.json` on Agent Plugins Spec 1.0.0 is the universal manifest; `skills/<name>/SKILL.md` is the universal skill entry point.
79
78
  - Hook event naming is the sharpest incompatibility: PascalCase (Claude Code, Codex), camelCase (Cursor, Copilot CLI), snake_case (Windsurf).
80
79
  - Only Claude Code and Cursor publish machine-readable JSON Schemas.
81
- - open-plugin-spec v1.0.0 is the closest standard but has no confirmed universal search path.
82
-
83
- ## Commit Discipline
84
-
85
- Follow project commit rules:
86
- - Commit each completed skill or improvement as its own unit.
87
- - Use `feat:`, `fix:`, `refactor:`, or `docs:` prefixes.
88
- - Never use `git add .` or `git add -A`.
89
- - Run validation before committing.
90
- - Use the `commit-work` skill for staging and message writing.
91
80
 
92
81
  ## Out of Scope
93
82
 
@@ -102,7 +91,6 @@ Before declaring any skill complete:
102
91
  - [ ] No runtime-specific assumptions are baked into the universal layer.
103
92
  - [ ] Project-level `.agents/skills/<name>/SKILL.md` extension is merged, not duplicated.
104
93
  - [ ] Examples are concrete and runnable.
105
- - [ ] Improvement is committed per commit discipline rules.
106
94
 
107
95
  ## Self-Verification
108
96
 
@@ -115,7 +103,7 @@ After producing any skill definition or audit report, ask yourself:
115
103
 
116
104
  **Create a skill:**
117
105
  > "I need to create a commit-work skill for this project"
118
- → Scaffold `skills/commit-work/SKILL.md` with correct structure, run quality gates, commit.
106
+ → Scaffold `skills/commit-work/SKILL.md` with correct structure, run quality gates.
119
107
 
120
108
  **Audit agent-skills:**
121
109
  > "Let's see what we can improve on the agent-skills we're using"
@@ -9,7 +9,6 @@ description: >
9
9
  mention AgentSkills explicitly.
10
10
  tools: Read, TaskCreate, TaskGet, TaskList, TaskStop, TaskUpdate, WebFetch, WebSearch, Edit, NotebookEdit, Write, Bash
11
11
  model: opus
12
- memory: project
13
12
  ---
14
13
 
15
14
  # AgentSkills Specialist
@@ -46,7 +45,7 @@ A `SKILL.md` must include:
46
45
 
47
46
  When asked to audit `agent-skills:*` skills:
48
47
  1. List all installed skills by scanning `skills/` and `.agents/skills/`.
49
- 2. For each skill, check: completeness of SKILL.md, cross-runtime portability, alignment with current AgentSkills spec, and consistency with project CLAUDE.md rules.
48
+ 2. For each skill, check: completeness of SKILL.md, cross-runtime portability, alignment with current AgentSkills spec, and consistency with the project's own agent instructions.
50
49
  3. Produce a prioritized improvement list (see Output format).
51
50
  4. Propose concrete edits or new content — do not just describe problems.
52
51
 
@@ -69,25 +68,15 @@ For skill creation or edits, write the full `SKILL.md` content directly — no p
69
68
 
70
69
  ## Human-in-the-loop Rules
71
70
 
72
- - Do not commit changes without explicit user confirmation.
71
+ - Do not commit changes unless the user asks.
73
72
  - Do not write files outside `skills/` or `.agents/skills/` without user approval.
74
73
  - If a skill change affects cross-runtime compatibility, surface the impact before applying it.
75
74
 
76
75
  ## Key Research Context
77
76
 
78
- - No universal plugin manifest exists — rely on `skills/<name>/SKILL.md` + MCP servers as the true universal minimum.
77
+ - A root `plugin.json` on Agent Plugins Spec 1.0.0 is the universal manifest; `skills/<name>/SKILL.md` is the universal skill entry point.
79
78
  - Hook event naming is the sharpest incompatibility: PascalCase (Claude Code, Codex), camelCase (Cursor, Copilot CLI), snake_case (Windsurf).
80
79
  - Only Claude Code and Cursor publish machine-readable JSON Schemas.
81
- - open-plugin-spec v1.0.0 is the closest standard but has no confirmed universal search path.
82
-
83
- ## Commit Discipline
84
-
85
- Follow project commit rules:
86
- - Commit each completed skill or improvement as its own unit.
87
- - Use `feat:`, `fix:`, `refactor:`, or `docs:` prefixes.
88
- - Never use `git add .` or `git add -A`.
89
- - Run validation before committing.
90
- - Use the `commit-work` skill for staging and message writing.
91
80
 
92
81
  ## Out of Scope
93
82
 
@@ -102,7 +91,6 @@ Before declaring any skill complete:
102
91
  - [ ] No runtime-specific assumptions are baked into the universal layer.
103
92
  - [ ] Project-level `.agents/skills/<name>/SKILL.md` extension is merged, not duplicated.
104
93
  - [ ] Examples are concrete and runnable.
105
- - [ ] Improvement is committed per commit discipline rules.
106
94
 
107
95
  ## Self-Verification
108
96
 
@@ -115,7 +103,7 @@ After producing any skill definition or audit report, ask yourself:
115
103
 
116
104
  **Create a skill:**
117
105
  > "I need to create a commit-work skill for this project"
118
- → Scaffold `skills/commit-work/SKILL.md` with correct structure, run quality gates, commit.
106
+ → Scaffold `skills/commit-work/SKILL.md` with correct structure, run quality gates.
119
107
 
120
108
  **Audit agent-skills:**
121
109
  > "Let's see what we can improve on the agent-skills we're using"
package/dist/cli.mjs CHANGED
@@ -14709,7 +14709,7 @@ const storages = {
14709
14709
  }
14710
14710
  };
14711
14711
  //#endregion
14712
- //#region ../../node_modules/.pnpm/@cyberuni+agent-harness@0.5.0_typescript@6.0.3/node_modules/@cyberuni/agent-harness/dist/index.js
14712
+ //#region ../../node_modules/.pnpm/@cyberuni+agent-harness@0.6.0_typescript@6.0.3/node_modules/@cyberuni/agent-harness/dist/index.js
14713
14713
  const harnessIds = [
14714
14714
  "claude-code",
14715
14715
  "cursor",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "universal-plugin",
3
- "version": "0.12.1",
3
+ "version": "0.12.2",
4
4
  "description": "Universal AI agent plugin build tool",
5
5
  "keywords": [
6
6
  "agent-plugin",
@@ -39,7 +39,7 @@
39
39
  "agents"
40
40
  ],
41
41
  "dependencies": {
42
- "@cyberuni/agent-harness": "^0.5.0",
42
+ "@cyberuni/agent-harness": "^0.6.0",
43
43
  "@repobuddy/upx": "^0.2.0",
44
44
  "@toon-format/toon": "^4.1.1",
45
45
  "commander": "^15.0.0",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "universal-plugin",
4
- "version": "0.12.1",
4
+ "version": "0.12.2",
5
5
  "description": "Research and design toolkit for building universal AI coding agent plugins that work across Claude Code, Cursor, Codex, and GitHub Copilot CLI.",
6
6
  "author": {
7
7
  "name": "unional"
@@ -111,7 +111,7 @@ Validation runs before the first write, so a failed build leaves the tree untouc
111
111
  | a missing `plugin.json` | `--root` is not the plugin root | point `--root` at the directory holding the canonical manifest |
112
112
  | codex requires `description` / `version` | Codex rejects a manifest without them | add them to `plugin.json` through `init-universal-plugin`, or `version` for the number |
113
113
  | a `--vendor` not among the targets | the manifest does not declare that vendor | declare it through `init-universal-plugin`, or drop the flag |
114
- | `vendorExtensions` or `.plugin/plugin.json` | a pre-0.6 layout this CLI no longer reads | run `doctor-universal-plugin`, which names the migration |
114
+ | `vendorExtensions` or `.plugin/plugin.json` | a layout this CLI does not read | run `doctor-universal-plugin`, which names the migration |
115
115
 
116
116
  ## Do not
117
117
 
@@ -123,8 +123,8 @@ Validation runs before the first write, so a failed build leaves the tree untouc
123
123
  - **Expect a build to pin skill `npx` references.** That is the release-time `plugin bundle`, not
124
124
  this step.
125
125
  - **Expect a build to copy governances into skills.** A skill loads a reference through the
126
- `reference` skill in the `cyber-agent-harness` plugin; the build no longer copies them, and
127
- `--check` is gone.
126
+ `reference` skill in the `cyber-agent-harness` plugin; the build does not copy them and has no
127
+ `--check` flag.
128
128
 
129
129
  ## Related skills
130
130
 
@@ -58,7 +58,7 @@ to derive. Never report it as a fault.
58
58
  A plugin that **does** declare those reports `copilot-cli` as `built` at `com.github.copilot/`
59
59
  instead. Declaring the canonical `$schema` moves them there: Copilot CLI stops reading them from the
60
60
  plugin root entirely, so a root-only layout loads none of them and says nothing
61
- ([ADR-0015](../../.agents/spec/design/decisions/0015-copilot-spec-mode-namespace.md)). That is what
61
+ ([ADR-0015](https://github.com/cyberuni/universal-plugin/blob/main/packages/universal-plugin/.agents/spec/design/decisions/0015-copilot-spec-mode-namespace.md)). That is what
62
62
  `copilot-root-components` reports.
63
63
 
64
64
  If `node` is unavailable, read `scripts/doctor.mjs` and apply the same checks by hand: it composes
@@ -85,7 +85,7 @@ Each `code` below is what the script emits.
85
85
  | `copilot-root-components` | agents, commands, rules, hooks, or LSP servers sit at the plugin root with no copy under `com.github.copilot/` — Copilot CLI reads them only from there in spec mode, so it loads none of them, silently | `/universal-plugin:build-plugin` |
86
86
  | `stale-github-plugin` | a leftover `.github/plugin/plugin.json` from an older build — shadowed by root and no longer generated | `/universal-plugin:remove-plugin` |
87
87
  | `shadowing-manifest` | a `.plugin/plugin.json` exists — it outranks root in Copilot CLI's search order and silently shadows the canonical manifest | `/universal-plugin:remove-plugin` |
88
- | `no-vendors` | no vendor is declared, so the build writes nothing and no runtime reads the plugin. On a repository still on the pre-0.6 layout the build stops rather than reporting an empty result, and the detail says so — read it beside `legacy-manifest` and `shadowing-manifest`, which name the signals | `/universal-plugin:init-universal-plugin`, adopt route on the pre-0.6 layout, else update route |
88
+ | `no-vendors` | no vendor is declared, so the build writes nothing and no runtime reads the plugin. When the repository carries `vendorExtensions` or a `.plugin/plugin.json`, the build stops rather than reporting an empty result, and the detail says so — read it beside `legacy-manifest` and `shadowing-manifest`, which name the signals | `/universal-plugin:init-universal-plugin`, adopt route when `vendorExtensions` or `.plugin/plugin.json` is present, else update route |
89
89
  | `package-path-missing` | `packagePath` names a directory with no readable `package.json` | fix `packagePath`, or create the package |
90
90
  | `package-path-unknown` | the CLI could not report `packagePath` (a version too old to read it), so `version-drift` and `unreleased-content` were skipped rather than guessed | upgrade universal-plugin |
91
91
  | `misplaced-package-path` | `plugin.json` declares `packagePath` under `extensions["org.cyberuni.universal-plugin"]`, where the CLI never reads it — the plugin is silently treated as not shipping to npm | move it to `.agents/universal-plugin.json`, relative to the plugin root |
@@ -150,7 +150,7 @@ other.
150
150
  A runtime keys its plugin cache on the version, not on content: Claude Code resolves the version,
151
151
  finds it unchanged, and reports *"already at the latest version"* without re-extracting. So content
152
152
  pushed without a bump reaches nobody who already installed the plugin, and neither side is told
153
- ([ADR-0010](../../.agents/spec/design/decisions/0010-version-policy.md) §6).
153
+ ([ADR-0010](https://github.com/cyberuni/universal-plugin/blob/main/packages/universal-plugin/.agents/spec/design/decisions/0010-version-policy.md) §6).
154
154
 
155
155
  The script compares the shipped paths — the canonical manifest, the skills directory, `agents/`,
156
156
  `governances/`, `references/`, `mcp.json` — against the commit that set the version the manifest carries now, and
@@ -158,7 +158,7 @@ emits `unreleased-content` for anything committed since. Uncommitted work is not
158
158
  shipped.
159
159
 
160
160
  Two cases are deliberately silent. A plugin that declares `packagePath` is skipped, because there the
161
- release picks the number (ADR-0010 §2) and content waiting ahead of the last released version is the
161
+ release picks the number ([ADR-0010](https://github.com/cyberuni/universal-plugin/blob/main/packages/universal-plugin/.agents/spec/design/decisions/0010-version-policy.md) §2) and content waiting ahead of the last released version is the
162
162
  normal state of a branch. A tree with no git history is skipped rather than guessed at.
163
163
 
164
164
  The repair is the bump, and it belongs to `/universal-plugin:version`. Judge first whether the change
@@ -18,7 +18,7 @@ That asymmetry does not extend to components. Declaring the canonical `$schema`
18
18
  Open Plugin Spec mode, and Copilot CLI then reads its **native** components — agents, commands,
19
19
  rules, hooks, LSP servers — from a `com.github.copilot/` directory rather than the plugin root.
20
20
  Authoring still happens at the canonical locations: `plugin build` derives that directory
21
- ([ADR-0015](../../.agents/spec/design/decisions/0015-copilot-spec-mode-namespace.md)), so do not tell
21
+ ([ADR-0015](https://github.com/cyberuni/universal-plugin/blob/main/packages/universal-plugin/.agents/spec/design/decisions/0015-copilot-spec-mode-namespace.md)), so do not tell
22
22
  an author to move `agents/` into it — the root copy is what the other three vendors derive from. See
23
23
  [`references/vendors/copilot-cli.md`](./references/vendors/copilot-cli.md).
24
24
 
@@ -30,7 +30,7 @@ runtime you are enabling, and only those.
30
30
  | Claude Code | `.claude-plugin/plugin.json` | none | `references/vendors/claude-code.md` |
31
31
  | Cursor | `.cursor-plugin/plugin.json` | none | `references/vendors/cursor.md` |
32
32
  | Codex | `.codex-plugin/plugin.json` | `version`, `description` | `references/vendors/codex.md` |
33
- | GitHub Copilot CLI | none — reads root `plugin.json` | native components derived under `com.github.copilot/` ([ADR-0015](../../.agents/spec/design/decisions/0015-copilot-spec-mode-namespace.md)) | `references/vendors/copilot-cli.md` |
33
+ | GitHub Copilot CLI | none — reads root `plugin.json` | native components derived under `com.github.copilot/` ([ADR-0015](https://github.com/cyberuni/universal-plugin/blob/main/packages/universal-plugin/.agents/spec/design/decisions/0015-copilot-spec-mode-namespace.md)) | `references/vendors/copilot-cli.md` |
34
34
 
35
35
  This skill owns the **authoring** side: the plugin a project ships. Setting a repository up to
36
36
  *consume* skills — the `.agents/skills/` layout, `AGENTS.md`, per-harness bridges — is
@@ -127,7 +127,7 @@ Route by what Phase 2 found. Read exactly the reference for the work at hand —
127
127
  | canonical, and a vendor or component changes | edit `extensions`, then rebuild | [`references/update.md`](./references/update.md) |
128
128
 
129
129
  Three asks leave this skill rather than routing inside it. Hand them over instead of improvising a
130
- route: **`doctor`** reports what is declared, built, stale, or drifting; **`version`** moves the
130
+ route: **`doctor-universal-plugin`** reports what is declared, built, stale, or drifting; **`version`** moves the
131
131
  number; **`remove-plugin`** deletes derived manifests or the plugin itself.
132
132
 
133
133
  Every route ends in the same two commands. Scaffold with the CLI that shipped beside this skill:
@@ -193,7 +193,7 @@ that vendor's `harnesses` entry, or to the drop list you reported in Phase 3, be
193
193
 
194
194
  Audit each skill the plugin ships, per [`references/create.md`](./references/create.md) Step 6.
195
195
  Report what was created, adopted, derived, and left alone. For a fuller read of the plugin's state
196
- than this phase gives — drift, version skew, shadowing manifests — hand off to `doctor`.
196
+ than this phase gives — drift, version skew, shadowing manifests — hand off to `doctor-universal-plugin`.
197
197
 
198
198
  This skill is not a formatter. If the project has one, run it over the written files and say so.
199
199
 
@@ -221,7 +221,7 @@ This skill is not a formatter. If the project has one, run it over the written f
221
221
 
222
222
  | Task | Skill |
223
223
  |------|-------|
224
- | Diagnose a plugin — what is declared, built, stale, or drifting | `doctor` |
224
+ | Diagnose a plugin — what is declared, built, stale, or drifting | `doctor-universal-plugin` |
225
225
  | Make the repository installable, and document how | `marketplace` |
226
226
  | Move the plugin's version, or reconcile one that drifted | `version` |
227
227
  | Delete derived manifests, or the whole plugin | `remove-plugin` |
@@ -85,7 +85,7 @@ Copilot CLI. The reverse does not hold: Claude Code rejects the Codex catalog fo
85
85
  | Task | Skill |
86
86
  |------|-------|
87
87
  | Create or change the plugin being listed | `init-universal-plugin` |
88
- | Check that the plugin's own manifests are current | `doctor` |
88
+ | Check that the plugin's own manifests are current | `doctor-universal-plugin` |
89
89
  | Move the version users will install | `version` |
90
90
  | Submit to the shared marketplace repository instead | `publish-plugin` |
91
91
 
@@ -83,5 +83,5 @@ this skill does.
83
83
  | Task | Skill |
84
84
  |------|-------|
85
85
  | Remove a vendor from what the plugin declares | `init-universal-plugin`, update route |
86
- | Confirm what is stale, shadowing, or unbuilt before deleting | `doctor` |
86
+ | Confirm what is stale, shadowing, or unbuilt before deleting | `doctor-universal-plugin` |
87
87
  | Take a published plugin out of a marketplace listing | `publish-plugin` |
@@ -115,7 +115,7 @@ Every guard resolves before the first write, so a failed run leaves the tree unt
115
115
  |------|-------|
116
116
  | Create, adopt, or change what the plugin declares | `init-universal-plugin` |
117
117
  | Re-derive the vendor manifests by hand | `build-plugin` |
118
- | Check whether the two authored versions agree | `doctor` |
118
+ | Check whether the two authored versions agree | `doctor-universal-plugin` |
119
119
  | Add a changeset for the change being released | `add-changeset` |
120
120
  | Refresh the repository's own marketplace catalogs after a bump | `marketplace` |
121
121
  | List the released plugin in the shared marketplace | `publish-plugin` |