Agent skill

Frappe Ops App Lifecycle

by Impertio-Studio in Impertio-Studio/Frappe_Claude_Skill_Package

A skill your agent uses when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace.

MITAuto-check: notesDevelopment

Install Frappe Ops App Lifecycle

skills CLI
$ npx skills add Impertio-Studio/Frappe_Claude_Skill_Package --skill frappe-ops-app-lifecycle -a claude-code

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

GitHub CLI
$ gh skill install Impertio-Studio/Frappe_Claude_Skill_Package frappe-ops-app-lifecycle --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/ops/frappe-ops-app-lifecycle .claude/skills/frappe-ops-app-lifecycle && 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-ops-app-lifecycle
GitHub stars
188
Token cost
~3k tokens
SKILL.md length
697 words
Files
6 (incl. references)
Skills in repo
61
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace.

  • Works in 11 steps: Scaffolding: bench new-app → Development Cycle → Getting Apps from Git → …
  • Scaffolding a new Frappe app
  • SKILL.md covers Quick Reference, 1. Scaffolding: bench new-app, 2. Development Cycle and 3. Getting Apps from Git, plus 7 more sections
  • Calls git; reaches github.com

What it does

Frappe Ops App Lifecycle is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace. Prevents broken app structure from incorrect scaffolding, missing setup.py fields, and failed builds. Covers bench new-app, app directory structure, setup.py/pyproject.toml, hooks.py config, bench build, bench run-tests, app publishing. Keywords: app lifecycle, new-app, scaffolding, setup.py, pyproject.toml, hooks.py, bench build, app publishing, marketplace, create…

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

It sits in Development, covering Project scaffolding. 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

  • Scaffolding a new Frappe app
  • Configuring app settings
  • Building assets
  • Publishing to marketplace

Example prompts

  • “/frappe-ops-app-lifecycle”

Requirements

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

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Scaffolding: bench new-app
  2. Development Cycle
  3. Getting Apps from Git
  4. Installing and Removing Apps
  5. Debugging with bench console
  6. Development Mode vs Production Mode
  7. Asset Building
  8. App Versioning
  9. Patches: Data Migrations
  10. Publishing to Frappe Marketplace
  11. App Update Lifecycle on Client Sites

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

    Shell commands in SKILL.md call:

    • git

    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:

    • github.com

    Also links to:

    • frappecloud.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 Ops App Lifecycle loads about 3k tokens when it runs, and up to ~9.5k if it reads all its reference files. Until then it costs about 155 tokens; SKILL.md has 697 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~155
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.5k

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:219
    sudo bench setup production USERNAME
  • NoteRuns commands with sudoSKILL.md:222
    sudo supervisorctl restart all
  • NoteRuns commands with sudoSKILL.md:224
    sudo systemctl restart supervisor

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). 697 words, ~3,039 tokens.

Download SKILL.mdSave it as .claude/skills/frappe-ops-app-lifecycle/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
frappe-ops-app-lifecycle
description
Use when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace. Prevents broken app structure from incorrect scaffolding, missing setup.py fields, and failed builds. Covers bench new-app, app directory structure, setup.py/pyproject.toml, hooks.py config, bench build, bench run-tests, app publishing. Keywords: app lifecycle, new-app, scaffolding, setup.py, pyproject.toml, hooks.py, bench build, app publishing, marketplace, create app, publish app, app structure, how to start new app, app directory layout..
compatibility
Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16.
license
MIT
metadata.author
OpenAEC-Foundation
metadata.version
2.0

App Lifecycle Management

Quick Reference

CommandPurposeWhen to Use
bench new-appScaffold new appStarting a new project
bench get-app URLClone from GitInstalling existing app
bench --site SITE install-appInstall on siteAfter get-app or new-app
bench --site SITE remove-appUninstall from siteRemoving app from site
bench remove-appRemove from benchRemoving app entirely
bench --site SITE migrateRun patches + syncAfter code changes
bench buildCompile assetsAfter JS/CSS changes
bench --site SITE consolePython REPLDebugging
bench startStart dev serverDevelopment
bench setup productionConfigure nginx+supervisorDeploying to production

1. Scaffolding: bench new-app

bash
bench new-app my_custom_app

Interactive prompts:

  • App Title → Human-readable name
  • App Description → One-line summary
  • App Publisher → Company/author name
  • App Email → Contact email
  • App Icon → Default: octicon octicon-file-directory
  • App Color → Default: grey
  • App License → Default: MIT
Generated Directory Structure
apps/my_custom_app/
├── MANIFEST.in              # Files included in Python package
├── README.md                # Project readme
├── license.txt              # License file
├── requirements.txt         # Python dependencies
├── dev-requirements.txt     # Dev-only Python deps (v15+)
├── package.json             # Node.js dependencies
├── setup.py                 # Python package config (v14)
├── pyproject.toml           # Python package config (v15+)
├── my_custom_app/
│   ├── __init__.py          # App version string
│   ├── hooks.py             # Framework integration hooks
│   ├── modules.txt          # List of app modules
│   ├── patches.txt          # Migration patches list
│   ├── config/
│   │   ├── __init__.py
│   │   ├── desktop.py       # Desktop/workspace config
│   │   └── docs.py          # Documentation config
│   ├── public/              # Static assets → /assets/my_custom_app/
│   │   ├── css/
│   │   └── js/
│   ├── templates/           # Jinja templates
│   └── www/                 # Portal pages (URL = path)
What Each Core File Does
FilePurposeNEVER Forget
__init__.pyDefines __version__ALWAYS update before release
hooks.pyALL framework integrationEntry point for everything
modules.txtDeclares app modulesALWAYS add new modules here
patches.txtMigration patch registryALWAYS add patches in order
requirements.txtPython deps installed on setupAdd pip packages here
public/Static files served by nginxAccessible at /assets/app_name/
www/Portal pagesFilename = URL path

2. Development Cycle

Code → Migrate → Build → Test → Commit
Step-by-Step
bash
# 1. Make code changes (DocTypes, reports, APIs, etc.)

# 2. Migrate — sync DocType schema + run patches
bench --site mysite migrate

# 3. Build — compile JS/CSS assets
bench build --app my_custom_app

# 4. Test — run Python tests
bench --site mysite run-tests --app my_custom_app

# 5. Commit
git -C apps/my_custom_app add -A && git -C apps/my_custom_app commit -m "feat: add feature"

ALWAYS run bench migrate after modifying DocType JSON files. ALWAYS run bench build after modifying JS/CSS files.

3. Getting Apps from Git

bash
# Public repo
bench get-app https://github.com/org/my_app

# Specific branch
bench get-app https://github.com/org/my_app --branch develop

# Private repo via SSH
bench get-app git@github.com:org/private_app.git

# Private repo via token (v15+)
bench get-app https://TOKEN@github.com/org/private_app.git

After get-app, ALWAYS install on the target site:

bash
bench --site mysite install-app my_app

get-app clones to apps/ and adds to apps.txt. install-app creates database tables and runs after_install hooks.

4. Installing and Removing Apps

Installation Order Matters

Apps are installed in order listed in apps.txt. If App B depends on App A, App A MUST be listed first.

bash
# Install
bench --site mysite install-app my_app

# Verify
bench --site mysite list-apps
# Output: frappe, erpnext, my_app

# Remove from site (keeps code in apps/)
bench --site mysite remove-app my_app

# Remove from bench entirely (deletes code)
bench remove-app my_app
App Dependencies (v14+)

Declare in hooks.py:

python
required_apps = ["frappe", "erpnext"]

Frappe ALWAYS checks required_apps during installation and blocks if dependencies are missing.

5. Debugging with bench console

bash
bench --site mysite console

Opens an IPython REPL with Frappe context:

