← スキル一覧に戻る
fx-explore
brianium / sfere
⭐ 0🍴 0📅 2026年1月18日
Discover available effects, actions, and placeholders in a Sandestin project. Use when asking what effects exist, searching for functionality, or needing example invocations. Keywords: effects, actions, dispatch, describe, grep, sample.
SKILL.md
---
name: fx-explore
description: Discover available effects, actions, and placeholders in a Sandestin project. Use when asking what effects exist, searching for functionality, or needing example invocations. Keywords: effects, actions, dispatch, describe, grep, sample.
---
# Sandestin Effect Explorer
Discover and understand available effects, actions, and placeholders.
**Important:** All discoverability functions operate on the **dispatch function**, not registries. You must first create a dispatch via `(s/create-dispatch [registries...])` before using these functions.
## About Sandestin
Sandestin is a Clojure effect dispatch library with schema-driven discoverability. Effects are dispatched as vectors like `[:myapp/save-user {:name "Alice"}]`.
**GitHub:** https://github.com/brianium/sandestin
### Check if Installed
Look for the dependency in `deps.edn`:
```clojure
io.github.brianium/sandestin {:git/tag "v0.3.0" :git/sha "2be6acc"}
```
### Install if Missing
Add to `deps.edn` under `:deps`:
```clojure
{:deps
{io.github.brianium/sandestin {:git/tag "v0.3.0" :git/sha "2be6acc"}}}
```
## Workflow
### 1. Find the Dispatch
Search for `create-dispatch` to locate the project's dispatch namespace.
### 2. Explore via REPL
```clojure
(require '[ascolais.sandestin :as s])
(require '[<dispatch-ns> :refer [dispatch]])
;; List everything
(s/describe dispatch)
;; Filter by type
(s/describe dispatch :effects)
(s/describe dispatch :actions)
(s/describe dispatch :placeholders)
;; Search by keyword
(s/grep dispatch "user")
(s/grep dispatch #"save|create")
;; Get details on specific item
(s/describe dispatch :some.ns/effect-name)
;; Generate sample invocation
(s/sample dispatch :some.ns/effect-name)
;; See system requirements
(s/system-schema dispatch)
```
## Output Format
Summarize findings:
```
### Effects
**:myapp.db/query** - Execute a SQL query
Requires: [:datasource]
Example: [:myapp.db/query "SELECT * FROM users" 42]
### Actions
**:myapp.user/create** - Create user and send welcome email
Expands to: db insert + email send
```
## Key Functions
| Function | Purpose |
|----------|---------|
| `(s/describe dispatch)` | List all items |
| `(s/describe dispatch :key)` | Details for specific item |
| `(s/grep dispatch "pattern")` | Search by string/regex |
| `(s/sample dispatch :key)` | Generate sample data |
| `(s/system-schema dispatch)` | System requirements |