Skip to content

Comments

feat: CursorPlugin SDK update for version 0.1.0#1

Open
ChiragAgg5k wants to merge 3 commits intomainfrom
dev
Open

feat: CursorPlugin SDK update for version 0.1.0#1
ChiragAgg5k wants to merge 3 commits intomainfrom
dev

Conversation

@ChiragAgg5k
Copy link
Member

@ChiragAgg5k ChiragAgg5k commented Feb 20, 2026

This PR contains updates to the CursorPlugin SDK for version 0.1.0.

@coderabbitai
Copy link

coderabbitai bot commented Feb 20, 2026

Warning

Rate limit exceeded

@atharvadeosthale has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 26 minutes and 58 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Walkthrough

Adds configuration and documentation for an Appwrite CursorPlugin integration. New files: .cursor-plugin/plugin.json, .mcp.json, CHANGELOG.md, README.md (expanded), LICENSE (replaced), and multiple command docs plus nine SDK skill guides under skills/ (Dart, .NET, Go, Kotlin, PHP, Python, Ruby, Swift, TypeScript). Most changes are new Markdown docs and config/manifest files; there are no runtime code or API changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the primary change: a CursorPlugin SDK update introducing version 0.1.0 with configuration files, documentation, and skill guides.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 17

🧹 Nitpick comments (5)
.cursor-plugin/plugin.json (1)

4-4: Markdown link syntax in JSON description may not render correctly.

The description value contains [text](url) Markdown, which will appear as raw Markdown literal text in any tool that reads this JSON without Markdown rendering. Prefer a plain URL.