python
# Query data
frappe.db.sql("SELECT name, status FROM `tabSales Invoice` LIMIT 5", as_dict=True)

# Get a document
doc = frappe.get_doc("Sales Invoice", "SINV-00001")
print(doc.grand_total)

# Test a whitelisted method
from my_app.api import my_function
result = my_function(param="value")

# Check configuration
frappe.get_site_config()

# Auto-reload on code changes (v15+)
# Start with: bench --site mysite console --autoreload

ALWAYS use bench console for debugging — NEVER modify production data with raw SQL.

6. Development Mode vs Production Mode

Development Mode
bash
# Enable
bench set-config -g developer_mode 1

# Start dev server (Procfile: web + worker + redis + socketio)
bench start

Development mode enables:

  • DocType editing in Desk
  • "Is Standard" option for reports/scripts
  • Auto-reload on Python file changes
  • Detailed error tracebacks in browser
  • dev-requirements.txt dependencies installed
Production Mode
bash
# Disable developer mode
bench set-config -g developer_mode 0

# Setup production (nginx + supervisor)
sudo bench setup production USERNAME

# Restart
sudo supervisorctl restart all
# or
sudo systemctl restart supervisor

Production mode:

  • Serves via nginx (port 80/443)
  • Background workers via supervisor
  • Static files served directly by nginx
  • Errors logged to files, not browser
  • NEVER enable developer_mode on production sites

7. Asset Building

v15+ (esbuild)
bash
# Build all apps
bench build

# Build specific app
bench build --app my_custom_app

# Watch mode (auto-rebuild on changes)
bench watch
v14 (build.json)

v14 uses build.json in the app root to map source files to bundles:

json
{
    "css/my_app.css": [
        "public/css/style.css"
    ],
    "js/my_app.js": [
        "public/js/main.js"
    ]
}
Asset Include in hooks.py
python
# Desk (backend UI)
app_include_js = "my_app.bundle.js"      # v15+ bundle syntax
app_include_css = "my_app.bundle.css"

# Portal (website)
web_include_js = "my_app_web.bundle.js"
web_include_css = "my_app_web.bundle.css"

# v14 legacy syntax
app_include_js = "/assets/my_app/js/my_app.js"
app_include_css = "/assets/my_app/css/my_app.css"

ALWAYS run bench build after changing JS/CSS files. ALWAYS run bench clear-cache if assets are not updating.

Show full SKILL.md (269 more words)Show less

8. App Versioning

Version String in init.py
python
# my_custom_app/__init__.py
__version__ = "1.2.0"

ALWAYS use semantic versioning: MAJOR.MINOR.PATCH

  • MAJOR: Breaking changes
  • MINOR: New features (backward compatible)
  • PATCH: Bug fixes

The version is read by bench version, displayed in Desk, and used by the Marketplace.

Checking Versions
bash
bench version
# frappe 15.23.0
# erpnext 15.18.0
# my_custom_app 1.2.0

9. Patches: Data Migrations

Writing a Patch
python
# my_app/patches/v1_2/update_customer_status.py
import frappe

def execute():
    frappe.reload_doc("module_name", "doctype", "customer_extension")

    frappe.db.sql("""
        UPDATE `tabCustomer Extension`
        SET status = 'Active'
        WHERE status IS NULL
    """)
    frappe.db.commit()
Registering in patches.txt
# patches.txt — v14+ supports sections

[pre_model_sync]
my_app.patches.v1_1.fix_old_data
my_app.patches.v1_2.rename_field_before_schema

[post_model_sync]
my_app.patches.v1_2.update_customer_status
my_app.patches.v1_2.migrate_settings

Section timing (v14+):

  • [pre_model_sync] — Runs BEFORE DocType schema changes are applied
  • [post_model_sync] — Runs AFTER schema changes (new fields available)
  • No section header — Runs in [pre_model_sync] by default
Patch Rules
  • ALWAYS add new patches at the END of their section
  • Patches run ONCE — tracked in tabPatch Log
  • To re-run a patch, append a comment: my_app.patches.v1_2.fix #2025-03-20
  • ALWAYS call frappe.reload_doc() before accessing new/modified DocTypes
  • ALWAYS use [post_model_sync] for patches that need new fields
  • One-liner patches: execute:frappe.delete_doc("Page", "old-page", ignore_missing=True)
Testing a Patch
bash
# Run all pending patches
bench --site mysite migrate

# Run a specific patch manually in console
bench --site mysite console
>>> from my_app.patches.v1_2.update_customer_status import execute
>>> execute()
>>> frappe.db.commit()

10. Publishing to Frappe Marketplace

Prerequisites Checklist
  1. App hosted on public GitHub repository
  2. setup.py or pyproject.toml with correct metadata
  3. Valid __version__ in __init__.py
  4. README.md with installation instructions
  5. All tests passing
setup.py (v14)
python
from setuptools import setup, find_packages

setup(
    name="my_custom_app",
    version="1.0.0",
    description="My Custom App for ERPNext",
    author="Your Name",
    author_email="you@example.com",
    packages=find_packages(),
    zip_safe=False,
    include_package_data=True,
    install_requires=["frappe"],
)
pyproject.toml (v15+)
toml
[project]
name = "my_custom_app"
dynamic = ["version"]
requires-python = ">=3.10,<3.13"
dependencies = ["frappe"]

[build-system]
requires = ["flit_core >=3.4,<4"]
build-backend = "flit_core:buildapi"
Publishing Steps
  1. Create account at https://frappecloud.com/marketplace
  2. Add your GitHub repository
  3. Configure supported versions (v14, v15)
  4. Submit for review
  5. After approval, app appears in Marketplace

11. App Update Lifecycle on Client Sites

bash
# Pull latest code
bench update --pull

# Or update specific app
cd apps/my_custom_app && git pull origin main && cd ../..

# Then migrate (runs patches + syncs schema)
bench --site mysite migrate

# Rebuild assets
bench build --app my_custom_app

# Restart workers
bench restart

The bench update command wraps: backup → pull → requirements → migrate → build → restart.

ALWAYS take a backup before running bench update on production. ALWAYS test updates on staging before applying to production.

See Also

© 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 5 other files (references) in skills/source/ops/frappe-ops-app-lifecycle of Impertio-Studio/Frappe_Claude_Skill_Package.

  • SKILL.md
  • references/.gitkeep
  • references/anti-patterns.md
  • references/examples.md
  • references/module-workspace-shipping.md
  • references/workflows.md

Open the folder on GitHubat commit 36cfa80

Compare with similar skills

Frappe Ops App Lifecycle 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 Ops App Lifecycle compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Frappe Ops App Lifecycle this skillImpertio-Studio/Frappe_Claude_Skill_Package188—~3kAutomated safety check: NotesMIT
Nx Generatenomcopter/react-mosaic4.8k7 repos~1.9kAutomated safety check: PassCustom licence
PonytailDavidObando/gsharp5648 repos~1.7kAutomated safety check: PassMIT
Run Nx Generatornrwl/nx29k2 repos~592Automated safety check: NotesMIT
Conductor Setupgemini-cli-extensions/conductor3.8k—~4.2kAutomated safety check: PassApache-2.0
Mirage VFS Adapter Authoringstrukto-ai/mirage3.7k—~2.5kAutomated safety check: PassApache-2.0

