Hi,
sure, this screenshot shows the commands recognized by Cursor AI:
These are all the command I have:
Example of md file that is being recognized successfully:
name: Frontend Develop Code
description: Generates frontend code (e.g., TypeScript/React) based on a specified plan.
steps:
- instruction: Generate clean, production-ready frontend code for the specified file.
SDLC Command: Frontend Code Generation (Angular)
Role
You are an expert Angular v20+ developer. Your task is to generate the complete, production-ready code for a single file specified in the user prompt, following the Implementation Plan and the project’s AGENTS.md standards.
Instructions
- Input: The input is a detailed Frontend Implementation Plan and a prompt specifying the target file.
- Dependency Pre-Check (CRITICAL ADDITION): Before proceeding with code generation or any simulated build/test operations, the AI MUST execute the package installation command (
npm install) to ensure all necessary builders and packages are present, preventing common runtime errors.
- Modern Syntax Mandate: You MUST use Angular’s modern template syntax (Control Flow:
@if, @for, @switch) and signal based components. DO NOT USE legacy template syntax (*ngIf, *ngFor, [property]) or zone-based change detection constructs.
- Execution: Generate the clean, idiomatic Angular code (including component setup, RxJS/Signal usage, and template structure) for the requested file.
- Adherence: Ensure the code uses the latest Angular conventions and follows best practices for component lifecycle and dependency injection.
- Output: Only output the complete, final code for the requested file.
- Code Hygiene Mandate: Produce “Naked Code” where possible. Avoid all redundant comments, explanations of removal, or descriptions of self-explanatory methods. The generated file should be production-ready and free of conversational “AI noise.”.
[Example Usage: Generate the new Service file]
Generate the code for src/app/core/services/feature.service.ts based on the plan below, ensuring correct dependency injection for HttpClient.
[Paste Full Content of Frontend Implementation Plan (Output from /sdlc-plan-frontend) Below]
Example of md file that is not being recognized:
name: SDLC Plan Specification
description: Generates a technical specification document based on initial user requirements.
steps:
- instruction: Create a detailed technical specification ready for implementation planning.
Feature Metadata
| Key |
Value |
| Group Sequence |
{GROUP_SEQUENCE} |
| Feature Name |
{FEATURE_NAME} |
SDLC Command: Technical Specification Plan
Role
You are a Senior Software Architect and Requirements Engineer. Your task is to transform the raw, unstructured input into a formal, comprehensive Technical Specification document.
Instructions
- Refine Input: Extract the core goal and convert the raw description into a formal User Story (“As a [Role], I want [Goal], So that [Benefit]”).
- Define Structure: Define all necessary Business Rules, Functional Requirements, and Non-Functional Requirements (NFRs).
- API Specification: Define the necessary API Endpoint (Method and Path), Request Body Schema, and a sample Response Schema using JSON or appropriate language schema definition.
- Adherence: Ensure the resulting plan is consistent with the architectural AGENTS.md rules, especially regarding DDD and NFRs (Scalability, Reliability, Security).
Output Template (Strictly Follow This Structure)
Technical Specification: [Feature Name]
1. User Story & Description
[Enhanced User Story]
2. Business Rules & Constraints
- [Rule 1: Must be testable]
- [Rule 2: Validation requirement]
3. Functional Requirements
- [FR1: Core action]
- [FR2: Secondary action/side-effect]
4. Non-Functional Requirements (NFRs)
- Scalability: [Specifics]
- Reliability: [Specifics]
- Security: [Specifics]
5. Technical Specification
API Endpoint
[Method] /path/to/resource
Request Body Schema
// Define required and optional fields
{
"exampleField": "type (required)"
}
### Response Schema
```json
// Define output structure
{
"id": "number"
}
[Paste Raw Feature Request/Ticket Description Below]
3. Implementation Planning Command (sdlc_implement_plan.md)
This command takes the specification and creates a step-by-step development plan.
# 🛠️ SDLC Command: Implementation Development Plan
## 🎯 Role
You are a Senior Software Developer. Your task is to generate a detailed, file-by-file plan to implement the provided Technical Specification.
## 📜 Instructions
1. **Read and Understand:** Analyze the Technical Specification (pasted input) and the project's **AGENTS.md** rules.
2. **File Modification Plan:** List _every file_ that needs to be created, modified, or deleted. For each, describe the intended change based on the Hexagonal/DDD architecture (e.g., 'Create new Domain Service for [Feature]').
3. **Code Outline:** For complex components (e.g., a new Repository interface/implementation), provide a high-level pseudo-code or code outline.
4. **Testing Strategy:** Define the required unit tests, mocking strategy, and coverage goals, linking back to the **AGENTS.md** testing rules.
5. **Deliverable:** The final output is the detailed plan for the next command (`/sdlc-develop`).
## 📄 Output Template (Strictly Follow This Structure)
# Development Plan for: [Feature Name]
## 1. Files to Modify/Create
- `src/domain/services/NewService.ts`: [Action to take]
- `src/application/controllers/NewController.ts`: [Action to take]
- `src/infrastructure/adapters/Repository.ts`: [Action to take]
- `tests/unit/NewService.test.ts`: [Action to take]
## 2. Key Implementation Decisions
- **DDD/Architecture:** [How the change respects the Hexagonal/DDD structure]
- **Trade-offs:** [Any identified design compromises]
## 3. Testing Plan
- **Unit Tests:** [List key test cases/scenarios]
- **Mocks:** [Identify which dependencies must be mocked]
---
**[Paste Full Content of Technical Specification (Output from /sdlc-plan-spec) Below]**
AGENT INSTRUCTIONS (For Direct File Generation)
When run in Agent Mode, write the final output directly to:
docs/roadmap/{GROUP_SEQUENCE}-1-{FEATURE_NAME}-spec.md
Do not add any conversational text to the file.
Developer Console Logs, most relevant parts: When I pressed /, I didn’t see any error or warning in the logs:
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:11398 [Extension Host] (node:10020) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
cFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:35982 Cannot activate the ‘C# Dev Kit’ extension because it depends on an unknown ‘ms-dotnettools.csharp’ extension.
onDidChangeNotification @ workbench.desktop.main.js:35982
(anonymous) @ workbench.desktop.main.js:35982
_deliver @ workbench.desktop.main.js:49
_deliverQueue @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
addNotification @ workbench.desktop.main.js:11461
error @ workbench.desktop.main.js:33981
_handleMissingNotInstalledDependency @ workbench.desktop.main.js:11412
workbench.desktop.main.js:34043 [transport] Connect error in unary AI connect ConnectError: [unauthenticated] You must be a team member to access this resource
at t (workbench.desktop.main.js:11431:34179)
at async Object.getTeamCommands (workbench.desktop.main.js:637:31933)
at async qLc.loadTeamCommands (workbench.desktop.main.js:36048:4584) Object
error @ workbench.desktop.main.js:34043
t @ workbench.desktop.main.js:11431
workbench.desktop.main.js:36048 Failed to load team commands: ConnectError: [unauthenticated] You must be a team member to access this resource
at t (workbench.desktop.main.js:11431:34179)
at async Object.getTeamCommands (workbench.desktop.main.js:637:31933)
at async qLc.loadTeamCommands (workbench.desktop.main.js:36048:4584)
loadTeamCommands @ workbench.desktop.main.js:36048
workbench.desktop.main.js:58 WARN [ExtensionService] No inspect port found for LocalProcess [role: user] pid: 10020
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:35994
(anonymous) @ workbench.desktop.main.js:36041
workbench.desktop.main.js:58 WARN [ExtensionService] No inspect port found for LocalProcess [role: retrieval-always-local] pid: 43812
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:35994
(anonymous) @ workbench.desktop.main.js:36041
workbench.desktop.main.js:58 WARN [ExtensionService] No inspect port found for LocalProcess [role: agent-exec] pid: 21932
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:35994
(anonymous) @ workbench.desktop.main.js:36041
workbench.desktop.main.js:34043 [composer] Extension host became UNRESPONSIVE undefined Object
error @ workbench.desktop.main.js:34043
(anonymous) @ workbench.desktop.main.js:9169
workbench.desktop.main.js:11398 [Extension Host] rejected promise not handled within 1 second: Error: Cannot activate the ‘C# Dev Kit’ extension because it depends on unknown extension ‘ms-dotnettools.csharp’
cFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:11398 [Extension Host] stack trace: Error: Cannot activate the ‘C# Dev Kit’ extension because it depends on unknown extension ‘ms-dotnettools.csharp’
at vNe._handleActivationRequest (file:///c:/Users/Aldemar/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:140:15290)
at file:///c:/Users/Aldemar/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:140:13670
at Array.map ()
at vNe._activateExtensions (file:///c:/Users/Aldemar/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:140:13658)
at vNe.activateById (file:///c:/Users/Aldemar/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:140:13525)
at dgs._activateById (file:///c:/Users/Aldemar/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:144:13647)
at dgs._handleWorkspaceContainsEagerExtension (file:///c:/Users/Aldemar/AppData/Local/Programs/cursor/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:144:22413)
at async Promise.all (index 145)
at async Promise.all (index 2)
cFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:58 ERR An unknown error occurred. Please consult the log for more details. Object
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:35994
handleUnexpectedError @ workbench.desktop.main.js:35991
(anonymous) @ workbench.desktop.main.js:35991
onUnexpectedError @ workbench.desktop.main.js:27
Uc @ workbench.desktop.main.js:22
$onUnexpectedError @ workbench.desktop.main.js:11412
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:58 ERR MainThreadChatAgents2#$updateAgent: No agent with handle 0 registered
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:35994
$updateAgent @ workbench.desktop.main.js:11381
workbench.desktop.main.js:58 ERR [Extension Host] [otel.error] {“stack”:“OTLPExporterError: Bad Request\n\tat IncomingMessage. (c:\Users\Aldemar\AppData\Local\Programs\cursor\resources\app\node_modules\@opentelemetryopentelemetry\otlp-exporter-base\build\src\transport\http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:531:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:90:21)”,“message”:“Bad Request”,“code”:“400”,“name”:“OTLPExporterError”,“data”:“{“error”:“Trace spans collection is disabled for NO_STORAGE privacy mode”}”}
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:35994
uFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:11398 [Extension Host] [otel.error] {“stack”:“OTLPExporterError: Bad Request\n\tat IncomingMessage. (c:\Users\Aldemar\AppData\Local\Programs\cursor\resources\app\@opentelemetryode_modules\@opentelemetry\otlp-exporter-base\build\src\transport\http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:531:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:90:21)”,“message”:“Bad Request”,“code”:“400”,“name”:“OTLPExporterError”,“data”:“{“error”:“Trace spans collection is disabled for NO_STORAGE privacy mode”}”}
cFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:58 WARN Authentication provider rapidapi was not declared in the Extension Manifest.
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:58
warn @ workbench.desktop.main.js:35994
$registerAuthenticationProvider @ workbench.desktop.main.js:11430
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:34043 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
at t (workbench.desktop.main.js:11431:34179)
at async Object.getGithubAccessTokenForRepos (workbench.desktop.main.js:637:31933)
at async tms (workbench.desktop.main.js:645:481748)
at async l (workbench.desktop.main.js:36060:21936)
at async i (workbench.desktop.main.js:34201:9685)
at async Promise.all (index 2)
at async Wpc.initializeBackgroundComposerState (workbench.desktop.main.js:34201:9996) Object
error @ workbench.desktop.main.js:34043
t @ workbench.desktop.main.js:11431
workbench.desktop.main.js:34043 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
at t (workbench.desktop.main.js:11431:34179)
at async Object.getGithubAccessTokenForRepos (workbench.desktop.main.js:637:31933)
at async tms (workbench.desktop.main.js:645:481748)
at async l (workbench.desktop.main.js:36060:21936)
at async i (workbench.desktop.main.js:34201:9685)
at async Promise.all (index 2)
at async Wpc.initializeBackgroundComposerState (workbench.desktop.main.js:34201:9996) Object
error @ workbench.desktop.main.js:34043
t @ workbench.desktop.main.js:11431
workbench.desktop.main.js:34043 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
at t (workbench.desktop.main.js:11431:34179)
at async Object.getGithubAccessTokenForRepos (workbench.desktop.main.js:637:31933)
at async tms (workbench.desktop.main.js:645:481748)
at async l (workbench.desktop.main.js:36060:21936)
at async i (workbench.desktop.main.js:34201:9685)
at async Promise.all (index 2)
at async Wpc.initializeBackgroundComposerState (workbench.desktop.main.js:34201:9996) Object
error @ workbench.desktop.main.js:34043
t @ workbench.desktop.main.js:11431
workbench.desktop.main.js:34043 [transport] Connect error in unary AI connect ConnectError: [invalid_argument] Error
at t (workbench.desktop.main.js:11431:34179)
at async Object.getGithubAccessTokenForRepos (workbench.desktop.main.js:637:31933)
at async tms (workbench.desktop.main.js:645:481748)
at async l (workbench.desktop.main.js:36060:21936)
at async i (workbench.desktop.main.js:34201:9685)
at async Promise.all (index 2)
at async Wpc.initializeBackgroundComposerState (workbench.desktop.main.js:34201:9996) Object
error @ workbench.desktop.main.js:34043
t @ workbench.desktop.main.js:11431
workbench.desktop.main.js:36060 [hasGithubAccess] unexpected error checking GitHub access: ConnectError: [invalid_argument] Error
at t (workbench.desktop.main.js:11431:34179)
at async Object.getGithubAccessTokenForRepos (workbench.desktop.main.js:637:31933)
at async tms (workbench.desktop.main.js:645:481748)
at async l (workbench.desktop.main.js:36060:21936)
at async i (workbench.desktop.main.js:34201:9685)
at async Promise.all (index 2)
at async Wpc.initializeBackgroundComposerState (workbench.desktop.main.js:34201:9996)
l @ workbench.desktop.main.js:36060
workbench.desktop.main.js:58 ERR [Extension Host] [otel.error] {“stack”:“OTLPExporterError: Bad Request\n\tat IncomingMessage. (c:\Users\Aldemar\AppData\Local\Programs\cursor\r@opentelemetrysources\app\node_modules\@opentelemetry\otlp-exporter-base\build\src\transport\http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:531:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:90:21)”,“message”:“Bad Request”,“code”:“400”,“name”:“OTLPExporterError”,“data”:“{“error”:“Trace spans collection is disabled for NO_STORAGE privacy mode”}”}
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:58
error @ workbench.desktop.main.js:35994
uFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
workbench.desktop.main.js:11398 [Extension Host] [otel.error] {“stack”:“OTLPExporterError: Bad Request\n\tat IncomingMessage. (c:\Users\Aldemar\AppData\Local\Prog@opentelemetryams\cursor\resources\app\node_modules\@opentelemetry\otlp-exporter-base\build\src\transport\http-transport-utils.js:52:31)\n\tat IncomingMessage.emit (node:events:531:35)\n\tat endReadableNT (node:internal/streams/readable:1698:12)\n\tat process.processTicksAndRejections (node:internal/process/task_queues:90:21)”,“message”:“Bad Request”,“code”:“400”,“name”:“OTLPExporterError”,“data”:“{“error”:“Trace spans collection is disabled for NO_STORAGE privacy mode”}”}
cFf @ workbench.desktop.main.js:11398
$logExtensionHostMessage @ workbench.desktop.main.js:11398
_doInvokeHandler @ workbench.desktop.main.js:33984
_invokeHandler @ workbench.desktop.main.js:33984
_receiveRequest @ workbench.desktop.main.js:33984
_receiveOneMessage @ workbench.desktop.main.js:33984
(anonymous) @ workbench.desktop.main.js:33984
_deliver @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:49
fire @ workbench.desktop.main.js:11415
(anonymous) @ workbench.desktop.main.js:36045
I tried it by using the create command provided by Cursor. See the issue: The command is created but it’s not being reflected in the list of commands:
Here you can see the commands using Cursor 2.2.44: