From ring-default
Delegates tasks to Gandalf AI via Tailscale webhook: publish HTML reports to Alfarrábio, send Slack notifications, query business context via Jira/GitHub/Slack access. Triggers on Alfarrábio publishing, Slack via Gandalf, or task delegation.
npx claudepluginhub lerianstudio/ring --plugin ring-defaultThis skill uses the workspace's default tool permissions.
Send tasks to Gandalf and get responses back. Gandalf is Lerian's AI team member running on a dedicated Mac mini with access to Slack, Google Workspace, GitHub, Jira, Alfarrábio (report server), and more.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Send tasks to Gandalf and get responses back. Gandalf is Lerian's AI team member running on a dedicated Mac mini with access to Slack, Google Workspace, GitHub, Jira, Alfarrábio (report server), and more.
POST http://gandalf.heron-justitia.ts.net:18792/task
Tailscale only. No auth token — identity resolved from your Tailscale node.
publish — instant (<1s)Write content directly to Alfarrábio and get the URL back. No agent bootstrap.
curl -s -X POST http://gandalf.heron-justitia.ts.net:18792/task \
-H "Content-Type: application/json" \
-d '{
"action": "publish",
"message": "My Report Title",
"content": "<html>...full report...</html>",
"context": "optional context"
}'
Response (synchronous):
{
"ok": true,
"task_id": "a1b2c3d4",
"status": "done",
"response": "https://alfarrabio.lerian.net/my-report-title.html"
}
notify — instant (<1s)Send a Slack message. Prefix with #channel: to target a specific channel.
curl -s -X POST http://gandalf.heron-justitia.ts.net:18792/task \
-H "Content-Type: application/json" \
-d '{
"action": "notify",
"message": "#pull-requests: PR #1900 lib-commons v4 ready for review"
}'
Without #channel: prefix, sends to #gandalf-notifications.
ask — full agent (~30-60s)Open a full OpenClaw agent session. Use for anything that needs intelligence: business context, analysis, cross-tool tasks. This is the default when action is omitted.
# Send task
RESP=$(curl -s -X POST http://gandalf.heron-justitia.ts.net:18792/task \
-H "Content-Type: application/json" \
-d '{
"action": "ask",
"message": "What is the current status of the Voluti integration?",
"context": "investigating INC-72"
}')
TASK_ID=$(echo $RESP | jq -r .task_id)
# Poll until done
for i in $(seq 1 60); do
RESULT=$(curl -s http://gandalf.heron-justitia.ts.net:18792/task/$TASK_ID)
STATUS=$(echo $RESULT | jq -r .status)
if [ "$STATUS" != "processing" ]; then
echo $RESULT | jq .
break
fi
sleep 5
done
| Field | Required | Description |
|---|---|---|
message | Yes | What to do. For publish, this becomes the report title. |
action | No | publish (instant), notify (instant), ask (full agent). Default: ask. |
content | No | Inline content (HTML, markdown, text). Required for publish. Max 5MB. |
context | No | What you're working on (repo, PR, feature). |
ask only)GET http://gandalf.heron-justitia.ts.net:18792/task/{task_id}
publish and notify return the result synchronously — no polling needed.
| Need | Action | Speed |
|---|---|---|
| Publish HTML/markdown report | publish | <1s |
| Send Slack notification | notify | <1s |
| Ask business/product question | ask | 30-60s |
| Complex cross-tool task | ask | 30-300s |
Anything without action field | ask | 30-300s |
ask actions)curl -s http://gandalf.heron-justitia.ts.net:18792/health