Config yaml guide
Skill datamaker-kr/synapse-claude-marketplace/plugins/synapse-plugin-helper/skills/config-yaml-guide
시냅스 제품군 개발을 위한 공용 Claude Marketplace 입니다. 용도 및 목적 별 plugins 를 통해 claude plugins, agents, skills, commands 를 제공합니다.
npx -y skills add datamaker-kr/synapse-claude-marketplace --skill config-yaml-guideAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Explains how to write Synapse plugin config.yaml files. Use when the user asks about "config.yaml", "plugin configuration", "action definition", "execution method", "runtime environment", or needs help with synapse plugin settings.
SKILL.md
4.4 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Synapse Plugin config.yaml Guide
The config.yaml file (or synapse.yaml) defines your plugin's metadata, actions, and runtime configuration.
Minimal Example
name: "My Plugin"
code: my-plugin
version: 1.0.0
category: custom
actions:
train:
entrypoint: plugin.train:TrainAction
method: job
description: "Train a model"
Complete Structure
# Basic metadata
name: "YOLOv8 Object Detection"
code: yolov8
version: 1.0.0
category: neural_net
description: "Train and run YOLOv8 models"
readme: README.md
# Package management
package_manager: pip # or 'uv'
package_manager_options: []
wheels_dir: wheels
# Environment variables
env:
DEBUG: "false"
BATCH_SIZE: "32"
# Runtime environment (Ray)
runtime_env: {}
# Data type configuration
data_type: image
tasks:
- image.object_detection
- image.segmentation
# Actions
actions:
train:
entrypoint: plugin.train:TrainAction
method: job
description: "Train YOLO model"
inference:
entrypoint: plugin.inference:run
method: task
description: "Run inference"
Action Configuration
| Field | Required | Description |
|---|---|---|
entrypoint | Yes | Module path (module.path:ClassName or module.path.function) |
method | No | Execution method: job, task, or serve (default: task) |
description | No | Human-readable description |
serve_options | No | Ray Serve deployment tuning (deployment actions only) — see below |
Config Sync (Recommended)
Sync entrypoints, input/output types, and hyperparameters from code:
synapse plugin update-config
Note:
update-config(andpublish, which runs it implicitly) discovers actions by scanning every*.pyunder the project root and rewritesconfig.yamlin place. It ignores.synapseignore/.gitignore, so action classes inrefs/,examples/, or a local.venv/get pulled in and overwrite your real entrypoints. Publish from a clean staging copy (--path) to avoid this — see the publish command docs.
serve_options (deployment actions)
A deployment action passes serve_options straight to serve.deployment(). These control how the Ray Serve replica handles load — important for GPU model serving where each request can take many seconds.
deployment:
entrypoint: plugin.deployment.InferenceDeployment
method: job
serve_options:
max_ongoing_requests: 32 # requests admitted per replica before backpressure
health_check_timeout_s: 180 # tolerate slow cold model loads
health_check_period_s: 30
# num_replicas, max_queued_requests, autoscaling_config, graceful_shutdown_* also supported
| Option | Purpose |
|---|---|
max_ongoing_requests | Concurrent requests admitted per replica. Keep this high (e.g. 32). A low value (especially 1) makes the replica return 503 "at capacity" under burst/retry traffic, which the SDK client retries — a storm that fails requests even when the work succeeds. Serialize GPU work with a lock in the handler instead. |
health_check_timeout_s | Raise it (e.g. 180) so a one-time multi-GB cold model download doesn't get the replica killed as "unhealthy". |
num_replicas | Number of replicas (default 1). |
For the handler-side companion fixes (offloading blocking inference with asyncio.to_thread, the GPU lock), see the inference-action reference in the specialized-actions skill.
Execution Methods
| Method | Use Case | Characteristics |
|---|---|---|
job | Training, batch processing | Async, isolated, long-running (100s+) |
task | Interactive operations | Sync, fast startup (<1s), serial per actor |
serve | Model serving, inference | REST API endpoint, auto-scaling |
Entrypoint Formats
Both formats are supported:
- Colon notation:
plugin.train:TrainAction - Dot notation:
plugin.train.TrainAction
Additional Resources
For detailed configuration options:
- references/fields.md - All config.yaml fields
- references/smart-tool.md - Smart tool configuration
What ships with it: 2 files
5.6 KB alongside SKILL.md
references/
- fields.md4.3 KB
- smart-tool.md1.3 KB