✏️ Suggested fix
-    "description": "... For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)",
+    "description": "... For full API documentation and tutorials go to https://appwrite.io/docs",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.cursor-plugin/plugin.json at line 4, The description field in plugin.json
uses Markdown link syntax which may render as raw text in JSON consumers; update
the "description" value (the description property in .cursor-plugin/plugin.json)
to replace the Markdown [https://appwrite.io/docs](https://appwrite.io/docs)
with a plain URL (e.g. https://appwrite.io/docs) and ensure the sentence remains
grammatically correct after the replacement.
CHANGELOG.md (1)

1-1: Empty placeholder — consider adding initial version entry.

The file only contains the header. Consider adding the initial v0.1.0 entry to make the changelog useful from the first release.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CHANGELOG.md` at line 1, The CHANGELOG.md currently only has the header "#
Change Log"; add an initial release entry for v0.1.0 under that header including
the version tag (v0.1.0), release date, and a short bullet list of notable
initial changes or features (e.g., "Initial release: project scaffolding, core
modules X/Y/Z, basic tests"); ensure the entry follows common changelog format
(version heading, date, bullets) so the file is useful from the first release.
commands/deploy-function.md (1)

51-51: Example runtime node-18.0 is EOL — consider updating to a current LTS.

Node.js 18 reached end-of-life in April 2025. AI agents using this skill file as a reference may scaffold new functions with an unsupported runtime. node-20.0 (LTS until April 2026) or node-22 would be safer defaults.

✏️ Suggested update
-            "runtime": "node-18.0",
+            "runtime": "node-22.0",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@commands/deploy-function.md` at line 51, Update the example runtime value for
the "runtime" key which currently shows "node-18.0" (EOL) to a supported LTS
such as "node-20.0" or "node-22"; locate the JSON/YAML snippet containing the
"runtime" field and replace the "node-18.0" token with the chosen newer runtime
string so new scaffolds use a maintained Node.js LTS.
skills/appwrite-swift/SKILL.md (1)

11-14: Pin to a specific version tag instead of branch: "main"

Using branch: "main" means any swift package update can silently pull an incompatible commit. Production code and generated examples should reference a stable release:

♻️ Proposed fix
-.package(url: "https://github.com/appwrite/sdk-for-swift", branch: "main")
+.package(url: "https://github.com/appwrite/sdk-for-swift", from: "X.Y.Z")

Replace X.Y.Z with the current stable release tag.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-swift/SKILL.md` around lines 11 - 14, Replace the unstable
branch reference in the .package(url:
"https://github.com/appwrite/sdk-for-swift", branch: "main") declaration with a
pinned release tag; update the .package(...) entry in Package.swift to reference
a specific version (for example using an exact or from/upToNextMajor specifier
with the current stable X.Y.Z) so dependency updates are deterministic and won't
pull breaking commits from main.
skills/appwrite-kotlin/SKILL.md (1)

11-17: Pin dependency versions — avoid dynamic + version selector

Using + as a Gradle version resolves to the absolute latest release on every dependency refresh, which can silently break builds when a major SDK version is published. Pin to a specific stable version:

♻️ Proposed fix
-implementation("io.appwrite:sdk-for-android:+")
+implementation("io.appwrite:sdk-for-android:X.Y.Z")

-implementation("io.appwrite:sdk-for-kotlin:+")
+implementation("io.appwrite:sdk-for-kotlin:X.Y.Z")

Replace X.Y.Z with the current stable release.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-kotlin/SKILL.md` around lines 11 - 17, The dependency
declarations using the dynamic + selector
(implementation("io.appwrite:sdk-for-android:+") and
implementation("io.appwrite:sdk-for-kotlin:+")) should be pinned to a specific
stable version; update those implementation lines to use a concrete version
string (e.g., replace the + with X.Y.Z) for both the Android and Kotlin JVM
snippets so builds are reproducible and won't break when a new major release is
published.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@LICENSE`:
- Line 12: The LICENSE file contains HTML entity " instead of plain double
quotes in the BSD-3-Clause warranty disclaimer (the "AS IS" phrase), which
breaks the canonical text; open the LICENSE file, replace all occurrences of the
HTML entity " with plain double-quote characters " so the warranty
disclaimer and the rest of the BSD-3-Clause text exactly match the canonical
template used by SPDX/Licensee/GitHub Linguist, and verify there are no other
HTML entities left in the file.

In `@README.md`:
- Line 8: Update the broken releases URL in the README entry that currently
reads "https://github.com/appwrite/cursor-plugin.git/releases" by removing the
".git" suffix so it becomes
"https://github.com/appwrite/cursor-plugin/releases"; locate and replace the URL
text in the README.md line containing the compatibility note to ensure the
releases link points to the correct GitHub releases page.
- Line 83: The README contains a license link pointing to the appwrite/appwrite
repo (the URL
"https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE"); update
that link to point to this repository's license instead — replace the hardcoded
external URL with a relative link to this repo's LICENSE (e.g., "./LICENSE" or
"LICENSE") in README.md so the license reference resolves to this plugin's
actual license file.
- Around line 50-58: Update the language name capitalizations in the Skills list
entries: change the markdown list item text "**Typescript**" to
"**TypeScript**", "**Php**" to "**PHP**", and "**Dotnet**" to "**.NET**" (these
appear in the bullets for TypeScript / PHP / .NET in the README skills list).
- Around line 18-44: The fenced code block showing the repository tree (the
block starting with ".cursor-plugin/") lacks a language tag; update the
README.md by changing the opening fence from ``` to ```text (or another
appropriate language like ```bash) so the block is explicitly marked and
satisfies markdownlint MD040.

In `@skills/appwrite-dart/SKILL.md`:
- Around line 415-417: There are blank lines inside blockquotes causing MD028;
remove the empty lines between the quoted lines and replace them with a
continuation marker so the blockquote remains contiguous — update the blockquote
sections that include the cookie guidance (`a_session_<PROJECT_ID>`) and the
forwarding call
(`sessionClient.setForwardedUserAgent(request.headers['user-agent'])`) by
deleting the blank lines and ensuring each quoted line begins with `>` so the
two occurrences (the pair around the cookie/security note and the pair around
the forwarding user agent note) form single uninterrupted blockquotes.

In `@skills/appwrite-dotnet/SKILL.md`:
- Around line 331-333: A markdown blockquote in SKILL.md contains an empty line
between quoted lines (the block containing "**Cookie security:** ... The cookie
name must be `a_session_<PROJECT_ID>`." and the block with "**Forwarding user
agent:** ...") which triggers MD028; edit the two blockquote occurrences (the
one around the Cookie security text and the matching pair near line 400) and
replace the blank line between quoted lines with a line that starts with ">" so
the lines remain part of the same blockquote (i.e., remove the empty line and
prepend ">" to the following line), ensuring no blank lines remain inside those
blockquote blocks.

In `@skills/appwrite-go/SKILL.md`:
- Around line 395-407: The snippet referencing errors.As and fmt.Println will
not compile because the standard packages are not imported; update the Go file
that contains the GetRow example to add imports for "errors" and "fmt" alongside
the existing imports so the call to errors.As(err, &appErr) and fmt.Println(...)
compile; specifically modify the import block used by the example that shows
service.GetRow("[DATABASE_ID]", "[TABLE_ID]", "[ROW_ID]") and the handling of
*apperr.AppwriteException to include the "errors" and "fmt" packages.
- Around line 389-391: There are blank lines breaking two blockquotes (the one
containing "**Cookie security:** Always use `HttpOnly`, `Secure`, and
`SameSiteStrictMode`..." and the one containing "**Forwarding user agent:** Call
`sessionClient.SetForwardedUserAgent(...)`"); remove each blank line that
interrupts the '>'-prefixed blockquote and replace it with a '>' line so the
blockquote remains continuous; apply the same exact fix to the second occurrence
later in the file (the matching pair around the other blockquote).

In `@skills/appwrite-kotlin/SKILL.md`:
- Around line 466-468: The MD028 lint error is caused by an empty line breaking
the blockquote around the sections that start with "Cookie security:" and
"Forwarding user agent:" in SKILL.md; fix it by removing the blank line between
the quoted paragraphs and replacing it with a leading ">" so the blockquote
remains continuous (apply the same change for both occurrences around the
"Cookie security: ..." and "Forwarding user agent: ..." blocks).

In `@skills/appwrite-php/SKILL.md`:
- Around line 17-31: The import list at the top is missing the Teams service,
causing a fatal Class "Teams" not found when the file later does new
Teams($client); add the line use Appwrite\Services\Teams; to the existing block
of imports (near use Appwrite\Services\Users; and other Services imports) so the
Teams class is available for new Teams($client) instantiation.
- Around line 380-386: The MD028 lint error is caused by a blank line between
two adjacent blockquotes around the "When to set permissions" and "Common
mistakes" sections; fix it by removing the blank line so the two blockquotes are
adjacent (or merge them into a single blockquote), ensuring the "When to set
permissions" and "Common mistakes" lines remain prefixed with > and no blank
line separates them to satisfy markdownlint MD028.

In `@skills/appwrite-python/SKILL.md`:
- Line 22: The import path for TablesDB is incorrect and will raise ImportError;
update the import to use the correct module name by changing the module
reference from appwrite.services.tablesdb to appwrite.services.tables_db so the
symbol TablesDB is imported from the proper package (e.g., replace any
occurrences importing TablesDB from appwrite.services.tablesdb with
appwrite.services.tables_db).

In `@skills/appwrite-ruby/SKILL.md`:
- Around line 344-346: There are blank lines between consecutive blockquotes
around the "Cookie security:" and "Forwarding user agent:" sections; remove each
blank line and replace it with a continuation blockquote marker (`>`) so the two
blockquotes are joined without an empty line (apply the same change for both
occurrences referenced in the diff).

In `@skills/appwrite-swift/SKILL.md`:
- Around line 402-404: Merge the two separate blockquote blocks into a single
blockquote around the related notes (the "**Cookie security:** Always use
`isHTTPOnly`, `isSecure`, and `sameSite: .strict`..." block and the
"**Forwarding user agent:** Call
`sessionClient.setForwardedUserAgent(req.headers.first(name: .userAgent) ??
\"\")`..." block) by removing the blank line that splits them and, if you need a
visual paragraph break, use an empty blockquote line consisting of just ">"
between paragraphs; ensure the two quoted sections become a single contiguous
blockquote.

In `@skills/appwrite-typescript/SKILL.md`:
- Around line 208-222: The example uses Databases-era fields: update the usage
of listRows results to use results.rows instead of results.documents and replace
references to $collectionId with $tableId in the comments; specifically, change
code that reads results.documents[0] to results.rows[0] and update the inline
field comments for doc.$collectionId to doc.$tableId so consumers of the
TablesDB API (listRows, results, rows, $tableId) get correct properties.
- Around line 547-549: Remove the blank line inside the two blockquotes so they
remain contiguous: in the blockquote containing "Cookie security: Always use
`httpOnly`, `secure`, and `sameSite: 'strict'`..." and in the blockquote
containing "Forwarding user agent: Call
`sessionClient.setForwardedUserAgent(req.headers['user-agent'])`...", replace
the empty line between paragraphs with a leading ">" so the quoted lines are
continuous (no blank line) to resolve MD028.

---

Nitpick comments:
In @.cursor-plugin/plugin.json:
- Line 4: The description field in plugin.json uses Markdown link syntax which
may render as raw text in JSON consumers; update the "description" value (the
description property in .cursor-plugin/plugin.json) to replace the Markdown
[https://appwrite.io/docs](https://appwrite.io/docs) with a plain URL (e.g.
https://appwrite.io/docs) and ensure the sentence remains grammatically correct
after the replacement.

In `@CHANGELOG.md`:
- Line 1: The CHANGELOG.md currently only has the header "# Change Log"; add an
initial release entry for v0.1.0 under that header including the version tag
(v0.1.0), release date, and a short bullet list of notable initial changes or
features (e.g., "Initial release: project scaffolding, core modules X/Y/Z, basic
tests"); ensure the entry follows common changelog format (version heading,
date, bullets) so the file is useful from the first release.

In `@commands/deploy-function.md`:
- Line 51: Update the example runtime value for the "runtime" key which
currently shows "node-18.0" (EOL) to a supported LTS such as "node-20.0" or
"node-22"; locate the JSON/YAML snippet containing the "runtime" field and
replace the "node-18.0" token with the chosen newer runtime string so new
scaffolds use a maintained Node.js LTS.

In `@skills/appwrite-kotlin/SKILL.md`:
- Around line 11-17: The dependency declarations using the dynamic + selector
(implementation("io.appwrite:sdk-for-android:+") and
implementation("io.appwrite:sdk-for-kotlin:+")) should be pinned to a specific
stable version; update those implementation lines to use a concrete version
string (e.g., replace the + with X.Y.Z) for both the Android and Kotlin JVM
snippets so builds are reproducible and won't break when a new major release is
published.

In `@skills/appwrite-swift/SKILL.md`:
- Around line 11-14: Replace the unstable branch reference in the .package(url:
"https://github.com/appwrite/sdk-for-swift", branch: "main") declaration with a
pinned release tag; update the .package(...) entry in Package.swift to reference
a specific version (for example using an exact or from/upToNextMajor specifier
with the current stable X.Y.Z) so dependency updates are deterministic and won't
pull breaking commits from main.

README.md Outdated
[![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)

**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Broken releases URL: .git should not appear in the path.

https://github.com/appwrite/cursor-plugin.git/releases is not a valid GitHub URL. Remove .git from the path.

🔧 Proposed fix
-**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
+**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin/releases).**
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
**This SDK is compatible with Appwrite server version 1.8.x. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin/releases).**
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 8, Update the broken releases URL in the README entry that
currently reads "https://github.com/appwrite/cursor-plugin.git/releases" by
removing the ".git" suffix so it becomes
"https://github.com/appwrite/cursor-plugin/releases"; locate and replace the URL
text in the README.md line containing the compatibility note to ensure the
releases link points to the correct GitHub releases page.

Comment on lines +18 to +44
```
.cursor-plugin/
└── plugin.json # Plugin manifest
skills/ # Agent skills (per language)
├── appwrite-typescript/
│ └── SKILL.md
├── appwrite-dart/
│ └── SKILL.md
├── appwrite-kotlin/
│ └── SKILL.md
├── appwrite-swift/
│ └── SKILL.md
├── appwrite-php/
│ └── SKILL.md
├── appwrite-python/
│ └── SKILL.md
├── appwrite-ruby/
│ └── SKILL.md
├── appwrite-go/
│ └── SKILL.md
├── appwrite-dotnet/
│ └── SKILL.md
commands/ # Agent-executable commands
├── deploy-site.md
└── deploy-function.md
.mcp.json # MCP server definitions
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a language tag to the fenced code block (markdownlint MD040).

The structure tree uses a bare ``` fence without a language specifier, which triggers a markdownlint warning.

🔧 Proposed fix
-```
+```text
 .cursor-plugin/
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
.cursor-plugin/
└── plugin.json # Plugin manifest
skills/ # Agent skills (per language)
├── appwrite-typescript/
│ └── SKILL.md
├── appwrite-dart/
│ └── SKILL.md
├── appwrite-kotlin/
│ └── SKILL.md
├── appwrite-swift/
│ └── SKILL.md
├── appwrite-php/
│ └── SKILL.md
├── appwrite-python/
│ └── SKILL.md
├── appwrite-ruby/
│ └── SKILL.md
├── appwrite-go/
│ └── SKILL.md
├── appwrite-dotnet/
│ └── SKILL.md
commands/ # Agent-executable commands
├── deploy-site.md
└── deploy-function.md
.mcp.json # MCP server definitions
```
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 18-18: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 18 - 44, The fenced code block showing the repository
tree (the block starting with ".cursor-plugin/") lacks a language tag; update
the README.md by changing the opening fence from ``` to ```text (or another
appropriate language like ```bash) so the block is explicitly marked and
satisfies markdownlint MD040.

Comment on lines +50 to +58
- **Typescript** — `skills/appwrite-typescript/SKILL.md`
- **Dart** — `skills/appwrite-dart/SKILL.md`
- **Kotlin** — `skills/appwrite-kotlin/SKILL.md`
- **Swift** — `skills/appwrite-swift/SKILL.md`
- **Php** — `skills/appwrite-php/SKILL.md`
- **Python** — `skills/appwrite-python/SKILL.md`
- **Ruby** — `skills/appwrite-ruby/SKILL.md`
- **Go** — `skills/appwrite-go/SKILL.md`
- **Dotnet** — `skills/appwrite-dotnet/SKILL.md`
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Fix language name capitalizations in the Skills list.

  • Line 50: **Typescript****TypeScript**
  • Line 54: **Php****PHP**
  • Line 58: **Dotnet****.NET**
🔧 Proposed fix
-  - **Typescript** — `skills/appwrite-typescript/SKILL.md`
+  - **TypeScript** — `skills/appwrite-typescript/SKILL.md`
   - **Dart** — `skills/appwrite-dart/SKILL.md`
   - **Kotlin** — `skills/appwrite-kotlin/SKILL.md`
   - **Swift** — `skills/appwrite-swift/SKILL.md`
-  - **Php** — `skills/appwrite-php/SKILL.md`
+  - **PHP** — `skills/appwrite-php/SKILL.md`
   - **Python** — `skills/appwrite-python/SKILL.md`
   - **Ruby** — `skills/appwrite-ruby/SKILL.md`
   - **Go** — `skills/appwrite-go/SKILL.md`
-  - **Dotnet** — `skills/appwrite-dotnet/SKILL.md`
+  - **.NET** — `skills/appwrite-dotnet/SKILL.md`
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- **Typescript**`skills/appwrite-typescript/SKILL.md`
- **Dart**`skills/appwrite-dart/SKILL.md`
- **Kotlin**`skills/appwrite-kotlin/SKILL.md`
- **Swift**`skills/appwrite-swift/SKILL.md`
- **Php**`skills/appwrite-php/SKILL.md`
- **Python**`skills/appwrite-python/SKILL.md`
- **Ruby**`skills/appwrite-ruby/SKILL.md`
- **Go**`skills/appwrite-go/SKILL.md`
- **Dotnet**`skills/appwrite-dotnet/SKILL.md`
- **TypeScript**`skills/appwrite-typescript/SKILL.md`
- **Dart**`skills/appwrite-dart/SKILL.md`
- **Kotlin**`skills/appwrite-kotlin/SKILL.md`
- **Swift**`skills/appwrite-swift/SKILL.md`
- **PHP**`skills/appwrite-php/SKILL.md`
- **Python**`skills/appwrite-python/SKILL.md`
- **Ruby**`skills/appwrite-ruby/SKILL.md`
- **Go**`skills/appwrite-go/SKILL.md`
- **.NET**`skills/appwrite-dotnet/SKILL.md`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 50 - 58, Update the language name capitalizations in
the Skills list entries: change the markdown list item text "**Typescript**" to
"**TypeScript**", "**Php**" to "**PHP**", and "**Dotnet**" to "**.NET**" (these
appear in the bullets for TypeScript / PHP / .NET in the README skills list).


## License

Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

License link points to the appwrite/appwrite repo instead of this repository.

Line 83 links to https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE, which is the main Appwrite server repo's license — not this plugin's license file.

🔧 Proposed fix
-Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
+Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/cursor-plugin/main/LICENSE) file for more information.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information.
Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/cursor-plugin/main/LICENSE) file for more information.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 83, The README contains a license link pointing to the
appwrite/appwrite repo (the URL
"https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE"); update
that link to point to this repository's license instead — replace the hardcoded
external URL with a relative link to this repo's LICENSE (e.g., "./LICENSE" or
"LICENSE") in README.md so the license reference resolves to this plugin's
actual license file.

