Files
Claude f45200ec18 feat(quartz): NostrClient.keepConnected, a relay held connected between bursts
The pool keeps a relay only while a subscription, a COUNT or an unanswered EVENT wants
it, and drops it at the next 300ms sample once none is left. A caller that talks to one
relay in bursts (vespa-relay's sync, forwarding batches to its relay) lost its socket
between two batches and paid a fresh dial and NIP-42 AUTH for the next; it held a
subscription matching nothing to stop that. keepConnected(url) makes the relay wanted
like a subscription's: dialed, held through quiet, redialed after a hang-up, until the
matching releaseConnection(url). Holds are counted. A no-op default on INostrClient.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AxUUtjeM7vwdi7Gb8Uv2xP
2026-10-20 23:28:40 +00:00
..

Quartz agent skill

quartz/ is an Agent Skill for coding agents working in a project that depends on Quartz. It teaches the agent where things are in the library and which helpers to reach for (the fetch* / publish accessories, typed event builders, NostrSigner, NIP-19 / NIP-05 parsing) instead of re-implementing them, and links to the full guides in this repo.

It is not loaded when you work on Amethyst itself; the repo's own skills live in .claude/skills/.

Install

Copy the quartz/ folder into your project's skills directory:

# Claude Code
mkdir -p .claude/skills && cp -r path/to/amethyst/quartz/agent-skill/quartz .claude/skills/

# Codex
mkdir -p .agents/skills && cp -r path/to/amethyst/quartz/agent-skill/quartz .agents/skills/

Or, without cloning the repo:

mkdir -p .claude/skills/quartz && curl -fsSL -o .claude/skills/quartz/SKILL.md \
  https://raw.githubusercontent.com/vitorpamplona/amethyst/main/quartz/agent-skill/quartz/SKILL.md

Use ~/.claude/skills/ or ~/.agents/skills/ instead to make it available in every project.