Similar skills

  • Nx Generate

    nomcopter/react-mosaic

    Generate code using nx generators. An agent skill from nomcopter/react-mosaic.

    4.8k GitHub starsUsed in 7 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Ponytail

    DavidObando/gsharp

    Forces the laziest solution that actually works, simplest, shortest, most minimal.

    564 GitHub starsUsed in 8 repos~1.7k tokens
    DevelopmentAuto-check passed
  • Run Nx generators with prioritization for workspace-plugin generators.

    29k GitHub starsUsed in 2 repos~592 tokens
    DevelopmentAuto-check: notes
  • Conductor Setup

    gemini-cli-extensions/conductor

    Scaffolds the project and sets up the Conductor environment.

    3.8k GitHub stars~4.2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Builds or extends a custom Mirage virtual filesystem adapter for an API, database, object store or app data, with a working mount configuration and filesystem tests.

    3.7k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Enforces this repository's TypeScript backend module architecture under server/: feature folders, barrel exports, and where shared types and utilities belong.

    14k GitHub stars~1.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from Impertio-Studio/Frappe_Claude_Skill_Package

All 61 skills in this repo
  • 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.

    188 GitHub stars~2.5k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Architect

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when designing multi-app Frappe architectures, deciding whether to split functionality into separate apps, or implementing cross-app communication patterns.

    188 GitHub stars~2.8k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Debugger

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when debugging Frappe errors, using bench console for live inspection, analyzing tracebacks, or reading Frappe log files.

    188 GitHub stars~2.9k tokensUpdated 22 days ago
    Auto-check passed
  • 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.

    188 GitHub stars~3.2k tokensUpdated 22 days ago
    Auto-check passed
  • Frappe Agent Migrator

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when migrating a Frappe app between major versions, detecting breaking API changes, or resolving post-migration errors.

    188 GitHub stars~2.8k tokensUpdated 22 days ago
    Auto-check: notes
  • Frappe Agent Validator

    Impertio-Studio/Frappe_Claude_Skill_Package

    A skill your agent uses when reviewing or validating Frappe/ERPNext code against best practices and common pitfalls.

    188 GitHub stars~2.8k tokensUpdated 22 days ago
    Auto-check passed

Categories

Questions about Frappe Ops App Lifecycle

What does Frappe Ops App Lifecycle do?

A skill your agent uses when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace. Frappe Ops App Lifecycle is an agent skill from Impertio-Studio/Frappe_Claude_Skill_Package. Use when scaffolding a new Frappe app, configuring app settings, building assets, running tests, deploying, updating, or publishing to marketplace.

When should I use Frappe Ops App Lifecycle?

Frappe Ops App Lifecycle fits situations like: scaffolding a new Frappe app; configuring app settings; building assets; publishing to marketplace.

How do I install Frappe Ops App Lifecycle in Claude Code?

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

How do I install Frappe Ops App Lifecycle in Codex?

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

Can I use Frappe Ops App Lifecycle 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-ops-app-lifecycle -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-ops-app-lifecycle, .gemini/skills/frappe-ops-app-lifecycle, .github/skills/frappe-ops-app-lifecycle and .opencode/skills/frappe-ops-app-lifecycle in your project.

What does Frappe Ops App Lifecycle need to run?

Going by SKILL.md and its folder, Frappe Ops App Lifecycle needs the command-line tools its instructions call (git). Our summary lists: Python 3; Node.js. Compatibility (from SKILL.md): Claude Code, Claude.ai Projects, Claude API. Frappe v14-v16..

Does Frappe Ops App Lifecycle access the network?

SKILL.md names 2 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: frappecloud.com. This is read from the text; nothing was executed.

Is Frappe Ops App Lifecycle safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Frappe Ops App Lifecycle use?

Frappe Ops App Lifecycle 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 Ops App Lifecycle 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.5k tokens, read only when the agent opens those files.

What are the alternatives to Frappe Ops App Lifecycle?

Skills that share tags, products or a category with Frappe Ops App Lifecycle: Nx Generate (nomcopter/react-mosaic, 4.8k stars), Ponytail (DavidObando/gsharp, 564 stars), Run Nx Generator (nrwl/nx, 29k stars) and Conductor Setup (gemini-cli-extensions/conductor, 3.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Frappe Ops App Lifecycle?

Impertio-Studio (a GitHub organization) maintains it in Impertio-Studio/Frappe_Claude_Skill_Package, which has 188 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.