from appwrite.id import ID
from appwrite.query import Query
from appwrite.services.users import Users
from appwrite.services.tablesdb import TablesDB
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Wrong module path — will raise ImportError

The import path appwrite.services.tablesdb is missing the underscore. The official Appwrite Python quick-start uses from appwrite.services.tables_db import TablesDB (with underscore). An AI assistant using this skill file will generate code that fails immediately on import.

🐛 Proposed fix
-from appwrite.services.tablesdb import TablesDB
+from appwrite.services.tables_db import TablesDB
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
from appwrite.services.tablesdb import TablesDB
from appwrite.services.tables_db import TablesDB
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-python/SKILL.md` at line 22, The import path for TablesDB is
incorrect and will raise ImportError; update the import to use the correct
module name by changing the module reference from appwrite.services.tablesdb to
appwrite.services.tables_db so the symbol TablesDB is imported from the proper
package (e.g., replace any occurrences importing TablesDB from
appwrite.services.tablesdb with appwrite.services.tables_db).

Comment on lines +344 to +346
> **Cookie security:** Always use `httponly`, `secure`, and `same_site: :strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.

> **Forwarding user agent:** Call `session_client.set_forwarded_user_agent(request.user_agent)` to record the end-user's browser info for debugging and security.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

MD028: Blank line inside blockquote (lines 345 and 417)

Same linter-flagged pattern as in the other skill files. Fix both occurrences by replacing the blank line separating consecutive blockquotes with >:

♻️ Proposed fix
-> **Cookie security:** Always use `httponly`, `secure`, and `same_site: :strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
-
-> **Forwarding user agent:** Call `session_client.set_forwarded_user_agent(request.user_agent)` ...
+> **Cookie security:** Always use `httponly`, `secure`, and `same_site: :strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
+>
+> **Forwarding user agent:** Call `session_client.set_forwarded_user_agent(request.user_agent)` ...

Apply the same > separator pattern to the blockquote pair at line 417.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> **Cookie security:** Always use `httponly`, `secure`, and `same_site: :strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
> **Forwarding user agent:** Call `session_client.set_forwarded_user_agent(request.user_agent)` to record the end-user's browser info for debugging and security.
> **Cookie security:** Always use `httponly`, `secure`, and `same_site: :strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
>
> **Forwarding user agent:** Call `session_client.set_forwarded_user_agent(request.user_agent)` to record the end-user's browser info for debugging and security.
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 345-345: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-ruby/SKILL.md` around lines 344 - 346, There are blank lines
between consecutive blockquotes around the "Cookie security:" and "Forwarding
user agent:" sections; remove each blank line and replace it with a continuation
blockquote marker (`>`) so the two blockquotes are joined without an empty line
(apply the same change for both occurrences referenced in the diff).

Comment on lines +402 to +404
> **Cookie security:** Always use `isHTTPOnly`, `isSecure`, and `sameSite: .strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.

> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(req.headers.first(name: .userAgent) ?? "")` to record the end-user's browser info for debugging and security.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

MD028: Blank line inside blockquote (lines 403 and 474)

Two consecutive blockquote blocks separated by a blank line are flagged by markdownlint (MD028). Merge them into one blockquote using an empty > line:

♻️ Proposed fix (applies to both occurrences at lines 403 and 474)
-> **Cookie security:** Always use `isHTTPOnly`, `isSecure`, and `sameSite: .strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
-
-> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(...)` ...
+> **Cookie security:** Always use `isHTTPOnly`, `isSecure`, and `sameSite: .strict` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
+>
+> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(...)` ...
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 403-403: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-swift/SKILL.md` around lines 402 - 404, Merge the two
separate blockquote blocks into a single blockquote around the related notes
(the "**Cookie security:** Always use `isHTTPOnly`, `isSecure`, and `sameSite:
.strict`..." block and the "**Forwarding user agent:** Call
`sessionClient.setForwardedUserAgent(req.headers.first(name: .userAgent) ??
\"\")`..." block) by removing the blank line that splits them and, if you need a
visual paragraph break, use an empty blockquote line consisting of just ">"
between paragraphs; ensure the two quoted sections become a single contiguous
blockquote.

Comment on lines +208 to +222
const results = await tablesDB.listRows({
databaseId: '[DATABASE_ID]',
tableId: '[TABLE_ID]',
queries: [Query.equal('done', false)]
});

