Commit 34130b7
feat: add agent surfaces for Cursor, Windsurf, Gemini CLI (#121)
* feat: add agent surfaces for Cursor, Windsurf, Gemini CLI
Three new pull-request drift checks, the same shape #68 established for
Copilot: rules/context, skills and MCP configuration are files that arrive
by pull request, so each is a status check rather than a session hook.
Each path list was verified against current vendor documentation rather
than assumed from the issue's own table, per #78's own instruction, and
that changed the design in both directions:
- Cursor: .cursor/rules/*.mdc is measured one level deep only, since
Cursor's own forum documents nested rule files as not reliably read.
Skills, by contrast, are measured anywhere in the tree, since Cursor's
docs describe monorepo-scoped skill roots as intentional.
- Windsurf: caught mid-rebrand from Cognition's Devin acquisition.
.devin/rules/ is now preferred over .windsurf/rules/, verified directly
against docs.windsurf.com's redirect to docs.devin.ai, but the skills
surface has not moved the same way as of this writing, verified
separately rather than assumed. Windsurf has no repository-resident MCP
surface at all (home-directory only), so that engine ships with no mcp
category.
- Gemini CLI: GEMINI.md is measured anywhere in the tree per the
documented context hierarchy; MCP configuration lives in
.gemini/settings.json, digested whole rather than parsed for the one
key that matters, the same tradeoff Copilot's engine makes for
devcontainer.json.
All three share agentrust-capture-core, wire up tests + integrity CI
workflows matching the Copilot pattern's pinned action SHAs, and ship
empty approved baselines in this repo for self-check dogfooding.
152 tests passing across all engines in this repo; no collisions with
existing capture-core consumers.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: oluwajuwon omotayo <ginuxtechacademy@gmail.com>
* fix(cursor): recurse .cursor/rules and measure AGENTS.md
Direct confirmation against cursor.com/docs (Customize > Rules, Customize >
MCP) corrected two things the earlier forum/blog-sourced research got wrong:
- .cursor/rules/*.mdc was globbed one level only, based on a forum report
that nested rule files were unreliable. The official docs show nested
folders as an intended pattern (.cursor/rules/frontend/components.mdc,
presented as normal organisation, not an edge case), so a real nested rule
file was silently not tracked for drift. Now globs recursively.
- AGENTS.md was missing entirely. It's one of exactly four documented Cursor
rule types ("a simple alternative to .cursor/rules"), read from the project
root and subdirectories, with "Nested AGENTS.md support" as a shipped
improvement. Now measured anywhere in the tree, same as Copilot's engine
already does for the same file.
.cursorrules and the .cursor/mcp.json / ~/.cursor/mcp.json split are both
confirmed accurate as originally shipped; only the citations changed from
secondary-source hedging to direct doc references. .cursorrules itself does
not appear in current docs at all (four rule types are listed and it isn't
one of them), so its README note now says that plainly rather than repeating
an unconfirmed forum deprecation claim.
28 tests now (was 24): the flipped nested-mdc assertion plus four new
AGENTS.md/plain-.md-extension cases. Full repo suite still green (156 tests
across all five engines), self-check baseline still passes clean.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: oluwajuwon omotayo <ginuxtechacademy@gmail.com>
* docs(cursor): confirm skills paths directly against cursor.com/docs
The skills implementation (root-anywhere-in-tree, recursive category
subfolders, the four skill roots) turned out to already match Cursor's
official docs (Customize > Skills) exactly, unlike rules and AGENTS.md in the
previous commit. No logic change here, just upgrading the citations from
secondary-source hedging to a direct doc reference, and adding one honest gap
to the README: Cursor's built-in skills (/automate, /babysit, etc.) ship with
the product itself, not as repository files, so they're correctly out of
scope for a file-based check.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: oluwajuwon omotayo <ginuxtechacademy@gmail.com>
* docs(cursor): trim the .cursorrules note to what's actually confirmed
The previous wording cited "no staff confirmation" from Cursor's community
forum as if the forum had been checked broadly. Only one thread was actually
checked, once. Trimmed the claim to what's verifiable: .cursorrules is absent
from current docs, and whether Cursor still reads it is unconfirmed either
way, full stop.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: oluwajuwon omotayo <ginuxtechacademy@gmail.com>
* docs(cursor): reflect community consensus that .cursorrules still works
Additional research (independent of the earlier single forum thread) turned
up several converging community sources describing .cursorrules as still
read today, applied globally, just deprioritised in favour of .cursor/rules
.mdc files. Still not confirmed by any official Cursor source, so the note
says exactly that rather than treating it as settled.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: oluwajuwon omotayo <ginuxtechacademy@gmail.com>
---------
Signed-off-by: oluwajuwon omotayo <ginuxtechacademy@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>1 parent 09d4dd0 commit 34130b7
28 files changed
Lines changed: 2554 additions & 16 deletions
File tree
- .agentrust
- .github/workflows
- cursor
- engine
- tests
- gemini-cli
- engine
- tests
- windsurf
- engine
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
54 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
55 | 56 | | |
56 | | - | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
62 | 63 | | |
63 | 64 | | |
64 | 65 | | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
70 | 72 | | |
71 | 73 | | |
72 | 74 | | |
73 | | - | |
| 75 | + | |
74 | 76 | | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
81 | 84 | | |
82 | 85 | | |
83 | 86 | | |
| |||
0 commit comments