Agent skill

Frappe Errors Serverscripts

by Impertio-Studio in Impertio-Studio/Frappe_Claude_Skill_Package

A skill your agent uses when debugging or preventing errors in Frappe Server Scripts.

MITAuto-check passedSecurity

Install Frappe Errors Serverscripts

skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-errors-serverscripts -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-errors-serverscripts --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Impertio-Studio/Frappe_Claude_Skill_Package.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/source/errors/frappe-errors-serverscripts .claude/skills/frappe-errors-serverscripts && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
frappe-errors-serverscripts
GitHub stars
187
Token cost
~3k tokens
SKILL.md length
657 words
Files
4 (incl. references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when debugging or preventing errors in Frappe Server Scripts.

  • Works in 9 steps: Use frappe.utils.* instead of Python… → Use frappe.throw() instead of raise —… → Use conditional checks instead of… → …
  • Preventing errors in Frappe Server Scripts
  • SKILL.md covers CRITICAL: Server Scripts…, Error Diagnosis Flowchart, Error Message → Cause → Fix… and The #1 Error: ImportError, plus 6 more sections
  • Reaches api.com

What it does

Frappe Errors Serverscripts is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when debugging or preventing errors in Frappe Server Scripts. Prevents ImportError (the 1 error), NameError for restricted builtins, sandbox violations, docevents not firing, wrong script type selection, SQL injection, permission denied in scheduled scripts, infinite loops, and API scripts not returning JSON. Covers error message mapping table. Keywords: server script error, ImportError, NameError, sandbox,, ImportError in server script, script not running, sandbox error, restricted function. restricted…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/anti-patterns.md`, `references/examples.md` and `references/patterns.md`). Compatibility notes: Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.

It sits in Security, covering Web application vulnerabilities. The repository describes itself as: 60 deterministic Claude AI skills for Frappe Framework & ERPNext v14-v16 development and operations. The licence is MIT.

When your agent uses it

  • Preventing errors in Frappe Server Scripts
  • Tasks that involve Web application vulnerabilities

Example prompts

  • “/frappe-errors-serverscripts”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Use frappe.utils.* instead of Python imports — Only json module is importable
  2. Use frappe.throw() instead of raise — raise is blocked by sandbox
  3. Use conditional checks instead of try/except — Exception handling is blocked [v14-v15]
  4. Call frappe.db.commit() in Scheduler scripts — Changes are NOT auto-committed
  5. Add limit to ALL queries in Scheduler scripts — Prevent memory exhaustion
  6. Set frappe.response["message"] in API scripts — Otherwise response is empty
  7. Use frappe.db.escape() for user input in SQL — Prevent SQL injection
  8. Log errors in Scheduler scripts with frappe.log_error() — No user to see errors
  9. Verify Script Type matches your intent — Document Event vs API vs Scheduler

What it can do on your machine

Read from SKILL.md and the folder at commit 36cfa80. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.

    From compatibility in the SKILL.md frontmatter.

Context cost

Frappe Errors Serverscripts loads about 3k tokens when it runs, and up to ~9.1k if it reads all its reference files. Until then it costs about 152 tokens; SKILL.md has 657 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~152
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Impertio-Studio/Frappe_Claude_Skill_Package at commit 36cfa80, republished under its MIT licence (© Impertio-Studio). 657 words, ~2,982 tokens.

Download SKILL.mdSave it as .claude/skills/frappe-errors-serverscripts/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
frappe-errors-serverscripts
description
Use when debugging or preventing errors in Frappe Server Scripts. Prevents ImportError (the #1 error), NameError for restricted builtins, sandbox violations, doc_events not firing, wrong script type selection, SQL injection, permission denied in scheduled scripts, infinite loops, and API scripts not returning JSON. Covers error message mapping table. Keywords: server script error, ImportError, NameError, sandbox,, ImportError in server script, script not running, sandbox error, restricted function. restricted, frappe.throw, doc_events, scheduler, API script, SQL injection.
compatibility
Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
license
MIT
metadata.author
OpenAEC-Foundation
metadata.version
2.0

Server Script Errors — Diagnosis and Resolution

Cross-refs: frappe-syntax-serverscripts (syntax), frappe-impl-serverscripts (workflows), frappe-errors-clientscripts (client-side).


CRITICAL: Server Scripts Disabled by Default [v15+]

Starting from Frappe v15, Server Scripts are disabled by default. You MUST enable them:

python
# In site_config.json
{ "server_script_enabled": 1 }

On Frappe Cloud: Server Scripts are ONLY available on private benches, NOT on shared benches.


Error Diagnosis Flowchart

ERROR IN SERVER SCRIPT
│
├─► ImportError / NameError
│   ├─► "import json" → BLOCKED. Use frappe.parse_json()
│   ├─► "import datetime" → BLOCKED. Use frappe.utils
│   ├─► "import os/sys/subprocess" → BLOCKED. Security restriction
│   └─► "NameError: name 'dict' is not defined" → Some builtins restricted
│
├─► SyntaxError: not allowed
│   ├─► "try/except" → BLOCKED by RestrictedPython [v14-v15]
│   ├─► "raise ValueError" → BLOCKED. Use frappe.throw()
│   └─► "exec/eval" → BLOCKED. Security restriction
│
├─► Script runs but nothing happens
│   ├─► Wrong Script Type selected → Check Document Event vs API vs Scheduler
│   ├─► Wrong DocType selected → Verify exact DocType name
│   ├─► Wrong Event selected → Before Save ≠ After Save
│   └─► Script disabled → Check "Enabled" checkbox
│
├─► 403 Permission Denied
│   ├─► Scheduler script → Runs as Administrator, check role permissions
│   ├─► API script → Check Allow Guest setting
│   └─► doc_event → User lacks DocType permission
│
├─► Data not saved in Scheduler
│   └─► Missing frappe.db.commit() → REQUIRED in scheduler scripts
│
└─► API script returns empty/wrong response
    └─► Not setting frappe.response["message"] → ALWAYS set response

Error Message → Cause → Fix Table

Error MessageCauseFix
ImportError: import not allowedAny import statement in sandboxUse frappe.utils, frappe.parse_json(), etc.
NameError: name 'dict' is not definedSome Python builtins blocked by RestrictedPythonUse frappe._dict() or literal {}
SyntaxError: try/except not allowedRestrictedPython blocks exception handling [v14-v15]Use conditional checks (if/else) instead
SyntaxError: raise not allowedRestrictedPython blocks raiseUse frappe.throw()
Script not executingWrong Script Type or Event selectedVerify type matches: Document Event, API, or Scheduler
doc is not definedUsing doc in API or Scheduler script (no document context)doc is only available in Document Event scripts
PermissionError in SchedulerScheduler runs as Administrator but script accesses restricted resourceUse ignore_permissions=True where appropriate
Changes not saved in SchedulerMissing frappe.db.commit()ALWAYS call frappe.db.commit() in Scheduler scripts
API returns empty responseForgot to set frappe.response["message"]ALWAYS set frappe.response["message"] = result
Timeout / killedInfinite loop or processing too many recordsALWAYS add limit to queries, ALWAYS use batch processing
ValidationError: qty is requireddoc.save() called in Before Save (recursion)NEVER call doc.save() in Before Save; just set values
SQL injection via string formatUser input in SQL without escapingALWAYS use frappe.db.escape() or parameterized queries

The #1 Error: ImportError

Every beginner hits this. The Server Script sandbox blocks ALL imports except json.

python
# ❌ BLOCKED — These ALL fail with ImportError
import json                    # Use frappe.parse_json() / frappe.as_json()
from datetime import datetime  # Use frappe.utils.now(), frappe.utils.today()
import re                      # Not available in sandbox
import os                      # Security: blocked
import requests                # Use frappe.make_get_request(), frappe.make_post_request()

# ✅ CORRECT — Sandbox equivalents
data = frappe.parse_json(doc.json_field)         # Instead of json.loads()
today = frappe.utils.today()                      # Instead of datetime.date.today()
now = frappe.utils.now()                          # Instead of datetime.now()
diff = frappe.utils.date_diff(date1, date2)       # Instead of timedelta
resp = frappe.make_get_request("https://api.com") # Instead of requests.get()
resp = frappe.make_post_request("https://api.com", data=payload)
Available Sandbox API (Complete Reference)
CategoryAvailable Methods
Documentfrappe.get_doc(), frappe.new_doc(), frappe.get_last_doc(), frappe.get_cached_doc(), frappe.get_mapped_doc(), frappe.rename_doc(), frappe.delete_doc()
Databasefrappe.db.get_list(), frappe.db.get_all(), frappe.db.get_value(), frappe.db.get_single_value(), frappe.db.set_value(), frappe.db.exists(), frappe.db.sql(), frappe.db.commit(), frappe.db.rollback(), frappe.db.escape()
Query Builderfrappe.qb (full query builder)
HTTPfrappe.make_get_request(), frappe.make_post_request(), frappe.make_put_request()
Utilityfrappe.utils.* (all utility functions), frappe.parse_json(), frappe.as_json()
User/Sessionfrappe.session.user, frappe.get_roles(), frappe.has_permission()
Messagesfrappe.throw(), frappe.msgprint(), frappe.log_error(), frappe.sendmail()
Modulejson (the ONLY importable module)

Script Type Selection Errors

ALWAYS verify you selected the correct Script Type:

Script TypeTriggerHas doc?Has frappe.form_dict?Auto-commit?
Document EventDocType lifecycle (Before Save, After Save, etc.)YESNOYES
APIHTTP request to /api/method/{method_name}NOYESYES
Scheduler EventCron scheduleNONONO — MUST call frappe.db.commit()
Permission QueryEvery list query on the DocTypeNONO (has user)N/A
Common Mistake: Wrong Event
python
# ❌ WRONG — "After Save" cannot prevent save
# Script Type: Document Event, Event: After Save
if not doc.customer:
    frappe.throw("Customer is required")  # Document already saved!

# ✅ CORRECT — Use "Before Save" or "Before Validate"
# Script Type: Document Event, Event: Before Save
if not doc.customer:
    frappe.throw("Customer is required")  # Prevents save

Sandbox Workarounds

Show full SKILL.md (265 more words)Show less
try/except Is Blocked: Use Conditional Checks
python
# ❌ BLOCKED in sandbox
try:
    customer = frappe.get_doc("Customer", doc.customer)
except Exception:
    frappe.throw("Customer not found")

# ✅ CORRECT — Check first, then access
if not frappe.db.exists("Customer", doc.customer):
    frappe.throw(f"Customer '{doc.customer}' not found")
customer = frappe.get_doc("Customer", doc.customer)
raise Is Blocked: Use frappe.throw()
python
# ❌ BLOCKED
if amount < 0:
    raise ValueError("Amount cannot be negative")

# ✅ CORRECT
if amount < 0:
    frappe.throw("Amount cannot be negative")
frappe.throw() Exception Types for API Scripts
ExceptionHTTP CodeUse When
frappe.ValidationError417Input validation failure
frappe.PermissionError403Access denied
frappe.DoesNotExistError404Record not found
frappe.AuthenticationError401Not logged in
(default, no exc)417General validation error
python
# API Script — Correct exception types
if not customer:
    frappe.throw("Customer param required", exc=frappe.ValidationError)  # 417
if not frappe.db.exists("Customer", customer):
    frappe.throw("Customer not found", exc=frappe.DoesNotExistError)    # 404
if not frappe.has_permission("Customer", "read", customer):
    frappe.throw("Access denied", exc=frappe.PermissionError)           # 403

Scheduler Script: Critical Mistakes

python
# ❌ WRONG — No limit, no commit, no error logging
invoices = frappe.get_all("Sales Invoice", filters={"status": "Unpaid"})
for inv in invoices:
    frappe.db.set_value("Sales Invoice", inv.name, "reminder_sent", 1)

# ✅ CORRECT — Limit, batch commit, error logging
BATCH_SIZE = 50
invoices = frappe.get_all(
    "Sales Invoice",
    filters={"status": "Unpaid", "docstatus": 1},
    fields=["name", "customer"],
    limit=500  # ALWAYS limit
)

errors = []
for i in range(0, len(invoices), BATCH_SIZE):
    batch = invoices[i:i + BATCH_SIZE]
    for inv in batch:
        if not frappe.db.exists("Customer", inv.customer):
            errors.append(f"{inv.name}: Customer not found")
            continue
        frappe.db.set_value("Sales Invoice", inv.name, "reminder_sent", 1)
    frappe.db.commit()  # REQUIRED

if errors:
    frappe.log_error("\n".join(errors), "Reminder Errors")
frappe.db.commit()

SQL Injection Prevention

python
# ❌ VULNERABLE — String interpolation with user input
territory = frappe.form_dict.get("territory")
conditions = f"`tabCustomer`.territory = '{territory}'"  # SQL INJECTION!

# ✅ SAFE — Use frappe.db.escape()
territory = frappe.form_dict.get("territory")
conditions = f"`tabCustomer`.territory = {frappe.db.escape(territory)}"

# ✅ SAFEST — Use parameterized query or Query Builder
results = frappe.db.get_all("Customer", filters={"territory": territory})

ALWAYS / NEVER Rules

ALWAYS
  1. Use frappe.utils.* instead of Python imports — Only json module is importable
  2. Use frappe.throw() instead of raise — raise is blocked by sandbox
  3. Use conditional checks instead of try/except — Exception handling is blocked [v14-v15]
  4. Call frappe.db.commit() in Scheduler scripts — Changes are NOT auto-committed
  5. Add limit to ALL queries in Scheduler scripts — Prevent memory exhaustion
  6. Set frappe.response["message"] in API scripts — Otherwise response is empty
  7. Use frappe.db.escape() for user input in SQL — Prevent SQL injection
  8. Log errors in Scheduler scripts with frappe.log_error() — No user to see errors
  9. Verify Script Type matches your intent — Document Event vs API vs Scheduler
NEVER
  1. NEVER use import statements (except json) — Blocked by RestrictedPython
  2. NEVER use try/except or raise — Blocked by sandbox [v14-v15]
  3. NEVER call doc.save() in Before Save — Causes infinite recursion
  4. NEVER use string formatting for SQL with user input — SQL injection risk
  5. NEVER process unlimited records in Scheduler — Always use limit
  6. NEVER assume doc exists in API/Scheduler scripts — Only available in Document Events
  7. NEVER forget frappe.db.commit() in Scheduler — All changes will be lost

Reference Files

FileContents
references/examples.mdReal error scenarios with diagnosis
references/anti-patterns.mdCommon sandbox mistakes with fixes
references/patterns.mdDefensive error handling patterns by script type

© Impertio-Studio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in skills/source/errors/frappe-errors-serverscripts of Impertio-Studio/Frappe_Claude_Skill_Package.

  • SKILL.md
  • references/anti-patterns.md
  • references/examples.md
  • references/patterns.md

Open the folder on GitHubat commit 36cfa80

Compare with similar skills

Frappe Errors Serverscripts next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Frappe Errors Serverscripts compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frappe Errors Serverscripts this skillImpertio-Studio/Frappe_Claude_Skill_Package187—~3kAutomated safety check: PassMIT
Security Audit Scannerruvnet/ruflo74k2 repos~823Automated safety check: PassMIT
Performing Security Code Reviewjeremylongshore/tons-of-skills-marketplace2.8k2 repos~1.3kAutomated safety check: NotesMIT
Code Review Securitynicepkg/auto-company1921 repos~3.9kAutomated safety check: PassMIT
TS Reviewliuyanghejerry/Clausura204—~166Automated safety check: PassMIT
Mobile Code ReviewOWASP/secure-agent-playbook187—~622Automated safety check: PassCC-BY-4.0

Similar skills

  • Runs claude-flow CLI security scans for input validation, path traversal, SQL injection, XSS, hardcoded secrets and known CVEs, and writes an audit report.

    74k GitHub starsUsed in 2 repos~823 tokens
    SecurityAuto-check passed
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    SecurityAuto-check: notes
  • Code Review Security

    nicepkg/auto-company

    Security-focused code review checklist and automated scanning patterns.

    192 GitHub starsUsed in 1 repo~3.9k tokens
    SecurityAuto-check passed
  • TS Review

    liuyanghejerry/Clausura

    TypeScript monorepo 审查:XSS、SQL 注入、密钥、any、console.log. An agent skill from liuyanghejerry/Clausura.

    204 GitHub stars~166 tokensUpdated 8 days ago
    SecurityAuto-check passed
  • Mobile Code Review

    OWASP/secure-agent-playbook

    Security-focused review of native Android and iOS mobile app source code against OWASP MASVS v2.1.0.

    187 GitHub stars~622 tokensUpdated 12 days ago
    SecurityAuto-check passed
  • A skill your agent uses when you need to write or review programmatic JDBC with Spring — including JdbcClient (Spring Framework 7+) as the default API, JdbcTemplate only where batch/streaming APIs…

    446 GitHub stars~975 tokensUpdated today
    SecurityAuto-check passed

More from Impertio-Studio/Frappe_Claude_Skill_Package

All 61 skills in this repo
  • Frappe Agent Interpreter

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when receiving vague or unclear ERPNext/Frappe development requests that need interpretation.

    187 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Frappe Ops Website Deploy

    Impertio-Studio/Frappe_Claude_Skill_Package

    Deploy HTML/CSS websites to ERPNext/Frappe (v15/v16) as Web Pages via the REST API.

    187 GitHub stars~2.5k tokensUpdated 20 days ago
    Auto-check passed
  • Frappe Core API

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting.

    187 GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Frappe Errors API

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when debugging or handling API errors in Frappe/ERPNext v14/v15/v16.

    187 GitHub starsUsed in 1 repo~4k tokens
    Auto-check passed
  • Frappe Impl Hooks

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when implementing hooks.py configurations in a Frappe custom app.

    187 GitHub starsUsed in 1 repo~3k tokens
    Auto-check passed
  • Frappe Impl Whitelisted

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when building API endpoints with @frappe.whitelist() in Frappe.

    187 GitHub starsUsed in 1 repo~3.1k tokens
    Auto-check passed

Questions about Frappe Errors Serverscripts

What does Frappe Errors Serverscripts do?

A skill your agent uses when debugging or preventing errors in Frappe Server Scripts. Frappe Errors Serverscripts is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when debugging or preventing errors in Frappe Server Scripts.

When should I use Frappe Errors Serverscripts?

Frappe Errors Serverscripts fits situations like: preventing errors in Frappe Server Scripts; tasks that involve Web application vulnerabilities.

How do I install Frappe Errors Serverscripts in Claude Code?

Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-errors-serverscripts -a claude-code`. Or copy the skill folder (skills/source/errors/frappe-errors-serverscripts in Impertio-Studio/Frappe_Claude_Skill_Package) into .claude/skills/frappe-errors-serverscripts in your project. Claude Code loads it when a task matches its description.

How do I install Frappe Errors Serverscripts in Codex?

Run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-errors-serverscripts -a codex`. Or copy the skill folder (skills/source/errors/frappe-errors-serverscripts in Impertio-Studio/Frappe_Claude_Skill_Package) into .agents/skills/frappe-errors-serverscripts in your project. Codex loads it when a task matches its description.

Can I use Frappe Errors Serverscripts in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-errors-serverscripts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/frappe-errors-serverscripts, .gemini/skills/frappe-errors-serverscripts, .github/skills/frappe-errors-serverscripts and .opencode/skills/frappe-errors-serverscripts in your project.

What does Frappe Errors Serverscripts need to run?

SKILL.md names no scripts, command-line tools or credentials: Frappe Errors Serverscripts is instructions for the agent only. Our summary lists: Python 3. Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16..

Does Frappe Errors Serverscripts access the network?

SKILL.md names 1 domain. In commands or code: api.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Frappe Errors Serverscripts safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Frappe Errors Serverscripts use?

Frappe Errors Serverscripts is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Frappe Errors Serverscripts use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.1k tokens, read only when the agent opens those files.

What are the alternatives to Frappe Errors Serverscripts?

Skills that share tags, products or a category with Frappe Errors Serverscripts: Security Audit Scanner (ruvnet/ruflo, 74k stars), Performing Security Code Review (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Code Review Security (nicepkg/auto-company, 192 stars) and TS Review (liuyanghejerry/Clausura, 204 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Frappe Errors Serverscripts?

Impertio-Studio (a GitHub organization) maintains it in Impertio-Studio/Frappe_Claude_Skill_Package, which has 187 GitHub stars. The repository holds 61 skills in this directory. The repository was last updated on September 17, 2026.

Source: Impertio-Studio/Frappe_Claude_Skill_Package on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.