Skip to content

feat(provider): add Cursor#3

Merged
francisfuzz merged 19 commits intomainfrom
feat/cursor-provider
Jan 20, 2026
Merged

feat(provider): add Cursor#3
francisfuzz merged 19 commits intomainfrom
feat/cursor-provider

Conversation

@francisfuzz
Copy link
Copy Markdown
Collaborator

@francisfuzz francisfuzz commented Jan 17, 2026

Summary

This PR adds Cursor as a provider for the site! ➤

Changes

Cursor Feature Corrections (Verified against cursor.com/docs)

  • Lifecycle Hooks: Added full support (sessionStart, sessionEnd, beforeShellExecution, afterShellExecution, etc.) via .cursor/hooks.json
  • 5 Primitives upgraded from partial → full:
    • Skills/Workflows: .cursor/skills/*/SKILL.md (portable skill modules)
    • Tool Integrations (MCP): .cursor/mcp.json (stdio, SSE, HTTP support)
    • Slash Commands: .cursor/commands/*.md (reusable prompts with parameters)
    • Custom Agents: .cursor/agents/*.md (subagents with model selection)
    • Permissions & Guardrails: Approvals, .cursorignore, LLM safety controls

UI & Data

  • Added Cursor tab to Interactive File Tree component (homepage)
  • Updated comparison data with corrected support levels
  • Regenerated llms-full.txt with verified Cursor features
  • Updated E2E tests (Full Support: 27→32 badges, Partial: 5→0)

Attribution

  • Added francisfuzz to footer credits alongside jonmagic

Result

Cursor now has:

  • 11/11 primitives with full support (parity with Claude Code and GitHub Copilot)
  • 0 partial support items
  • Fully integrated into file tree visualization and comparison tables
  • All features verified against official Cursor documentation
  • All 65 E2E tests passing

Testing

bun run typecheck  # No errors
bun run test       # 65/65 passing
bun run dev        # Visit http://localhost:5173

What to verify:

  1. Provider Comparison section shows all 3 providers with full support (except Copilot Hooks: N/A)
  2. File Tree page has Cursor tab with ➤ icon alongside Copilot and Claude
  3. All 32 "Full Support" badges display correctly
  4. Copy buttons work for all 3 providers
  5. Footer shows both jonmagic and francisfuzz linked

References

All Cursor features verified against:

Added cursor-research-requirements.md and cursor-implementation-strategy.md
to track work for adding Cursor as a first-class provider for the site.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@francisfuzz
Copy link
Copy Markdown
Collaborator Author

francisfuzz commented Jan 17, 2026

:octocat: 💭 Meta: having a skill to create new providers would be useful after going through the work end-to-end.

Manifestation in progress: #4

- Add 'cursor' to Provider type in primitives.ts and fileTree.ts
- Create cursorTree and cursorGlobalTree with project/global configuration
- Update PrimitiveCard providerLabels to include Cursor
- All TypeScript type checks pass
- Update ComparisonRow interface with cursor field
- Add cursor implementation data for all 11 primitives
- Support levels: 6 full, 5 partial, 0 none (across all primitives)
- Includes implementation descriptions and file locations
- Add Cursor column (4th column) with ✨ emoji header
- Update ExpandedRow grid from 2 columns to 3 columns (md:grid-cols-3)
- Add Cursor details section with implementation and copy button
- Update colSpan from 3 to 4 for expanded rows
- Support copy-to-clipboard for all 3 providers
- Add Cursor column header assertion to header test
- Update support badge counts (18 full, 5 partial with Cursor)
- Add Cursor implementation text verification in expansion test
- Add Cursor file location verification (.cursor/instructions.md)
- Verify 3 copy buttons present in expanded row
- Update App.tsx comparison section description to mention Cursor
- Update Hero.tsx tagline: 'Copilot and Claude Code' → 'Copilot, Claude Code, and Cursor'
- Reflects 3-provider comparison support across site
- Update 'AI Primitives' from 9 to 11 in feature list
- Update provider comparison description to include Cursor
- Add Cursor section with key paths (settings, instructions, rules)
- Update metadata to reflect 3-provider support
- Update provider name mapping to handle 'cursor' provider
- Was defaulting to 'Claude Code' for unknown providers
- Now correctly displays 'Cursor' in llms-full.txt tables
- Regenerated llms-full.txt with cursor primitives data
- All 11 primitives now include cursor implementations
- Provider names correctly display (Copilot, Claude Code, Cursor)
- Includes cursor support levels across all primitives
@francisfuzz
Copy link
Copy Markdown
Collaborator Author

👋🏽 @jonmagic - Checking in at the 80% mark I had gone between introducing Cursor as another provider along with Codex from OpenAI. Do you have any preferences for which one should land first? Although this one is pretty fleshed out and my remaining "20%" is to personally validate everything that's introduced here and push up any fixes before marking ready for review.

Please let me know and once I free up again, I'll get to it! 🫡

francisfuzz and others added 7 commits January 17, 2026 21:04
Cursor now supports lifecycle hooks (sessionStart, sessionEnd, beforeShellExecution, afterShellExecution, beforeMCPExecution, afterMCPExecution, and other event-based hooks) configured via .cursor/hooks.json, bringing full parity with Claude's hooks implementation.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Update E2E test to reflect Cursor's new full support for Lifecycle Hooks. Full Support badge count increases from 18 to 27 as Cursor Hooks is now fully supported instead of marked as unavailable.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Verified against official Cursor documentation (cursor.com/docs):

- **Skills/Workflows**: Full support via `.cursor/skills/*/SKILL.md` (same pattern as Claude/Copilot)
- **Tool Integrations (MCP)**: Full support via `.cursor/mcp.json` with stdio, SSE, and HTTP transports
- **Slash Commands**: Full support via `.cursor/commands/*.md` with parameters and reusable workflows
- **Custom Agents**: Full support via `.cursor/agents/*.md` subagents with model selection and context isolation
- **Permissions & Guardrails**: Full support with approvals, .cursorignore, LLM safety controls, and security hooks

Updated both data files to reflect correct support levels and implementation details.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Update E2E test assertions to reflect 5 additional primitives now marked as full support for Cursor:
- Full Support badges increase from 27 to 32
- Partial badges reduce from 5 to 0 (no more partial support items across any provider)

All 65 E2E tests pass.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Updated llms-full.txt to reflect 5 primitives now marked as full support for Cursor (Skills, MCP, Slash Commands, Custom Agents, Guardrails) and ensure all latest feature descriptions are current.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Add Cursor as a selectable provider in the Interactive File Tree component on the homepage. Users can now switch between GitHub Copilot, Claude Code, and Cursor to view provider-specific file structure layouts.

Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
@francisfuzz francisfuzz self-assigned this Jan 18, 2026
@francisfuzz francisfuzz marked this pull request as ready for review January 18, 2026 05:27
@francisfuzz francisfuzz requested review from Copilot and jonmagic and removed request for Copilot January 18, 2026 05:27
@francisfuzz francisfuzz changed the title feat: add Cursor as a first-class provider feat: add Cursor as a provider Jan 18, 2026
@francisfuzz francisfuzz changed the title feat: add Cursor as a provider feat(provider: add Cursor Jan 18, 2026
@francisfuzz francisfuzz changed the title feat(provider: add Cursor feat(provider): add Cursor Jan 18, 2026
@francisfuzz
Copy link
Copy Markdown
Collaborator Author

Decided to just go for it. 😎 Ready for review, @jonmagic!

Sibling PRs: #4 , #5

Copy link
Copy Markdown
Collaborator

@jonmagic jonmagic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't reviewed the other PRs to see if they cover this but I'm wondering if there needs to be provider specific instructions on the skills, agents, or map pages or if those can be fairly provider agnostic since they are so similar 🤔

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file trees for cursor look pretty slim compared to the other two, should we build them out to have all of the equivalents where cursor has an equivalent?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonmagic - We should absolutely build them out. Working on it and will follow up with a reference once done!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file trees for cursor look pretty slim compared to the other two, should we build them out to have all of the equivalents where cursor has an equivalent?

Excellent catch, as I thought my initial research tasks had already covered that. 🙇🏽

#9 hydrates Cursor's file tree. Will incorporate that here after my own review.


Coming back to your top-level comment here:

I haven't reviewed the other PRs to see if they cover this but I'm wondering if there needs to be provider specific instructions on the skills, agents, or map pages or if those can be fairly provider agnostic since they are so similar 🤔

Based on this, I've updated the PR introducing a skill for adding a provider to the process, checklist, and common mistake references so this is covered this the first time: 7ac1168. 😉

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jonmagic - Updated Cursor's filetree, see motion picture ⬇️ -- this is ready for re-review! 🙇🏽

cursor-filetree

Addresses PR #3 review comment about sparse Cursor file tree by building
out comprehensive examples matching Copilot/Claude coverage.

Added to cursorTree (project-level):
- .cursor/mcp.json - MCP server configuration
- .cursor/hooks.json - Lifecycle hooks (sessionStart, beforeShellExecution, etc.)
- .cursor/agents/ - 2 subagent examples (code-reviewer, planner)
- .cursor/skills/ - 2 skill workflows (debug-ci, refactor)
- .cursor/commands/ - 2 slash commands (commit, review-pr)
- .cursor/rules/backend.md - Additional path-scoped rule
- Nested .cursor/instructions.md in frontend/ and backend/ directories

Added to cursorGlobalTree (user-level):
- ~/.cursor/mcp.json - Global MCP configuration
- ~/.cursor/agents/verifier.md - Global verification agent
- ~/.cursor/skills/git-pr-workflow/ - Global PR workflow skill
- ~/.cursor/commands/explain.md - Global code explanation command

All examples verified against official Cursor documentation:
- cursor.com/docs/context/commands
- cursor.com/docs/context/skills
- cursor.com/docs/context/subagents
- cursor.com/docs/context/mcp
- cursor.com/docs/agent/hooks

Impact:
- File tree expanded from 64 lines → ~556 lines
- Now demonstrates all 11/11 primitives with full support
- Maintains parity with Copilot and Claude file trees
- All 65 E2E tests passing

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
francisfuzz added a commit that referenced this pull request Jan 20, 2026
Based on learnings from Cursor file tree expansion (PR #9), enhanced the
skill with critical guidance on building comprehensive file trees.

Key additions:

**PROCESS.md - Stream 2.3 File Tree Completeness Guidelines:**
- Requirement to demonstrate ALL supported primitives with 2-3 examples each
- Importance of both project-level AND global-level examples
- Need for nested directory examples (frontend/.cursor/instructions.md)
- Guidance on using exact syntax from official documentation
- File tree parity check: compare line counts with other providers
- Research sources for finding file tree examples in provider docs
- Real-world example: Cursor tree expanded from 64→556 lines

**CHECKLIST.md enhancements:**
- Added File Tree Completeness Check subsection with 6 verification steps
- Added parity check: compare line counts across providers
- Added common mistake: "File tree too sparse compared to other providers"
- Included real example: Cursor 64 lines vs Copilot 386 lines
- Emphasized using exact syntax from official docs (frontmatter, file naming)

**Why this matters:**
The file tree is educational/reference material that demonstrates provider
capabilities to users. Sparse file trees make providers look incomplete even
when they have 11/11 full support. The Cursor tree initially had only 2
primitive types demonstrated (64 lines) compared to Copilot's 7 types (386
lines), making Cursor appear less capable despite having identical support.

These additions ensure future provider integrations build comprehensive file
trees from the start, avoiding the need for follow-up PRs.

Related: PR #9 (Cursor file tree expansion addressing PR #3 review feedback)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
francisfuzz added a commit that referenced this pull request Jan 20, 2026
Based on learnings from Cursor file tree expansion (PR #9), enhanced the
skill with critical guidance on building comprehensive file trees.

Key additions:

**PROCESS.md - Stream 2.3 File Tree Completeness Guidelines:**
- Requirement to demonstrate ALL supported primitives with 2-3 examples each
- Importance of both project-level AND global-level examples
- Need for nested directory examples (frontend/.cursor/instructions.md)
- Guidance on using exact syntax from official documentation
- File tree parity check: compare line counts with other providers
- Research sources for finding file tree examples in provider docs
- Real-world example: Cursor tree expanded from 64→556 lines

**CHECKLIST.md enhancements:**
- Added File Tree Completeness Check subsection with 6 verification steps
- Added parity check: compare line counts across providers
- Added common mistake: "File tree too sparse compared to other providers"
- Included real example: Cursor 64 lines vs Copilot 386 lines
- Emphasized using exact syntax from official docs (frontmatter, file naming)

**Why this matters:**
The file tree is educational/reference material that demonstrates provider
capabilities to users. Sparse file trees make providers look incomplete even
when they have 11/11 full support. The Cursor tree initially had only 2
primitive types demonstrated (64 lines) compared to Copilot's 7 types (386
lines), making Cursor appear less capable despite having identical support.

These additions ensure future provider integrations build comprehensive file
trees from the start, avoiding the need for follow-up PRs.

Related: PR #9 (Cursor file tree expansion addressing PR #3 review feedback)

Co-Authored-By: Jonathan Hoyt <jonmagic@gmail.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
feat(filetree): expand Cursor provider with all 11 primitives
@francisfuzz francisfuzz requested a review from jonmagic January 20, 2026 14:50
Copy link
Copy Markdown
Collaborator

@jonmagic jonmagic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤘🏻

@francisfuzz francisfuzz merged commit 9fdd198 into main Jan 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants