Thanks for your interest in improving Monday Developer Tools. This guide covers the workflow for adding skills, rules, and other improvements.
- Fork and clone the repository
- Symlink to your local Cursor plugins directory:
Windows (PowerShell as Admin):
New-Item -ItemType SymbolicLink `
-Path "$env:USERPROFILE\.cursor\plugins\local\monday-cursor-plugin" `
-Target (Resolve-Path .\Monday-Cursor-Plugin)macOS / Linux:
ln -s "$(pwd)/Monday-Cursor-Plugin" ~/.cursor/plugins/local/monday-cursor-plugin- Install test dependencies:
pip install -r requirements-test.txtCreate skills/<skill-name>/SKILL.md with:
---
name: monday-<skill-name>
description: At least 20 characters describing the skill.
---
# <Title>
## Trigger
## Required Inputs
## Workflow
## Key References
## Example Interaction
## MCP Usage
## Common Pitfalls
## See AlsoRequirements:
- Directory name must be kebab-case and start with
monday- namein frontmatter must match the directory namedescriptionmust be at least 20 characters- All 8 sections are required (Trigger through See Also)
- See Also links use relative paths:
../other-skill/SKILL.md - MCP Usage section should include a table of relevant MCP tools
Create rules/monday-<rule-name>.mdc with:
---
description: What this rule flags.
alwaysApply: true
---
# <Title>
## Patterns to Flag
## What to Do
## ExceptionsRequirements:
- Filename must be kebab-case and start with
monday- - If
alwaysApply: false, must include aglobsarray - Body must have Patterns to Flag, What to Do, and Exceptions sections
pytest tests/ -v --tb=shortAll tests must pass before submitting a PR.
- YAML frontmatter is valid (skills:
name+description; rules:description+alwaysApply) - Tested locally (plugin loads, tests pass)
- Plugin structure tests pass (
pytest tests/ -v) - Updated CHANGELOG.md
- No hardcoded credentials or secrets
- No em dashes used (use
--instead)
- No em dashes; use double hyphens
-- - No hardcoded API tokens or secrets
- Column value JSON examples must use the column ID as the outer key
- GraphQL examples should use variables for dynamic values
- Reference MCP tools by their exact names
- For operations not covered by MCP tools, provide
all_monday_apiGraphQL recipes
This project uses CC-BY-NC-ND-4.0 as its outbound license, which forbids derivatives. Every pull request is a derivative. Contributions are accepted inbound under a broader grant via the Developer Certificate of Origin (DCO), which resolves the conflict so the project can accept and redistribute contributions.
By submitting a contribution to this repository, you certify that you have the right to do so under the Developer Certificate of Origin (DCO) 1.1, and you grant TMHSDigital a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license to use, reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your contribution under the project's current license (CC-BY-NC-ND-4.0) or any successor license chosen by the project.
Every commit in a pull request must have a Signed-off-by: trailer matching the commit author:
Signed-off-by: Jane Developer <jane@example.com>
Signing is done at commit time:
git commit -s -m "feat: add new skill"The GitHub DCO App enforces this on every PR.
For the full inbound/outbound model and rationale, see standards/licensing.md in the Developer-Tools-Directory meta-repo.