// Each document includes built-in fields alongside your data
const doc = results.documents[0];
doc.$id; // string — unique row ID
doc.$createdAt; // string — ISO 8601 creation timestamp
doc.$updatedAt; // string — ISO 8601 update timestamp
doc.$permissions; // string[] — permission strings
doc.$databaseId; // string
doc.$collectionId; // string

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

results.documents and $collectionId are Databases-era fields — TablesDB uses .rows and $tableId

The official Appwrite web quick-start uses response.rows to access TablesDB listRows results, not .documents. An AI consuming this skill will generate results.documents[0] which evaluates to undefined. The accompanying field comment for $collectionId is also stale — TablesDB replaces collections with tables.

🐛 Proposed fix
-const doc = results.documents[0];
+const doc = results.rows[0];
 doc.$id;            // string — unique row ID
 doc.$createdAt;     // string — ISO 8601 creation timestamp
 doc.$updatedAt;     // string — ISO 8601 update timestamp
 doc.$permissions;   // string[] — permission strings
 doc.$databaseId;    // string
-doc.$collectionId;  // string
+doc.$tableId;       // string
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const results = await tablesDB.listRows({
databaseId: '[DATABASE_ID]',
tableId: '[TABLE_ID]',
queries: [Query.equal('done', false)]
});
// Each document includes built-in fields alongside your data
const doc = results.documents[0];
doc.$id; // string — unique row ID
doc.$createdAt; // string — ISO 8601 creation timestamp
doc.$updatedAt; // string — ISO 8601 update timestamp
doc.$permissions; // string[] — permission strings
doc.$databaseId; // string
doc.$collectionId; // string
const results = await tablesDB.listRows({
databaseId: '[DATABASE_ID]',
tableId: '[TABLE_ID]',
queries: [Query.equal('done', false)]
});
// Each document includes built-in fields alongside your data
const doc = results.rows[0];
doc.$id; // string — unique row ID
doc.$createdAt; // string — ISO 8601 creation timestamp
doc.$updatedAt; // string — ISO 8601 update timestamp
doc.$permissions; // string[] — permission strings
doc.$databaseId; // string
doc.$tableId; // string
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-typescript/SKILL.md` around lines 208 - 222, The example uses
Databases-era fields: update the usage of listRows results to use results.rows
instead of results.documents and replace references to $collectionId with
$tableId in the comments; specifically, change code that reads
results.documents[0] to results.rows[0] and update the inline field comments for
doc.$collectionId to doc.$tableId so consumers of the TablesDB API (listRows,
results, rows, $tableId) get correct properties.

Comment on lines +547 to +549
> **Cookie security:** Always use `httpOnly`, `secure`, and `sameSite: 'strict'` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.

> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(req.headers['user-agent'])` to record the end-user's browser info for debugging and security.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

MD028: Blank line inside blockquote (lines 548 and 625)

Fix both occurrences by replacing the separating blank line with >:

♻️ Proposed fix
-> **Cookie security:** Always use `httpOnly`, `secure`, and `sameSite: 'strict'` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
-
-> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(req.headers['user-agent'])` ...
+> **Cookie security:** Always use `httpOnly`, `secure`, and `sameSite: 'strict'` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
+>
+> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(req.headers['user-agent'])` ...

