Files
hodlbod 5b8fef5b23
tests / tests (push) Failing after 5m8s
Fix NIP conformance in domain kinds; add domain docs/skill
NIP fixes:
- RelayMembers (13534): use NIP-43 `member` tags (not `p`) and set the required
  NIP-70 `-` protected tag.
- Profile (kind 0): remove display-name support entirely (getter, setter, display()
  fallback, and the search weight).
- Comment (1111): A/a tags now carry a real address, not the event id.
- BlossomServerList (10063): normalize server URLs with normalizeUrl (HTTP), not
  normalizeRelayUrl (which forced wss://).
- HandlerRecommendation (31989): fix inverted removeRecommendation filter; add
  setSupportedKind()/supportedKind() for the NIP-89 d-tag.
- Report (1984): place the report-type string on the e tag (note reports) or p tag
  (profile reports); always emit the p tag.

Docs/skills:
- Add @welshman/domain docs (docs/domain/) and the welshman-domain skill.
- Prune @welshman/util docs/skill of the moved Profile/List/Handler/Encryptable
  helpers; register domain in the sidebar, index, and skills README.
- Apply accuracy fixes to the @welshman/app docs/skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BsMjvv7krpZeHK1Njeneru
2026-06-20 14:55:21 +00:00

47 lines
2.0 KiB
Markdown

# Welshman Agent Skills
Agent skills for working with the welshman nostr library in AI coding tools.
## What are these skills?
Agent skills are Markdown instruction sets that are auto-loaded by AI coding tools (Claude Code, Cursor, Cline, etc.) when relevant to your current task. Each skill contains focused documentation about a specific part of the welshman nostr library. When you ask a question that matches a skill's domain, the tool loads the full skill content automatically, giving the agent accurate, up-to-date knowledge about welshman's APIs and patterns.
## Installation
### Via npx (recommended)
```bash
npx skills add coracle-social/welshman
```
## Available skills
| Skill | Description |
|-------|-------------|
| welshman | General overview, package map, getting started |
| welshman-util | Core nostr types, events, filters, tags, NIPs (profiles/lists/handlers/rooms moved to domain) |
| welshman-domain | Nostr event kinds as Reader/Builder classes: profiles, lists, rooms, handlers, zaps |
| welshman-lib | Utilities: LRU, emitter, deferred, task queue |
| welshman-net | Relay connections, request/publish, auth |
| welshman-router | Relay selection strategies |
| welshman-store | Svelte stores and Repository pattern |
| welshman-signer | Signing, login methods, encrypted events |
| welshman-feeds | Dynamic feed construction |
| welshman-app | Instance-based client: plugins, sessions, publishing, requests |
| welshman-content | Note content parsing and rendering |
| welshman-editor | Svelte rich-text editor component |
## How skills activate
At startup, the AI reads each skill's description to understand what it covers. When you ask a question that matches a skill's domain — for example, asking about relay connections or feed construction — the full skill content is loaded automatically to inform the response.
You can also invoke a skill manually using its slash command:
```
/welshman
/welshman-net
/welshman-store
```
This is useful when you want to prime the agent with a specific skill before starting a task.