Skip to content

Commit 3b0296e

Browse files
Merge pull request #41 from cursor/add-agent-compatibility-plugin
Add agent-compatibility plugin
2 parents 9c39b57 + f006be7 commit 3b0296e

12 files changed

Lines changed: 395 additions & 7 deletions

File tree

.cursor-plugin/marketplace.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
"name": "ralph-loop",
3333
"source": "ralph-loop",
3434
"description": "Iterative self-referential AI loops using the Ralph Wiggum technique."
35+
},
36+
{
37+
"name": "agent-compatibility",
38+
"source": "agent-compatibility",
39+
"description": "CLI-backed repo compatibility scans plus Cursor agents that audit startup, validation, and docs against reality."
3540
}
3641
]
3742
}

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ Official Cursor plugins for popular developer tools, frameworks, and SaaS produc
44

55
## Plugins
66

7-
| Plugin | Category | Description |
8-
|:-------|:---------|:------------|
9-
| [Teaching](teaching/) | Utilities | Skill maps, practice plans, and feedback loops |
10-
| [Continual Learning](continual-learning/) | Developer Tools | Incremental transcript-driven AGENTS.md memory updates with high-signal bullet points |
11-
| [Cursor Team Kit](cursor-team-kit/) | Developer Tools | Internal-style workflows for CI, code review, shipping, and testing |
12-
| [Create Plugin](create-plugin/) | Developer Tools | Meta workflows for creating Cursor plugins with scaffolding and submission checks |
13-
| [Ralph Loop](ralph-loop/) | Developer Tools | Iterative self-referential AI loops using the Ralph Wiggum technique |
7+
| `name` | Plugin | Author | Category | `description` (from marketplace) |
8+
|:-------|:-------|:-------|:---------|:-------------------------------------|
9+
| `continual-learning` | [Continual Learning](continual-learning/) | Cursor | Developer Tools | Incremental transcript-driven memory updates for AGENTS.md using high-signal bullet points only. |
10+
| `cursor-team-kit` | [Cursor Team Kit](cursor-team-kit/) | Cursor | Developer Tools | Internal team workflows used by Cursor developers for CI, code review, and shipping. |
11+
| `create-plugin` | [Create Plugin](create-plugin/) | Cursor | Developer Tools | Scaffold and validate new Cursor plugins. |
12+
| `agent-compatibility` | [Agent Compatibility](agent-compatibility/) | Cursor | Developer Tools | CLI-backed repo compatibility scans plus Cursor agents that audit startup, validation, and docs against reality. |
13+
14+
Author values match each plugin’s `plugin.json` `author.name` (Cursor lists `plugins@cursor.com` in the manifest).
1415

1516
## Repository structure
1617

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"name": "agent-compatibility",
3+
"displayName": "Agent Compatibility",
4+
"version": "1.0.0",
5+
"description": "CLI-backed repo compatibility scans plus Cursor agents that audit startup, validation, and docs against reality.",
6+
"author": {
7+
"name": "Cursor",
8+
"email": "plugins@cursor.com"
9+
},
10+
"homepage": "https://github.com/cursor/plugins/tree/main/agent-compatibility",
11+
"repository": "https://github.com/cursor/plugins",
12+
"license": "MIT",
13+
"logo": "assets/avatar.png",
14+
"keywords": [
15+
"agent-compatibility",
16+
"agents",
17+
"compatibility",
18+
"cursor-plugin",
19+
"repo-audit",
20+
"startup",
21+
"validation"
22+
],
23+
"category": "developer-tools",
24+
"tags": [
25+
"agents",
26+
"compatibility",
27+
"quality",
28+
"workflow"
29+
],
30+
"skills": "./skills/",
31+
"agents": "./agents/"
32+
}

agent-compatibility/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Changelog
2+
3+
All notable changes to this plugin will be documented here.
4+
5+
## Unreleased
6+
7+
- Renamed the full-pass skill to `check-agent-compatibility`.
8+
- Renamed `deterministic-scan-review` to `compatibility-scan-review`.
9+
- Renamed `docs-reality-review` to `docs-reliability-review`.
10+
- Clarified the score model so `Agent Compatibility Score` is the final blended score and `Deterministic Compatibility Score` is the raw CLI score.
11+
- Tightened the README, marketplace copy, and agent wording for public release.

