dilaya-write-skill
Use when writing or updating the skill (stored instructions) of a Dilaya app.
Skill by hereya
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hereya-dilaya-write-skill
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/dilaya-write-skill
What's inside
- Skill name
dilaya-write-skill- Description
- Use when writing or updating the skill (stored instructions) of a Dilaya app.
- License
- MIT
- Instructions
- 117 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Tool names below are the Dilaya connector's tools; your client may show them with a prefix (e.g. `mcp__dilaya__query`).
# How to Write a Good Skill
A skill is a set of instructions stored in Dilaya that tells agents how to use an app. Good skills make the app immediately usable by any agent in any conversation.
## Structure
### 1. Overview (required)
One paragraph explaining what the app does, who it's for, and what problems it solves.
### 2. Tables (required)
List every table with:
- Table name and purpose
- Each column: name, type, meaning, constraints
- Relationships: foreign keys, join patterns
### 3. Common operations (required)
Provide ready-to-use SQL patterns for the most frequent operations:
- **Read patterns**: SELECT queries for listing, filtering, searching, aggregating
- **Write patterns**: INSERT templates with all required columns
- **Update patterns**: UPDATE templates for common state changes
- **Delete patterns**: DELETE with proper cascade awareness
Use `:param_name` syntax for parameterized values.
A calculation the user relies on (a price, a quantity, an invoice) belongs in an **action** of the app's backend, not in a SQL recipe — **even when the app has no web page**: a backend can serve actions only. Write « pour X, appelle l'action `nom` » here and keep SQL for exploration (the `actions` section of the `dilaya-frontend` skill).
### 4. Business rules (recommended)
Document constraints that aren't enforced by the database:
- Validation rules (e.g., "servings must be between 1 and 100")
- State machines (e.g., "an order goes from pending → confirmed → shipped → delivered")
- Computed values (e.g., "total_cost = SUM of ingredient costs × quantity")
- Access patterns (e.g., "recipes are per-user, filter by user_id")
### 5. File storage conventions (if applicable)
Document the folder structure and naming conventions:
- Where files are stored (e.g., `recipes/photos/{recipe_id}/`)
- Naming conventions (e.g., `{recipe_name}-{timestamp}.jpg`)
- File types accepted
### 6. Stored scripts & templates (if applicable)
Document any reusable scripts or templates stored in S3 that speed up recurrent tasks:
- What each file does and when to use it
- Path in S3 (e.g., `recipes/scripts/weekly-report.sql`)
- Any placeholders or parameters that need substitution
## Example
```
# Recipe Manager
Manages cooking recipes with ingredients and nutritional information. Designed for home cooks who want to organize, search, and scale their recipes.
## Tables
### recipes
| Column | Type | Description |
|--------|------|-------------|
| id | INTEGER PK | Auto-generated ID (INTEGER PRIMARY KEY AUTOINCREMENT) |
| name | TEXT | Recipe name (required, unique per user) |
| servings | INTEGER | Number of portions this recipe makes |
| prep_time | INTEGER | Preparation time in minutes |
| cook_time | INTEGER | Cooking time in minutes |
| category | TEXT | Category: appetizer, main, dessert, snack, drink |
| created_at | TEXT | Auto-set on creation (DEFAULT CURRENT_TIMESTAMP) |
### ingredients
| Column | Type | Description |
|--------|------|-------------|
| id | INTEGER PK | Auto-generated ID (INTEGER PRIMARY KEY AUTOINCREMENT) |
| recipe_id | INTEGER FK → recipes(id) | Parent recipe (CASCADE delete) |
| name | TEXT | Ingredient name |
| quantity | REAL | Amount needed |
| unit | TEXT | Unit: g, kg, ml, l, piece, tbsp, tsp, cup |
## Common Operations
### List recipes by category
query: SELECT id, name, servings, prep_time + cook_time AS total_time FROM recipes WHERE category = :cat ORDER BY name
params: { cat: "desserts" }
### Get recipe with ingredients
query: SELECT r.*, i.name AS ingredient, i.quantity, i.unit FROM recipes r LEFT JOIN ingredients i ON i.recipe_id = r.id WHERE r.id = :id ORDER BY i.name
params: { id: 1 }
### Add a recipe
execute: INSERT INTO recipes (name, servings, prep_time, cook_time, category) VALUES (:name, :servings, :prep, :cook, :cat)
params: { name: "Tarte Tatin", servings: 8, prep: 30, cook: 45, cat: "dessert" }
### Scale a recipe
query: SELECT name, quantity * :factor AS scaled_qty, unit FROM ingredients WHERE recipe_id = :id
params: { id: 1, factor: 2.0 }
## Business Rules
- Category must be one of: appetizer, main, dessert, snack, drink
- Servings must be >= 1
- Times are in minutes, must be >= 0
## File Storage
Photos stored at: recipes/photos/{recipe_id}/{filename}
Accepted types: image/jpeg, image/png, image/webp
```
## Saving the skill
```
save-skill({
schema: "recipes",
name: "main",
description: "Manage cooking recipes with ingredients and portions",
content: "... the full skill text above ..."
})
```
You can save multiple skills per schema for different use cases (e.g., "cost-analysis", "meal-planning").From hereya/dilaya-plugin, MIT.
More from hereya/dilaya-plugin
- 0.570score
dilaya-frontend
hereya
Use when giving a Dilaya app a website: enable it, write and deploy its handler, sign-in, static pages, staging, named actions.
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-custom-domains
hereya
Use when putting a Dilaya app's website on its own address: a Dilaya host, the customer's domain, or a domain bought through Dilaya.
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-guide
hereya
Use for user-facing help about Dilaya: welcoming a new or unsure user, turning a need described in plain words into a plan, a tutorial on a task (build…
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-catalog-install
hereya
Use when installing an app from the Dilaya app catalog (the user names a catalog app, or pastes an « Installe l'app … du catalogue Dilaya » prompt).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-agent-setup
hereya
Use when installing, moving or reinstalling an agent of a Dilaya app (after set-agent, or when the user asks how to set one up).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-dashboard-install
hereya
Use when installing or reproducing a live dashboard of a Dilaya app (after save-cowork-dashboard or a setup-*-console call, or on another machine).
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-telegram
hereya
Use when attaching a Telegram bot to a Dilaya app, or sending and reading its messages.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-update-app
hereya
Use when changing an existing Dilaya app's structure: new tables or columns, migrations, skill updates.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-vectors
hereya
Use when a Dilaya app needs semantic search: embeddings and vector indexes.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-mail
hereya
Use when a Dilaya app must send transactional email (receipts, notifications, confirmations).
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-management
hereya
Use when looking across all the apps of a Dilaya organization: status, archive, usage, the management console.
SkillAFreshness: AClaude Code +9 - 0.564score
dilaya-dashboards
hereya
Use when creating or reproducing a live dashboard of a Dilaya app.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 5, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/hereya/dilaya-plugin
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from hereya
- 0.570score
dilaya-guide
hereya
Use for user-facing help about Dilaya: welcoming a new or unsure user, turning a need described in plain words into a plan, a tutorial on a task (build…
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-frontend
hereya
Use when giving a Dilaya app a website: enable it, write and deploy its handler, sign-in, static pages, staging, named actions.
SkillAFreshness: AClaude Code +9 - 0.570score
dilaya-custom-domains
hereya
Use when putting a Dilaya app's website on its own address: a Dilaya host, the customer's domain, or a domain bought through Dilaya.
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-agent-setup
hereya
Use when installing, moving or reinstalling an agent of a Dilaya app (after set-agent, or when the user asks how to set one up).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-catalog-install
hereya
Use when installing an app from the Dilaya app catalog (the user names a catalog app, or pastes an « Installe l'app … du catalogue Dilaya » prompt).
SkillAFreshness: AClaude Code +9 - 0.565score
dilaya-dashboard-install
hereya
Use when installing or reproducing a live dashboard of a Dilaya app (after save-cowork-dashboard or a setup-*-console call, or on another machine).
SkillAFreshness: AClaude Code +9
Cite this page
dilaya-write-skill. Agent Mart. https://agentmart.dev/skills/hereya-dilaya-write-skill (last updated 2026-10-24)