Apply the same fix to the pair at line 625.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
> **Cookie security:** Always use `httpOnly`, `secure`, and `sameSite: 'strict'` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(req.headers['user-agent'])` to record the end-user's browser info for debugging and security.
> **Cookie security:** Always use `httpOnly`, `secure`, and `sameSite: 'strict'` to prevent XSS. The cookie name must be `a_session_<PROJECT_ID>`.
>
> **Forwarding user agent:** Call `sessionClient.setForwardedUserAgent(req.headers['user-agent'])` to record the end-user's browser info for debugging and security.
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 548-548: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@skills/appwrite-typescript/SKILL.md` around lines 547 - 549, Remove the blank
line inside the two blockquotes so they remain contiguous: in the blockquote
containing "Cookie security: Always use `httpOnly`, `secure`, and `sameSite:
'strict'`..." and in the blockquote containing "Forwarding user agent: Call
`sessionClient.setForwardedUserAgent(req.headers['user-agent'])`...", replace
the empty line between paragraphs with a leading ">" so the quoted lines are
continuous (no blank line) to resolve MD028.

README.md Outdated
@@ -1 +1,83 @@
# cursor-plugin No newline at end of file
# Appwrite CursorPlugin
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
# Appwrite CursorPlugin
# Appwrite Cursor Plugin

"env": {
"APPWRITE_API_KEY": "your-api-key",
"APPWRITE_PROJECT_ID": "your-project-id",
"APPWRITE_ENDPOINT": "https://<REGION>.cloud.appwrite.io/v1"
Copy link
Member

Choose a reason for hiding this comment

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

How does this work? how will the user update this endpoint?

Copy link
Member

Choose a reason for hiding this comment

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

They will need to update in their MCP settings

{
"name": "appwrite-plugin",
"version": "0.1.0",
"description": "Appwrite is an open-source backend as a service server that abstracts and simplifies complex and repetitive development tasks behind a very simple to use REST API. Appwrite aims to help you develop your apps faster and in a more secure way. Use the CursorPlugin SDK to integrate your app with the Appwrite server to easily start interacting with all of Appwrite backend APIs and tools. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)",
Copy link
Member

Choose a reason for hiding this comment

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

Change description to match what other descriptions on the marketplace look like

@eldadfux
Copy link
Member

Also how do the commands work? did we test them? Specifically asking about the login part with the CLI

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (1)
.cursor-plugin/plugin.json (1)

4-4: Duplicated phrase in description.

"…access your projects and correctly integrate with your projects" — "your projects" appears twice.

✏️ Proposed fix
-    "description": "The Appwrite plugin for Cursor includes skills and MCP servers, allowing AI agents to access your projects and correctly integrate with your projects.",
+    "description": "The Appwrite plugin for Cursor includes skills and MCP servers, allowing AI agents to access and correctly integrate with your Appwrite projects.",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.cursor-plugin/plugin.json at line 4, The description field in plugin.json
contains a duplicated phrase ("your projects" appears twice); update the
"description" value to remove the repetition and make it concise—for example
change the text in the "description" property to something like "The Appwrite
plugin for Cursor includes skills and MCP servers, allowing AI agents to access
and correctly integrate with your projects." Ensure you only modify the
"description" string and preserve surrounding JSON syntax and punctuation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.cursor-plugin/plugin.json:
- Line 10: The "logo" field in .cursor-plugin/plugin.json points to the
appwrite/appwrite repo asset; update the "logo" value to either the canonical
raw GitHub URL (raw.githubusercontent.com/...) if intentionally sharing the
Appwrite brand image, or host and point to the asset in this repository
(cursor-plugin) instead so the plugin references its own logo; modify the "logo"
entry accordingly in the plugin.json.

In `@README.md`:
- Around line 4-8: The README states compatibility with "Appwrite server version
latest" while the version badge pins 1.8.1; update the compatibility sentence to
the concrete version used in the badge (e.g., replace "latest" with "1.8.1") so
the badge and text are consistent—edit the README.md compatibility sentence that
references "Appwrite server version latest" to match the badge value "1.8.1".
- Line 79: The README's Contribution section erroneously states "This library is
auto-generated by Appwrite custom [SDK
Generator](https://github.com/appwrite/sdk-generator)" and points contributors
to the sdk-generator repo; remove or reword that sentence and replace the link
with the correct contribution guidance for this plugin (either link to this
repo's CONTRIBUTING.md or a generic contribution guidelines page). Locate the
exact sentence in README.md ("This library is auto-generated by Appwrite custom
[SDK Generator]...") and update it to accurately describe the project origin and
provide the proper contribution link or instructions.

---

Duplicate comments:
In `@README.md`:
- Around line 50-58: Fix the incorrect language name capitalizations in the
README list by replacing the exact strings "Typescript", "Php", and "Dotnet"
with their proper capitalizations: "TypeScript", "PHP", and ".NET" respectively
in the entries that reference `skills/appwrite-typescript/SKILL.md`,
`skills/appwrite-php/SKILL.md`, and `skills/appwrite-dotnet/SKILL.md`.
- Line 83: The README's license link currently points to the appwrite/appwrite
repository; update the URL in the line "Please see the [BSD-3-Clause
license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE)
file for more information." to reference this repository's LICENSE file instead
(replace the hardcoded
https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE with the
correct raw/github URL for this repo's LICENSE), ensuring the link text and
surrounding sentence remain unchanged.
- Line 8: The releases URL in the README contains an extra ".git" making it
invalid; update the string
**https://github.com/appwrite/cursor-plugin.git/releases** to
**https://github.com/appwrite/cursor-plugin/releases** in the README.md so the
"previous releases" link points to the correct GitHub releases page.
- Around line 18-44: The fenced code block that contains the directory tree
starting with ".cursor-plugin/" is missing a language tag; fix it by adding a
neutral language identifier to the opening fence (for example change ``` to
```text) so the block becomes "```text" (or another appropriate tag) to satisfy
MD040 and preserve the tree formatting.

---