agent-compatibility/LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Cursor
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

agent-compatibility/README.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Agent Compatibility
2+
3+
Cursor plugin for checking how well a repo holds up under agent workflows. It pairs the published `agent-compatibility` CLI with focused reviews for startup, validation, and docs reliability.
4+
5+
By default, the full pass returns one overall score and one short list of the highest-leverage fixes. If the user wants the full breakdown, the agents can expose the component scores and the reasoning behind them.
6+
7+
## What it includes
8+
9+
- `check-agent-compatibility`: full compatibility pass
10+
- `compatibility-scan-review`: raw CLI-backed scan
11+
- `startup-review`: cold-start and bootstrap review
12+
- `validation-review`: small-change verification review
13+
- `docs-reliability-review`: docs reliability review
14+
15+
## Score model
16+
17+
- `Agent Compatibility Score`: final blended score shown to the user
18+
- `Deterministic Compatibility Score`: raw score from the published CLI
19+
- `Startup Compatibility Score`: how much guesswork it takes to boot the repo
20+
- `Validation Loop Score`: how practical it is to verify a small change
21+
- `Docs Reliability Score`: how closely the docs match the real setup path
22+
23+
The final score blends the deterministic scan with the workflow checks:
24+
25+
```text
26+
Agent Compatibility Score = round((deterministic * 0.7) + (workflow * 0.3))
27+
```
28+
29+
The CLI also reports an accelerator layer for committed agent tooling. That extra context informs recommendations, but it does not inflate the deterministic compatibility score itself.
30+
31+
## How to use it
32+
33+
Use `check-agent-compatibility` when you want the full pass. That skill fans out to the four review agents above, then returns a compact result:
34+
35+
```md
36+
## Agent Compatibility Score: 72/100
37+
38+
Top fixes
39+
- First issue
40+
- Second issue
41+
```
42+
43+
Ask for a breakdown if you want the component scores or the weighting.
44+
45+
## CLI notes
46+
47+
The plugin does not bundle the scanner. It runs the published npm package when needed.
48+
49+
Default scan (compact terminal dashboard):
50+
51+
```bash
52+
npx -y agent-compatibility@latest .
53+
```
54+
55+
JSON output:
56+
57+
```bash
58+
npx -y agent-compatibility@latest --json .
59+
```
60+
61+
Markdown output:
62+
63+
```bash
64+
npx -y agent-compatibility@latest --md .
65+
```
66+
67+
Plain text output:
68+
69+
```bash
70+
npx -y agent-compatibility@latest --text .
71+
```
72+
73+
Config override for ignored paths or weight overrides:
74+
75+
```bash
76+
npx -y agent-compatibility@latest . --config ./agent-compatibility.config.json
77+
```
78+
79+
The scanner is heuristic. It scores repo signals and surfaces likely friction, but it is not a full quality verdict on the codebase.
80+
81+
## Local install
82+
83+
If you want to use this plugin directly, symlink this directory into:
84+
85+
```bash
86+
~/.cursor/plugins/local/agent-compatibility
87+
```
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: compatibility-scan-review
3+
description: Run the agent-compatibility CLI and return the raw repository score with its main problems
4+
model: fast
5+
readonly: true
6+
---
7+
8+
# Compatibility scan review
9+
10+
Runs the published scanner and reports the raw repository score.
11+
12+
## Trigger
13+
14+
Use when the task is specifically to run the published `agent-compatibility` scanner and report the raw compatibility result.
15+
16+
## Workflow
17+
18+
1. Try the published scanner first with `npx -y agent-compatibility@latest --json "<path>"`.
19+
2. If you are clearly working inside the scanner source repo and the published package path fails for an environment reason, fall back to the local scanner entrypoint.
20+
3. Only say the scanner is unavailable after you have actually tried the published package, and the local fallback when it is clearly available.
21+
4. Prefer JSON when you need structured reasoning. Prefer Markdown when the user wants a direct report.
22+
5. Keep the scanner's real score, summary direction, and problem ordering.
23+
6. Do not bundle in startup, validation, or docs-reliability judgments. Those belong to separate agents.
24+
25+
## Output
26+
27+
Reply in **plain text only** (no markdown fences, no `#` headings, no emphasis syntax). Use this layout:
28+
29+
First line: `Deterministic Compatibility Score: <score>/100`
30+
31+
Then a short summary paragraph.
32+
33+
Then the line `Problems` followed by one bullet per line using `- `.
34+
35+
- Use the compatibility scan's real score.
36+
- Keep accelerator context separate from the deterministic compatibility score itself.
37+
- Include both rubric issues and accelerator issues when they matter.
38+
- If there are no meaningful problems, under Problems write `- None.`
39+
- Do not treat scanner availability as a defect in the target repo.
40+
- If the scanner truly cannot be run, say that the deterministic scan is unavailable because of the tool environment, not because the repo lacks a compatibility CLI.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: docs-reliability-review
3+
description: Check whether the documented setup and run paths reliably lead to the real working path
4+
model: fast
5+
readonly: true
6+
---
7+
8+
# Docs reliability review
9+
10+
Follows the written setup path and reports where the docs drift from reality.
11+
12+
## Trigger
13+
14+
Use when the user wants to know whether the repo documentation is actually trustworthy for an agent starting fresh.
15+
16+
## Workflow
17+
18+
1. If a compatibility scan result is already available from the parent task, use it as context. Otherwise run the compatibility scan once.
19+
2. Read the obvious documentation surfaces: `README`, setup docs, env docs, and contribution or agent guidance.
20+
3. Follow the documented setup and run path as literally as practical.
21+
4. Note where docs are accurate, stale, incomplete, or misleading.
22+
5. Pick a specific score instead of a round bucket. Start from these anchors and move a few points if the evidence clearly warrants it:
23+
- around `93/100` if the docs lead to the working path with little or no correction.
24+
- around `84/100` if the docs drift in places but an agent can still get to the right setup or run path without much guesswork.
25+
- around `68/100` if the docs are stale enough that the agent has to reconstruct important steps from the tree or CI.
26+
- around `27/100` if the docs point the agent down the wrong path or omit key steps you need to proceed.
27+
- around `12/100` if the real path depends on private docs or internal context that is not available in the repo.
28+
6. Prefer a specific score such as `81`, `85`, or `92` over a multiple of ten when that is the more honest read.
29+
30+
## Output
31+
32+
Reply in **plain text only** (no markdown fences, no `#` headings, no emphasis syntax). Use this layout:
33+
34+
First line: `Docs Reliability Score: <score>/100`
35+
36+
Then a short summary paragraph.
37+
38+
Then the line `Problems` followed by one bullet per line using `- `.
39+
40+
- Base the score on what happened when you followed the docs.
41+
- Build Problems from real mismatches, omissions, or misleading guidance.
42+
- If the repo is blocked on secrets or infrastructure, say so plainly and still use the same output shape.
43+
- Minor drift or stale references should not drag a good repo into the mid-60s if the real path is still easy to recover.
44+
- Score the damage from the drift, not the mere existence of drift.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
name: startup-review
3+
description: Try to bootstrap and start a repository like a cold agent, then report where the path breaks down
4+
model: fast
5+
readonly: true
6+
---
7+
8+
# Startup review
9+
10+
Tries the cold-start path and reports how much work it takes to get the repo running.
11+
12+
## Trigger
13+
14+
Use when the user wants to know whether a repo is actually easy to start, not just whether it claims to be.
15+
16+
## Workflow
17+
18+
1. If a compatibility scan result is already available from the parent task, use it as context. Otherwise run the compatibility scan once.
19+
2. Read the obvious startup surfaces: `README`, scripts, toolchain files, env examples, and workflow docs.
20+
3. Pick the most likely bootstrap path and startup command.
21+
4. Try to reach first success inside a fixed time budget.
22+
5. If the first path fails, allow a small amount of recovery and note what you had to infer.
23+
6. Do not infer a startup failure from a lockfile, a bound port, or an existing repo-local process by itself.
24+
7. Only call startup blocked or failed when your own startup attempt fails, or when the documented startup path cannot be completed within the budget.
25+
8. Pick a specific score instead of a round bucket. Start from these anchors and move a few points if the evidence clearly warrants it:
26+
- around `93/100` if the main startup path works inside the time budget, even if it needs ordinary local prerequisites such as Docker or a database.
27+
- around `84/100` if the repo starts, but only after some digging, a recovery step, or heavier setup than the docs suggest.
28+
- around `68/100` if a startup path probably exists but stays too manual, too ambiguous, or too expensive for normal agent use.
29+
- around `27/100` if you cannot get a credible startup path working from the repo and docs you have.
30+
- around `12/100` if the path is blocked on secrets, accounts, or infrastructure you cannot reasonably access.
31+
9. Prefer a specific score such as `82`, `85`, or `91` over a multiple of ten when that is the more honest read.
32+
10. Return the result in the same plain-text report shape as the deterministic scan.
33+
34+
## Output
35+
36+
Reply in **plain text only** (no markdown fences, no `#` headings, no emphasis syntax). Use this layout:
37+
38+
First line: `Startup Compatibility Score: <score>/100`
39+
40+
Then a short summary paragraph.
41+
42+
Then the line `Problems` followed by one bullet per line using `- `.
43+
44+
- Base the score on what happened when you actually tried to start the repo.
45+
- Build Problems from the real startup friction you observed.
46+
- If the repo is blocked on secrets, accounts, or external infra, say that plainly and still use the same output shape.
47+
- Do not assume a Next.js lockfile or a port that does not answer HTTP immediately is a repo problem.
48+
- Do not require an HTTP response unless the documented startup path clearly implies one and you actually started that path yourself.
49+
- If the environment starts successfully, treat that as a strong result. Record the friction, but do not score it like a near-failure.
50+
- Treat Docker, local services, and other standard dev prerequisites as friction, not failure.
51+
- Error-message quality is secondary here unless it actually prevents startup or recovery.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
name: validation-review
3+
description: Assess whether an agent can verify a small change without guessing or running an unnecessarily heavy loop
4+
model: fast
5+
readonly: true
6+
---
7+
8+
# Validation review
9+
10+
Checks whether an agent can verify a small change without falling back to a full-repo loop.
11+
12+
## Trigger
13+
14+
Use when the user wants to know whether an agent can safely verify its own work in a repo.
15+
16+
## Workflow
17+
18+
1. If a compatibility scan result is already available from the parent task, use it as context. Otherwise run the compatibility scan once.
19+
2. Inspect the repo's declared test, lint, check, and typecheck paths.
20+
3. Decide whether there is a practical scoped loop for a small change.
21+
4. Try the most relevant validation path.
22+
5. Judge whether the result is:
23+
- targeted
24+
- actionable
25+
- noisy
26+
- too expensive for normal iteration
27+
6. Pick a specific score instead of a round bucket. Start from these anchors and move a few points if the evidence clearly warrants it:
28+
- around `93/100` if there is a repeatable validation path and it gives useful signal, even if it is broader than ideal.
29+
- around `84/100` if validation works but is heavier than it should be, repo-wide, or split across a few commands.
30+
- around `68/100` if a valid loop probably exists but picking the right one takes guesswork or the output is too noisy to trust quickly.
31+
- around `27/100` if there is no practical validation loop you can actually use.
32+
- around `12/100` if the loop is blocked on secrets, accounts, or infrastructure you cannot reasonably access.
33+
7. Prefer a specific score such as `83`, `86`, or `91` over a multiple of ten when that is the more honest read.
34+
8. Return the result in the same plain-text report shape as the deterministic scan.
35+
36+
## Output
37+
38+
Reply in **plain text only** (no markdown fences, no `#` headings, no emphasis syntax). Use this layout:
39+
40+
First line: `Validation Loop Score: <score>/100`
41+
42+
Then a short summary paragraph.
43+
44+
Then the line `Problems` followed by one bullet per line using `- `.
45+
46+
- Base the score on the loop you actually tried.
47+
- Build Problems from the real validation friction you observed.
48+
- Prefer concrete issues like "only full-repo test path exists" over generic quality advice.
49+
- Do not score a repo in the mid-60s just because the loop is heavy. If an agent can still verify changes reliably, keep it in the good range and note the cost.
50+
- Noisy logs and extra warnings matter only when they hide the actual validation result.

0 commit comments

Comments
 (0)