Nitpick comments:
In @.cursor-plugin/plugin.json:
- Line 4: The description field in plugin.json contains a duplicated phrase
("your projects" appears twice); update the "description" value to remove the
repetition and make it concise—for example change the text in the "description"
property to something like "The Appwrite plugin for Cursor includes skills and
MCP servers, allowing AI agents to access and correctly integrate with your
projects." Ensure you only modify the "description" string and preserve
surrounding JSON syntax and punctuation.

"email": "team@appwrite.io"
},
"repository": "https://github.com/appwrite/cursor-plugin",
"logo": "https://github.com/appwrite/appwrite/raw/main/public/images/github.png"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

logo URL references the appwrite/appwrite repo, not this one.

https://github.com/appwrite/appwrite/raw/main/public/images/github.png pulls the logo asset from the main Appwrite server repository. If intentional (shared brand logo), use the canonical raw.githubusercontent.com form; if this plugin should have its own logo asset, point to cursor-plugin instead.

🔧 Proposed fix (using canonical raw URL)
-    "logo": "https://github.com/appwrite/appwrite/raw/main/public/images/github.png"
+    "logo": "https://raw.githubusercontent.com/appwrite/appwrite/main/public/images/github.png"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"logo": "https://github.com/appwrite/appwrite/raw/main/public/images/github.png"
"logo": "https://raw.githubusercontent.com/appwrite/appwrite/main/public/images/github.png"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.cursor-plugin/plugin.json at line 10, The "logo" field in
.cursor-plugin/plugin.json points to the appwrite/appwrite repo asset; update
the "logo" value to either the canonical raw GitHub URL
(raw.githubusercontent.com/...) if intentionally sharing the Appwrite brand
image, or host and point to the asset in this repository (cursor-plugin) instead
so the plugin references its own logo; modify the "logo" entry accordingly in
the plugin.json.

Comment on lines +4 to +8
![Version](https://img.shields.io/badge/api%20version-1.8.1-blue.svg?style=flat-square)
[![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)

**This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Version string "latest" is inconsistent with the badge (1.8.1).

Line 8 says "compatible with Appwrite server version latest" while the badge on line 4 pins api%20version-1.8.1. Use the concrete version number for consistency.

✏️ Proposed fix
-**This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
+**This SDK is compatible with Appwrite server version 1.8.1. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin/releases).**
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
![Version](https://img.shields.io/badge/api%20version-1.8.1-blue.svg?style=flat-square)
[![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)
**This SDK is compatible with Appwrite server version latest. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin.git/releases).**
![Version](https://img.shields.io/badge/api%20version-1.8.1-blue.svg?style=flat-square)
[![Twitter Account](https://img.shields.io/twitter/follow/appwrite?color=00acee&label=twitter&style=flat-square)](https://twitter.com/appwrite)
[![Discord](https://img.shields.io/discord/564160730845151244?label=discord&style=flat-square)](https://appwrite.io/discord)
**This SDK is compatible with Appwrite server version 1.8.1. For older versions, please check [previous releases](https://github.com/appwrite/cursor-plugin/releases).**
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` around lines 4 - 8, The README states compatibility with "Appwrite
server version latest" while the version badge pins 1.8.1; update the
compatibility sentence to the concrete version used in the badge (e.g., replace
"latest" with "1.8.1") so the badge and text are consistent—edit the README.md
compatibility sentence that references "Appwrite server version latest" to match
the badge value "1.8.1".


## Contribution

This library is auto-generated by Appwrite custom [SDK Generator](https://github.com/appwrite/sdk-generator). To learn more about how you can help us improve this SDK, please check the [contribution guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before sending a pull-request.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Misleading "auto-generated" boilerplate in the Contribution section.

This plugin is not auto-generated by the Appwrite SDK Generator, so directing contributors to the sdk-generator repo for contribution guidance is incorrect and may discourage contributions to this repo.

✏️ Proposed fix
-This library is auto-generated by Appwrite custom [SDK Generator](https://github.com/appwrite/sdk-generator). To learn more about how you can help us improve this SDK, please check the [contribution guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before sending a pull-request.
+Contributions are welcome! Please open an issue or pull-request in this repository. For general Appwrite contribution guidelines, see the [contribution guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
This library is auto-generated by Appwrite custom [SDK Generator](https://github.com/appwrite/sdk-generator). To learn more about how you can help us improve this SDK, please check the [contribution guide](https://github.com/appwrite/sdk-generator/blob/master/CONTRIBUTING.md) before sending a pull-request.
Contributions are welcome! Please open an issue or pull-request in this repository. For general Appwrite contribution guidelines, see the [contribution guide](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 79, The README's Contribution section erroneously states
"This library is auto-generated by Appwrite custom [SDK
Generator](https://github.com/appwrite/sdk-generator)" and points contributors
to the sdk-generator repo; remove or reword that sentence and replace the link
with the correct contribution guidance for this plugin (either link to this
repo's CONTRIBUTING.md or a generic contribution guidelines page). Locate the
exact sentence in README.md ("This library is auto-generated by Appwrite custom
[SDK Generator]...") and update it to accurately describe the project origin and
provide the proper contribution link or instructions.

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.

3 participants